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.
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 paramsFind 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...
queryvaluefind_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 paramsFind 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...
queryvalueregionUrlvalueorganizationSlugstringfind_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 paramsFind 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...
queryvalueregionUrlvalueorganizationSlugstringfind_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 paramsFind 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...
queryvalueregionUrlvalueprojectSlugvalueorganizationSlugstringget_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 paramsGet 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...
eventIdstringissueIdstringissueUrlstringregionUrlvalueorganizationSlugstringget_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 paramsGet 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...
traceIdstringregionUrlvalueorganizationSlugstringget_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 paramsDownload 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...
eventIdstringregionUrlvalueprojectSlugstringattachmentIdvalueorganizationSlugstringupdate_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 paramsUpdate 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...
statusstringresolved · resolvedInNextRelease · unresolved · ignoredissueIdstringissueUrlstringregionUrlvalueassignedTostringorganizationSlugstringsearch_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 paramsSearch 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...
limitnumberregionUrlvalueprojectSlugvalueorganizationSlugstringincludeExplanationbooleannaturalLanguageQuerystringcreate_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 paramsCreate 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...
namestringregionUrlvalueorganizationSlugstringcreate_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 paramsCreate 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...
namestringplatformvalueteamSlugstringregionUrlvalueorganizationSlugstringupdate_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 paramsUpdate 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...
namevalueslugvalueplatformvalueteamSlugvalueregionUrlvalueprojectSlugstringorganizationSlugstringcreate_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 paramsCreate 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...
namestringregionUrlvalueprojectSlugstringorganizationSlugstringfind_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 paramsList 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...
regionUrlvalueprojectSlugstringorganizationSlugstringanalyze_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 paramsUse 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...
issueIdstringissueUrlstringregionUrlvalueinstructionstringorganizationSlugstringsearch_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 paramsSearch 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...
guidevaluequerystringmaxResultsintegerget_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 paramsFetch 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...
pathstringsearch_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 paramsSearch 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...
limitnumberregionUrlvalueprojectSlugOrIdvalueorganizationSlugstringincludeExplanationbooleannaturalLanguageQuerystringSentry'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.
You'll find everything you need to know by visiting the deployed service in production:
If you're looking to contribute, learn how it works, or to run this for self-hosted Sentry, continue below.
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
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_events, search_issues, etc.) require an LLM provider (OpenAI or Anthropic). 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.
To utilize the stdio transport, you'll need to create an 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 --access-token=sentry-user-token
Need to connect to a self-hosted deployment? Add --host (hostname
only, e.g. --host=sentry.example.com) when you run the command.
For isolated internal deployments that only expose plain HTTP, also add
--insecure-http.
Some features (like Seer) may not be available on self-hosted instances. You can disable specific skills to prevent unsupported tools from being exposed:
npx @sentry/mcp-server@latest --access-token=TOKEN --host=sentry.example.com --disable-skills=seer
For self-hosted instances without TLS:
npx @sentry/mcp-server@latest --access-token=TOKEN --host=sentry.internal:9000 --insecure-http
SENTRY_ACCESS_TOKEN= # Required: Your Sentry auth token
# LLM Provider Configuration (required for AI-powered search tools)
EMBEDDED_AGENT_PROVIDER= # Required: 'openai' or 'anthropic'
OPENAI_API_KEY= # Required if using OpenAI
ANTHROPIC_API_KEY= # Required if using Anthropic
# Optional overrides
SENTRY_HOST= # For self-hosted deployments
MCP_DISABLE_SKILLS= # Disable specific skills (comma-separated, e.g. 'seer')
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.
{
"mcpServers": {
"sentry": {
"command": "npx",
"args": ["@sentry/mcp-server"],
"env": {
"SENTRY_ACCESS_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.
For self-hosted instances that don't support Seer:
{
"mcpServers": {
"sentry": {
"command": "npx",
"args": ["@sentry/mcp-server"],
"env": {
"SENTRY_ACCESS_TOKEN": "your-token",
"SENTRY_HOST": "sentry.example.com",
"MCP_DISABLE_SKILLS": "seer"
}
}
}
}
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.
To contribute changes, you'll need to set up your local environment:
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
Create an OAuth App in Sentry (Settings => API => Applications):
http://localhost:5173http://localhost:5173/oauth/callbackConfigure your credentials:
.env in the root directory and add your OPENAI_API_KEYpackages/mcp-cloudflare/.env and add:
SENTRY_CLIENT_ID=your_development_sentry_client_idSENTRY_CLIENT_SECRET=your_development_sentry_client_secretCOOKIE_SECRET=my-super-secret-cookieStart the development server:
pnpm dev
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".
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= # Also required for AI-powered search tools in production
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 agent mode (use_sentry tool only)
pnpm -w run cli --agent "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:
docs/testing/stdio.md for complete guide on building, running, and testing the stdio implementation (IDEs, MCP Inspector)docs/testing/remote.md for complete guide on testing the remote server (OAuth, web UI, CLI client)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:
When addressing automated feedback, focus on the underlying concerns rather than strictly following every suggestion.
Looking to contribute or explore the full documentation map? See CLAUDE.md (also available as AGENTS.md) for contributor workflows and the complete docs index. The docs/ folder contains the per-topic guides and tool-integrated .md files.
SENTRY_ACCESS_TOKEN*secretYour Sentry user authentication token
ray0907/git-mcp-server
cyanheads/git-mcp-server
io.github.b1ff/atlassian-dc-mcp-bitbucket
io.github.b1ff/atlassian-dc-mcp-jira
com.mcparmory/atlassian-jira
sirlordt/vscode-terminal-mcp