Its own README says as much: it is not meant to be useful, it is meant to exercise the protocol. The value is in the awkward corners — progress notifications, subscriptions, sampling, elicitation, tasks — because those are the features a client can appear to support until something sends them for real. It speaks stdio, SSE and Streamable HTTP from one package, so the transport layer can be tested from the same fixture.
A reference server for people building MCP clients. It implements tools, prompts, resources, sampling, elicitation, progress and tasks so a client can be exercised against every part of the protocol.
- Plain request/response tools to check the basics — echo, get-sum, get-tiny-image
- Structured output with an output schema attached, so you can test client-side validation (get-structured-content)
- Resource behaviour: links returned in bulk, a single resource reference, and a file compressed into a session resource (get-resource-links, get-resource-reference, gzip-file-as-resource)
- Long operations with progress notifications, via trigger-long-running-operation
- A task-based flow with staged status updates and an optional elicitation for clarification, via simulate-research-query
- Toggles for the noisy parts — simulated logging at random levels, and resource-update notifications to subscribers
- Annotated content and an environment dump, for checking how your client renders metadata and for debugging a server's configuration
Nothing to authorize. Published on npm as @modelcontextprotocol/server-everything and run through npx; on Windows launch it via cmd /c. The same package serves stdio, SSE and Streamable HTTP — pass stdio, sse or streamableHttp on the command line.
One command — npx -y @modelcontextprotocol/server-everything
