Claude Marketplaces
SkillsMCP serversMarketplacesDigestTools
Submit

This week in Claude

Every Monday: Claude Code, Agent SDK, MCP, and the Anthropic platform moves worth your time.

Skills by category
Frontend DevelopmentBackend & APIsTesting & QASecurityDevOps & CI/CDGit & Pull RequestsDocumentationCode Review & QualityAI & Agent BuildingSkill Development
MCP servers by category
Sales & MarketingWeb & Browser AutomationDatabasesAI & LLM ToolsCloud & InfrastructureCommunication & MessagingDeveloper ToolsDesign & CreativeDocuments & KnowledgeSearch & Web Crawling
Marketplaces by category
AI Agents & OrchestrationLLM IntegrationDevelopment ToolsFrontend & UIBackend & APIsDatabasesTesting & Code QualityDevOps & CloudSecurity & ComplianceGit & Version Control
Claude Marketplaces

An independent directory of skills, plugins and MCP servers for Claude Code. Not affiliated with Anthropic.

Browse

  • Skills
  • MCP servers
  • Marketplaces
  • Weekly digest
  • Skill index
  • MCP index
  • Marketplace index

Site

  • About
  • Tools
  • Submit
  • Feedback
  • Privacy
  • llms.txt
  • Plugins reference

Maker

  • Snug
  • Agent Caffeine
  • knobs
  • Wax
  • Vectoys
  • mertduzgun.com
Crafted at
MCP servers/Developer Tools
getsentry avatar

Sentry Mcp

getsentry/sentry-mcpOfficial

Sentry MCP provides middleware between AI coding assistants and the Sentry error tracking platform, exposing tools for debugging workflows such as searching issues and events, retrieving traces, and analyzing performance data. The server supports both remote deployment and stdio transport for self-hosted Sentry instances, with AI-powered search capabilities that require configuration of an LLM provider (OpenAI or Anthropic) to translate natural language queries into Sentry's query syntax. It solves the problem of enabling AI coding agents like Claude and Cursor to programmatically access and investigate Sentry error data during development and debugging sessions.

GitHub stars
724
tools
19
last updated
Dec 17, 2025
View on GitHubSave

Tools

19 tools

Public tool metadata for what this MCP can expose to an agent.

whoamiIdentify the authenticated user in Sentry. Use this tool when you need to: - Get the user's name and email address.

Identify the authenticated user in Sentry. Use this tool when you need to: - Get the user's name and email address.

No parameter schema in public metadata yet.

find_organizationsFind organizations that the user has access to in Sentry. Use this tool when you need to: - View organizations in Sentry - Find an organization's slug to aid other tool requests - Search for specific organizations by name or slug Returns up to 25 results. If you hit this limit...1 params

Find organizations that the user has access to in Sentry. Use this tool when you need to: - View organizations in Sentry - Find an organization's slug to aid other tool requests - Search for specific organizations by name or slug Returns up to 25 results. If you hit this limit...

Parameters* required
queryvalue
Search query to filter results by name or slug. Use this to narrow down results when there are many items.
find_teamsFind teams in an organization in Sentry. Use this tool when you need to: - View teams in a Sentry organization - Find a team's slug to aid other tool requests - Search for specific teams by name or slug Returns up to 25 results. If you hit this limit, use the query parameter t...3 params

Find teams in an organization in Sentry. Use this tool when you need to: - View teams in a Sentry organization - Find a team's slug to aid other tool requests - Search for specific teams by name or slug Returns up to 25 results. If you hit this limit, use the query parameter t...

Parameters* required
organizationSlugstring
The organization's slug. You can find a existing list of organizations you have access to using the `find_organizations()` tool.
queryvalue
Search query to filter results by name or slug. Use this to narrow down results when there are many items.
regionUrlvalue
The region URL for the organization you're querying, if known. For Sentry's Cloud Service (sentry.io), this is typically the region-specific URL like 'https://us.sentry.io'. For self-hosted Sentry...
find_projectsFind projects in Sentry. Use this tool when you need to: - View projects in a Sentry organization - Find a project's slug to aid other tool requests - Search for specific projects by name or slug Returns up to 25 results. If you hit this limit, use the query parameter to narro...3 params

