Skip to main content
Glama
NimbleBrainInc

MCP Echo Service

Echo MCP Server

mpak NimbleBrain Discord License: MIT

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/echo

Claude Code

claude mcp add echo -- mpak run @nimblebraininc/echo

Claude 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

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_with_delay

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_json

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"
}

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.py

The server supports HTTP transport with:

  • Health check: GET /health

  • MCP 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-e2e

The tests:

  1. Vendor dependencies for the Docker container's Linux architecture

  2. Build a .mcpb bundle with mcpb pack

  3. Serve the bundle over HTTP

  4. Start a nimbletools/mcpb-python container that downloads and runs the bundle

  5. Verify the /health endpoint, 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 tools
echo_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

ParametersJSON Schema
NameRequiredDescriptionDefault
dataYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
analysisYesAnalysis of the data structure
timestampYesISO 8601 timestamp of the operation
echoed_dataYesThe echoed JSON data
original_dataYesThe original JSON data sent

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
messageYes
uppercaseNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
timestampYesISO 8601 timestamp of the echo operation
echoed_messageYesThe echoed message (possibly transformed)
message_lengthYesLength of the original message
original_messageYesThe original message sent
uppercase_appliedYesWhether uppercase transformation was applied

TDQS

A4.6/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
messageYes
delay_secondsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
end_timeYesISO 8601 timestamp when delay ended
timestampYesISO 8601 timestamp of the operation
start_timeYesISO 8601 timestamp when delay started
actual_delayYesActual delay experienced in seconds
echoed_messageYesThe echoed message
requested_delayYesRequested delay in seconds
original_messageYesThe original message sent

TDQS

A4.3/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

  1. 3 tool updatesv0.1.8
    • Addedecho_json
    • Addedecho_message
    • Addedecho_with_delay
  2. 3 tool updatesv0.1.7
    • Removedecho_json
    • Removedecho_message
    • Removedecho_with_delay
  3. 3 tool updatesv0.1.5
    • First observedecho_json
    • First observedecho_message
    • First observedecho_with_delay

TDQS

A4/5.0
Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness5/5

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

ActivitySlowing
ResponsivenessSyncing

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

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    A 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
    -
  • F
    license
    Not graded
    quality
    C
    maintenance
    MCP server providing greeting and echo tools for testing and demonstration.
    -

Latest Blog Posts

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