Is the Sentry MCP server official?
Yes. It is built and maintained by Sentry in the getsentry/sentry-mcp repository, and Sentry's documentation points to the hosted service at mcp.sentry.dev.
@getsentry
Basic information
An MCP server for interacting with Sentry via LLMs.
Add this server to your MCP-compatible client using the configuration below.
{
"mcpServers": {
"sentry-mcp": {
"command": "npx",
"args": [
"@sentry/mcp-server@latest",
"--access-token=sentry-user-token"
]
}
}
}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, use the query parameter to narrow down results.
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 narrow down results.
Update a Sentry issue's status or assignment. Use this to resolve, reopen, assign, or ignore an issue. <examples> ``` update_issue(organizationSlug='my-org', issueId='PROJECT-123', status='resolved') update_issue(organizationSlug='my-org', issueId='PROJECT-123', assignedTo='user:123456') update_issue(organizationSlug='my-org', issueId='PROJECT-123', status='ignored') update_issue(organizationSlug='my-org', issueId='PROJECT-123', status='ignored', ignoreMode='forever') update_issue(organizationSlug='my-org', issueId='PROJECT-123', status='ignored', ignoreMode='untilOccurrenceCount', ignoreCount=100, ignoreWindowMinutes=60) update_issue(organizationSlug='my-org', issueId='PROJECT-123', status='ignored', reason='Ignoring because this is expected noise from the staging deploy') ``` </examples> <hints> - Provide `issueUrl` or `organizationSlug` + `issueId`. - At least one of `status` or `assignedTo` is required. - `assignedTo` format: `user:ID` or `team:ID_OR_SLUG`. - Use `execute_sentry_tool(name='whoami', arguments={})` to find your user ID for self-assignment. - Status values: `resolved`, `resolvedInNextRelease`, `unresolved`, `ignored`. - `status='ignored'` defaults to `ignoreMode='untilEscalating'`. - Ignore modes: `untilEscalating`, `forever`, `forDuration`, `untilOccurrenceCount`, `untilUserCount`. - Matching ignore inputs are `ignoreDurationMinutes`, `ignoreCount` + optional `ignoreWindowMinutes`, or `ignoreUserCount` + optional `ignoreUserWindowMinutes`. - To switch an already ignored issue between `untilEscalating`, `forever`, and condition-based ignore modes, first set `status='unresolved'`, then ignore it again with the new rule. - `reason` is optional. When provided, it will be posted as a comment on the issue's activity feed explaining why the action was taken. </hints>
Search Sentry events and replays. Use for event counts/statistics. `query` can be natural language or Sentry search syntax. With an agent configured, it fixes dataset, query, fields, and sort before running. Supports TWO query types: 1. AGGREGATIONS (counts, sums, averages): 'how many errors', 'total tokens' 2. Individual events with timestamps: 'error logs from last hour' Datasets: - errors: Exception/crash events with stack traces, usually grouped into issues - logs: Application log entries, including error-severity log messages - spans: Raw trace/span events for performance, AI/LLM calls, requests, and operations - metrics: Metric rows and aggregates: counters, gauges, distributions, values - profiles: Transaction/continuous profile results, profile IDs, profiled transactions - replays: Session replay results: rage clicks, dead clicks, visited pages, replay users If the user says logs, log messages, error logs, or warning logs, choose logs instead of errors. Replay searches return replay lists only; replay count()/avg()/sum() are not supported. NOT for grouped issue lists (use search_issues) or app screenshots/images (use get_latest_base_snapshot). <examples> search_events(organizationSlug='my-org', query='how many errors today') search_events(organizationSlug='my-org', dataset='errors', query='level:error') search_events(organizationSlug='my-org', dataset='errors', fields=['issue', 'count()'], sort='-count()') search_events(organizationSlug='my-org', dataset='spans', query='span.op:db', sort='-span.duration') search_events(organizationSlug='my-org', dataset='replays', query='count_errors:>0', sort='-count_errors') </examples> <hints> - If the user passes a parameter in the form of name/otherName, it's likely in the format of <organizationSlug>/<projectSlug>. - Parse org/project notation directly without calling find_organizations or find_projects. - Use fields with aggregate functions like count(), avg(), sum() for statistics - Sort by -count() for most common, -timestamp for newest </hints>
Use Seer to analyze production errors and get detailed root cause analysis with specific code fixes. Use this tool when: - The user explicitly asks for root cause analysis, Seer analysis, or help fixing/debugging an issue - You are unable to accurately determine the root cause from the issue details alone Do NOT call this tool as an automatic follow-up to get_sentry_resource. What this tool provides: - Root cause analysis with code-level explanations - Specific file locations and line numbers where errors occur - Concrete code fixes you can apply - Step-by-step implementation guidance This tool automatically: 1. Checks if analysis already exists (instant results) 2. Starts new AI analysis if needed (~2-5 minutes) 3. Returns complete fix recommendations <examples> ### User: "Run Seer on this issue" ``` analyze_issue_with_seer(issueUrl='https://my-org.sentry.io/issues/PROJECT-1Z43') ``` ### User: "Analyze this issue and suggest a fix" ``` analyze_issue_with_seer(organizationSlug='my-organization', issueId='ERROR-456') ``` </examples> <hints> - Only use when the user explicitly requests analysis or you cannot determine the root cause from issue details alone - Seer Autofix does not support metric alert issues (issueCategory: metric); use get_issue_details and search_events instead - If the user provides an issueUrl, extract it and use that parameter alone - The analysis includes actual code snippets and fixes, not just error descriptions - Results are cached - subsequent calls return instantly </hints>
Search for grouped issues/problems in Sentry - returns a LIST of issues, NOT counts or aggregations. Provide `query` as natural language or Sentry issue search syntax. When an embedded agent is configured, it fixes query and sort before running while preserving explicit Sentry search syntax. Returns grouped issues with metadata like title, status, and user count. Common Query Syntax: - is:unresolved / is:resolved / is:ignored / is:for_review / is:new / is:regressed / is:escalating - level:error / level:warning - firstSeen:-24h / lastSeen:-7d - assigned:me / assigned_or_suggested:me - release:latest - issue.category:feedback - issue.priority:high - environment:production - userCount:>100 DO NOT USE FOR COUNTS/AGGREGATIONS → use search_events DO NOT USE FOR individual events with timestamps → use search_events DO NOT USE FOR details about a specific issue → use get_sentry_resource <examples> search_issues(organizationSlug='my-org', query='critical bugs from last week') search_issues(organizationSlug='my-org', query='is:unresolved is:unassigned', sort='freq') search_issues(organizationSlug='my-org', query='level:error firstSeen:-24h', projectSlugOrId='my-project') </examples> <hints> - If the user passes a parameter in the form of name/otherName, it's likely in the format of <organizationSlug>/<projectSlugOrId>. - Parse org/project notation directly without calling find_organizations or find_projects. - The projectSlugOrId parameter accepts both project slugs (e.g., 'my-project') and numeric IDs (e.g., '123456'). </hints>
Fetch a Sentry resource by URL, or by resourceType plus resourceId. Pass a Sentry URL directly when possible; the resource type is auto-detected. Supports issues, events, traces, spans, AI conversations, breadcrumbs, replays, monitors, preprod snapshots, and snapshot images. Trace lookups return a condensed overview by default. AI Conversations: A conversation is a set of spans sharing the same gen_ai.conversation.id. Use resourceType='ai_conversation' with a conversation ID, or pass a Sentry conversation URL, to fetch the transcript/details. To discover or list conversations, use search_ai_conversations. Conversations are NOT issues — do not use search_issues for conversation queries. For preprod snapshot URLs (matching 'sentry.io/preprod/snapshots/'): - Without ?selectedSnapshot=: returns the snapshot diff summary (changed, added, removed images) - With ?selectedSnapshot=<image_file_name>: returns the image preview and metadata. Use the Sentry tool `get_snapshot_image` for full-resolution image bytes. Resource IDs: - span: <traceId>:<spanId> - monitor: <monitorSlug> - snapshot: <snapshotId> - snapshotImage: <snapshotId>:<image_file_name> <examples> get_sentry_resource(url='https://sentry.io/issues/PROJECT-123/') get_sentry_resource(resourceType='issue', organizationSlug='my-org', resourceId='PROJECT-123') get_sentry_resource(resourceType='span', organizationSlug='my-org', resourceId='<traceId>:<spanId>') get_sentry_resource(resourceType='ai_conversation', organizationSlug='my-org', resourceId='conversation-123') get_sentry_resource(url='https://sentry.sentry.io/preprod/snapshots/123/') get_sentry_resource(url='https://sentry.sentry.io/preprod/snapshots/123/?selectedSnapshot=login_screen.png') </examples>
Search the available Sentry MCP tool catalog by name and description. Many Sentry operations are intentionally not exposed as top-level tools. Use this for any Sentry-related task when you do not see an obvious direct tool, including long-tail inspection, project management, documentation lookup, preprod snapshots, attachments, DSNs, releases, teams, and issue-specific pivots. Use this tool when you need to: - Find the right Sentry operation for a task - Discover catalog tools and their schemas for a task - Inspect the executable JSON input schema for an available tool <examples> search_sentry_tools(query='list projects') search_sentry_tools(query='issue details') search_sentry_tools(query='find dsn', limit=5) search_sentry_tools(query='snapshot image') </examples> <hints> - Results only include tools available in the current session. - If a Sentry operation is not listed as a direct tool, search here before deciding it is unavailable. - Returned schemas already account for active organization, project, and region constraints. - Use the returned name and schema when executing a catalog result. - This tool returns structured JSON. Do not parse markdown from its text content. </hints>
Execute an available Sentry MCP tool discovered through search_sentry_tools. Use this tool when you need to: - Call a Sentry operation returned by search_sentry_tools - Execute a tool by name using arguments that match its returned schema <examples> execute_sentry_tool(name='find_projects', arguments={ organizationSlug: 'my-org' }) execute_sentry_tool(name='whoami', arguments={}) </examples> <hints> - Use search_sentry_tools first if you are not sure which name or arguments to pass. - Arguments are validated against the target tool's schema before execution. - Active organization, project, and region constraints are injected automatically. </hints>
Sentry MCP Server (Official) is Sentry's own Sentry MCP server that connects AI coding assistants such as Claude Code, Cursor and VS Code to your Sentry errors, issues, traces and performance data through the Model Context Protocol.
It is maintained by Sentry in the getsentry/sentry-mcp repository and runs mainly as a hosted remote service at https://mcp.sentry.dev/mcp, with OAuth sign-in. Sentry says the tool selection is focused on human-in-the-loop debugging workflows, not on exposing every Sentry API. A stdio transport, published on npm as @sentry/mcp-server, is also available and is the easiest way to use it with self-hosted Sentry.
You need a Sentry account. For the hosted server nothing is installed: the first connection opens an OAuth flow in your browser to link your Sentry account.
The base endpoint is https://mcp.sentry.dev/mcp. You can scope it to one organization (https://mcp.sentry.dev/mcp/{organizationSlug}) or one project (https://mcp.sentry.dev/mcp/{organizationSlug}/{projectSlug}). When scoped, tools default to that org or project and unneeded discovery tools are hidden; Sentry recommends project scoping when possible. Add ?experimental=1 to enable experimental tool variants.
Add the remote server over HTTP:
claude mcp add --transport http sentry https://mcp.sentry.dev/mcp/{organizationSlug}/{projectSlug}
Or install the Claude Code plugin, which adds a sentry-mcp subagent that Claude delegates to when you ask about Sentry errors, issues, traces or performance:
claude plugin marketplace add getsentry/sentry-mcp
claude plugin install sentry-mcp@sentry-mcp
Use the "Install MCP Server" button on mcp.sentry.dev, or add this to your MCP settings:
{
"mcpServers": {
"sentry": {
"url": "https://mcp.sentry.dev/mcp/{organizationSlug}/{projectSlug}"
}
}
}
Open the Command Palette, run "MCP: Add Server", choose HTTP and enter https://mcp.sentry.dev/mcp/{organizationSlug}/{projectSlug}.
For clients that launch local servers (or for self-hosted Sentry), create a Sentry User Auth Token with the scopes org:read, project:read, project:write, team:read, team:write and event:write, then use the stdio package:
{
"mcpServers": {
"sentry": {
"command": "npx",
"args": ["@sentry/mcp-server"],
"env": {
"SENTRY_ACCESS_TOKEN": "your-token",
"EMBEDDED_AGENT_PROVIDER": "openai",
"OPENAI_API_KEY": "sk-..."
}
}
}
}
The LLM provider variables are only needed for the AI-powered search tools. You can also run it directly:
npx @sentry/mcp-server@latest --access-token=sentry-user-token
For self-hosted Sentry add --host=sentry.example.com (hostname only), and --insecure-http if the deployment only serves plain HTTP.
Clients that support custom headers can skip OAuth and pass a Sentry API token:
{
"mcpServers": {
"sentry": {
"url": "https://mcp.sentry.dev/mcp",
"headers": {
"Authorization": "Sentry-Bearer ${SENTRY_ACCESS_TOKEN}"
}
}
}
}
search_sentry_tools / execute_sentry_tool) for long-tail operations such as releases, teams, DSNs and docs lookup.--skills=inspect,seer or --disable-skills=project-management).The mcp.so listing shows nine top-level tools:
find_organizations and find_projects look up the org and project slugs other tools need. They are hidden when the URL is already scoped.search_issues returns lists of grouped issues (for example is:unresolved level:error), while search_events handles counts, aggregations and individual events across errors, logs, spans, metrics, profiles and replays. Both accept natural language or Sentry search syntax.get_sentry_resource fetches an issue, event, trace, span, replay, monitor or AI conversation from a Sentry URL or ID.analyze_issue_with_seer runs Seer root cause analysis (a new analysis can take about 2–5 minutes; results are cached), and update_issue changes status or assignment.search_sentry_tools finds operations that are not exposed as top-level tools, and execute_sentry_tool runs them, for example whoami.claude mcp add exposes the tools directly to the main agent.EMBEDDED_AGENT_PROVIDER explicitly; other tools work without it.seer skill is dropped when --host points at a non-sentry.io host. If your deployment runs Seer, add --skills=inspect,seer.--insecure-http, and pass only the hostname to --host.localhost instead.Yes. It is built and maintained by Sentry in the getsentry/sentry-mcp repository, and Sentry's documentation points to the hosted service at mcp.sentry.dev.
The remote endpoint is `https://mcp.sentry.dev/mcp`. You can append `/{organizationSlug}` or `/{organizationSlug}/{projectSlug}` to scope it.
Not for the hosted server, which uses OAuth on first connection. The stdio package needs a Sentry User Auth Token, plus an LLM provider key if you want the AI-powered search tools.
Yes. Sentry documents setup for Claude Code (`claude mcp add --transport http` or the plugin), Cursor and VS Code. Any client that supports the HTTP transport can connect.
Yes, through the stdio transport: run `npx @sentry/mcp-server@latest` with `--access-token` and `--host`. The stdio transport is described as still a work in progress.
The mcp.so listing and Sentry's docs give no separate price for the MCP server. It works with your existing Sentry account, and what you can access depends on that account.
Yes. `update_issue` can resolve, ignore or assign issues, and the stdio token scopes include write access. You can narrow exposed tools with skills, for example `?disable-skills=seer` on the remote URL when using direct token auth, or `--disable-skills` on stdio.
CronWatch records every run of your scheduled jobs in your own database, and speaks up when one is missed, fails, gets stuck, runs slow or costs too much. CronWatch is free and open-source.

SSH MCP server for AI agents: remote commands, file transfer, log search and server audits through OpenSSH.

Catch intent conflicts before code conflicts. The open-source coordination protocol for coding agents, built above Git.

Verified distributed compute for humans, applications, and agents. Submit Blender, Octane, and video workloads, route them across qualified GPUs, track asynchronous execution, download finished artifacts, and verify FARP

Turn Perfex CRM into an AI-ready workspace. This MCP server exposes your full REST API to Claude, ChatGPT and any AI agent, so leads, invoices and tasks are one prompt away.
Comments