A demonstration MCP server implementation in Go with support for tools, prompts, resources, and notifications
This server demonstrates basic MCP functionality but has significant gaps in definition quality. Tool definitions are present with schemas and descriptions, but the quality is inconsistent. Descriptions are sparse and generic (averaging 30-50 chars, well below the 194-char baseline). Most tools lack comprehensive parameter documentation. The server uses mark3labs/mcp-go v0.38.0 and exposes 7 tools via HTTP. Critical issues: 'notify' tool has NO description at all, several tools lack descriptions entirely or are trivial, parameter documentation is incomplete, and no tool annotations (readOnlyHint/destructiveHint) are present despite clear risk distinctions. The schema definitions are present but descriptions do not guide LLM behavior effectively. No evidence of output schema documentation or error recovery guidance in responses.
Adds two numbers
Echoes back the input
Returns the MCP_TINY_IMAGE
Returns a resource link example
say hello to someone
Demonstrates a long running operation with progress updates
Missing or trivial tool descriptions (6 of 7 tools have descriptions under 50 chars; 1 tool has no description)
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk classifications
No output schema documentation for any tool
Parameter documentation is sparse; many parameters lack constraints or format guidance
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 56 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 38 | - | v1 |
No error handling guidance or recovery suggestions in tool definitions
Tool 'getTinyImage' references internal constant name 'MCP_TINY_IMAGE' in description
Tool naming inconsistency (mix of camelCase and snake_case; missing or vague verbs)