Skip to content

BugTape demo

ai.bugtape/bugtape-demobugtape.aistreamable-httpv1.0.0Scanned

Read-only sample shop with captured bug evidence. No account or key needed.

14 tools: 1 change things and 13 only read.

Tools: 0 delete, 0 irreversible, 1 write, 13 read.
  • Reads private data · 2
  • Reads text others write · 1
  • Can send data out · 0
  • 2 findings

Anlyon alternative

1 of these tools change something. Run those as governed actions.

Declare what an action changes, and Anlyon puts it under a shared limit, binds every approval to the exact request, and grades the outcome. It works on any HTTPS API you can describe as an action.

Anlyon does not run, proxy or govern this MCP server. A tool your own code calls directly is not routed through Anlyon and is not governed by it.

Import an OpenAPI spec →

Tools

Grouped by what each tool does, most consequential first. Open one for its reasons and full description; descriptions are the publisher's own words.

14 tools

Changes things 1Claude Code: ask
Only reads 13Show 13 read-only tools
  • get_bugGet full details of a bug including title, description, severity, status, reporters, AI summary, environment info, report count, affected_user_count, repeat_user_count, and user_sp…No findings

    Why it is in this group

    • The name "get_bug" says "get": a word for reading.
    Description, as the server wrote it
    Get full details of a bug including title, description, severity, status, reporters, AI summary, environment info, report count, affected_user_count, repeat_user_count, and user_spread (user_specific vs widespread). Use get_bug_users for the per-user roster.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_bug_eventsGet session events for a bug (DOM, network, console, clicks, errors).No findings

    Why it is in this group

    • The name "get_bug_events" says "get": a word for reading.
    Description, as the server wrote it
    Get session events for a bug (DOM, network, console, clicks, errors). Prefer passing occurrenceId so events are not mixed across captures.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_bug_historyGet the full audit trail of status/severity changes and assignments on a bug, including who changed what and when.No findings

    Why it is in this group

    • The name "get_bug_history" says "get": a word for reading.
    Description, as the server wrote it
    Get the full audit trail of status/severity changes and assignments on a bug, including who changed what and when.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_bug_occurrencesList the individual occurrences grouped under a bug.No findings

    Why it is in this group

    • The name "get_bug_occurrences" says "get": a word for reading.
    Description, as the server wrote it
    List the individual occurrences grouped under a bug. Use this to see which users, sessions, releases, or environments were affected.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_bug_usersWho hit this bug: one row per affected end user (the app's identify() userId, else reporter email, else an anonymous IP-hash key) with firstSeen, lastSeen, occurrenceCount, platfor…Reads private dataReads text others writeNo findings

    Why it is in this group

    • The name "get_bug_users" says "get": a word for reading.

    What it can reach

    • private-dataThe description's first sentence says "email": it reads mail.
    • untrusted-inputThe description's first sentence says "email": it reads inbound email, which other people can write.
    Description, as the server wrote it
    Who hit this bug: one row per affected end user (the app's identify() userId, else reporter email, else an anonymous IP-hash key) with firstSeen, lastSeen, occurrenceCount, platforms (web/ios/…), lastRelease and lastOccurrenceId. Pass a row's userKey to get_user_timeline to see everything that user experienced across bugs, or to get_repro_context via occurrenceId=lastOccurrenceId.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_current_orgReturn the credential workspace.Reads private data1 finding

    Why it is in this group

    • The name "get_current_org" says "get": a word for reading.

    What it can reach

    • private-dataThe description's first sentence says "return" and "credential": it reads secrets.

    Findings

    • Info

      The description mentions "credential".

      Matched text

      description: "Return the credential workspace. Agent PATs resolve only thei..."

      What this check looks for
    Description, as the server wrote it
    Return the credential workspace. Agent PATs resolve only their own workspace; human sessions use BUGTAPE_ORG_ID.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_live_occurrencesGet the most recent occurrences across the organization.No findings

    Why it is in this group

    • The name "get_live_occurrences" says "get": a word for reading.
    Description, as the server wrote it
    Get the most recent occurrences across the organization. Useful for live monitoring and tester workflows. Honors deliveryFeed (tool arg, else PAT / project).

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_project_statsGet aggregate statistics for a project (server-computed over bugs in the elected delivery feed, not a sample): counts by status and severity, daily timeline, top unresolved bugs by…No findings

    Why it is in this group

    • The name "get_project_stats" says "get": a word for reading.
    Description, as the server wrote it
    Get aggregate statistics for a project (server-computed over bugs in the elected delivery feed, not a sample): counts by status and severity, daily timeline, top unresolved bugs by report count, MTTR, health score, and previous-period comparison.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_repro_contextBuild an agent-consumable reproduction pack: evidence (timeline, status, env) separate from inference (AI summary).No findings

    Why it is in this group

    • The name "get_repro_context" says "get": a word for reading.
    Description, as the server wrote it
    Build an agent-consumable reproduction pack: evidence (timeline, status, env) separate from inference (AI summary). Prefer occurrenceId so sessions are not interleaved. Not raw rrweb. Same pack as resources/read bugtape://bugs/{bugId}/repro.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_similar_bugsFind other bugs similar to the given bug, ranked by similarity score (0-100, fingerprint + title overlap).No findings

    Why it is in this group

    • The name "get_similar_bugs" says "get": a word for reading.
    Description, as the server wrote it
    Find other bugs similar to the given bug, ranked by similarity score (0-100, fingerprint + title overlap). Returns up to 5 matches. Useful before merging or triaging.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_bug_groupsGrouped triage view: bugs collapsed across pages by error signature (one group per distinct error within a project, even when dedup created many bug rows).No findings

    Why it is in this group

    • The name "list_bug_groups" says "list": a word for reading.
    Description, as the server wrote it
    Grouped triage view: bugs collapsed across pages by error signature (one group per distinct error within a project, even when dedup created many bug rows). Each group includes projectId + groupKey (the stable group identity), a representative sampleBugId/sampleTitle, instanceCount, occurrenceCount, sessionCount, userCount, maxSeverity, topStatus, signalReason (why the classifier flagged it), browsers/oses, platforms (web/ios/android/react-native/flutter/server — one issue can span several), and anyRegression. Pass both projectId and groupKey as one groupRefs entry to bulk_update_bugs. Legacy groupKeys are accepted only when unique across the organization and are rejected when ambiguous. Prefer this over list_bugs for triage.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_bugsList bugs for the organization (flat, one row per deduplicated report).No findings

    Why it is in this group

    • The name "list_bugs" says "list": a word for reading.
    Description, as the server wrote it
    List bugs for the organization (flat, one row per deduplicated report). Supports filtering by status, severity, project, platform, deliveryFeed (all | urgent_critical | ui_ux), and text search. Each row includes affected_user_count, repeat_user_count, and user_spread (user_specific vs widespread). Diagnostic-class signals are excluded by default. Prefer list_bug_groups for grouped triage.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_projectsList all projects in the organization with their bug counts.No findings

    Why it is in this group

    • The name "list_projects" says "list": a word for reading.
    Description, as the server wrote it
    List all projects in the organization with their bug counts.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Exfil surface

Which tools read private data, which read text someone else can write, and which can send data out. One of each is a path a prompt injection can use.

No private-data, untrusted-input, outbound path in this server alone: no tool is tagged outbound.

Reads private data2
Reads files, mail, messages, databases, secrets, calendars or repositories.
Reads text others write1
Brings in text someone else can write: web pages, inbound email, messages, issues and comments.
Can send data out0
Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL.

Other servers in the same agent add their own tools to these paths. Audit your whole setup to see them together.

Findings

Matches of fixed checks, with the text they matched.

1 warn1 info
  • The server marks "list_recommended_critical" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "list_recommended_critical" says "list": a word for reading.

    What this check looks for
  • The description mentions "credential".

    Matched text

    description: "Return the credential workspace. Agent PATs resolve only thei..."

    What this check looks for

History

Changes to its tool definitions and to its remote endpoint, newest first.

No change seen yet. Its tools are rescanned every day, and a remote endpoint is looked at once a week.

Install

Pinned to version 1.0.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http bugtape-demo https://app.bugtape.ai/demo/mcp
claude mcp add --transport http bugtape-demo https://app.bugtape.ai/demo/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change or a way out, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__bugtape-demo__list_bugs",
      "mcp__bugtape-demo__get_bug",
      "mcp__bugtape-demo__get_bug_events",
      "mcp__bugtape-demo__get_repro_context",
      "mcp__bugtape-demo__list_projects",
      "mcp__bugtape-demo__get_project_stats",
      "mcp__bugtape-demo__get_bug_occurrences",
      "mcp__bugtape-demo__get_bug_users",
      "mcp__bugtape-demo__get_live_occurrences",
      "mcp__bugtape-demo__get_current_org",
      "mcp__bugtape-demo__get_bug_history",
      "mcp__bugtape-demo__get_similar_bugs",
      "mcp__bugtape-demo__list_bug_groups"
    ],
    "ask": [
      "mcp__bugtape-demo__list_recommended_critical"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. A read that can send data out (it takes a URL, say) asks first too. It assumes the server is installed as bugtape-demo. Review it before you use it.

Capability tags behind 2 rules
  • mcp__bugtape-demo__get_bug_users private-data, untrusted-input
  • mcp__bugtape-demo__get_current_org private-data

Pin

Keep the decision: fail CI when the tools change, follow every change, or show a badge.

Pin in CI

Fail a build when the tools you reviewed are not the tools the server serves today.

curl -s "https://anlyon.dev/api/v1/servers/ai.bugtape/bugtape-demo/verify?hash=90441cb6be6ce8e4a24bdb3ddeef6722d4202ae68bc78c55d6f6d7d5fbd9f39f" | jq -e '.changed == false'

Pinned hash 90441cb6be6c, from Oct 26, 2026, 21:17 UTC.

Watch

Get told when its tools change: a new tool, a new description, a new class.

https://anlyon.dev/servers/ai.bugtape/bugtape-demo/changes.xml

An Atom feed. Works in any feed reader or Slack's RSS app.

Badge

anlyon.dev badge for ai.bugtape/bugtape-demo
[![anlyon.dev](https://anlyon.dev/badge/ai.bugtape/bugtape-demo.svg)](https://anlyon.dev/servers/ai.bugtape/bugtape-demo)

Source: MCP Registry. Synced Oct 26, 2026, 21:17 UTC.