An MCP server that counts the number of 'r' letters in a given word
Single tool 'count-r' has a basic description (47 chars) and minimal schema. Input parameter 'word' is typed as string with a short description (40 chars), meeting the bare minimum. No output schema is documented, LLMs cannot predict the return structure. No error handling guidance, no parameter constraints (e.g., min/max length), and no indication of what the tool returns (integer count as text? JSON?). Tool name lacks action verb prefix (should be 'count_r_letters' or similar). The implementation is trivial but the definition lacks production-grade rigor.
Count the number of 'r' letters in a given word.
Tool name 'count-r' does not start with an action verb. Should be 'count_r_letters' or 'count_letter_r' to clearly signal the action to LLMs.
No output schema documented. LLMs cannot predict whether the tool returns an integer, a string, or a structured object. TypeScript code shows text response, but this is not declared in the tool definition.
Parameter 'word' lacks constraints (min/max length, character restrictions). LLMs may pass empty strings, very long strings, or non-string values without guidance.
Tool description (47 chars) is minimal and does not explain when to use it, what it returns, or how it handles edge cases (empty string, null, non-ASCII 'r').
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 42 | 2026-07-28+ | v2 |
Error handling is silent, both TypeScript and Python implementations return '0' on any error without informing the LLM why the call failed or what to do next.