Find projects in Sentry. Use this tool when you need to: - View projects in a Sentry organization - Find a project's slug to aid other tool requests - Search for specific projects by name or slug Returns up to 25 results. If you hit this limit, use the query parameter to narro...

Parameters* required
organizationSlugstring
The organization's slug. You can find a existing list of organizations you have access to using the `find_organizations()` tool.
queryvalue
Search query to filter results by name or slug. Use this to narrow down results when there are many items.
regionUrlvalue
The region URL for the organization you're querying, if known. For Sentry's Cloud Service (sentry.io), this is typically the region-specific URL like 'https://us.sentry.io'. For self-hosted Sentry...
find_releasesFind releases in Sentry. Use this tool when you need to: - Find recent releases in a Sentry organization - Find the most recent version released of a specific project - Determine when a release was deployed to an environment <examples> ### Find the most recent releases in the...4 params

Find releases in Sentry. Use this tool when you need to: - Find recent releases in a Sentry organization - Find the most recent version released of a specific project - Determine when a release was deployed to an environment <examples> ### Find the most recent releases in the...

Parameters* required
organizationSlugstring
The organization's slug. You can find a existing list of organizations you have access to using the `find_organizations()` tool.
projectSlugvalue
The project's slug. This will default to all projects you have access to. It is encouraged to specify this when possible.
queryvalue
Search for versions which contain the provided string.
regionUrlvalue
The region URL for the organization you're querying, if known. For Sentry's Cloud Service (sentry.io), this is typically the region-specific URL like 'https://us.sentry.io'. For self-hosted Sentry...
get_issue_detailsGet detailed information about a specific Sentry issue by ID. USE THIS TOOL WHEN USERS: - Provide a specific issue ID (e.g., 'CLOUDFLARE-MCP-41', 'PROJECT-123') - Ask to 'explain [ISSUE-ID]', 'tell me about [ISSUE-ID]' - Want details/stacktrace/analysis for a known issue - Pro...5 params

Get detailed information about a specific Sentry issue by ID. USE THIS TOOL WHEN USERS: - Provide a specific issue ID (e.g., 'CLOUDFLARE-MCP-41', 'PROJECT-123') - Ask to 'explain [ISSUE-ID]', 'tell me about [ISSUE-ID]' - Want details/stacktrace/analysis for a known issue - Pro...

Parameters* required
eventIdstring
The ID of the event.
issueIdstring
The Issue ID. e.g. `PROJECT-1Z43`
issueUrlstring
The URL of the issue. e.g. https://my-organization.sentry.io/issues/PROJECT-1Z43
organizationSlugstring
The organization's slug. You can find a existing list of organizations you have access to using the `find_organizations()` tool.
regionUrlvalue
The region URL for the organization you're querying, if known. For Sentry's Cloud Service (sentry.io), this is typically the region-specific URL like 'https://us.sentry.io'. For self-hosted Sentry...
get_trace_detailsGet detailed information about a specific Sentry trace by ID. USE THIS TOOL WHEN USERS: - Provide a specific trace ID (e.g., 'a4d1aae7216b47ff8117cf4e09ce9d0a') - Ask to 'show me trace [TRACE-ID]', 'explain trace [TRACE-ID]' - Want high-level overview and link to view trace de...3 params

Get detailed information about a specific Sentry trace by ID. USE THIS TOOL WHEN USERS: - Provide a specific trace ID (e.g., 'a4d1aae7216b47ff8117cf4e09ce9d0a') - Ask to 'show me trace [TRACE-ID]', 'explain trace [TRACE-ID]' - Want high-level overview and link to view trace de...

Parameters* required
organizationSlugstring
The organization's slug. You can find a existing list of organizations you have access to using the `find_organizations()` tool.
regionUrlvalue
The region URL for the organization you're querying, if known. For Sentry's Cloud Service (sentry.io), this is typically the region-specific URL like 'https://us.sentry.io'. For self-hosted Sentry...
traceIdstring
The trace ID. e.g. `a4d1aae7216b47ff8117cf4e09ce9d0a`
get_event_attachmentDownload attachments from a Sentry event. Use this tool when you need to: - Download files attached to a specific event - Access screenshots, log files, or other attachments uploaded with an error report - Retrieve attachment metadata and download URLs <examples> ### Download...5 params

