picomcpv0.1.2
Menu · Protocol coverage
Reference

Protocol coverage

Exactly which parts of the MCP specification picomcp implements, and which it does not yet.

View .md Edit on GitHub

picomcp targets MCP 2025-11-25 and negotiates down to 2025-06-18, 2025-03-26 and 2024-11-05. Every feature marked as supported is covered by tests, including end-to-end tests against the official TypeScript SDK client.

Supported#

AreaFeature
Lifecycleinitialize with version negotiation, notifications/initialized, ping
Toolstools/list, tools/call, input validation, outputSchema and structuredContent, annotations, titles
Contenttext, image, audio, resource links, embedded resources
Resourcesresources/list, resources/templates/list, resources/read, text and binary contents
Promptsprompts/list, prompts/get, arguments derived from schemas
Utilitiesnotifications/cancelled with AbortSignal
JSON-RPCBatches, error codes, responses to client results ignored
stdioNewline-delimited JSON, stdout protected from stray logs
Streamable HTTPStateless JSON responses, 202 for notifications, 405 for GET, CORS, Origin checks, MCP-Protocol-Version checks

Not supported yet#

FeatureWhy
Sampling, elicitation, rootsThey need the server to send requests to the client. picomcp's stateless design does not hold a channel open for that yet.
Logging, progress and list_changed notificationsSame reason: server-to-client messages.
Resource subscriptionsSame reason.
CompletionsPlanned.
Pagination cursorsLists are returned in full, which suits servers with up to hundreds of entries.
Sessions (Mcp-Session-Id) and SSE streamsNot needed in stateless mode.
TasksExperimental in the spec.

Want one of these? Open an issue and describe your use case. Features land when they can be added without making picomcp large.