
A remote MCP server that turns AgentPostmortem, a public registry of documented AI-agent failures
A remote MCP server that turns AgentPostmortem, a public registry of documented AI-agent failures, into tools any agent can query. Ships with a companion investigator agent that drafts postmortems grounded in real precedents.
A remote MCP server that turns AgentPostmortem, a public registry of documented AI-agent failures, into tools any agent can query. Deployable on Cloudflare Workers. Ships with a companion investigator agent built on the Claude Agent SDK that drafts postmortems grounded in real precedents.
Why: every team debugging an agent incident is rediscovering failure modes that are already documented. Casebook makes the registry agent-queryable, so Claude, Cursor, or any MCP client can ask "has anything like this happened before?" mid-investigation.
| Tool | Purpose |
|---|---|
search_cases(query, tag?) | Ranked full-text search over case files; query must be non-empty, with an optional tag filter |
get_case(id) | Full case detail: outcome, verified facts, unknowns, lessons |
similar_failures(description) | Keyword-similarity match of an incident against the corpus |
list_tags() | All failure-mode tags with descriptions |
MCP client (Claude Code, Cursor, agent SDK)
| streamable HTTP (JSON-RPC 2.0, stateless)
v
Cloudflare Worker src/index.ts (routing, per-IP rate limit)
| src/mcp.ts (MCP protocol: initialize, tools/list, tools/call)
| src/search.ts (pure ranking and similarity logic, unit tested)
v
src/data.ts: live agentpostmortem.com public API (/api/export, /api/search,
/api/tags) with a 5 minute in-memory cache, falling back to the bundled
dataset in data/ when offline.The MCP transport is implemented directly against the 2025-03-26 streamable HTTP spec in stateless mode: a single POST /mcp endpoint handling initialize, tools/list, and tools/call. JSON-RPC batches are limited to 100 requests and rejected as a unit before dispatch when larger. No sessions, no Durable Objects, no auth (the data is public and read-only). A light in-memory rate limit (60 requests per minute per IP) keeps it polite.
tools/call accepts an optional JSON object for arguments; arrays, scalar
values, and null return JSON-RPC -32602 Invalid params before tool dispatch.
npm install
npm test # vitest: search ranking, tag filter, CSV parsing
npm run typecheck # tsc --noEmit
npm run dev # wrangler dev on http://localhost:8787Smoke test the endpoint:
curl -s http://localhost:8787/mcp -H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'Add it to Claude Code:
claude mcp add --transport http casebook http://localhost:8787/mcpagent/investigate.ts uses the Claude Agent SDK query() API. Given an incident description, it connects to the MCP server, finds similar documented failures, pulls the top cases, and writes postmortem-draft.md. It runs on your local Claude Code subscription auth; no API key appears in the code.
# full investigation (uses the model)
npm run investigate -- "our support bot approved hundreds of fake refunds overnight"
# keyless mode for CI: stubs the model, still exercises the MCP server
npm run investigate -- --dry-run "runaway retry loop spammed customers"Point it at a deployed server with CASEBOOK_MCP_URL=https://casebook-mcp.<account>.workers.dev/mcp.
$ npm run investigate -- --dry-run "our support bot was tricked by text in a ticket into approving hundreds of refunds"
Wrote postmortem-draft.md (1091 chars)
$ head postmortem-draft.md
# Postmortem Draft (dry run)
## Incident
our support bot was tricked by text in a ticket into approving hundreds of refunds
## Similar documented failures (source: live (cached))
### APM-0003: Cursor support AI hallucinates login policy, triggering mass subscription cancellationsIn full mode the agent additionally calls get_case on the top precedents and produces a structured draft with suspected failure mode, contributing factors, and remediations grounded in the documented lessons.
/api/export for the corpus, /api/search for rich case detail, /api/tags).data/cases.json holds 12 representative case files (prompt-injection refund exploit, runaway retry loop, stale-cache hallucination, tool-permission escalation, and more) used as an offline fallback and as the deterministic fixture for tests.npx wrangler deployPaste this prompt into your agent. It reads this page and does the setup for you.
Read https://aiagentslisting.com/mcp/casebook-mcp to learn what the "Casebook MCP" MCP server does and how to install it. Add it to my coding agent's MCP configuration as documented on that page, then confirm the server connects and list the tools it exposes.Agents can also browse this directory over MCP at https://aiagentslisting.com/api/mcp
claude mcp add --transport http casebook http://localhost:8787/mcpnpx wrangler deployThis server runs locally, so we can't read its tool list over the web yet.
Maintain this server? Claiming proves you own the listing and earns the last 4 points.
Claim this listingPaste this line near the top of your repository's README. The badge always renders the current score.
[](https://aiagentslisting.com/mcp/casebook-mcp)Nothing comparable is listed yet.
No tagged releases on record.
Connect to the AI Agents Listing MCP server at https://aiagentslisting.com/api/mcp using the HTTP transport and complete the sign-in when it asks. Then call the submit_review tool for the listing "casebook-mcp" with a rating from 1 to 5 and a short note on what worked and what did not.No reviews yet
Be the first to share your experience with this tool.
One email a week. New agents, MCP servers and skills, and what is actually getting traction.