Download attachments from a Sentry event. Use this tool when you need to: - Download files attached to a specific event - Access screenshots, log files, or other attachments uploaded with an error report - Retrieve attachment metadata and download URLs <examples> ### Download...

Parameters* required
attachmentIdvalue
The ID of the attachment to download.
eventIdstring
The ID of the event.
organizationSlugstring
The organization's slug. You can find a existing list of organizations you have access to using the `find_organizations()` tool.
projectSlugstring
The project's slug. You can find a list of existing projects in an organization using the `find_projects()` tool.
regionUrlvalue
The region URL for the organization you're querying, if known. For Sentry's Cloud Service (sentry.io), this is typically the region-specific URL like 'https://us.sentry.io'. For self-hosted Sentry...
update_issueUpdate an issue's status or assignment in Sentry. This allows you to resolve, ignore, or reassign issues. Use this tool when you need to: - Resolve an issue that has been fixed - Assign an issue to a team member or team for investigation - Mark an issue as ignored to reduce no...6 params

Update an issue's status or assignment in Sentry. This allows you to resolve, ignore, or reassign issues. Use this tool when you need to: - Resolve an issue that has been fixed - Assign an issue to a team member or team for investigation - Mark an issue as ignored to reduce no...

Parameters* required
assignedTostring
The assignee in format 'user:ID' or 'team:ID' where ID is numeric. Example: 'user:123456' or 'team:789'. Use the whoami tool to find your user ID.
issueIdstring
The Issue ID. e.g. `PROJECT-1Z43`
issueUrlstring
The URL of the issue. e.g. https://my-organization.sentry.io/issues/PROJECT-1Z43
organizationSlugstring
The organization's slug. You can find a existing list of organizations you have access to using the `find_organizations()` tool.
regionUrlvalue
The region URL for the organization you're querying, if known. For Sentry's Cloud Service (sentry.io), this is typically the region-specific URL like 'https://us.sentry.io'. For self-hosted Sentry...
statusstring
The new status for the issue. Valid values are 'resolved', 'resolvedInNextRelease', 'unresolved', and 'ignored'.one of resolved · resolvedInNextRelease · unresolved · ignored
search_eventsSearch for events AND perform counts/aggregations - the ONLY tool for statistics and counts. Supports TWO query types: 1. AGGREGATIONS (counts, sums, averages): 'how many errors', 'count of issues', 'total tokens' 2. Individual events with timestamps: 'show me error logs from...6 params

Search for events AND perform counts/aggregations - the ONLY tool for statistics and counts. Supports TWO query types: 1. AGGREGATIONS (counts, sums, averages): 'how many errors', 'count of issues', 'total tokens' 2. Individual events with timestamps: 'show me error logs from...

Parameters* required
includeExplanationboolean
Include explanation of how the query was translateddefault: false
limitnumber
Maximum number of results to returndefault: 10
naturalLanguageQuerystring
Natural language description of what you want to search for
organizationSlugstring
The organization's slug. You can find a existing list of organizations you have access to using the `find_organizations()` tool.
projectSlugvalue
The project's slug. You can find a list of existing projects in an organization using the `find_projects()` tool.
regionUrlvalue
The region URL for the organization you're querying, if known. For Sentry's Cloud Service (sentry.io), this is typically the region-specific URL like 'https://us.sentry.io'. For self-hosted Sentry...
create_teamCreate a new team in Sentry. USE THIS TOOL WHEN USERS WANT TO: - 'Create a new team' - 'Set up a team called [X]' - 'I need a team for my project' Be careful when using this tool! <examples> ### Create a new team ``` create_team(organizationSlug='my-organization', name='the-go...3 params

Create a new team in Sentry. USE THIS TOOL WHEN USERS WANT TO: - 'Create a new team' - 'Set up a team called [X]' - 'I need a team for my project' Be careful when using this tool! <examples> ### Create a new team ``` create_team(organizationSlug='my-organization', name='the-go...

