Test harness and conformance checks for MCP servers, built on the official dart_mcp client
mcp_probe is a test fixture and conformance harness, not a production tool server. Its 9 tools are deliberately minimal and malformed to exercise edge cases (schemaless tools, bad roots, pagination). Most tools lack substantive descriptions (under 20 chars), and several have no input schema or intentionally broken schemas. Tool names are generic (echo, noop, fail_tool) without action verbs. This is appropriate for a testing framework but fails production quality standards.
Echoes back the given text.
Always reports an in-band error.
Does nothing.
Returns the value of the MCP_PROBE_ENV variable.
Rejects calls without a "text" argument at the protocol level.
First page tool.
Two tools (no_schema, bad_root) have no input schema or intentionally malformed schemas (root type is 'string' instead of 'object'). This violates the MCP spec requirement that all tools must have object-typed input schemas.
All 9 tools have descriptions under 20 characters (most are 1-2 words like 'Echoes back', 'Does nothing'). LLMs cannot determine when/why to select these tools.
Tool names lack action verbs and are generic (echo, noop, fail_tool, tool_a, tool_b). These names do not convey intent.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 35 | 2026-07-28+ | v2 |
Second page tool.
No parameter descriptions provided for any tool. The 'text' parameter in echo and strict_args has no description explaining what text should contain or its constraints.
No output schemas documented. Tools return TextContent or CallToolResult but do not specify what fields the LLM should expect in responses, violating pattern:tool and pattern:response-shaper.