Route Claude, Cursor, and Codex to Sentry through wmcp.sh. Search issues across every project in your org with one tool call — list, assign, comment, resolve. Vault-stored auth tokens, per-call audit log, works with SaaS and self-hosted Sentry. wmcp.sh is not affiliated with Functional Software Inc. (Sentry).
Connect at https://wmcp.sh/mcp/sentry · supports SaaS + self-hosted · default read-only
Sentry ships an excellent official MCP server at getsentry/sentry-mcp with a hosted endpoint at mcp.sentry.dev. For a single-developer flow it's the right answer — run it, connect Cursor, done.
The gap shows up at team scale: most Sentry issue queries are scoped to a single project at a time. A regression that spans frontend, backend, and mobile turns into three sequential agent calls — list issues in project A, then B, then C — and the agent has to merge results itself.
wmcp.sh exposes a single search_issues tool that fans out across every project the auth token can see, merges + ranks, and returns one list. Plus encrypted token vault, default read-only mode, per-call audit log, and the ability to route some calls to SaaS Sentry and others to self-hosted from the same connection profile.
Nine tools — read tools always on, write tools opt-in per connection.
sentry.search_issuesCross-project search with merged ranking.sentry.list_issuesSingle-project issue list with status / level filters.sentry.get_issueIssue details + stack trace + breadcrumbs.sentry.list_eventsEvents for an issue, paginated.sentry.list_projectsAll projects visible to the auth token.sentry.assign_issueAssign to user or team (write opt-in).sentry.comment_issueAdd a comment to an issue (write opt-in).sentry.resolve_issueMark resolved with optional next-release gate (write opt-in).sentry.list_releasesReleases with first-seen / last-seen issue counts.# pip install anthropic mcp
import os, asyncio
from anthropic import Anthropic
from mcp import ClientSession
from mcp.client.streamable_http import streamablehttp_client
WMCP = "https://wmcp.sh/mcp/sentry"
TOKEN = os.environ["WMCP_TOKEN"]
async def triage():
async with streamablehttp_client(WMCP, headers={"Authorization": f"Bearer {TOKEN}"}) as (r, w, _):
async with ClientSession(r, w) as s:
await s.initialize()
tools = (await s.list_tools()).tools
anthropic = Anthropic()
msg = anthropic.messages.create(
model="claude-opus-4-5",
max_tokens=2048,
tools=[{"name": t.name, "description": t.description, "input_schema": t.inputSchema} for t in tools],
messages=[{"role": "user", "content": "Find all unresolved issues from the last release across every project, group by likely root cause."}],
)
return msg
asyncio.run(triage())
| Capability | getsentry/sentry-mcp (mcp.sentry.dev) | wmcp.sh-routed |
|---|---|---|
| Cross-project issue search | Per-project tool calls | Single fan-out search tool |
| SaaS + self-hosted in one config | Pick one per server instance | Mix in one connection profile |
| Auth token storage | Env var / config file | Per-user encrypted vault, rotatable |
| Default mode | Read-write | Read-only; writes opt-in per connection |
| wmcp.sh audit log | — | Per-call: actor / tool / args / status |
| Sentry-side audit | Yes (Sentry's own audit log) | Yes (preserved end-to-end) |
| Transport | Stdio + remote MCP | Streamable HTTP + OAuth 2.1 |
getsentry/sentry-mcp with a hosted endpoint at mcp.sentry.dev. It supports stdio and remote MCP. wmcp.sh is not affiliated with Sentry and provides an alternative with cross-project search and audit logging.search_issues that fans out across every project visible to the token and merges results. Useful for cross-cutting regressions.Production setup: scoped internal-integration token with project-level ACLs, audit retention, optional SSO, and webhook for agent-resolved issue notifications. Starter $499 one-time, Managed Retainer $999/mo, Enterprise $4,999+/mo.