Parameters* required
namestring
The name of the team to create.
organizationSlugstring
The organization's slug. You can find a existing list of organizations you have access to using the `find_organizations()` tool.
regionUrlvalue
The region URL for the organization you're querying, if known. For Sentry's Cloud Service (sentry.io), this is typically the region-specific URL like 'https://us.sentry.io'. For self-hosted Sentry...
create_projectCreate a new project in Sentry (includes DSN automatically). USE THIS TOOL WHEN USERS WANT TO: - 'Create a new project' - 'Set up a project for [app/service] with team [X]' - 'I need a new Sentry project' - Create project AND need DSN in one step DO NOT USE create_dsn after th...5 params

Create a new project in Sentry (includes DSN automatically). USE THIS TOOL WHEN USERS WANT TO: - 'Create a new project' - 'Set up a project for [app/service] with team [X]' - 'I need a new Sentry project' - Create project AND need DSN in one step DO NOT USE create_dsn after th...

Parameters* required
namestring
The name of the project to create. Typically this is commonly the name of the repository or service. It is only used as a visual label in Sentry.
organizationSlugstring
The organization's slug. You can find a existing list of organizations you have access to using the `find_organizations()` tool.
platformvalue
The platform for the project. e.g., python, javascript, react, etc.
regionUrlvalue
The region URL for the organization you're querying, if known. For Sentry's Cloud Service (sentry.io), this is typically the region-specific URL like 'https://us.sentry.io'. For self-hosted Sentry...
teamSlugstring
The team's slug. You can find a list of existing teams in an organization using the `find_teams()` tool.
update_projectUpdate project settings in Sentry, such as name, slug, platform, and team assignment. Be careful when using this tool! Use this tool when you need to: - Update a project's name or slug to fix onboarding mistakes - Change the platform assigned to a project - Update team assignm...7 params

Update project settings in Sentry, such as name, slug, platform, and team assignment. Be careful when using this tool! Use this tool when you need to: - Update a project's name or slug to fix onboarding mistakes - Change the platform assigned to a project - Update team assignm...

Parameters* required
namevalue
The new name for the project
organizationSlugstring
The organization's slug. You can find a existing list of organizations you have access to using the `find_organizations()` tool.
platformvalue
The platform for the project. e.g., python, javascript, react, etc.
projectSlugstring
The project's slug. You can find a list of existing projects in an organization using the `find_projects()` tool.
regionUrlvalue
The region URL for the organization you're querying, if known. For Sentry's Cloud Service (sentry.io), this is typically the region-specific URL like 'https://us.sentry.io'. For self-hosted Sentry...
slugvalue
The new slug for the project (must be unique)
teamSlugvalue
The team to assign this project to. Note: this will replace the current team assignment.
create_dsnCreate an additional DSN for an EXISTING project. USE THIS TOOL WHEN: - Project already exists and needs additional DSN - 'Create another DSN for project X' - 'I need a production DSN for existing project' DO NOT USE for new projects (use create_project instead) Be careful whe...4 params

Create an additional DSN for an EXISTING project. USE THIS TOOL WHEN: - Project already exists and needs additional DSN - 'Create another DSN for project X' - 'I need a production DSN for existing project' DO NOT USE for new projects (use create_project instead) Be careful whe...

Parameters* required
namestring
The name of the DSN to create, for example 'Production'.
organizationSlugstring
The organization's slug. You can find a existing list of organizations you have access to using the `find_organizations()` tool.
projectSlugstring
The project's slug. You can find a list of existing projects in an organization using the `find_projects()` tool.
regionUrlvalue
The region URL for the organization you're querying, if known. For Sentry's Cloud Service (sentry.io), this is typically the region-specific URL like 'https://us.sentry.io'. For self-hosted Sentry...
find_dsnsList all Sentry DSNs for a specific project. Use this tool when you need to: - Retrieve a SENTRY_DSN for a specific project <hints> - If the user passes a parameter in the form of name/otherName, its likely in the format of <organizationSlug>/<projectSlug>. - If only one param...3 params

List all Sentry DSNs for a specific project. Use this tool when you need to: - Retrieve a SENTRY_DSN for a specific project <hints> - If the user passes a parameter in the form of name/otherName, its likely in the format of <organizationSlug>/<projectSlug>. - If only one param...

