Multi Sentry MCP

Multi-org Sentry MCP server — isolated error monitoring across multiple projects from a single config. Process-level security, handoff package generation.

sentry-mcp-multi

Multi-org Sentry MCP configuration generator. Run multiple Sentry organizations simultaneously in Claude Desktop, Claude Code, or Cursor — each with isolated tokens, org-scoped sessions, and zero cross-org leakage.

Why

The official @sentry/mcp-server supports one org per MCP instance. If you manage multiple companies (venture studio, agency, consultancy), you need N separate MCP entries — one per org, each with its own token and --organization-slug constraint.

This tool generates that config from a single registry file and produces standalone handoff packages when a company exits your portfolio.

Quick Start

git clone https://github.com/your-username/sentry-mcp-multi.git
cd sentry-mcp-multi
npm install && npm run build

# Create your registry from the example
cp sentry-mcp-registry.example.json sentry-mcp-registry.json
# Edit with your real org slugs and token var names

# Generate config
npm run generate

Output lands in output/:

output/
  mcp-servers.json    # Paste into your MCP client config
  .env.template       # Token var names to fill from your secrets manager

Registry Format

{
  "portfolio": [
    {
      "id": "acme-web",
      "display_name": "Acme Web",
      "sentry_org_slug": "acme-web",
      "sentry_project_slug": "acme-web-app",
      "token_env_var": "SENTRY_TOKEN_ACME_WEB",
      "ai_search": true,
      "active": true,
      "skills": ["inspect", "seer", "triage"]
    }
  ],
  "shared": {
    "anthropic_key_env_var": "ANTHROPIC_API_KEY",
    "embedded_agent_provider": "anthropic"
  }
}
FieldRequiredDescription
idYesInternal identifier, used in MCP server name (sentry-<id>)
display_nameYesHuman-readable name
sentry_org_slugYesFrom your Sentry org URL: sentry.io/organizations/<slug>/
sentry_project_slugNoPassed as --project-slug to constrain to a single project
token_env_varYesEnv var name holding the Sentry token (pattern: SENTRY_TOKEN_[A-Z_]+)
ai_searchYesEnable AI-powered issue/event search (requires Anthropic or OpenAI key)
activeYesSet to false to exclude from generated config
skillsNoLimit Sentry MCP skills: inspect, seer, docs, triage, project-management

CLI Options

Usage: sentry-mcp-gen [options]

Options:
  --registry <path>     Path to registry JSON (default: ./sentry-mcp-registry.json)
  --out-dir <path>      Output directory (default: ./output)
  --handoff <id>        Generate handoff package for one company
  --all-handoffs        Generate handoff packages for all active companies
  --dry-run             Print to stdout instead of writing files
  -h, --help            Show help

Generated Output

For a registry with two companies (acme-web and widgets-inc), the generator produces:

{
  "mcpServers": {
    "sentry-acme-web": {
      "command": "npx",
      "args": [
        "@sentry/mcp-server@latest",
        "--organization-slug=acme-web",
        "--project-slug=acme-web-app"
      ],
      "env": {
        "SENTRY_ACCESS_TOKEN": "${SENTRY_TOKEN_ACME_WEB}",
        "EMBEDDED_AGENT_PROVIDER": "anthropic",
        "ANTHROPIC_API_KEY": "${ANTHROPIC_API_KEY}"
      }
    },
    "sentry-widgets-inc": {
      "command": "npx",
      "args": [
        "@sentry/mcp-server@latest",
        "--organization-slug=widgets-inc",
        "--project-slug=widgets-api"
      ],
      "env": {
        "SENTRY_ACCESS_TOKEN": "${SENTRY_TOKEN_WIDGETS_INC}",
        "EMBEDDED_AGENT_PROVIDER": "anthropic",
        "ANTHROPIC_API_KEY": "${ANTHROPIC_API_KEY}"
      }
    }
  }
}

Each MCP client spawns separate @sentry/mcp-server processes. Each process authenticates with its own token and is constrained to its org via --organization-slug. Cross-org queries are impossible by design.

Handoff Packages

When a company exits your portfolio:

npm run generate -- --handoff acme-web

Produces a self-contained folder:

output/handoff/sentry-mcp-acme-web/
  mcp-config.json     # Standalone MCP config with org slug, no shared keys
  .env.template       # Just their token var
  README.md           # Step-by-step setup guide

Hand this to the exiting team. No dependency on your infrastructure.

Token Setup

Each Sentry org needs a User Auth Token with these scopes:

  • org:read
  • project:read
  • project:write
  • team:read
  • team:write
  • event:write

Create tokens at Sentry Auth Tokens.

Store tokens as environment variables (.envrc, shell profile, or secrets manager). The generated config references ${VAR_NAME} — your MCP client resolves these from the environment at runtime.

Adding to Claude Code

You can either paste the generated mcp-servers.json content into your config, or use the CLI:

claude mcp add sentry-acme-web -s user \
  -e 'SENTRY_ACCESS_TOKEN=your-token-here' \
  -- npx @sentry/mcp-server@latest --organization-slug=acme-web

Sentry MCP Skills

The @sentry/mcp-server groups tools into skills:

SkillDefaultTools
inspectONfind_organizations, find_projects, find_teams, find_releases, find_dsns, list_issues, list_events, search_issues*, search_events*, get_sentry_resource
seerONanalyze_issue_with_seer
docsOFFsearch_docs, get_doc
triageOFFupdate_issue
project-managementOFFcreate_project, create_team, create_dsn, update_project

*Requires AI provider configuration (Anthropic or OpenAI key).

Use the skills field in the registry to control which skills are enabled per company.

Author

Abdelbaki Berkatiberkati.xyz · @bakissation

Read the case study →

License

MIT

Máy chủ liên quan

NotebookLM Web Importer

Nhập trang web và video YouTube vào NotebookLM chỉ với một cú nhấp. Được tin dùng bởi hơn 200.000 người dùng.

Cài đặt tiện ích Chrome