Five tabs to triage one Sentry error: the email, the Sentry web UI, the GitHub repo for the offending release, the deploy dashboard for the timeline, Slack to ping whoever shipped it. The Sentry integration shipped May 11, and Annie reads Sentry directly now. The first question we asked her returned 67 unresolved errors across four services.

The plumbing

The integration is a Sentry user-auth token, stored KMS-encrypted, reverse-proxied from agent-gateway to Sentry's official MCP server at mcp.sentry.dev. Annie inherits the entire Sentry MCP toolset through that proxy: find_issues, get_event, get_release, everything Sentry ships. We didn't write a custom subset.

Same day the integration went GA, we instrumented the rest of the stack: anyshift-frontend, anyshift-backend, agent-gateway, agent-runtimes, ai-workbench, the infra Terraform. Every component emits into one Sentry org now, and Annie has read access to all of it.

The first investigation

We asked one question:

List the most recent critical Sentry errors across our stack. Group them by service, show me the stack trace of the most recent one, and tell me which release introduced it if you can.

Eighty-four seconds later:

Annie's answer in the Anyshift app: 67 unresolved issues grouped by service, with the most recent issue expanded

The highlights.

api (Backend): five issues. The most active is API-B82, "Error validating payload," 221 events, last seen seconds before we hit submit, tagged release v0.84.1, three users impacted. Plus failed AWS extraction (141 events), failed GCP extraction, S3 upload failure, cluster migration failure.

graph-connector: GRAPH-CONNECTOR-QW8, "Worker failed to process message," 120 events. Annie grouped five sibling variants (QWV, QWW, QWX, QWY, QWZ) into the same finding rather than listing each as a separate one. They share a root cause; she said so without being asked.

annie-intelligence: MCP connection failures at startup, 23 events. Plus a subagent variant.

agent-gateway: AGENT-GATEWAY-A, json.MarshalerError: unexpected end of JSON input, 55 events, culprit (*fanoutHandler).Handle. Plus MCP server startup failures, 18 events.

Then a detail card on the most recent issue, then three follow-up questions Annie suggested. The first:

Dig into the agent-gateway MarshalerError to find which release introduced it?

That was the next question we would have asked. We did.

What changed

The triage loop got shorter. An error is now one question away from a grouped, prioritized, release-attributed answer instead of five tabs deep. The (*fanoutHandler).Handle stack frame Annie surfaced in her opening answer is the same one we'd have found by clicking through the Sentry UI. We didn't have to click.

The bigger thing is what we didn't have to do. We didn't write a custom Sentry integration with the handful of API calls we thought we'd need. We proxied the MCP server Sentry ships and let Annie use everything in it. The next time Sentry adds a tool, Annie has it.

Five tabs became one question.

Setup: [docs.anyshift.io/integration/sentry](https://docs.anyshift.io/integration/sentry)