MCP Echo Service
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 Echo Serviceecho back 'Hello, world!' in uppercase"
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.
Echo MCP Server
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
Install with mpak:
mpak install @nimblebraininc/echoClaude Code
claude mcp add echo -- mpak run @nimblebraininc/echoClaude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"echo": {
"command": "mpak",
"args": ["run", "@nimblebraininc/echo"]
}
}
}See the mpak registry page for full install options.
Related MCP server: mcpv3e
Tools
echo_message
Echo back a message with optional uppercase formatting.
Parameter | Type | Required | Description |
|
| Yes | The message to echo back |
|
| No | Convert the message to uppercase (default: |
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_with_delay
Echo back a message after a simulated delay. Useful for testing timeout handling and async behavior.
Parameter | Type | Required | Description |
|
| Yes | The message to echo back |
|
| No | Delay in seconds, max 5.0 (default: |
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_json
Echo back structured JSON data with validation and analysis.
Parameter | Type | Required | Description |
|
| 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"
}Quick Start
Local Development
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 /healthMCP endpoint:
POST /mcp
Development
# 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 .E2E Tests
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 packServe the bundle over HTTP
Start a
nimbletools/mcpb-pythoncontainer that downloads and runs the bundleVerify the
/healthendpoint, MCP tool listing, and tool invocation via streamable HTTP
About
Echo MCP Server is published on the mpak registry and built by NimbleBrain. mpak is an open registry for Model Context Protocol servers.
License
MIT
Available Tools
3 toolsecho_jsonB
Echo back structured JSON data with validation and analysis.
Args: data: The JSON data to echo back ctx: MCP context
Returns: Echo response with data analysis
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| analysis | Yes | Analysis of the data structure |
| timestamp | Yes | ISO 8601 timestamp of the operation |
| echoed_data | Yes | The echoed JSON data |
| original_data | Yes | The original JSON data sent |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must disclose behavioral traits. It mentions validation and analysis but does not specify what those entail, nor does it state whether the tool is read-only or has side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief with a single sentence and an Args/Returns section. It is front-loaded with the primary purpose, though the Args section adds minimal value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple single-parameter tool and the existence of an output schema, the description is adequate but lacks details on validation/analysis specifics. It does not explain the output format beyond 'Echo response with data analysis.'
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, yet the description only restates the parameter name and type from the schema ('The JSON data to echo back'). It adds no additional semantic detail about structure or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it echoes back structured JSON data with validation and analysis. It distinguishes itself from sibling tools 'echo_message' and 'echo_with_delay' by focusing on JSON handling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description does not mention context, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
echo_messageA
Echo back a message with optional formatting.
Args: message: The message to echo back uppercase: Whether to convert the message to uppercase ctx: MCP context
Returns: Complete echo response with metadata
| Name | Required | Description | Default |
|---|---|---|---|
| message | Yes | ||
| uppercase | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| timestamp | Yes | ISO 8601 timestamp of the echo operation |
| echoed_message | Yes | The echoed message (possibly transformed) |
| message_length | Yes | Length of the original message |
| original_message | Yes | The original message sent |
| uppercase_applied | Yes | Whether uppercase transformation was applied |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must disclose traits. It states the tool echoes a message with optional formatting and returns metadata, which is sufficient for a simple, side-effect-free operation. However, it does not explicitly confirm idempotency or lack of mutations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: a one-line summary, followed by Args and Returns sections. Every sentence provides essential information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool, the description covers purpose, parameters, and return value adequately. The presence of an output schema (not shown but indicated) further reduces the need for extensive description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description compensates fully by explaining each parameter: 'message' as the content to echo, 'uppercase' as a boolean toggle for case conversion. This adds meaning beyond the schema types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('echo back') and identifies the resource ('a message') with optional formatting. Siblings 'echo_json' and 'echo_with_delay' are clearly different, as this tool handles plain text echoing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool versus siblings, but the purpose and sibling names imply use cases: plain text vs JSON or delayed echoing. An explicit note would improve clarity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
echo_with_delayA
Echo back a message after a simulated delay.
Args: message: The message to echo back delay_seconds: Delay duration in seconds (max 5.0 seconds) ctx: MCP context
Returns: Echo response with timing information
| Name | Required | Description | Default |
|---|---|---|---|
| message | Yes | ||
| delay_seconds | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| end_time | Yes | ISO 8601 timestamp when delay ended |
| timestamp | Yes | ISO 8601 timestamp of the operation |
| start_time | Yes | ISO 8601 timestamp when delay started |
| actual_delay | Yes | Actual delay experienced in seconds |
| echoed_message | Yes | The echoed message |
| requested_delay | Yes | Requested delay in seconds |
| original_message | Yes | The original message sent |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the simulated delay, max duration (5 seconds), and return of timing information. This is transparent for a simple tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured with clear sections (Args, Returns). Every sentence serves a purpose with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and presence of an output schema, the description covers input parameters, behavior, and return value adequately. It is complete for the task.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must add meaning. It clarifies the delay_seconds max (5.0) and that message is echoed. It adds value beyond the bare schema, though more detail on constraints would improve.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: echoing a message after a delay. It implicitly distinguishes from siblings like echo_json and echo_message, which likely have different behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use (when a delayed echo is needed) but does not provide explicit when-to-use or when-not-to-use guidance compared to alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
3 tool updates
v0.1.8- Added
echo_json - Added
echo_message - Added
echo_with_delay
3 tool updates
v0.1.7- Removed
echo_json - Removed
echo_message - Removed
echo_with_delay
3 tool updates
v0.1.5- First observed
echo_json - First observed
echo_message - First observed
echo_with_delay
TDQS
Each tool has a clearly distinct purpose: echo_json handles structured JSON with analysis, echo_message handles plain text with optional formatting, and echo_with_delay adds a timing component. There is no ambiguity or overlap between the tools.
All tool names follow a consistent 'echo_' prefix with snake_case, and each name clearly indicates its function (json, message, with_delay). The pattern is predictable and uniform.
With 3 tools, the server is well-scoped for an echo service. Each tool provides a distinct mode of echoing, covering the basic needs without being overly numerous or sparse.
The tool surface covers the core use cases for an echo service: plain text, JSON, and delayed echoing. There are no obvious missing operations given the server's simple purpose.
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 Connectors
Scans remote MCP servers for protocol, security, and TLS issues; exposes scan tools via MCP.
MCP server to assist with JxBrowser development.
Remote MCP server: 10 developer utilities (base64, JWT, DNS, UUID, URL, JSON, UA, IP lookup).
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceA simple demonstration MCP server that provides an echo tool and resource for learning how to build MCP servers. Serves as a starting point and template for creating custom MCP server implementations.1-
- FlicenseNot gradedqualityCmaintenanceMCP server providing greeting and echo tools for testing and demonstration.-
- AlicenseCqualityDmaintenanceProvides a framework for running multiple MCP servers using FastAPI, stdio, and streamable-http transports, with an echo tool for testing and integration with MCP Inspector.14MIT
- AlicenseAqualityBmaintenanceAn MCP server that provides echo resource, tool, and prompt functionality for testing and demonstration.9191MIT
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/NimbleBrainInc/mcp-echo'
If you have feedback or need assistance with the MCP directory API, please join our Discord server