MCP Protocol Validator
@Janix-ai
Test suite for validating MCP server implementations against the open MCP protocol specification. Helps developers ensure protocol compliance and interoperability.
Overview
What is MCP Protocol Validator?
MCP Protocol Validator is a testing suite and reference implementation for the Model Context Protocol (MCP). It provides tools to validate MCP server implementations, including support for protocol version 2025-06-18 with features like OAuth 2.1 authentication, structured tool output, and enhanced security.
How to use MCP Protocol Validator?
Run compliance tests via python -m mcp_testing.scripts.compliance_report for STDIO servers or python -m mcp_testing.scripts.http_compliance_test for HTTP servers. Configure protocol versions, OAuth 2.1, timeouts, and test modes through command-line options and environment variables. A reference HTTP server is provided for testing.
Key features of MCP Protocol Validator
- OAuth 2.1 authentication support with Bearer token validation
- STDIO and HTTP compliance test suites
- Support for protocol versions 2024-11-05, 2025-03-26, 2025-06-18
- Structured tool output and enhanced tool schema validation
- Detailed test reports with success rates and server capabilities
- Configurable timeouts and selective tool testing
Use cases of MCP Protocol Validator
- Validate custom MCP server implementations against the specification
- Test HTTP servers with OAuth 2.1 authentication enabled
- Ensure backward compatibility with multiple protocol versions
- Automate compliance testing in CI/CD pipelines
- Verify structured tool output and error handling behavior
FAQ from MCP Protocol Validator
What protocol versions does the validator support?
The validator supports protocol versions 2024-11-05, 2025-03-26, and 2025-06-18, with full 2025-06-18 support including OAuth 2.1 and structured tool output.
How do I test an MCP server installed via pip?
Use the --server-command option with the Python module command, e.g., python -m mcp_testing.scripts.compliance_report --server-command "python -m your_server_module" --protocol-version 2024-11-05.
Can I test only specific tools?
Yes, use --test-mode tools and optionally --dynamic-only to automatically discover and test available tools, or --required-tools to specify which tools to test.
How do I enable OAuth 2.1 authentication for tests?
Set environment variables MCP_OAUTH_ENABLED=true, MCP_OAUTH_INTROSPECTION_URL, and optionally MCP_OAUTH_REQUIRED_SCOPES before starting the reference HTTP server, then run the HTTP compliance test suite.
What kind of test reports does the validator generate?
Each test run produces a report including server information, protocol version, test duration, success rate, detailed results per test case, server capabilities, and session information.