Parameters* required
organizationSlugstring
The organization's slug. You can find a existing list of organizations you have access to using the `find_organizations()` tool.
projectSlugstring
The project's slug. You can find a list of existing projects in an organization using the `find_projects()` tool.
regionUrlvalue
The region URL for the organization you're querying, if known. For Sentry's Cloud Service (sentry.io), this is typically the region-specific URL like 'https://us.sentry.io'. For self-hosted Sentry...
analyze_issue_with_seerUse Seer to analyze production errors and get detailed root cause analysis with specific code fixes. Use this tool when you need: - Detailed AI-powered root cause analysis - Specific code fixes and implementation guidance - Step-by-step troubleshooting for complex issues - Und...5 params

Use Seer to analyze production errors and get detailed root cause analysis with specific code fixes. Use this tool when you need: - Detailed AI-powered root cause analysis - Specific code fixes and implementation guidance - Step-by-step troubleshooting for complex issues - Und...

Parameters* required
instructionstring
Optional custom instruction for the AI analysis
issueIdstring
The Issue ID. e.g. `PROJECT-1Z43`
issueUrlstring
The URL of the issue. e.g. https://my-organization.sentry.io/issues/PROJECT-1Z43
organizationSlugstring
The organization's slug. You can find a existing list of organizations you have access to using the `find_organizations()` tool.
regionUrlvalue
The region URL for the organization you're querying, if known. For Sentry's Cloud Service (sentry.io), this is typically the region-specific URL like 'https://us.sentry.io'. For self-hosted Sentry...
search_docsSearch Sentry documentation for SDK setup, instrumentation, and configuration guidance. Use this tool when you need to: - Set up Sentry SDK or framework integrations (Django, Flask, Express, Next.js, etc.) - Configure features like performance monitoring, error sampling, or re...3 params

Search Sentry documentation for SDK setup, instrumentation, and configuration guidance. Use this tool when you need to: - Set up Sentry SDK or framework integrations (Django, Flask, Express, Next.js, etc.) - Configure features like performance monitoring, error sampling, or re...

