Skip to main content

MCP server

Errora exposes a Model Context Protocol endpoint so AI agents can triage your issues: read a stack trace, search logs, resolve a bug — scoped to what the token's owner is allowed to see.

POST https://<your-errora-host>/mcp
Authorization: Bearer errora_pat_…

JSON-RPC 2.0, with the standard initialize, tools/list and tools/call methods.

1. Mint a personal access token​

Profile → Personal access tokens → New token. Copy it once — only its prefix is stored for display. See Personal access tokens.

2. Point your client at it​

Claude Code / Claude Desktop (.mcp.json or the app's MCP settings):

{
"mcpServers": {
"errora": {
"type": "http",
"url": "https://errora.example.com/mcp",
"headers": { "Authorization": "Bearer errora_pat_…" }
}
}
}

Cursor and other MCP clients take the same URL + header pair.

Tools​

ToolWhat it does
whoamiThe authenticated user and their organizations
list_projectsProjects the user can access, optionally filtered by organization_slug
list_issuesIssues for a project — Sentry-style query, status, environment, user, sort (times_seen = occurrences), limit
get_issueOne issue: the latest event (exception + stack frames) for an exception issue, the timing detail for a performance one
list_performance_issuesSlow routes and background jobs with p50/p75/p95/p99, throughput and failure rate
get_performance_issueWhere one transaction's time goes: per-op breakdown (queries, cache, HTTP, job execution), slowest spans, recent samples
update_issue_statusResolve / ignore / unresolve (needs issue-write permission)
search_logsStructured log search: query, level, user, stats_period, limit
get_wallet_balanceBalance, credit limit and current-period usage cost per service

Every tool is scoped to the token owner's memberships — an agent can never see a project its user can't.

user accepts a scoped selector (id:42, email:ada@example.com, username:ada, ip:10.0.0.9) or a bare value matching any of those, the same syntax the dashboard's user filter puts in the URL.

Example session​

// tools/call
{"jsonrpc":"2.0","id":2,"method":"tools/call",
"params":{"name":"list_issues",
"arguments":{"project":"checkout","query":"timeout","status":"unresolved","limit":10}}}

A useful prompt once it is connected:

Look at the top unresolved issues in the checkout project, read the stack trace of the worst one, find the matching code in this repository, and propose a fix.

Watching your own MCP traffic​

Spans emitted by MCP servers (mcp.*) feed the MCP Server dashboard in AI monitoring — traffic, clients, methods, most-used tools.

Security​

  • A PAT carries its owner's permissions. Give agents a token from an account with the access you actually want them to have.
  • Tokens are stored hashed; revoke one from the same screen at any time.
  • The endpoint is deliberately a plain synchronous, token-authenticated surface — no cookies, no session, no CSRF path.

Troubleshooting​

SymptomCause / fix
401Token typo, revoked token, or the Bearer prefix is missing
Client sees no toolsIt didn't complete initialize, or it expects SSE — Errora speaks plain HTTP JSON-RPC
403 on update_issue_statusThe token owner lacks issue:write on that project
Empty list_projectsThe user is a member of an organization but not of any project with project:read