Skip to content

MCP

The read API's Model Context Protocol endpoint and the cassette tools it aggregates.

The read API mounts a stateless, streamable HTTP Model Context Protocol endpoint at:

http://localhost:8081/v1/mcp

Configure 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 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.

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.

Terminal window
tapes local up
tapes serve

The bundled local setup configures PostgreSQL and Ollama. Capture or seed data before browsing:

Terminal window
tapesctl seed --api-url http://localhost:8081

The 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.