Parameters* required
guidevalue
Optional guide filter to limit search results to specific documentation sections. Use either a platform (e.g., 'javascript', 'python') or platform/guide combination (e.g., 'javascript/nextjs', 'pyt...
maxResultsinteger
Maximum number of results to return (1-10)default: 3
querystring
The search query in natural language. Be specific about what you're looking for.
get_docFetch the full markdown content of a Sentry documentation page. Use this tool when you need to: - Read the complete documentation for a specific topic - Get detailed implementation examples or code snippets - Access the full context of a documentation page - Extract specific s...1 params

Fetch the full markdown content of a Sentry documentation page. Use this tool when you need to: - Read the complete documentation for a specific topic - Get detailed implementation examples or code snippets - Access the full context of a documentation page - Extract specific s...

Parameters* required
pathstring
The documentation path (e.g., '/platforms/javascript/guides/nextjs.md'). Get this from search_docs results.
search_issuesSearch for grouped issues/problems in Sentry - returns a LIST of issues, NOT counts or aggregations. Uses AI to translate natural language queries into Sentry issue search syntax. Returns grouped issues with metadata like title, status, and user count. USE THIS TOOL WHEN USERS...6 params

Search for grouped issues/problems in Sentry - returns a LIST of issues, NOT counts or aggregations. Uses AI to translate natural language queries into Sentry issue search syntax. Returns grouped issues with metadata like title, status, and user count. USE THIS TOOL WHEN USERS...

Parameters* required
includeExplanationboolean
Include explanation of how the query was translateddefault: false
limitnumber
Maximum number of issues to returndefault: 10
naturalLanguageQuerystring
Natural language description of issues to search for
organizationSlugstring
The organization's slug. You can find a existing list of organizations you have access to using the `find_organizations()` tool.
projectSlugOrIdvalue
The project's slug or numeric ID (optional)
regionUrlvalue
The region URL for the organization you're querying, if known. For Sentry's Cloud Service (sentry.io), this is typically the region-specific URL like 'https://us.sentry.io'. For self-hosted Sentry...

Sponsors

SnugThe clipboard manager you and your agent can use, safelyAgent CaffeineClose your lid, come back to finished workWaxBlock anything with supervision, without erasing your iPhoneOpen StepsSponsoredFree and open-source skills that make AI coding agents easier to understand, verify, and control.

Configuration

SENTRY_ACCESS_TOKEN*secret

Your Sentry user authentication token

Readme

Sentry Toolkit

This repository contains the Sentry CLI, the Sentry MCP server, and shared packages. For the CLI, see the CLI guide and the published documentation at https://cli.sentry.dev/. The documentation index covers both products and shared contributor guidance.

The independent Docs MCP Worker provides documentation search and AI-generated answers backed by docs.sentry.io.

Sentry MCP

Sentry's MCP service is primarily designed for human-in-the-loop coding agents. Our tool selection and priorities are focused on developer workflows and debugging use cases, rather than providing a general-purpose MCP server for all Sentry functionality.

This remote MCP server acts as middleware to the upstream Sentry API, optimized for coding assistants like Cursor, Claude Code, and similar development tools. It's based on Cloudflare's work towards remote MCPs.

Getting Started

You'll find everything you need to know by visiting the deployed service in production:

https://mcp.sentry.dev

If you're looking to contribute, learn how it works, or to run this for self-hosted Sentry, continue below.

Claude Code Plugin

Install as a Claude Code plugin for automatic subagent delegation:

claude plugin marketplace add getsentry/sentry-mcp
claude plugin install sentry-mcp@sentry-mcp

This provides a sentry-mcp subagent that Claude automatically delegates to when you ask about Sentry errors, issues, traces, or performance.

For forward-looking tool variants and features:

claude plugin install sentry-mcp@sentry-mcp-experimental

Stdio vs Remote

While this repository is focused on acting as an MCP service, we also support a stdio transport. This is still a work in progress, but is the easiest way to adapt run the MCP against a self-hosted Sentry install.

Note: The AI-powered search tools (search_errors, search_traces, search_logs, search_issues, etc.) require an LLM provider (OpenAI, Azure OpenAI, Anthropic, or OpenRouter). These tools use natural language processing to translate queries into Sentry's query syntax. Without a configured provider, these specific tools will be unavailable, but all other tools will function normally.

The stdio transport ships as @sentry/mcp-server. Sign in once with npx @sentry/mcp-server@latest auth login, or set SENTRY_AUTH_TOKEN, which the server uses over a stored login. The login is shared with the sentry CLI, so an existing sentry auth login works too.

To use a token, create a User Auth Token in Sentry with the necessary scopes. As of writing this is:

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

Launch the transport:

npx @sentry/mcp-server@latest auth login   # once, to sign in
npx @sentry/mcp-server@latest              # uses that login
SENTRY_AUTH_TOKEN=sentry-user-token npx @sentry/mcp-server@latest

--access-token / SENTRY_ACCESS_TOKEN from older releases still work but are deprecated: they act as SENTRY_AUTH_TOKEN and print a warning on stderr. See docs/operations/stdio-auth.md.

Need to connect to a self-hosted deployment? Set SENTRY_HOST (e.g. SENTRY_HOST=sentry.example.com), which also scopes SENTRY_AUTH_TOKEN to that server. For isolated internal deployments that only expose plain HTTP, use an http:// SENTRY_URL instead.

Seer is not part of self-hosted Sentry, so the seer skill is left out of the default skill set whenever the host is not sentry.io. If your self-hosted deployment does run Seer, opt back in explicitly:

SENTRY_HOST=sentry.example.com npx @sentry/mcp-server@latest --skills=inspect,seer

You can also disable any other skill to prevent unsupported tools from being exposed:

SENTRY_HOST=sentry.example.com npx @sentry/mcp-server@latest --disable-skills=project-management

For self-hosted instances without TLS:

SENTRY_URL=http://sentry.internal:9000 npx @sentry/mcp-server@latest
Remote with an Explicit Sentry Token

Remote clients that support custom HTTP headers can pass an upstream Sentry API token directly to the Cloudflare transport:

{
  "mcpServers": {
    "sentry": {
      "url": "https://mcp.sentry.dev/mcp",
      "headers": {
        "Authorization": "Sentry-Bearer ${SENTRY_ACCESS_TOKEN}"
      }
    }
  }
}

Sentry-Bearer is intentionally separate from Bearer: Bearer is reserved for MCP OAuth access tokens. With Sentry-Bearer, the worker does not store, validate, exchange, or refresh the upstream token. It forwards the token through the same Sentry API calls used by OAuth-backed sessions, and the client or upstream provider remains responsible for token lifetime and refresh.

Direct remote auth defaults to all active MCP skills. You can narrow the exposed tools with ?skills=inspect,triage or ?disable-skills=seer.

Environment Variables
SENTRY_AUTH_TOKEN=           # Optional after `auth login`; wins over a stored login

# LLM Provider Configuration (required for AI-powered search tools)
EMBEDDED_AGENT_PROVIDER=     # Required when multiple provider keys are set: 'openai', 'azure-openai', 'anthropic', or 'openrouter'
OPENAI_API_KEY=              # Required if using OpenAI
ANTHROPIC_API_KEY=           # Required if using Anthropic
OPENROUTER_API_KEY=          # Required if using OpenRouter
OPENROUTER_MODEL=            # Optional OpenRouter model, defaults to 'openai/gpt-5.6-luna'
OPENROUTER_REASONING_EFFORT= # Optional OpenRouter reasoning effort, defaults to 'high'

# Optional overrides
SENTRY_HOST=                 # For self-hosted deployments (drops 'seer' from the default skills)
MCP_SKILLS=                  # Grant specific skills (comma-separated, e.g. 'inspect,seer')
MCP_DISABLE_SKILLS=          # Disable specific skills (comma-separated, e.g. 'project-management')

Important: Always set EMBEDDED_AGENT_PROVIDER to explicitly specify your LLM provider. Auto-detection based on API keys alone is deprecated and will be removed in a future release. See docs/operations/embedded-agents.md for detailed configuration options.

Example MCP Configuration
{
  "mcpServers": {
    "sentry": {
      "command": "npx",
      "args": ["@sentry/mcp-server@latest"],
      "env": {
        "SENTRY_AUTH_TOKEN": "your-token",
        "EMBEDDED_AGENT_PROVIDER": "openai",
        "OPENAI_API_KEY": "sk-..."
      }
    }
  }
}

If you leave the host variable unset, the CLI automatically targets the Sentry SaaS service. Only set the override when you operate self-hosted Sentry.

Setting SENTRY_HOST to a self-hosted host also drops the seer skill from the default set, since Seer is not available on self-hosted Sentry. For a self-hosted deployment that does run Seer, opt in with MCP_SKILLS:

{
  "mcpServers": {
    "sentry": {
      "command": "npx",
      "args": ["@sentry/mcp-server@latest"],
      "env": {
        "SENTRY_AUTH_TOKEN": "your-token",
        "SENTRY_HOST": "sentry.example.com",
        "MCP_SKILLS": "inspect,seer"
      }
    }
  }
}

Rate Limits

Tool calls are subject to the Sentry API's rate limits. The MCP server retries rate-limited requests, and transient Sentry server errors on read requests, after a short wait. When a limit lasts longer, the tool returns a Rate Limited message that says when to try again. Agents hit the per-second limits most often by running many Sentry tool calls in parallel, so run them one at a time if you see this message.

MCP Inspector

MCP includes an Inspector, to easily test the service:

pnpm inspector

Enter the MCP server URL (http://localhost:5173) and hit connect. This should trigger the authentication flow for you.

Note: If you have issues with your OAuth flow when accessing the inspector on 127.0.0.1, try using localhost instead by visiting http://localhost:6274.

Local Development

To contribute changes, you'll need to set up your local environment:

  1. Set up environment and agent skills:

    make setup-env  # Creates .env files and installs shared agent skills
    

    This also runs npx @sentry/dotagents install to install shared skills from getsentry/skills into .agents/skills/ (symlinked into .claude/skills and .cursor/skills). If you need to update skills later, run it directly:

    npx @sentry/dotagents install
    
  2. Create an OAuth App in Sentry (Settings => API => Applications):

    • Homepage URL: http://localhost:5173
    • Authorized Redirect URIs: http://localhost:5173/oauth/callback
    • Note your Client ID and generate a Client secret
  3. Configure your credentials:

    • Edit .env in the root directory and add either OPENAI_API_KEY or OPENROUTER_API_KEY
    • Edit packages/mcp-cloudflare/.env and add:
      • SENTRY_CLIENT_ID=your_development_sentry_client_id
      • SENTRY_CLIENT_SECRET=your_development_sentry_client_secret
      • COOKIE_SECRET=my-super-secret-cookie
  4. Start the development server:

    pnpm dev
    

Verify

Run the server locally to make it available at http://localhost:5173

pnpm dev

To test the local server, enter http://localhost:5173/mcp into Inspector and hit connect. Once you follow the prompts, you'll be able to "List Tools".

Tests

There are three test suites included: unit tests, evaluations, and manual testing.

Unit tests can be run using:

pnpm test

Evaluations require a .env file in the project root with some config:

# .env (in project root)
OPENAI_API_KEY=      # Use OpenAI-backed AI-powered tools
OPENROUTER_API_KEY=  # Or use OpenRouter-backed AI-powered tools

Note: The root .env file provides defaults for all packages. Individual packages can have their own .env files to override these defaults during development.

Once that's done you can run them using:

pnpm eval

Manual testing (preferred for testing MCP changes):

# Test with local dev server (default: http://localhost:5173)
pnpm -w run cli "who am I?"

# Test against production
pnpm -w run cli --mcp-host=https://mcp.sentry.dev "query"

# Test with local stdio mode (requires SENTRY_ACCESS_TOKEN)
pnpm -w run cli --access-token=TOKEN "query"

Note: The CLI defaults to http://localhost:5173. Override with --mcp-host or set MCP_URL environment variable.

Comprehensive testing playbooks:

  • Stdio testing: See docs/testing/stdio.md for complete guide on building, running, and testing the stdio implementation (IDEs, MCP Inspector)
  • Remote testing: See docs/testing/remote.md for complete guide on testing the remote server (OAuth, web UI, CLI client)

Development Notes

Automated Code Review

This repository uses automated code review tools (like Cursor BugBot) to help identify potential issues in pull requests. These tools provide helpful feedback and suggestions, but we do not recommend making these checks required as the accuracy is still evolving and can produce false positives.

The automated reviews should be treated as:

  • ✅ Helpful suggestions to consider during code review
  • ✅ Starting points for discussion and improvement
  • ❌ Not blocking requirements for merging PRs
  • ❌ Not replacements for human code review

When addressing automated feedback, focus on the underlying concerns rather than strictly following every suggestion.

Contributor Documentation

Looking to contribute? Start at the Toolkit documentation index for CLI, MCP, and shared guides. See AGENTS.md for repository rules and packages/cli/AGENTS.md for CLI-specific rules.

Details

Repository
github.com/getsentry/sentry-mcp
Categories
Developer Tools, Monitoring & Observability
Package
@sentry/mcp-server
Transport
STDIO
Auth
Required
Registry
MCP registry, active

More from getsentry

  • Xcodebuildmcp5.9K

Related Developer Tools MCP servers

View all
1mark3labs avatarFilesystemmark3labs/mcp-filesystem-serverGo server implementing Model Context Protocol (MCP) for filesystem operations.640stars
2sonarsource avatarSonarqube Mcp Serversonarsource/sonarqube-mcp-serverAn MCP server that enables integration with SonarQube Server or Cloud for code quality and security.571stars
3ooo0ooo avatarLean LSPooo0ooo/lean-lsp-mcpProvides agentic access to Lean through LSP, including diagnostics, goals, hover info, and multiple search tools.379stars
4jerhadf avatarLinearjerhadf/linear-mcp-serverA server that integrates Linear&#x27;s project management system with the Model Context Protocol (MCP) to allow LLMs to interact with Linear.344stars
5nanbingxyz avatarFilesystemnanbingxyz/mcpsvrProvides an MCP endpoint to enforce directory-level access controls via interactive parameters.300stars
6estruyf avatarVscode Demo Timeestruyf/vscode-demo-timeEnables AI assistants to interact with Demo Time and helps build presentations and demos.243stars