Mcpbench
MCPBench is the open standard for compatibility testing of various Model Context Protocol (MCP https://github.com/modelcontextprotocol) client and server SDK implementations.
Installation
npx mcpbenchAsk AI about Mcpbench
Powered by Claude Β· Grounded in docs
I know everything about Mcpbench. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
MCPBench - Model Context Protocol Compatibility Testing Framework
Overview
MCPBench is the open standard for compatibility testing of various Model Context Protocol (MCP https://github.com/modelcontextprotocol) client and server SDK implementations. As the MCP ecosystem grows, not every server or client will be written in the same language, creating an NΓN compatibility matrix where N represents the number of language SDKs available.
Our goal is to ensure seamless interoperability between different MCP implementations, regardless of the programming language used.
Current Status
Initial SDK Support:
- Python SDK (Official)
- TypeScript SDK (Official)
- Rust SDK (Official)
Future Expansion: Additional language SDKs will be added as the MCP ecosystem grows.
Milestone M0 - Foundation
We have successfully demonstrated key foundational capabilities:
1. Git Package Information Extraction
- Automatically fetch and parse git package information from official MCP SDK repositories
- Construct language-specific compatibility matrices
- Track version information and dependencies across SDKs
2. Docker Compose Generation
- Generate docker-compose configurations to run client-server combinations across the language matrix
- Support for cross-language testing scenarios
- Automated environment setup for compatibility testing
3. End-to-End (E2E) Testing Framework
- Working Python client β TypeScript server communication
- Streamable HTTP transport validation
- Tool invocation and response verification
- Session management and protocol compliance testing
Project Structure
mcpbench/
βββ README.md # This file
βββ matrix/ # Core compatibility testing framework
β βββ templates/ # Test templates for different scenarios
β β βββ python/ # Python client/server templates
β β β βββ client/
β β β β βββ e2e/ # End-to-end client tests
β β β β βββ connection/ # Connection tests
β β β β βββ ... # Other test categories
β β β βββ server/
β β β βββ e2e/ # End-to-end server implementations
β β β βββ ... # Other server templates
β β βββ typescript/ # TypeScript client/server templates
β β β βββ client/
β β β βββ server/
β β β βββ e2e/ # TypeScript server implementations
β β βββ rust/ # Rust client/server templates
β β βββ client/
β β βββ server/
β βββ driver/ # Test orchestration and automation
β β βββ update_sdk_info.py # SDK information extraction
β β βββ setup.py # Environment setup
β β βββ docker_generator.py # Docker compose generation
β βββ requirements.txt # Python dependencies
βββ docs/ # Documentation and guides
Key Components
matrix/templates/: Contains test templates organized by language and test type. Each template provides a working example of MCP client/server implementation for specific testing scenarios.
matrix/driver/: Core automation scripts that:
- Extract SDK information from git repositories
- Generate compatibility matrices
- Create docker-compose configurations
- Orchestrate cross-language testing
matrix/templates/*/e2e/: End-to-end test implementations demonstrating full client-server communication using the MCP protocol.
How to Run E2E Tests
Prerequisites
- Python 3.8+ with pip
- Node.js 18+ with npm
- Docker (for containerized testing)
Quick Start: Python Client β TypeScript Server
-
Install Python Dependencies
cd mcpbench/matrix/templates/python/server pip install -r requirements.txt -
Start the TypeScript Server
cd mcpbench/matrix/templates/typescript/server/e2e npm install npm run devThe server will start on
http://localhost:8000 -
Run the Python Client Test
cd mcpbench/matrix/templates/python/client/e2e python3 test_connection.py
Expected Output
You should see:
- Successful connection establishment
- Tool discovery and listing
- Tool invocation and response verification
- Clean session termination
Testing Other Language Combinations
Similar patterns can be followed for other language combinations:
- Python Client β Rust Server
- TypeScript Client β Python Server
- Rust Client β TypeScript Server
Each combination will have its own template in the matrix/templates/ directory.
Roadmap
Milestone M1 - Matrix Expansion
- Goal: Complete NΓN compatibility matrix for Python, TypeScript, and Rust
- Deliverables:
- All client-server combinations working
- Automated matrix testing
- Performance benchmarking
- Protocol compliance validation
Milestone M2 - Advanced Testing
- Goal: Comprehensive test coverage and edge case handling
- Deliverables:
- Authentication testing
- Error handling scenarios
- Resource management testing
- Notification and streaming tests
- Load testing and stress testing
Milestone M3 - Ecosystem Integration
- Goal: Integration with CI/CD and developer workflows
- Deliverables:
- GitHub Actions integration
- Automated compatibility reports
- SDK version compatibility tracking
- Performance regression detection
Milestone M4 - Extended Language Support
- Goal: Support for additional language SDKs
- Deliverables:
- Go SDK support
- Java SDK support
- C# SDK support
- Community SDK integration
Milestone M5 - Production Readiness
- Goal: Enterprise-grade compatibility testing
- Deliverables:
- Comprehensive documentation
- Performance SLAs
- Security testing
- Compliance validation
Contributing
We welcome contributions from the MCP community! Here's how you can help:
Getting Started
- Fork the repository
- Create a feature branch:
git checkout -b feature/your-feature-name - Make your changes
- Add tests for new functionality
- Update documentation as needed
- Submit a pull request
Contribution Areas
- New Language SDK Support: Add templates and tests for additional MCP SDKs
- Test Improvements: Enhance existing tests or add new test scenarios
- Documentation: Improve guides, examples, and API documentation
- Automation: Enhance the testing framework and CI/CD integration
- Performance: Optimize test execution and add performance benchmarks
Development Guidelines
- Code Style: Follow the existing code style for each language
- Testing: Ensure all new features include appropriate tests
- Documentation: Update relevant documentation for new features
- Compatibility: Verify that changes don't break existing functionality
Reporting Issues
- Use GitHub Issues to report bugs or request features
- Include detailed reproduction steps
- Provide relevant logs and error messages
- Specify the affected language combinations
Community
- Join our discussions on GitHub Discussions
- Participate in MCP community events
- Share your use cases and requirements
- Help other contributors
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgments
- Model Context Protocol team for the specification and official SDKs
- The MCP community for feedback and contributions
- Contributors who have helped build and test this framework
MCPBench - Ensuring MCP compatibility across all languages and implementations.
