A playground repository demonstrating MCP (Model Context Protocol) servers with multiple examples including agent tools and simple calculator servers
This MCP server has severe definition quality issues. The server defines 4 tools, but 3 are duplicates named 'add' with inconsistent descriptions and partially missing documentation. Tool naming violates the single-responsibility principle. Descriptions are present but trivial (under 50 chars for most), lacking context about WHEN to use each tool or what the expected behavior is. Input schemas are present and properly typed (integer parameters with descriptions), but output schemas are completely undocumented. No error handling guidance. The duplicate 'add' tools suggest poor tooling or incomplete refactoring. Critical: the codebase shows tool definitions across multiple files (simple_seo_client.py, simple_seo_server.py, mcp_server.py) with no clear distinction in functionality, making it impossible for an LLM to choose between them intelligently.
두 숫자를 더해서 반환
두 숫자를 더합니다.
첫 번째 숫자에서 두 번째 숫자를 뺍니다.
Duplicate tool names across multiple servers. Three separate 'add' tools exist with identical or near-identical signatures in mcp_agent/mcp_server.py, simple_mcp/simple_seo_server.py, and simple_mcp/simple_stdio_server.py. LLMs cannot distinguish between them; when multiple tools have the same name, the client will select arbitrarily or fail.
Tool descriptions are trivial and lack context. Examples: '두 숫자를 더합니다.' (10 chars, Korean-only), '첫 번째 숫자에서 두 번째 숫자를 뺍니다.' (20 chars). Descriptions are below the 50-char minimum and do not explain WHEN to use each tool, what the return value means, or how to interpret errors.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 38 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 34 | - | v1 |
No output schema documentation. None of the tools document what they return. For 'add' and 'subtract', it is obvious (an integer), but the server does not formally declare this. This violates the pattern requirement that tools must document output types so LLMs know what fields to expect for downstream composition.
No error handling or recovery guidance. If an operation fails (e.g., integer overflow, invalid input), the tools do not specify what error will be returned or how the agent should respond.
One tool lacks a visible description. The fourth 'add' tool in simple_stdio_server.py has no docstring visible in the provided code snippet, the function definition is incomplete.