Skip to main content

mcp-probe-cli

MCP server conformance tester — zero external dependencies.

Catch spec violations before your MCP server ships. mcp-conform runs a suite of Model Context Protocol conformance checks and tells you exactly what's wrong and why.

pip install mcp-conform
mcp-conform server --transport stdio --command "python my_server.py"

Why mcp-conform?

The official MCP Inspector accepts invalid JSON Schema that MCP clients (including Claude Code) reject — silently, with no useful error messages. You discover the problem when a real user reports it. mcp-conform catches it before push.

What it checks:

Check What it validates
JSON-RPC envelope jsonrpc: "2.0", matching id, exactly one of result/error
Initialize response protocolVersion, capabilities object, serverInfo.name/version
tools/list structure tools array, each tool's name/description/inputSchema
JSON Schema validity Detects true/false boolean schemas rejected by Claude Code
Error responses code (integer) + message (string) per spec
Method not found Returns -32601 for unknown methods

Usage

stdio transport (most common)

mcp-conform server --transport stdio --command "python my_server.py"
mcp-conform server --transport stdio --command "node dist/server.js"
mcp-conform server --transport stdio --command "uv run python -m mypackage.server"

HTTP transport

mcp-conform server --transport http --url http://localhost:8080

CI / GitHub Actions

# Fails with exit code 1 if any check fails
mcp-conform server --transport stdio --command "python my_server.py" --format json | tee report.json
# .github/workflows/mcp-conformance.yml
- name: Run MCP conformance checks
  run: |
    pip install mcp-conform
    mcp-conform server --transport stdio --command "python my_server.py"

Output example

════════════════════════════════════════════════════════════
  mcp-conform report
  Server : python my_server.py
  Transport: stdio
  Duration : 312 ms
════════════════════════════════════════════════════════════

  ✓  jsonrpc_envelope
       JSON-RPC 2.0 envelope is valid
  ✓  protocol_version
       protocolVersion '2025-03-26' is valid
  ✓  capabilities
       capabilities is an object
  ✓  server_info_name
       serverInfo.name = 'MyServer'
  ✗  tool[0](search)_input_schema
       inputSchema invalid: JSON Schema 'true' literal is not accepted by Claude Code

────────────────────────────────────────────────────────────
  Result: FAIL  — 1/5 checks failed

  Failing checks:
    ✗  tool[0](search)_input_schema: inputSchema invalid: ...
════════════════════════════════════════════════════════════

Zero dependencies

mcp-conform uses only Python stdlib (Python 3.10+). No mcp SDK, no httpx, no pydantic — nothing to install, no version conflicts.


License

MIT

Metadata

Release files for mcp-conform 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mcp-conform 0.1.0
File Size Uploaded Provenance
mcp_conform-0.1.0.tar.gz 10.7 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for mcp-conform 0.1.0
File Interpreter ABI Platform
mcp_conform-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 21.0 kB

Release files / mcp_conform-0.1.0.tar.gz

Download URL mcp_conform-0.1.0.tar.gz
Size 10.7 kB
Tags Source
SHA-256 checksum
How to use checksums
e9cf32cf9c64094fc3ce5a06150e14ab659cc0f9d2874f4ca2961158f1c6fb42
BLAKE2b-256 checksum
How to use checksums
69b4aab8b715aba49d58b17a7867a612ca99988898889dd3e08ba593582709a1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.3

Release files / mcp_conform-0.1.0-py3-none-any.whl

Download URL mcp_conform-0.1.0-py3-none-any.whl
Size 10.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4da3420d78697fd6a5a9d7629458dfe78657aa31d3bda8b1040c57466173c08c
BLAKE2b-256 checksum
How to use checksums
39afd03d50e8368ca4cec72863f55317baba5af281213a16677e743d52b1b5e0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.3

Security for mcp-conform 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page