Skip to main content

How-to — MCP in Cursor and Claude Code

Eden's MCP server lets coding agents search production traces, triage issues, rerun the debugger, and open fix PRs — without leaving your IDE.

Prerequisites

  1. An Eden org with at least one ingested trace.
  2. An org API key (Settings → API Keys in the portal).
  3. The Eden platform package installed (see Installation below).

Installation

Three supported paths — all use the same eden-mcp binary:

a) Monorepo checkout (preferred)

pip install -e .
eden-mcp --help # verify

b) Module invocation (no install needed)

python -m eden.mcp_server

c) Cloud API

Point Cursor MCP at the hosted Eden API with your org API key. No local Eden platform install is required for cloud use.

Environment variables

VariableRequiredPurpose
EDEN_API_KEYyesOrg API key (sk_eden_…)
EDEN_ORG_IDyesOrg id (org_…)

Cursor

Create .cursor/mcp.json in your project root:

{
"mcpServers": {
"eden": {
"command": "eden-mcp",
"args": [],
"env": {
"EDEN_API_KEY": "sk_eden_…",
"EDEN_ORG_ID": "org_…",
"EDEN_BASE_URL": "https://api.edenobservability.com"
}
}
}
}

If eden-mcp is not on your PATH (e.g. inside a virtualenv), use the module form instead:

{
"mcpServers": {
"eden": {
"command": "python",
"args": ["-m", "eden.mcp_server"],
"env": {
"EDEN_API_KEY": "sk_eden_…",
"EDEN_ORG_ID": "org_…",
"EDEN_BASE_URL": "https://api.edenobservability.com"
}
}
}
}

Restart Cursor (or reload MCP servers from settings). Eden appears under MCP Tools in the agent panel.

You can also copy a pre-filled config from Portal → Settings → MCP.

Claude Code

Create .claude/mcp.json. Claude Code expects an explicit "type": "stdio":

{
"mcpServers": {
"eden": {
"type": "stdio",
"command": "eden-mcp",
"args": [],
"env": {
"EDEN_API_KEY": "sk_eden_…",
"EDEN_ORG_ID": "org_…",
"EDEN_BASE_URL": "https://api.edenobservability.com"
}
}
}
}

Available tools

ToolScopeWhat it does
search_tracesreadSearch traces by query / agent
get_tracereadTrace metadata and span tree
get_transcriptreadStep-by-step messages and tool calls
list_checkpointsreadDebugger checkpoints for a trace
rerun_debuggerdebugRerun from a checkpoint step
search_issuesreadList agent issues
get_issuereadFull issue + example stumbles
get_trace_stumblesreadStumble detections for a trace
triage_issuedebugRoot-cause triage for an issue
run_autofixfixPropose patch + optional PR
get_improvement_queuereadN17 closed-loop action queue
list_improvement_plans / get_improvement_plan / approve_improvement_planread/fixN23 plans
export_fixture / create_regression_caseread/fixFailure fixtures + regression cases
preview_change_impactreadN04 change impact preview
eden_healthreadF84 self-obs health
tail_tracereadN11 live session tail
label_tool_calldebugF21 tool-call labels
query_eqlreadCompile / preview EQL filters
query_sqlreadOrg-scoped read-only SQL
list_datasets / list_experimentsreadEval surface mirrors
get_judge_scoresreadLayer A / judge scores for a trace
get_cost_breakdownreadFinOps explorer rollup
get_agentic_metricsreadF64 agentic metrics pack

Scopes mcp:read, mcp:debug, and mcp:fix gate tools. Create an MCP-scoped key from Settings → MCP (POST /orgs/{org}/mcp/keys) or use MCP presets on Settings → API Keys.

Streamable HTTP (W28)

In addition to stdio (eden-mcp / python -m eden.mcp_server), Eden exposes JSON-RPC over HTTP:

POST https://api.edenobservability.com/v1/mcp
Authorization: Bearer <org-api-key>
X-Org-Id: org_…

Methods: initialize, tools/list, tools/call, ping. GET on the same path returns a short SSE hello for endpoint discovery. Prefer stdio for Cursor; use HTTP for remote agents.

Example prompts

Try these in Cursor's agent chat after MCP connects:

  • "Why did trace abc-123 fail? Show the transcript and any quality signals."
  • "List open P0 agent issues from the last 24 hours."
  • "Triage issue iss_456 and summarize the root cause."
  • "Show F64 agentic metrics for this org."
  • "Run a read-only SQL cost breakdown for the last day."

Smoke test

  1. Copy config from Settings → MCP (or paste the JSON above).
  2. Replace <your-api-key> with a real MCP-scoped key.
  3. In Cursor agent chat: "Call search_traces for org {org_id} with limit 5."
  4. Optionally: "Call get_agentic_metrics" and "Call query_eql with nl_text errors".
  5. You should see JSON tool results.

If the server fails to start, check:

What's next