MCP server sample with SSE and stdio transport support for simple text operations
Two simple text-manipulation tools with minimal descriptions and no output schema documentation. Tool names lack action verbs (reverse-text, uppercase should be reverse_text, convert_to_uppercase). Descriptions are extremely brief (10-30 chars, below the 34-char p10 baseline). Input schemas are present and properly typed, but parameter descriptions are generic. No error handling guidance, no pagination, no composition hints. No tool annotations (readOnlyHint, idempotentHint). This is a toy example, not production-grade.
Reverse the input text
Convert text to uppercase
Tool names do not start with action verbs. 'reverse-text' and 'uppercase' lack clarity. Should be 'reverse_text' and 'convert_to_uppercase' to match verb_noun convention.
Descriptions are too brief (10-30 chars, below p10=34 baseline). 'Reverse the input text' and 'Convert text to uppercase' lack context on when to use, what the tool returns, or any prerequisites.
No output schema documented. LLMs cannot plan downstream calls or extract fields. Tool returns TextContent but no structured field documentation.
No tool annotations (readOnlyHint, idempotentHint). Both tools are read-only and idempotent but this is not declared in the schema, forcing LLMs to infer safety properties.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 43 | <=2025-11-25 | v2 |
Error handling is minimal. Tool returns generic TextContent error messages ('Error: Missing text parameter') instead of actionable recovery guidance or error classification.