A minimal MCP server implementation in Go demonstrating tools, resources, and prompts
Single tool 'add' has a basic description but critical gaps in parameter documentation. Parameter descriptions are null/missing (violates pattern:tool-description baseline of 100% A+ tools having param descriptions). No output schema documented. Tool naming is acceptable but minimal. No error handling guidance. STDIO transport caps overall potential.
Add two numbers
Parameter descriptions are null/missing for 'x' and 'y'. Rubric baseline: 100% of A+ tool params have descriptions. LLMs cannot infer that 'x' and 'y' are operands without explicit text.
No output schema documented. Tool returns text via mcp.NewToolResultText() but LLMs have no visibility into the response structure (e.g., is it a number string, formatted decimal, error message?). Rubric baseline: 100% of A+ tools have documented return types.
No error handling or recovery guidance. If addition fails or inputs are invalid, addToolHandler returns a generic error with no actionable next steps for the LLM. Rubric baseline: error responses must guide recovery.
STDIO-only transport. Not remotely accessible; cannot be used by hosted MCP clients.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 35 | 2026-07-28+ | v2 |
No numeric constraints on parameters. 'x' and 'y' accept any float64 but no min/max bounds documented. Rubric baseline: specify minimum and maximum for numeric parameters to prevent absurd values.