A Model Context Protocol server implementation in Go with support for tools and resources
Single tool 'get_something' has a basic but minimal implementation. The tool is explicitly defined in server/handlers.go with name, description, and input schema present in the ToolsList handler. However, the implementation exhibits several significant quality gaps: (1) The description 'gets something' is vague and provides no actionable context for when/why an LLM should invoke this tool, it violates the 10-1024 character guideline by being too generic and unhelpful; (2) The tool does nothing, handleToolsCall() returns a hardcoded 'this is example text' response regardless of input, making it non-functional and failing the single-responsibility pattern; (3) No output schema is documented, the response structure is hardcoded but not formally specified for the LLM; (4) The single parameter 'arg1' has minimal description ('the first arg') which is generic and uninformative; (5) No error handling, validation, or recovery guidance is present; (6) The tool appears to be a stub/example rather than a production-ready implementation. This is a demonstration server, not a reference-quality production tool.
gets something
Tool description is generic placeholder text ('gets something') with no actionable context. LLMs cannot determine when to invoke this tool or what problem it solves. Violates tool-description pattern by being <20 characters of useful content.
Tool name 'get_something' is vague and non-specific. Does not follow verb_noun convention clearly (could be 'retrieve_config', 'fetch_status', 'get_user_profile', etc.). The name alone provides no semantic guidance to the LLM.
Parameter 'arg1' is poorly named and minimally described. Should use semantic names like 'user_id', 'query', 'resource_uri', etc. Description 'the first arg' is generic and uninformative. No type constraints or format guidance.
No output schema documentation. The handler returns hardcoded TextContent but LLMs have no formal specification of what fields/types to expect. Violates pattern:response-shaper by not documenting structured output.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 36 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 17 | 2024-11-05+ | v1 |
Tool implementation is non-functional, handleToolsCall() ignores the 'arg1' parameter and returns a hardcoded response. This defeats the purpose of having a parameterized tool and makes testing/validation impossible.
No error handling or input validation. If an invalid or missing 'arg1' is provided, there is no error guidance, recovery suggestion, or input validation. Violates pattern:recovery-guide.