This tool helps check if servers and clients from different MCP Python SDK versions are compatible with each other.
The MCP Compatibility Tester allows you to:
- Install multiple versions of the MCP SDK in isolated virtual environments
- Test client-server compatibility between different SDK versions
- Run compatibility tests across a matrix of versions
- Generate reports with test results
Installs a specific MCP SDK version in its own virtual environment.
./add_version.sh <mcp-version>
Example:
./add_version.sh 1.2.1
This creates a virtual environment in venvs/1.2.1/
with the specified MCP version installed.
Tests compatibility between a specific client version and server version.
./check_versions.sh <client-version> <server-version>
Example:
./check_versions.sh 1.3.0.rc1 1.2.1
This tests if a client using MCP 1.3.0.rc1 can successfully communicate with a server using MCP 1.2.1.
Runs compatibility tests for all combinations of the provided versions.
./check_matrix.sh <version1> [version2] [version3] ...
Example:
./check_matrix.sh 1.2.1 1.3.0.rc1
This will test all four combinations:
- Client 1.2.1 with Server 1.2.1
- Client 1.2.1 with Server 1.3.0.rc1
- Client 1.3.0.rc1 with Server 1.2.1
- Client 1.3.0.rc1 with Server 1.3.0.rc1
Results are saved in the results/
directory:
- Individual test logs are saved as
results/client_<version>_server_<version>.log
- A summary report is generated as
results/summary_<timestamp>.txt
The compatibility test:
- Initializes a session between client and server
- Lists available tools, resources, and prompts
- Calls example methods for each
- Reports success or failure
# Run the compatibility matrix test (this will automatically add the versions if not present)
./check_matrix.sh 1.2.1 1.3.0.rc1
# Check the results
cat results/summary_*.txt
This will show you which version combinations are compatible and which ones fail.