This MCP server enables AI assistants to test and interact with other MCP servers through comprehensive testing and debugging tools.
Connection Management: Connect to MCP servers via STDIO (file paths) or HTTP/HTTPS URLs with auto-detect protocols, check connection status with detailed statistics and server information, and disconnect safely from active connections.
Tool Testing: List all available tools with complete input schemas and execute tools with custom arguments, receiving detailed results with timing metadata.
Resource Testing: List all resources with URIs, names, descriptions, and MIME types, then read both text and binary content by URI.
Prompt Testing: List all prompts with argument schemas, get rendered prompts with custom arguments, and execute prompts end-to-end with actual LLM inference supporting template variable substitution, custom LLM configuration (URL, model, API key, temperature, max tokens), and automatic JSON response parsing.
Utility Functions: Perform health checks, test connectivity with ping/pong, echo messages for basic functionality testing, and add numbers for simple calculations.
Key Use Cases: Test MCP server implementations during development, debug tool execution and resource access, validate prompt templates with real LLM responses, monitor connection health and usage statistics, and discover capabilities of unknown MCP servers.
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 MCPconnect to the weather server and list its available tools"
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.
mcp-test-mcp
An MCP server that helps AI assistants test other MCP servers. It provides tools to connect to target MCP servers, discover their capabilities, execute tools, read resources, and test prompts—all through proper MCP protocol communication.
Features
Connection Management: Connect to any MCP server (STDIO or HTTP transport), auto-detect protocols, track connection state
Tool Testing: List all tools with complete input schemas, call tools with arbitrary arguments, get detailed execution results
Resource Testing: List all resources with metadata, read text and binary content
Prompt Testing: List all prompts with argument schemas, get rendered prompts with custom arguments
LLM Integration: Execute prompts end-to-end with actual LLM inference, supports template variables and JSON extraction
Installation
Prerequisites: Node.js 16+ and Python 3.11+
Choose your AI coding tool:
Config file location:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%/Claude/claude_desktop_config.json
Configuration:
{
"mcpServers": {
"mcp-test-mcp": {
"command": "npx",
"args": ["-y", "mcp-test-mcp"]
}
}
}Or use Claude Code CLI:
claude mcp add mcp-test-mcp -- npx -y mcp-test-mcpConfig file location:
Global:
~/.cursor/mcp.jsonProject:
.cursor/mcp.json
Or access via: File → Preferences → Cursor Settings → MCP
Configuration:
{
"mcpServers": {
"mcp-test-mcp": {
"command": "npx",
"args": ["-y", "mcp-test-mcp"]
}
}
}Config file location: ~/.codeium/windsurf/mcp_config.json
Or access via: Windsurf Settings → Cascade → Plugins
Configuration:
{
"mcpServers": {
"mcp-test-mcp": {
"command": "npx",
"args": ["-y", "mcp-test-mcp"]
}
}
}Requires VS Code 1.99+ with chat.agent.enabled setting enabled.
Config file location:
Workspace:
.vscode/mcp.jsonGlobal: Run
MCP: Open User Configurationfrom Command Palette
Configuration:
{
"servers": {
"mcpTestMcp": {
"command": "npx",
"args": ["-y", "mcp-test-mcp"]
}
}
}Note: VS Code uses servers instead of mcpServers and recommends camelCase naming.
Config file location: ~/.codex/config.toml
Add via CLI:
codex mcp add mcp-test-mcp -- npx -y mcp-test-mcpOr add manually to config.toml:
[mcp_servers.mcp-test-mcp]
command = "npx"
args = ["-y", "mcp-test-mcp"]To use the execute_prompt_with_llm tool, add environment variables to your configuration:
JSON format (Claude, Cursor, Windsurf, VS Code):
{
"mcpServers": {
"mcp-test-mcp": {
"command": "npx",
"args": ["-y", "mcp-test-mcp"],
"env": {
"LLM_URL": "https://your-llm-endpoint.com/v1",
"LLM_MODEL_NAME": "your-model-name",
"LLM_API_KEY": "your-api-key"
}
}
}
}TOML format (Codex):
[mcp_servers.mcp-test-mcp]
command = "npx"
args = ["-y", "mcp-test-mcp"]
[mcp_servers.mcp-test-mcp.env]
LLM_URL = "https://your-llm-endpoint.com/v1"
LLM_MODEL_NAME = "your-model-name"
LLM_API_KEY = "your-api-key"# Create virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install from PyPI
pip install mcp-test-mcp
# Or install from source
git clone https://github.com/example/mcp-test-mcp
cd mcp-test-mcp
pip install -e ".[dev]"Command Line Options
The server supports multiple transports for different deployment scenarios:
# Default: stdio transport (for Claude Desktop/Code)
mcp-test-mcp
# Explicit stdio
mcp-test-mcp --transport stdio
# HTTP transport for web deployments
mcp-test-mcp --transport streamable-http
mcp-test-mcp --transport streamable-http --host 0.0.0.0 --port 8080
# Legacy SSE transport (for backward compatibility)
mcp-test-mcp --transport sse --port 9000Options:
Flag | Short | Description | Default |
|
| Transport type: |
|
|
| Host to bind (HTTP transports only) |
|
|
| Port to bind (HTTP transports only) |
|
Using with npx:
# HTTP server via npx
npx -y mcp-test-mcp --transport streamable-http --port 8080Quick Start
Once configured, test MCP servers through natural conversation:
Connect: "Connect to my MCP server at /path/to/server"
Connect with auth: "Connect to https://api.example.com/mcp with headers Authorization: Bearer my-token"
Discover: "What tools does it have?"
Test: "Call the echo tool with message 'Hello'"
Status: "What's the connection status?"
Disconnect: "Disconnect from the server"
Available Tools
Connection Management
connect_to_server: Connect to a target MCP server (stdio or HTTP). Supports optional
headersparameter for authenticated HTTP connections (e.g.,{"Authorization": "Bearer token"}). Headers are ignored for stdio transport.disconnect: Close active connection
get_connection_status: Check connection state and statistics
Tool Testing
list_tools: Get all tools with complete schemas
call_tool: Execute a tool with arguments
Resource Testing
list_resources: Get all resources with metadata
read_resource: Read resource content by URI
Prompt Testing
list_prompts: Get all prompts with argument schemas
get_prompt: Get rendered prompt with arguments
execute_prompt_with_llm: Execute prompts with actual LLM inference
Utility
health_check: Verify server is running
ping: Test connectivity (returns "pong")
echo: Echo a message back
add: Add two numbers
Environment Variables
Transport Configuration
These environment variables configure the server transport. CLI arguments take precedence.
Variable | Description | Default |
| Transport type: |
|
| Host to bind (HTTP transports only) |
|
| Port to bind (HTTP transports only) |
|
Priority: CLI argument > environment variable > default
Core
MCP_TEST_LOG_LEVEL: Logging level (DEBUG, INFO, WARNING, ERROR). Default: INFO
MCP_TEST_CONNECT_TIMEOUT: Connection timeout in seconds. Default: 30.0
LLM Integration (for execute_prompt_with_llm)
LLM_URL: LLM API endpoint URL
LLM_MODEL_NAME: Model name
LLM_API_KEY: API key
Development
# Install dev dependencies
pip install -e ".[dev]"
# Run tests
pytest
# Run with coverage
pytest --cov=mcp_test_mcp --cov-report=html
# Format and lint
black src/ tests/
ruff check src/ tests/
mypy src/Container Deployment
For deploying mcp-test-mcp in containers (e.g., OpenShift, Kubernetes):
FROM registry.redhat.io/ubi9/python-311:latest
WORKDIR /app
# Install mcp-test-mcp
RUN pip install --no-cache-dir mcp-test-mcp
# Expose HTTP port
EXPOSE 8000
# Run with streamable-http transport
CMD ["mcp-test-mcp", "--transport", "streamable-http", "--host", "0.0.0.0", "--port", "8000"]Or use environment variables:
# kubernetes deployment snippet
env:
- name: MCP_TEST_TRANSPORT
value: "streamable-http"
- name: MCP_TEST_HOST
value: "0.0.0.0"
- name: MCP_TEST_PORT
value: "8000"Documentation
Testing Guide - Complete guide with LLM integration examples
License
MIT License - see LICENSE for details.