---
title: "MCP Protocol Conformance · Conformance test harness for MCP"
description: "Conformance test harness for MCP servers. JSON-RPC 2.0, OAuth 2.1 PKCE, tool schemas, capabilities, smoke roundtrip, annotation hygiene. Spec versions"
canonical: "https://matthiasmeyer.tech/repos/mcp-protocol-conformance"
language: "en"
last_updated: "2026-08-21"
markdown_versions: ["https://matthiasmeyer.tech/repos/mcp-protocol-conformance.md", "https://matthiasmeyer.tech/de/repos/mcp-protocol-conformance.md", "https://matthiasmeyer.tech/es/repos/mcp-protocol-conformance.md"]
image: "https://matthiasmeyer.tech/api/og/repo/mcp-protocol-conformance?lang=en"
publisher: "Matthias Meyer, https://matthiasmeyer.tech (llms.txt: https://matthiasmeyer.tech/llms.txt)"
---

factory stable TypeScript

# MCP Protocol Conformance

Conformance test harness for MCP servers

JSON-RPC 2.0, OAuth 2.1 PKCE, tool schemas, capabilities, smoke roundtrip, annotation hygiene. Spec versions 2024-11-05, 2025-03-26, 2025-06-18.

[View on GitHub →](https://github.com/studiomeyer-io/mcp-protocol-conformance)[npm](https://www.npmjs.com/package/mcp-protocol-conformance)

## What it solves

Nothing in the MCP ecosystem asks a server whether it actually speaks the protocol. It either works with the client you happened to test against, or it does not, and you find out from a user. This is the harness that answers the question before you publish.

## How it works

It drives a server over stdio and checks it against the protocol rather than against your expectations, and it ships both as a command you run and as a TypeScript library you import. Inside the StudioMeyer factory it is the gate every other build passes before promotion, so before anything goes to npm, to a marketplace or into an upstream pull request, it has been through this harness first.

## When to use it

Install it as a development dependency the day you start a server, not the day before you publish one. A conformance failure found early is a small fix, and the same failure found after a marketplace listing is a version bump plus an apology.

## When not to use it

Conformance is about the protocol, not about your tools being useful, correct or safe. A server can pass every check here and still hand back nonsense. For the input side there is mcp-gauntlet, for signatures mcp-server-attestation, and for the interface contract over time mcp-covenant.

Stars

★ 0

installs

↓ 1,155

Clones (14d)

⊟ 104

Language

TypeScript

Updated

2026-08-21

## Install

```
npx -y mcp-protocol-conformance
```

## Related repos

- MCP Gauntlet

    ← load + fuzz layer for

    →

    https://matthiasmeyer.tech/repos/mcp-gauntlet

- MCP Covenant

    ← breaking-change gate for

    →

    https://matthiasmeyer.tech/repos/mcp-covenant

- MCP Passport

    ← registry-readiness check beside

    →

    https://matthiasmeyer.tech/repos/mcp-passport

- MCP Hook Conformance

    → spec-level sibling of

    →

    https://matthiasmeyer.tech/repos/mcp-hook-conformance

- MCP Spec Migrator 2025-11-25

    ← version-bridge for

    →

    https://matthiasmeyer.tech/repos/mcp-spec-migrator-2511

## Sitemap

Every page of this site as Markdown: [sitemap](https://matthiasmeyer.tech/sitemap.md). Curated entry point: [llms.txt](https://matthiasmeyer.tech/llms.txt).
