A lightweight wrapper around the official Model Context Protocol Go SDK for building MCP servers (stdio, streamable HTTP, or legacy SSE) that AI clients can discover and call.
Six tools with minimal, demo-focused descriptions that lack LLM-optimization guidance. Tool names are simple verbs (add, subtract, greet, ping, hello, code_review) but descriptions are explicitly marked 'Demo' and discourage real use, signaling this is a reference implementation, not production-grade. No input schemas visible in source code, only parameter names and types inferred from the tool list. No output schemas documented. Error handling and recovery guidance absent. Naming is clear but descriptions fail the 50 - 200 char LLM-optimization baseline (most are 100 - 180 chars but include anti-patterns like 'do not use for real math').
Demo: adds two integers. Use only to test MCP addition calls; do not use for real math—compute in the agent instead. Use add (not subtract or greet) when verifying addition wiring.
Review code with a structured user message
Demo: returns a greeting string. Use only to test MCP text tools; do not use for user-facing messages—reply in chat instead. Use greet (not add or subtract) for hello/welcome integration tests.
Say hello to someone
Demo: echo a message over streamable HTTP MCP. Use only to verify HTTP transport and Smithery wiring; do not use for production messaging—reply in chat instead. Use ping (not other tools) when testing connectivity. Returns the input message or "pong" when empty.
Demo: subtracts B from A. Use only to test MCP subtraction calls; do not use for real math—compute in the agent instead. Use subtract (not add or greet) when verifying subtraction wiring.
No input schemas visible in source code. Tool definitions list parameter names and types but no explicit JSON Schema registration with type constraints, enums, or validation rules.
Descriptions explicitly discourage tool use ('do not use for real math', 'do not use for production messaging'). This anti-pattern confuses LLMs about when to invoke tools and violates the tool-description pattern.
No output schemas documented. LLMs cannot plan downstream tool calls or extract structured data without knowing what fields are returned.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 42 | 2026-07-28+ | v2 |
Minimal parameter descriptions. 'The first number to add' and 'Person to greet (required)' lack context about valid ranges, formats, or constraints. No enum declarations for constrained inputs.
No error handling or recovery guidance. Tools do not document what happens on invalid input, how to retry, or what the LLM should do if a call fails.