Agent tools

MCP

Demo-ready MCP support is shown here as an intended capability for agents that need focused context. The examples use seeded incidents only; no live setup happens from this page.

Tool surface preview

Each tool returns a narrow slice of the same context shown in the demo endpoint, so an agent can move from an incident list to a manifest, then into the smallest useful section.

intended capability

Connect your agent

Add the Errorcore MCP server to your agent client, then a scoped key authorizes the tools below. The key carries read-only scopes and reads return scrubbed fields only.

intended capability
MCP client config
{
  "mcpServers": {
    "errorcore": {
      "url": "https://mcp.errorcore.dev/sse",
      "headers": { "Authorization": "Bearer ${ERRORCORE_AGENT_KEY}" }
    }
  }
}
Servermcp.errorcore.devScoped keyec_agent_••••4f2aScopescontext:read, captures:listRate limit60 requests/min per keyReadsscrubbed fields onlyRotationrotate keys from the console

context.index

incidentCount / sections / incidents[].url

sample call/api/demo/context
{
  "incidentCount": 12,
  "sections": [
    "payload",
    "request",
    "throw",
    "io"
  ],
  "incidents": [
    {
      "id": "inc_8f21c0",
      "title": "Null discount rule at checkout",
      "manifest": "/api/demo/context/inc_8f21c0"
    },
    {
      "id": "inc_4b7e19",
      "title": "Null session at token rotation",
      "manifest": "/api/demo/context/inc_4b7e19"
    }
  ]
}

context.manifest

id / schemaVersion / sections[].bytes

sample call/api/demo/context/inc_8f21c0
{
  "id": "inc_8f21c0",
  "schemaVersion": "1.1.0",
  "sections": [
    {
      "name": "payload",
      "bytes": 2766
    },
    {
      "name": "request",
      "bytes": 326
    },
    {
      "name": "throw",
      "bytes": 819
    },
    {
      "name": "io",
      "bytes": 728
    }
  ]
}

context.section

ioTimeline / ambientContext.retrievedCount

sample call/api/demo/context/inc_8f21c0/io
{
  "ioTimeline": [
    {
      "type": "db-query",
      "target": "postgres.carts",
      "durationMs": 12,
      "result": "1 row"
    },
    {
      "type": "cache-read",
      "target": "redis:discount:WELCOME10",
      "durationMs": 4,
      "result": "null"
    }
  ],
  "retrievedCount": 3
}

context_graph.record

incidentId / totalDurationMs / criticalPath / lanes

sample calldemo.graph/inc_8f21c0
{
  "incidentId": "inc_8f21c0",
  "totalDurationMs": 26,
  "criticalPath": [
    "POST /checkout/confirm",
    "Discount rule lookup",
    "discountRule = null",
    "Read percentOff on a null discountRule"
  ],
  "lanes": [
    "Request lane",
    "Service/runtime lane",
    "I/O lane",
    "Throw lane",
    "Package lane"
  ]
}