A Go-based MCP (Model Context Protocol) server and proxy system that manages multiple MCP executables and exposes their tools via HTTP or stdio
MCP-Net exhibits significant definition quality gaps across all 5 tools. Tool names lack action verbs and are inconsistently prefixed (server_info vs hello-mcp.hello vs calculator-mcp.*). Descriptions are minimal (10-30 chars) and do not explain WHAT the tool does beyond a surface glance. Most critically, input schemas for all tools are visible but parameter descriptions are either missing or trivial. The server_info tool has an empty input object {}; hello, add, multiply, and divide tools have proper parameter types but lack consistency in description depth. No output schemas are documented. Error handling is absent, there is no guidance on what happens if division by zero occurs, if names are empty, or what the response format is. The tools are READ_ONLY (safe) but composition is broken: there is no clear chain from discovery to action.
Add two numbers
Divide two numbers
Multiply two numbers
Say hello to someone
Get information about the MCP server
Tool names lack action verbs and are inconsistently namespaced. 'server_info' does not start with a verb; 'hello-mcp.hello' and 'calculator-mcp.*' use dot notation inconsistently. LLMs cannot reliably infer intent from 'hello' alone.
Descriptions are too short (10-30 characters) and do not explain when to use the tool, what it does, or what it returns. 'Say hello to someone' is vague, does it print, return a string, post to chat? Pattern requires 10 - 1024 chars with WHAT, WHEN, and return information.
No output schemas documented. LLMs cannot plan downstream calls or extract results. What does hello-mcp.hello return? A string? A JSON object with {greeting, name}? Undocumented outputs force LLMs to guess.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 37 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 33 | 2024-11-05+ | v1 |
No error handling or recovery guidance. calculator-mcp.divide has no mention of division by zero, invalid input types, or what error the LLM should expect and how to recover.
server_info has empty input schema {} but no output schema. Impossible to know what to expect. Input and output schemas both required.
Inconsistent naming convention: 'server_info' (snake_case, no verb), 'hello-mcp.hello' (dot notation, verb_noun), 'calculator-mcp.add' (dot notation, verb_noun). LLMs struggle with inconsistent patterns.