MCP Ecosystem
Sourcey's MCP support is built on two standalone npm packages published under the sourcey org. They're useful independently of sourcey for any project that works with MCP server specifications.
mcp-schema
TypeScript types and JSON Schema for the mcp.json snapshot format.
npm install mcp-schemaimport type { McpSpec, McpTool, McpResource } from "mcp-schema";
import { mcpSpecSchema } from "mcp-schema/schema";Provides typed interfaces for the full MCP surface: tools (with inputSchema, outputSchema, annotations), resources, resource templates, prompts, server capabilities, and transport configuration. The JSON Schema can be used with any validator (Ajv, Zod, etc.).
Zero runtime dependencies.
mcp-parser
Snapshot, parse, validate, and document MCP server specifications.
npm install mcp-parserimport { parse, validate, snapshot, generateMarkdown } from "mcp-parser";
const spec = await parse("./mcp.json");
const result = validate(spec);
const markdown = generateMarkdown(spec);API
| Function | Description |
|---|---|
parse(path) | Parse an mcp.json file with $ref dereferencing |
parseString(json) | Parse from a JSON string |
validate(spec) | Check for errors and best-practice warnings |
snapshot(options) | Connect to a running server and capture a snapshot |
generateMarkdown(spec) | Generate a full markdown reference |
generateLlmsTxt(spec) | Generate a compact llms.txt-style index |
generateLlmsFullTxt(spec) | Generate a full-text context reference |
CLI
mcp-parser parse ./mcp.json
mcp-parser validate ./mcp.json
mcp-parser snapshot --stdio "node server.js" -o mcp.json
mcp-parser snapshot --sse http://localhost:3000/sse -o mcp.json
mcp-parser snapshot --http http://localhost:3000/mcp -o mcp.json
mcp-parser generate ./mcp.json -o mcp.md
mcp-parser generate ./mcp.json --format llms-txt -o llms.txtDepends on mcp-schema for types.
How they fit into sourcey
Sourcey depends on mcp-parser (which brings mcp-schema transitively). When you add an mcp tab to your config, sourcey uses mcp-parser to parse the mcp.json file and then normalizes it into the same internal format used for OpenAPI specs. The rendering pipeline, search, navigation, and theming work identically.
You don't need to install mcp-parser or mcp-schema separately to use MCP tabs in sourcey. They're included as dependencies.
MCP protocol revisions
Three different things sit behind this question, and they answer it differently.
The mcp.json format (mcp-schema) is revision-independent. It records which
revision a snapshot came from, validating it as a YYYY-MM-DD shape rather than
against a list of known revisions, so a document produced against a revision
newer than the package still validates.
The snapshot client (mcp-parser) requests 2025-11-25 during initialize,
sends it as the MCP-Protocol-Version header on HTTP transports, and records
whatever revision the server answers with.
The hosted Sourcey MCP server at mcp.sourcey.com/mcp serves exactly
2025-11-25. A request declaring any other revision in its
MCP-Protocol-Version header is refused with 400 and an error payload naming
the one revision the server supports, so a client can choose deliberately
rather than guess. When Sourcey advances, the one revision changes in lockstep
across the contract, runtime, generated artifacts, tests, registry, and
documentation; the server has no second protocol path or historical-revision
branch.
The current published specification revision is
2026-07-28, which
makes the protocol stateless and replaces the initialize handshake with
server/discover. No released SDK implements it yet, so the hosted server
continues to speak the revision real clients use.
MCP specification resources
- MCP Specification (current revision)
- MCP Specification
2025-11-25(what the hosted server serves) - Specification repo
- TypeScript SDK (
@modelcontextprotocol/sdk) - Python SDK (
mcpon PyPI)
