A Model Context Protocol (MCP) server that echoes messages, delays, and structured JSON data. Useful for testing MCP client integrations, verifying protocol connectivity, and validating tool call behavior.
View on mpak registry | Built by NimbleBrain
Install with mpak:
mpak install @nimblebraininc/echoclaude mcp add echo -- mpak run @nimblebraininc/echoAdd to your claude_desktop_config.json:
{
"mcpServers": {
"echo": {
"command": "mpak",
"args": ["run", "@nimblebraininc/echo"]
}
}
}See the mpak registry page for full install options.
Echo back a message with optional uppercase formatting.
| Parameter | Type | Required | Description |
|---|---|---|---|
message |
string |
Yes | The message to echo back |
uppercase |
boolean |
No | Convert the message to uppercase (default: false) |
Example call:
{
"name": "echo_message",
"arguments": {
"message": "Hello Echo!",
"uppercase": true
}
}Example response:
{
"original_message": "Hello Echo!",
"echoed_message": "HELLO ECHO!",
"uppercase_applied": true,
"message_length": 11,
"timestamp": "2025-01-15T12:00:00+00:00"
}Echo back a message after a simulated delay. Useful for testing timeout handling and async behavior.
| Parameter | Type | Required | Description |
|---|---|---|---|
message |
string |
Yes | The message to echo back |
delay_seconds |
number |
No | Delay in seconds, max 5.0 (default: 1.0) |
Example call:
{
"name": "echo_with_delay",
"arguments": {
"message": "Delayed echo",
"delay_seconds": 2.0
}
}Example response:
{
"original_message": "Delayed echo",
"echoed_message": "Delayed echo",
"requested_delay": 2.0,
"actual_delay": 2.001,
"start_time": "2025-01-15T12:00:00+00:00",
"end_time": "2025-01-15T12:00:02+00:00",
"timestamp": "2025-01-15T12:00:02+00:00"
}Echo back structured JSON data with validation and analysis.
| Parameter | Type | Required | Description |
|---|---|---|---|
data |
object |
Yes | JSON object to echo back |
Example call:
{
"name": "echo_json",
"arguments": {
"data": {
"name": "test",
"count": 42,
"active": true
}
}
}Example response:
{
"original_data": {"name": "test", "count": 42, "active": true},
"echoed_data": {"name": "test", "count": 42, "active": true},
"analysis": {
"key_count": 3,
"keys": ["name", "count", "active"],
"data_types": {"name": "str", "count": "int", "active": "bool"},
"total_size": 42
},
"timestamp": "2025-01-15T12:00:00+00:00"
}git clone https://github.com/NimbleBrainInc/mcp-echo.git
cd mcp-echo
# Install dependencies
uv sync
# Run the server (stdio mode)
uv run python -m mcp_echo.server
# Or run via FastMCP
uv run fastmcp run src/mcp_echo/server.pyThe server supports HTTP transport with:
- Health check:
GET /health - MCP endpoint:
POST /mcp
# Install with dev dependencies
uv sync --group dev
# Run unit tests
make test
# Run with coverage
make test-cov
# Run all checks (format, lint, typecheck, unit tests)
make check
# Format
uv run ruff format .
# Lint
uv run ruff check .End-to-end tests validate the full MCPB bundle lifecycle: building the bundle, deploying it into a Docker container, and calling tools over HTTP.
Prerequisites: Docker running, mcpb CLI installed (npm install -g @anthropic-ai/mcpb)
make test-e2eThe tests:
- Vendor dependencies for the Docker container's Linux architecture
- Build a
.mcpbbundle withmcpb pack - Serve the bundle over HTTP
- Start a
nimbletools/mcpb-pythoncontainer that downloads and runs the bundle - Verify the
/healthendpoint, MCP tool listing, and tool invocation via streamable HTTP
Echo MCP Server is published on the mpak registry and built by NimbleBrain. mpak is an open registry for Model Context Protocol servers.
MIT