A simple MCP server demonstrating basic tool registration and execution with greeting, farewell, clock, and hello-world tools
This is a minimal hello-world example server with critically insufficient tool documentation. All 4 tools lack descriptions entirely, which violates the foundational pattern:tool-description requirement. Two tools (hello-world, clock) have empty input schemas ({}), and while the other two (greet, farewell) do provide Zod schemas with parameter types, the descriptions are generic single-sentence placeholders. The codebase shows competent TypeScript/Zod usage and proper tool registration via simple-mcp, but the tool definitions themselves do not meet production standards. This server is a template/tutorial, not a production-grade implementation.
No tool descriptions provided for any of the 4 tools. LLMs cannot determine when or why to select these tools without explicit docstrings.
Tools 'hello-world' and 'clock' expose empty input schemas ({}). While technically valid for parameter-less tools, this violates schema documentation expectations. Should explicitly document that no input is required.
Parameter descriptions for 'greet' and 'farewell' are minimal placeholders ('The name is required'). Should explain what the name is used for, expected format, and constraints.
Tool naming lacks action verbs. 'hello-world' and 'clock' do not start with verbs (get_, send_, create_, etc.). 'greet' and 'farewell' are imperative verbs but lack a noun/object (should be 'greet_person' or 'send_greeting').
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 33 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 22 | - | v1 |
No output schema documentation. Tools return structured objects with 'content' arrays, but the expected response format is not documented for LLM consumption.