benchmark s
MCP server from thiagomendes/benchmark-mcp-servers
claude mcp add --transport stdio thiagomendes-benchmark-mcp-servers docker run -i image-name
How to use
This MCP server benchmark repository provides a multi-language comparison of MCP servers implemented in Java, Go, Node.js, and Python. It includes a standardized benchmark suite that exercises four core MCP operations: a CPU-intensive Fibonacci calculation, an I/O-bound external data fetch, a JSON data processing step, and a simulated database query with controlled latency. The suite runs across four services (Java, Go, Node.js, Python) to measure latency, throughput, resource usage, and reliability under load. To use the benchmarks, first ensure you have Docker and Docker Compose installed, then start the full suite and run the load tests against each server as needed.
The four embedded tools are designed to be fair and comparable across implementations:
- calculate_fibonacci: a recursive CPU-bound task to stress the compute path.
- fetch_external_data: an HTTP GET against a controllable endpoint to stress I/O.
- process_json_data: a data transformation step to exercise payload handling.
- simulate_database_query: a latency-controlled operation to mimic DB access. You can run the entire benchmark with the provided orchestration, or target a single server to compare performance in isolation.
How to install
Prerequisites:
- Docker and Docker Compose installed on your machine
- Optional: k6 for local load testing (not required if using the containerized runner)
-
Clone the repository and navigate to the project root: git clone <repository-url> cd benchmark-mcp-servers
-
Build and start all server images using Docker Compose: docker-compose build docker-compose up -d
-
Validate that servers are up and listening: docker-compose ps
Expected ports (examples):
Java: 8080, Go: 8081, Python: 8082, Node.js: 8083
-
Run load tests (via containerized runner) or use k6 against a specific server:
Full automated benchmark (from repository benchmark directory):
cd benchmark ./run_benchmark.sh
Manual single-server test (example against Java server):
cd benchmark k6 run -e SERVER_URL=http://localhost:8080/mcp benchmark.js
-
Stop and clean up when finished: docker-compose down
Additional notes
Notes and tips:
- The benchmark targets four servers: Java, Go, Node.js, and Python, each implementing the same four tools for apples-to-apples comparison.
- Default server endpoints are exposed on localhost with ports assigned in the docker-compose file (adjustable in docker-compose.yml).
- If you need to re-run only a subset, refer to the benchmark directory scripts to execute targeted tests.
- When debugging, inspect container logs with docker-compose logs <service-name> or docker logs <container-id>.
- Ensure network access is not blocked for external HTTP fetch operations; you may provide mock endpoints within your local network if needed.
- The npm_package field is not required for this multi-language benchmark; the repository does not publish a single npm package for the entire suite.
Related MCP Servers
mcp-vegalite
MCP server from isaacwasserman/mcp-vegalite-server
github-chat
A Model Context Protocol (MCP) for analyzing and querying GitHub repositories using the GitHub Chat API.
nautex
MCP server for guiding Coding Agents via end-to-end requirements to implementation plan pipeline
pagerduty
PagerDuty's official local MCP (Model Context Protocol) server which provides tools to interact with your PagerDuty account directly from your MCP-enabled client.
futu-stock
mcp server for futuniuniu stock
mcp -boilerplate
Boilerplate using one of the 'better' ways to build MCP Servers. Written using FastMCP