BugTape
Production bugs with replay, network, console and stack, ranked for your coding agent to fix over remote MCP (OAuth).
Hosted MCP Server
npx add-mcp 'https://app.bugtape.ai/mcp'Installs into Claude Code, Codex, Cursor and more
Documentation
Connect Claude, ChatGPT, Cursor, Codex or Grok: one command, or sign in with the URL.
BugTape MCP is a remote HTTP server. It works on every plan, Free included. On Free and Prepaid credits, each agent read of a bug's captured events costs 2 credits (Free includes 150 a month); other reads are free. On Pro, reads are free. Capture keys (bt_live_ / bt_test_) are rejected.
Endpoint: https://app.bugtape.ai/mcp
Fastest: one command
npx -y bugtape connect claude # or: cursor, codex, grok, grok-bot
It prints a link and a code. Open the link (or send it to whoever owns the workspace), check the code, click Allow, and the agent is added. This works on servers and in cloud agents with no browser. Then the same command with init sets up capture in your repo: project, key, install steps with the release, and one test report. See the CLI.
Sign in without a token (OAuth)
Every client that supports MCP sign-in needs only the URL. It opens a BugTape page where you pick the workspace and what the agent may do, then click Allow. The connection appears on the Team page, where you can remove it.
| Client | Add BugTape |
|---|---|
| Claude Code | claude mcp add --transport http bugtape https://app.bugtape.ai/mcp, then /mcp and choose BugTape |
| Claude (web, desktop, mobile) | Settings → Connectors → Add custom connector → https://app.bugtape.ai/mcp |
| ChatGPT | Add a custom connector (developer mode) with https://app.bugtape.ai/mcp; ChatGPT opens the sign-in page |
| Cursor | Add {"url": "https://app.bugtape.ai/mcp"} under mcpServers.bugtape; Cursor shows Needs login |
| Grok (web) | Connectors → New Connector → Custom → https://app.bugtape.ai/mcp; complete authentication. Team admins provision Business/Enterprise connectors first. See plugins for support and qualification limits |
BugTape publishes /.well-known/oauth-protected-resource/mcp and /.well-known/oauth-authorization-server, answers 401 with WWW-Authenticate: Bearer resource_metadata=…, accepts Client ID Metadata Documents, dynamic client registration and PKCE (S256), and rotates refresh tokens.
With a token
Prefer the host’s native OAuth sign-in where supported. For a client that needs a token, make a token on the Team page (Add an agent) or with npx -y bugtape login, then paste it as below. Grok bots on the xAI API can use this way; Grok Build also supports native OAuth for remote HTTP MCP.
Updated: 2026-10-02.
Claude Code
claude mcp add --transport http bugtape https://app.bugtape.ai/mcp \
--header "Authorization: Bearer bt_pat_YOUR_TOKEN"
Cursor
Save in .cursor/mcp.json (project) or ~/.cursor/mcp.json (user):
{
"mcpServers": {
"bugtape": {
"url": "https://app.bugtape.ai/mcp",
"headers": {
"Authorization": "Bearer bt_pat_YOUR_TOKEN"
}
}
}
}
Codex
Set BUGTAPE_MCP_TOKEN in the environment that launches Codex. Load it from your password manager or OS keychain. Do not put the PAT in shell history, config.toml, source files, or the repository.
codex mcp add bugtape \
--url https://app.bugtape.ai/mcp \
--bearer-token-env-var BUGTAPE_MCP_TOKEN
Codex stores the URL and environment variable name in its TOML configuration, then reads the token from BUGTAPE_MCP_TOKEN when it connects. Cursor uses the mcpServers JSON above; do not use that JSON for Codex.
Grok / HTTP MCP
Point the client at https://app.bugtape.ai/mcp with header Authorization: Bearer bt_pat_YOUR_TOKEN. Same JSON shape as Cursor.
The agent loop
What the agent may do comes from its permissions (scopes). Pick up and fix gives subscribe, get_repro_context and suggest_fix; Follow and read drops suggest_fix; sign-in adds create_bug (file new issues) unless you untick it, and setup_capture (create projects and capture keys) when you tick it. Permissions are not tool names; there is no subscribe tool.
The agent loop (tool names as your agent sees them):
subscribe_feedwithdeliveryFeed: "urgent_critical"andnotify: true. This elects the feed the agent is woken for.urgent_criticalis recommended for agent tokens;allandui_uxalso exist.listenwithresourceUri: "bugtape://projects/{projectId}/inbox". It waits until a bug in that feed arrives, or until BugTape hands the agent a bug (auto-notify or Send to agent, eventagent_notify).get_repro_contextfor that bug: what the user did, the failed request, the console and the stack.ack_bugwithaction: "working", then again withprUrlwhen the pull request is open. Your team is told in Slack or by webhook.
No listener running? Start with list_recommended_critical, then get_repro_context. Do not dump list_bugs.
After connect
First useful request: “Call subscribe_feed with urgent_critical, then list_recommended_critical, select the highest-ranked issue and call get_repro_context for it. Report the captured evidence and any gaps, then listen on the project inbox for the next one.” Do not start with a dump of list_bugs.
Paste the AGENTS.md snippet into the repo so the agent uses the ranked inbox. Full contract: Agent setup. Tool list: MCP tools.
Directory listings
Machine files for MCP directories: mcp.json and smithery.yaml. Submitting them to Smithery, PulseMCP, mcp.so, Cursor directory, Claude connectors, and Glama is a manual step. The public URL and auth header above are the source of truth.
Plugin package
Install the BugTape plugin for bundled setup, triage, reporting and verification guides in Claude Code, Codex or Grok Build. The same page covers chat app connections and current listing status.