The short answer
Connect to https://mcp.sentry.dev/mcp/<org>/<project> so the server is scoped to one project, and approve only the default skills at sign-in: Inspect, which is read-only, and Seer. Leave Triage and Manage Projects & Teams off unless the agent truly needs to resolve issues or change alert rules. If you see @modelcontextprotocol/server-sentry in a config, replace it: that reference server was archived in May 2025.
Deedglass
A tool call meets your rules before it runs
Asks to run
DELETE FROM visits;
Deletes every row in visits
Deedglass checks your rules
- Reading dataAllowed
- Deleting a whole table (DROP, TRUNCATE)Never
- Changing or deleting rows without saying which (WHERE)This one
- Other changesWait for a person
What the server can do
Sentry groups its MCP tools into skills, chosen when you authorize the connection. From the server’s own source:2
| Skill | What it allows | On by default |
|---|---|---|
| Inspect Issues & Events | Read-only access to issues, events, traces, replays, releases, monitors, profiles, docs and project metadata | yes |
| Seer | Sentry’s AI debugger, to analyze and root-cause issues | yes |
| Triage Issues | “Resolve, assign, and update issues” | no |
| Manage Projects & Teams | Create and modify projects, teams, DSNs, monitors and alert rules | no |
The defaults are sensible. The risk comes from the person authorizing the connection ticking every box because the agent asked for “full access” to fix something.
All connections to the hosted server use OAuth.1 With a token passed directly instead of OAuth, the connection defaults to all active skills, and ?skills= or ?disable-skills= on the URL narrows them.2 That difference matters for CI and shared setups: a token-based config can quietly expose the write skills that the OAuth flow leaves off by default.
Scope the URL
The hosted server can be scoped in the URL itself:1
| URL | Reach |
|---|---|
https://mcp.sentry.dev/mcp |
every organization and project your account can see |
https://mcp.sentry.dev/mcp/{organizationSlug} |
one organization |
https://mcp.sentry.dev/mcp/{organizationSlug}/{projectSlug} |
one project |
Sentry recommends scoping to a project when possible; when scoped, tools default to that project and discovery tools are hidden.1 A project-scoped config for Claude Code looks like this:
Code Data in JSON, the format software uses to pass records and settings.
{
"mcpServers": {
"sentry": { "type": "http", "url": "https://mcp.sentry.dev/mcp/acme/web-frontend" }
}
}
Saved as .mcp.json at the project root, that’s a project-scope server shared with the team through version control.5 Everyone who opens the repository gets the same, narrow Sentry connection.
If you need a token instead of OAuth, add the skill list to the URL so the default doesn’t widen it:
Code What the screen or file shows, copied as is.
https://mcp.sentry.dev/mcp/acme/web-frontend?skills=inspect
The self-hosted path needs write scopes
For self-hosted Sentry, the project runs the server over stdio with a user auth token. The README lists the scopes that token needs today: org:read, project:read, project:write, team:read, team:write and event:write.2 That’s a token that can change projects and teams, held on the developer’s machine, whatever skills you enable.
You can still narrow the tools with --disable-skills or MCP_DISABLE_SKILLS (for example project-management),2 but the credential underneath keeps its write scopes. On self-hosted installs, treat the Sentry token as a write credential and store it like one: an environment variable, never the config file.
Error events are untrusted input
Here’s the part most setups miss. A Sentry event is built from what your users sent you: request paths, form fields, headers, exception messages that echo input. An agent that reads events is reading text written by strangers.
That puts a Sentry connection squarely in Simon Willison’s “lethal trifecta”: private data, exposure to untrusted content, and the ability to communicate externally.4 Sentry supplies the first two on its own. The third comes from whatever else is connected: a GitHub server that can open pull requests, a Slack server that can post, or a shell.
Three habits keep that in check:
- Read-only Sentry plus a human-reviewed fix. Let the agent read the event and propose a patch. A person merges it.
- Don’t pair Sentry with an outbound tool in the same session unless that tool needs approval for every call.
- Send less to Sentry. Keep passwords, tokens and personal data out of events where your app reports them, so there’s less for an agent to read in the first place.
The archived reference server
@modelcontextprotocol/server-sentry is one of the reference servers moved to modelcontextprotocol/servers-archived, which was created and archived on 28 May 2025, along with the old GitHub, Slack and Postgres servers.3 It’s unmaintained. Replace it with Sentry’s own server.
What a config scanner will tell you
Not much, for remote servers. In our runs of deedglass 0.13.0’s scan, the Sentry entry, given as a URL, added no write paths to the grade, scoped or not.66 The scanner can’t see which skills you approved at sign-in, because that choice lives in Sentry, not in the file. Review Sentry’s connection page for the skills granted, and revoke and reconnect if they’re wider than you want.
A checklist
- The URL names an organization and a project.
- Only Inspect (and Seer, if you use it) were approved at sign-in.
- Token-based configs carry
?skills=inspect. - No
@modelcontextprotocol/server-sentryanywhere. - Self-hosted tokens live in an environment variable, not the config.
- Sentry isn’t connected in the same session as an unapproved outbound tool.
Questions people ask
Is the Sentry MCP server read-only?
Not necessarily. Its Inspect skill is read-only and on by default, but the Triage and Manage Projects & Teams skills can resolve issues and change projects, teams and alert rules if you grant them.2
How do I limit the Sentry MCP server to one project?
Use https://mcp.sentry.dev/mcp/{organizationSlug}/{projectSlug}. Tools then default to that project and discovery tools are hidden.1
Can I still use @modelcontextprotocol/server-sentry?
It was archived on 28 May 2025 and is unmaintained.3 Use Sentry’s hosted server, or its stdio transport for self-hosted Sentry.
More on reading untrusted content safely: prompt injection and the research on indirect prompt injection. The same approach for Linear is in Linear MCP server security, and the general review is the ten-minute MCP config audit and the MCP security checklist.
To see what the rest of your agent setup can change, run npx deedglass scan in the repository (what the grade means), or watch the checks in the playground.
Written with AI assistance and checked against our claims register.