MCP server: convert English words between singular and plural; handles irregulars.
Three simple, read-only tools with clear naming (pluralize, singularize, is_plural) and complete input schemas. Descriptions are present but minimal (10 - 50 chars), below the 50 - 200 char baseline for LLM-optimized docs. Parameter descriptions are entirely absent, the schema declares 'word', 'count', 'inclusive' but does not explain what each controls or its constraints. No output schema documented. Error handling is basic (generic catch-all). Tools are well-composed (each does one thing) and idempotent, but lack the depth expected of production tools.
Return true if the word is plural.
Pluralize a word. Optional `count`: returns singular when count=1, plural otherwise. `inclusive: true` prefixes the count.
Return the singular form of an English word.
Parameter descriptions missing entirely. Schema declares 'word', 'count', 'inclusive' but does not explain what each parameter does, its format, or constraints. LLMs cannot infer meaning from names alone.
Tool descriptions are too brief (10 - 50 chars). Baseline for LLM-optimized descriptions is 50 - 200 chars. Current descriptions lack context on when to use each tool, what it returns, and how it differs from similar tools.
No output schema documented. LLMs cannot plan downstream calls or extract fields without knowing the response structure. Current code returns JSON but does not declare the schema.
Generic error handling. Catch-all error returns 'pluralize failed: <message>' without guidance on recovery. LLMs cannot determine if the error is retryable, user-fixable, or fatal.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 51 | 2026-07-28+ | v2 |
No tool annotations (readOnlyHint, idempotentHint). All three tools are read-only and idempotent, declaring this via annotations helps clients optimize caching and retry logic.