MCP Test Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP Test ServerAdd 10 and 20"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Final release. Maintained releases of mcp-testkit ended with the Agentspan → Orkes Conductor merge (August 17, 2026). This repository is archived read-only; pip install mcp-testkit keeps working and the server remains a usable generic MCP test harness as-is.
MCP Test Server
A Python MCP server with 65 deterministic tools across 8 groups, supporting stdio, HTTP, and REST API transports. Built for consistent, repeatable MCP protocol testing.
Install
pip install mcp-testkitOr from source:
git clone https://github.com/agentspan-ai/mcp-testkit.git
cd mcp-testkit
pip install -e .Related MCP server: mcp-test-server
Quick Start
# stdio (default)
mcp-testkit
# SSE + REST API on port 3001
mcp-testkit --transport http
# With bearer token authentication
mcp-testkit --transport http --auth super_secret_key
# Custom host/port
mcp-testkit --transport http --host 0.0.0.0 --port 8080Transports
Transport | Command | Endpoints |
stdio |
| MCP JSON-RPC over stdin/stdout |
HTTP |
| MCP at |
Authentication
Pass --auth <key> to require a Bearer token on all requests (both MCP SSE and REST):
mcp-testkit --transport http --auth my_secret
# Clients must include:
# Authorization: Bearer my_secretTools (65 total)
All tools are deterministic — same input always produces same output. No randomness, no current time, no external state.
Math (8 tools)
Tool | Params | Description |
|
| Add two numbers |
|
| Subtract b from a |
|
| Multiply two numbers |
|
| Divide (errors on zero) |
|
| Remainder (errors on zero) |
|
| Exponentiation |
|
| n! (errors on negative) |
|
| Nth Fibonacci number (0-indexed) |
String (8 tools)
Tool | Params | Description |
|
| Reverse a string |
|
| Convert to uppercase |
|
| Convert to lowercase |
|
| Character count |
|
| Count occurrences |
|
| Replace all occurrences |
|
| Split by delimiter |
|
| Join list with delimiter |
Collection (8 tools)
Tool | Params | Description |
|
| Sort a list |
|
| Recursively flatten nested lists |
|
| Merge dicts (b wins on conflict) |
|
| Filter numbers > threshold |
|
| Remove duplicates (order preserved) |
|
| Group objects by key |
|
| Zip into list of pairs |
|
| Split into chunks |
Encoding (8 tools)
Tool | Params | Description |
|
| Base64 encode |
|
| Base64 decode |
|
| URL-encode |
|
| URL-decode |
|
| Hex encode |
|
| Hex decode |
|
| MD5 hash |
|
| SHA-256 hash |
DateTime (8 tools)
All operate on provided dates — never use current time.
Tool | Params | Description |
|
| Parse ISO date to components |
|
| Format date to string |
|
| Add/subtract days |
|
| Days between two dates |
|
| Weekday name |
|
| Leap year check |
|
| Days in month |
|
| ISO week number |
Validation (8 tools)
All return {valid: bool, reason: string}.
Tool | Params | Description |
|
| Email format check |
|
| URL format check |
|
| IPv4 address check |
|
| IPv6 address check |
|
| UUID format check |
|
| Valid JSON check |
|
| Palindrome check |
|
| Regex match check |
Conversion (8 tools)
Tool | Params | Description |
|
| C to F |
|
| F to C |
|
| km to miles |
|
| miles to km |
|
| Bytes to human string |
|
| RGB to hex color |
|
| Hex to RGB |
|
| Decimal to binary string |
Echo / Protocol Testing (8 tools)
Tool | Params | Description |
|
| Echo input unchanged |
|
| Always raises ToolError |
|
| Deterministic ~N KB text |
|
| Nested JSON to depth N |
| — | All JSON types |
| — | Empty string |
|
| Multiple TextContent blocks |
|
| Complex schema test |
Standalone
Tool | Params | Description |
|
| Fixed response: 77°F, sunny, always |
REST API
When running with --transport http, all tools are also available as HTTP endpoints:
# GET endpoints (math, conversion, some echo, weather)
curl "http://localhost:3001/api/math/add?a=3&b=5"
# {"result": 8.0}
curl "http://localhost:3001/api/weather?city=NYC"
# {"city":"NYC","temperature_f":77,...}
# POST endpoints (string, collection, encoding, datetime, validation, some echo)
curl -X POST "http://localhost:3001/api/string/reverse" \
-H "Content-Type: application/json" \
-d '{"text":"hello"}'
# {"result": "olleh"}
curl -X POST "http://localhost:3001/api/encoding/sha256" \
-H "Content-Type: application/json" \
-d '{"text":"hello"}'
# {"result": "2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824"}OpenAPI spec at GET /api-docs (OpenAPI 3.0.3).
With auth enabled, include Authorization: Bearer <key> on all requests.
Testing
python3 -m pytest tests/ -v389 tests covering all tools, REST API endpoints, auth, OpenAPI spec, and integration.
Project Structure
mcp-testkit/
├── pyproject.toml # Package config, deps, CLI entry point
├── mcp_test_server/
│ ├── __init__.py # Package version
│ ├── server.py # Entry point — MCP server + REST API + auth
│ ├── api.py # REST API routes + OpenAPI spec generation
│ └── tools/
│ ├── __init__.py # Tool group registry
│ ├── math_tools.py
│ ├── string_tools.py
│ ├── collection_tools.py
│ ├── encoding_tools.py
│ ├── datetime_tools.py
│ ├── validation_tools.py
│ ├── conversion_tools.py
│ └── echo_tools.py # Includes get_weather
└── tests/
├── test_math_tools.py
├── test_string_tools.py
├── test_collection_tools.py
├── test_encoding_tools.py
├── test_datetime_tools.py
├── test_validation_tools.py
├── test_conversion_tools.py
├── test_echo_tools.py
├── test_api.py
└── test_integration.pyThis server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA test server implementing all features of the MCP protocol, including prompts, tools, resources, and sampling, designed for testing MCP clients rather than practical applications.MIT
- AlicenseNot gradedqualityDmaintenanceA lightweight MCP test server for verifying client connectivity, providing tools, resources, and prompts for integration.12ISC
- FlicenseNot gradedqualityDmaintenanceA standardized MCP server designed for testing integration with the Des MCP Server Testing API. It allows AI agents to interact with testing endpoints using tools implemented via the Model Context Protocol.
Related MCP Connectors
MEOK MCP Test MCP — golden-file + schema-drift + tool-failure tests for any MCP server. Drop-in
Conformance checker for MCP servers. Free, no key, verdicts recomputable and re-measured daily.
MCP server for AI access to SmartBear tools, including BugSnag, Reflect, Swagger, PactFlow, QTM4J.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/agentspan-ai/mcp-testkit'
If you have feedback or need assistance with the MCP directory API, please join our Discord server