Dome Systems

Sentry MCP server and Dome

Let agents triage Sentry issues. Never let them silence one for good.

Connect Sentry's MCP server to Dome with OAuth. Each engineer consents once, and calls made for them run with their Sentry access. Rules read the arguments of every call, down to how an issue is ignored.

EngineersAgentsDomeSentryCallersEngineersAgentsissue-triagerAgentsroot-cause-analystAgentsalert-tunerGatewayseng-gatewaywebSentry projectpaymentsSentry projectModel poolAny providerRulesGuardsAuditsaudit-trail
issue-triager→sentry/search_issues· as j.alvarezAllowed

How Dome helps

Dome provides a tool gateway and authorization for Sentry

Decided on the arguments

The same update_issue call resolves an issue or ignores it until it escalates. Ignoring it forever is refused.

Their Sentry access

With per-user OAuth, each engineer consents once. An agent acting for them reaches only what they can.

No side door

Sentry's execute_sentry_tool runs any tool in its catalog by name. Rules read that name too, so deletes routed through it are refused.

Get started

Sentry behind the Gateway in three steps

Add the server, sync its tools into the Gateway's catalog, and apply the rules. Sentry supports dynamic client registration, so there is no OAuth app to create.

  1. 01

    Add the Sentry MCP server

    Dome registers itself as a client with Sentry and holds each engineer's tokens. Calls made for them carry their own.

    $ dome tools add --name sentry \
    --url https://mcp.sentry.dev/mcp \
    --auth-method oauth --credential-type per-user \
    --oauth-authorize-url https://mcp.sentry.dev/oauth/authorize \
    --oauth-token-url https://mcp.sentry.dev/oauth/token \
    --oauth-registration-url https://mcp.sentry.dev/oauth/register \
    --gateway eng-gateway
  2. 02

    Sync the catalog

    Run it once your own Sentry consent is attached. Until then the sync fails, and agents get “tool not available in this gateway”.

    $ dome tools catalog sync sentry
  3. 03

    Apply the rules

    Scope them to one agent while you try them. Simulate before you deploy.

    $ dome rules apply sentry-triage.cedar \
    --agent issue-triager --name sentry-triage

Commands and rules tested against a Dome workspace on October 1, 2026. For anything about Sentry itself, see Sentry's documentation.

Rules

Triage freely, never ignore forever

The permit opens Sentry to the agent. The first forbid refuses ignoring an issue forever. The second refuses deletes, and update_issue itself, when they come through execute_sentry_tool.

permit (principal, action == Dome::Action::"mcp:call", resource is Dome::MCPTool)
when { resource.connection_name == "sentry" };
 
forbid (principal, action == Dome::Action::"mcp:call", resource is Dome::MCPTool)
when {
resource.connection_name == "sentry" &&
resource.tool_name == "update_issue" &&
resource has arguments &&
resource.arguments has ignoreMode &&
resource.arguments.ignoreMode == "forever"
};
 
forbid (principal, action == Dome::Action::"mcp:call", resource is Dome::MCPTool)
when {
resource.connection_name == "sentry" &&
resource.tool_name == "execute_sentry_tool" &&
resource has arguments &&
resource.arguments has name &&
(resource.arguments.name like "delete_*" || resource.arguments.name == "update_issue")
};

Try it

One call, two outcomes

Switch the caller or the argument and watch the same call decide differently. Every decision lands in audit.

Ignore mode

agent issue-triager · acting as j.alvarez
sentry/update_issue(organizationSlug: "acme", issueId: "PAYMENTS-4F2", status: "ignored", ignoreMode: "untilEscalating")
  1. Agentissue-triager is registered and active
  2. Callerj.alvarez verified through Okta
  3. RuleIssues may be ignored until they escalate
DecisionAllowed

Example agents

Three agents on Sentry

From our template library. Each one reads broadly and writes narrowly.

issue-triager

Triage new issues

Reads new issues and their events, then resolves, assigns, or ignores them until they escalate.

  • sentry/search_issues
  • sentry/get_sentry_resource
  • sentry/update_issue

root-cause-analyst

Find the root cause

Pulls the stack trace and surrounding events for an issue and asks Seer for the root cause. It changes nothing in Sentry.

  • sentry/get_sentry_resource
  • sentry/search_events
  • sentry/analyze_issue_with_seer

alert-tuner

Tune noisy alerts

Finds alert rules that fire too often and adjusts their thresholds. Deleting a rule stays with an engineer.

  • sentry/search_sentry_tools
  • sentry/search_events
  • sentry/execute_sentry_tool

Agent workflow

Bringing it together

Connecting Sentry to registered agents, models, and identity in Dome completes a governed agent application.

Dome

Control point

Gateway

  • Rules
  • Guards
  • Quotas

Every call decided and audited

Tools

MCP server

Sentry

This page

FAQ

Common questions

Does Dome work with Sentry's remote MCP server?

Yes. Add https://mcp.sentry.dev/mcp with per-user OAuth, and Dome registers itself as a client through dynamic client registration.

Can an AI agent resolve Sentry issues but not ignore them forever?

Yes. A rule reads the ignoreMode argument of update_issue and refuses the call when it is forever.

What is execute_sentry_tool, and why does the rule name it?

It runs any tool in Sentry's catalog by name. A rule on update_issue alone would miss the same change made through it.

Whose Sentry permissions does an agent use?

With per-user OAuth, the permissions of the engineer it acts for. Dome picks their token from their verified identity.

Next steps

Talk with our FDE team

Our forward deployed engineers work with your platform team to get your agents into production and under control: the first one governed on your own systems, and a pattern your teams can repeat for every agent after it.