Home
Integration

MCP Ecosystem

mcp-schema and mcp-parser, TypeScript tooling for MCP server specifications.

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-schema
import 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-parser
import { parse, validate, snapshot, generateMarkdown } from "mcp-parser";

const spec = await parse("./mcp.json");
const result = validate(spec);
const markdown = generateMarkdown(spec);

API

FunctionDescription
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.txt

Depends 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