The read API mounts a stateless, streamable HTTP Model Context Protocol endpoint at:
http://localhost:8081/v1/mcpConfigure that URL as a streamable HTTP server in an MCP client. The transport supports POST for JSON-RPC invocation, GET for the stream, and DELETE for session termination semantics.
Core tools
Section titled “Core tools”Core serves one read tool of its own beside the cassette tools:
| Tool | What it does |
|---|---|
transcript |
One page of a session’s transcript. Arguments: session_id (required), role (user, assistant, all), q, subagents, limit, cursor. Returns the same JSON as GET /v1/sessions/{id}/transcript, as structured content and as JSON text. Each call is bounded at 30 seconds, like a cassette tool call, and takes a payload-read slot like the HTTP route; a call shed while every slot is held is a tool error to retry. |
It runs the same code as the HTTP route, so an agent reading a session through MCP sees exactly what a CLI or the console does. An unknown session or a malformed argument is a tool error carrying the HTTP status the route would have returned. See APIs for the row shape and filters.
Cassette tools
Section titled “Cassette tools”The MCP server aggregates tools advertised by installed cassettes. A cassette
marks an OpenAPI operation with x-tapes-mcp; Tapes validates its JSON-body
contract and publishes it under a cassette-qualified name such as
summary.summarize_session. tools/list reads the current cassette registry,
so successfully refreshed cassettes appear without restarting Tapes and removed
cassettes disappear.
Tool arguments are sent as the cassette operation’s JSON request body. A successful JSON object is returned as both MCP structured content and JSON text; non-2xx responses and unavailable cassettes are tool errors. Calls use the same admitted cassette origin and caller identity headers as the cassette HTTP proxy. See Cassettes for the extension and its initial POST-only constraints.
The transport is stateless, so it cannot push reliable out-of-band tool-list
change notifications. A client connected while the cassette fleet changes may
need to reconnect or issue tools/list again.
Semantic search over spans is a cassette tool: the search cassette
advertises search.search, which appears here like any other
cassette-advertised tool once that cassette is installed.
Enable it locally
Section titled “Enable it locally”tapes local uptapes serveThe bundled local setup configures PostgreSQL and Ollama. Capture or seed data before browsing:
tapesctl seed --api-url http://localhost:8081The core tools are read-only. Cassette tools can expose whatever behavior their admitted POST operation implements; MCP annotations are descriptive hints and do not replace gateway or cassette authorization.