Example MCP server that provides a counter tool that can increment, decrement and provide values. Also, provides a message tool that gets a hello world message.
All 4 tools lack input parameter schemas entirely (empty {} for all). Descriptions are present but minimal (10-24 chars), below the 34-char p10 baseline. No parameter descriptions exist. Tools are simple state mutations with no output schema documentation. No error handling guidance, no recovery paths. This is a minimal example server that does not meet production quality standards.
Decrement the counter by 1
Get the current counter value
Increment the counter by 1
HelloWorld message
All tools have empty input schemas ({}). No parameter types, constraints, or descriptions.
Tool descriptions are 10-24 characters, well below the 34-char p10 baseline. 'Get the current counter value' (29 chars) and 'HelloWorld message' (17 chars) lack context for LLM selection.
No output schema documented. Tools return CallToolResult with Content::text() but LLMs cannot infer the structure or what fields to expect. No guidance on return format.
No error handling or recovery guidance. If counter operations fail or state is corrupted, LLM receives no actionable error message or next steps.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 33 | 2026-07-28+ | v2 |
Tool 'message' has generic name and unclear purpose. 'message' does not start with an action verb and conflicts with common messaging patterns. Should be 'get_greeting' or 'get_hello_message'.