Specification

The MCPDS document format

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.

JSON Schema at a glance

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.

Read the full spec →

What a document describes

Eight sections, one contract. Each maps to a part of the MCP server you would otherwise wire up by hand.

01

Server identity

Name, version, description, homepage and metadata that identify the server.

02

Transports

stdio, HTTP and SSE transport definitions with their connection details.

03

Authentication

None, API key, OAuth 2.1 and custom schemes, declared up front.

04

Tools

Callable operations with JSON Schema input and output contracts.

05

Resources

Readable resources and resource templates exposed by the server.

06

Prompts

Reusable prompt templates with typed arguments.

07

Components

Shared schema fragments referenced across tools and prompts.

08

Packaging

How the server is distributed, run and registered.

Using the package

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";

Validate your YAML

Reference the bundled JSON Schema directly from your editor for inline validation and autocomplete.

server.mcp.yaml
# yaml-language-server: $schema=
# https://unpkg.com/@mcpds/spec/
# schemas/mcpds-1.0.schema.json
mcpds: "1.0"

Versioning

The package version tracks the schema version. A major bump signals a breaking change to the schema structure.

Design with the tools →
Neocekavana chyba aplikace. Reload x

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please reload the page.