A Go-based Model Context Protocol (MCP) server implementation using mark3labs/mcp-go library with dependency injection via Uber Fx
Single tool 'hello_tool' has a basic description but critical gaps in schema documentation and parameter clarity. The input schema is visible in code (name: string, required) but lacks formal JSON Schema documentation in the tool definition. Description is minimal (18 chars) and does not explain when/why to use the tool or what it returns. No output schema is documented. The tool name lacks a clear action verb (should be 'greet_user' or 'send_greeting'). Error handling is minimal, the handler returns generic 'name must be a string' without recovery guidance.
Say hello to user
Tool name 'hello_tool' lacks action verb. Should be 'greet_user' or 'send_greeting' to clearly signal intent to LLM.
Description 'Say hello to user' is 18 characters, below 20-char minimum. Does not explain when to use, what it returns, or prerequisites.
Output schema not documented. Handler returns mcp.NewToolResultText() but LLM cannot infer return type or structure.
Parameter 'name' description 'Name of the person to greet' is generic. Should specify format, length constraints, and examples of valid input.
Error message 'name must be a string' provides no recovery guidance. Should suggest alternatives or valid formats.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 30 | 2026-07-28+ | v2 |