Epure
Workflow

Let Claude Code or Cursor read your production errors

Error tracking that works with Claude Code: Epure hands your coding agent one issue brief through MCP or the CLI, with event data marked as untrusted input.

Source sheets connect to an organized issue folder, with an inspection lens and pencil for review.
Editorial illustration
On this pageShow
  1. How does Claude Code read an Epure issue?
  2. Is it safe to let a coding agent read production errors?
  3. Does agent access work with self-hosted Epure?
  4. What does Epure not do for your coding agent?
  5. Which Epure plans include MCP and the CLI?
  6. Questions
Three ways to connect a coding agent to Epure

Hosted MCP (Cloud)

How to connect
https://app.epure.sh/mcp over Streamable HTTP
Sign-in
OAuth in the client; nothing to install
Fits when
You use Epure Cloud and Claude Code or Claude

Local MCP server

How to connect
npx -y @epure-sh/mcp (stdio)
Sign-in
One OAuth login, shared with the CLI
Fits when
You use Cursor, another stdio client, or self-hosted Epure

CLI

How to connect
epure issues context ISSUE_ID
Sign-in
Same OAuth session as the MCP server
Fits when
Your agent runs shell commands, or you work over SSH
DimensionHow to connectSign-inFits when
Hosted MCP (Cloud)https://app.epure.sh/mcp over Streamable HTTPOAuth in the client; nothing to installYou use Epure Cloud and Claude Code or Claude
Local MCP servernpx -y @epure-sh/mcp (stdio)One OAuth login, shared with the CLIYou use Cursor, another stdio client, or self-hosted Epure
CLIepure issues context ISSUE_IDSame OAuth session as the MCP serverYour agent runs shell commands, or you work over SSH

From the READMEs of the client packages @epure-sh/mcp and @epure-sh/cli (Apache-2.0, client packages), Epure v0.2.0.

An error comes in while you are mid-feature. The usual move is to open the issue in a browser, copy the minified frames, paste them into Claude Code, and explain which release is live. Epure removes the copy step: the agent asks for the issue itself and gets the stack, the release and the count in one answer.

How does Claude Code read an Epure issue?

Claude Code reads an Epure issue through the epure_issues_context MCP tool. One call returns an issue brief: the error, its source-mapped stack when you uploaded source maps, the release and the occurrence count. Raw payloads and end-user data stay out of the brief unless the agent asks for them explicitly. Ask "explain the latest Epure issue" and the agent lists issues with epure_issues_list, then fetches the brief.

# Epure Cloud: hosted MCP with OAuth, no local install
claude mcp add --transport http --scope user epure https://app.epure.sh/mcp

# Any instance, including self-hosted: local stdio server
npx -y @epure-sh/mcp login
claude mcp add epure -- npx -y @epure-sh/mcp

For Cursor, npx -y @epure-sh/mcp init prints a config with no credential in it. The step-by-step setup, with the first call to check, is in connect Epure to Claude Code, Cursor or Codex.

Is it safe to let a coding agent read production errors?

Epure marks event data as untrusted before your agent reads it. Error messages and breadcrumbs come from your users' traffic, so a message can contain text written to steer an agent. The Epure MCP server's instructions tell the agent that application content is data, never instructions, and epure_issues_context leaves raw payloads out and hashes end-user emails and IDs unless the call asks for them. Epure also never stores IP addresses. Keep write scopes away from unattended agent loops.

Scope the access to the task. Sign in with --scope read:agent for read-only consent, or start the server with --read-only so only read tools are listed. Resolving or snoozing needs write:triage, and destructive actions require an explicit confirm: true. Workspace roles still apply on the server, so a token never grants more than its user has. The trade-offs are covered in giving your coding agent production errors without trusting the payload.

Does agent access work with self-hosted Epure?

Yes. Self-hosted Epure, free under AGPL-3.0, uses the same MCP server and CLI. Add --url https://errors.example.com to the login and server commands; HTTPS is required except on loopback during development. The hosted MCP endpoint at /mcp runs on Epure Cloud only. Credentials stay in a local OAuth store shared by the CLI and the MCP server, never in the MCP config file.

What does Epure not do for your coding agent?

Epure gives the agent evidence, not a fix. It does not write patches, open pull requests or run a debugging agent of its own; Claude Code, Cursor or Codex does the reasoning, and you review the diff and run the tests. Sentry goes further here: it offers a hosted MCP server and Seer, its debugging agent, at $40 per active contributor per month (Sentry pricing, checked 6 November 2026). Pick Sentry if you want the vendor's agent; pick Epure if your own agent is enough.

Which Epure plans include MCP and the CLI?

Every Epure plan includes MCP and the CLI, with no per-seat or per-contributor charge. Cloud Pro is $29 a month for 200,000 events, and the 14-day trial runs on Pro limits with no card. Self-hosting is free. Exact options and scopes are in the MCP and CLI reference; plan limits are on the Epure pricing page.

Questions

What is the Epure MCP server?
The Epure MCP server is @epure-sh/mcp, an npm package that speaks the Model Context Protocol over stdio. It lets Claude Code, Cursor or another MCP client list issues, read an issue brief with epure_issues_context, and, with the right scope, resolve or snooze. Epure Cloud also hosts it at /mcp with OAuth.
Can the agent change anything in Epure?
Only if you allow it. With read:agent or --read-only, the agent can list and read issues and nothing else. Resolve and snooze need write:triage; project setup needs write:admin and the matching workspace role. Destructive actions also require confirm: true in the call.
Does Epure send my errors to a language model?
No. Epure does not call a model. Your coding agent fetches the issue brief through MCP or the CLI and sends it to the model you already use. Event text arrives wrapped as untrusted input, and IP addresses are never stored in the first place.