Python wrapper for mcp-server-tester-sse-http-stdio NPM package
Project description
MCP Server Tester - High-performance testing framework for MCP servers with SSE-HTTP-STDIO protocol support, Bearer token authorization, and declarative test scenarios
A high-performance tool for testing MCP servers with SSE-HTTP-STDIO protocol support, Bearer token authorization, and test scenario writing through configuration files without programming.
🚀 Available on All Platforms
👨💻 Author
Created by @ii_pomogator - AI Assistant Channel on Telegram
✨ Key Features
- 🔌 Full SSE-HTTP-STDIO protocol support for MCP servers
- 🔐 Bearer token authorization for secure testing
- 📝 Declarative tests - write scenarios in YAML without programming
- 🎯 Multiple assertion types - verify any aspects of responses
- 📊 Detailed reports on test execution
- 🐳 Docker support for isolated testing
- 🔄 CI/CD integration via GitHub Actions
📦 Installation
NPM (Node.js)
npm install -g mcp-server-tester-sse-http-stdio
PyPI (Python)
pip install mcp-server-tester
Docker
docker pull stgmt/mcp-server-tester
🚀 Quick Start
Using NPM
npx mcp-server-tester-sse-http-stdio test --test test.yaml --server-config config.json
Using Python
mcp-server-tester test --test test.yaml --server-config config.json
Using Docker
docker run -v $(pwd):/workspace stgmt/mcp-server-tester test --test /workspace/test.yaml
📝 Example Test Scenario
name: "MCP Server Basic Test"
description: "Testing basic MCP server functionality"
timeout: 30000
tests:
- name: "Initialize connection"
type: "initialize"
params:
protocolVersion: "1.0.0"
capabilities:
tools: true
expect:
status: "success"
capabilities:
tools: true
- name: "List available tools"
type: "tools/list"
expect:
status: "success"
tools:
- name: "echo"
description: "Echo tool"
- name: "Call echo tool"
type: "tools/call"
params:
name: "echo"
arguments:
message: "Hello, MCP!"
expect:
status: "success"
result:
message: "Hello, MCP!"
📋 Server Configuration
{
"mcpServers": {
"test-server": {
"command": "node",
"args": ["server.js"],
"env": {
"BEARER_TOKEN": "your-secret-token"
},
"transport": {
"type": "sse",
"config": {
"url": "http://localhost:3000/sse",
"headers": {
"Authorization": "Bearer your-secret-token"
}
}
}
}
}
}
🛠️ CLI Commands
Run Tests
mcp-server-tester test --test <test-file> --server-config <config-file> [options]
Options:
--server-name <name> Server name from configuration
--verbose Verbose output
--json-output Output results in JSON format
--timeout <ms> Test timeout (default: 30000)
Validate Configuration
mcp-server-tester validate --test <test-file>
List Available Server Tools
mcp-server-tester tools --server-config <config-file> --server-name <name>
🐳 Docker Support
Simple Run
docker run -v $(pwd):/workspace stgmt/mcp-server-tester \
test --test /workspace/test.yaml --server-config /workspace/config.json
Docker Compose
version: '3.8'
services:
mcp-tester:
image: stgmt/mcp-server-tester
volumes:
- ./tests:/workspace/tests
- ./config:/workspace/config
command: test --test /workspace/tests/test.yaml --server-config /workspace/config/server.json
Supported Platforms
| Platform | Architecture | Status |
|---|---|---|
| Linux | amd64 | ✅ |
| Linux | arm64 | ✅ |
| macOS | amd64 | ✅ |
| macOS | arm64 | ✅ |
| Windows | amd64 | ✅ |
🔄 CI/CD Integration
GitHub Actions
name: MCP Server Tests
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Run MCP Server Tests
run: |
docker run -v ${{ github.workspace }}:/workspace \
stgmt/mcp-server-tester test \
--test /workspace/tests/test.yaml \
--server-config /workspace/config.json
GitLab CI
mcp-tests:
image: stgmt/mcp-server-tester
script:
- mcp-server-tester test --test tests/test.yaml --server-config config.json
📊 Assertion Examples
Response Structure Validation
expect:
status: "success"
result:
type: "object"
properties:
message:
type: "string"
pattern: "^Hello.*"
count:
type: "number"
minimum: 0
Array Validation
expect:
tools:
type: "array"
minItems: 1
items:
type: "object"
required: ["name", "description"]
Conditional Validation
expect:
oneOf:
- status: "success"
result: { processed: true }
- status: "pending"
result: { queued: true }
🔧 Advanced Features
Environment Variables
tests:
- name: "Test with env variables"
env:
API_KEY: "${TEST_API_KEY}"
BASE_URL: "${TEST_BASE_URL:-http://localhost:3000}"
Sequential Tests with Dependencies
tests:
- name: "Create resource"
id: "create"
type: "tools/call"
params:
name: "create_resource"
capture:
resource_id: "$.result.id"
- name: "Get created resource"
depends_on: ["create"]
type: "tools/call"
params:
name: "get_resource"
arguments:
id: "${resource_id}"
Parallel Execution
parallel_groups:
- name: "Performance tests"
tests:
- name: "Test 1"
- name: "Test 2"
- name: "Test 3"
📚 Documentation
🤝 Contributing
We welcome contributions to the project! See CONTRIBUTING.md for details.
📄 License
MIT License - see LICENSE file.
🔗 Links
- GitHub: stgmt/mcp-server-tester-sse-http-stdio
- NPM: mcp-server-tester-sse-http-stdio
- PyPI: mcp-server-tester
- Docker Hub: stgmt/mcp-server-tester
💬 Support
Developed with ❤️ by @ii_pomogator
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mcp_server_tester-1.4.3.tar.gz.
File metadata
- Download URL: mcp_server_tester-1.4.3.tar.gz
- Upload date:
- Size: 17.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a02b4a56fada60e857c4ae5e12cde2a06cc5971da31fe6cf772bf29046880c56
|
|
| MD5 |
cb184595497c3a5732ebdbfe41451b44
|
|
| BLAKE2b-256 |
17dc7e0159b5e55284b705540d0298854427dc0f710713add692b2abd60a6d25
|
File details
Details for the file mcp_server_tester-1.4.3-py3-none-any.whl.
File metadata
- Download URL: mcp_server_tester-1.4.3-py3-none-any.whl
- Upload date:
- Size: 12.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
705b8ca95fcfabeb29dbb6c8117441e2d21cb856aebfe20f930ea04c83ada290
|
|
| MD5 |
cce914b5ea39f7412b9cd8c489a0f628
|
|
| BLAKE2b-256 |
5c48a97e19499a4ae94ad1da91fe069405a9e8b66c76424dc2995ca5ac09059a
|