A Go implementation of the Model Context Protocol (MCP) server framework
The mcp4go framework provides only 1 example tool (time) with minimal definition quality. The tool has a bare-minimum description ('get current time'), a valid input schema with a timezone parameter, but lacks comprehensive parameter documentation and output schema specification. The input schema is present but the parameter description is generic. No error handling patterns are visible. The framework itself appears to be a Go SDK for building MCP servers, but the example tool does not demonstrate production-grade quality expected from pattern:tool. Definition quality is significantly below baseline (production tools average 194 chars for descriptions; this tool is ~15 chars).
get current time
Tool description is too short (15 chars: 'get current time'). Baseline is 194 chars (p10=34, p90=392). LLM cannot determine WHEN to use this tool or understand its context.
Parameter 'time_zone' lacks a complete description. Only states 'time zone default is Asia/Shanghai' but does not explain format, valid values, or use case. LLMs cannot infer whether to pass 'UTC', 'America/New_York', or numeric offsets.
No output schema is documented. Callers cannot know what fields the tool returns (e.g., does it return {current_time: string}? {unix_timestamp: number}? {time: string, formatted: string}?). Output schema is mandatory for tool composition.
No error handling patterns. What happens if time_zone is invalid? What should the LLM do next? No recovery guidance provided.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-21 | F | 41 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 37 | - | v1 |
Tool name 'time' is too generic. Does not start with action verb (pattern baseline: 90% of A+ tools start with get_, list_, create_, etc.). Should be 'get_time' or 'get_current_time' for clarity.
Parameter 'time_zone' has no enum constraint. Accepts free-form strings, inviting hallucinated invalid timezones. Should enumerate valid IANA timezone strings or document the exact format required.