Server identity
Name, version, description, homepage and metadata that identify the server.
A single, human-authored *.mcp.yaml file fully describes an MCP server and serves as the source of truth for scaffolding, documentation, client configuration and registry entries.
The package version tracks the schema version. A major bump signals a breaking change to the schema structure - your mcpds: field pins which contract a document targets.
Eight sections, one contract. Each maps to a part of the MCP server you would otherwise wire up by hand.
Name, version, description, homepage and metadata that identify the server.
stdio, HTTP and SSE transport definitions with their connection details.
None, API key, OAuth 2.1 and custom schemes, declared up front.
Callable operations with JSON Schema input and output contracts.
Readable resources and resource templates exposed by the server.
Reusable prompt templates with typed arguments.
Shared schema fragments referenced across tools and prompts.
How the server is distributed, run and registered.
The @mcpds/spec package ships the schema and TypeScript types for tools built on top of MCPDS.
$ npm install @mcpds/spec
import { mcpdsSchema, type McpdsDocument } from "@mcpds/spec";Reference the bundled JSON Schema directly from your editor for inline validation and autocomplete.
# yaml-language-server: $schema=
# https://unpkg.com/@mcpds/spec/
# schemas/mcpds-1.0.schema.json
mcpds: "1.0"The package version tracks the schema version. A major bump signals a breaking change to the schema structure.