MCP server using FastMCP framework
Two tools with minimal definitions. Both have basic descriptions (under 100 chars) and simple string-only schemas. No parameter validation, no error handling guidance, no output schema documentation, no tool annotations. Naming is generic ('welcome-tool', 'echo-tool'), lacks action verbs. No composition or chaining support. Descriptions are too brief to guide LLM selection effectively.
A tool that echoes back the input message
A simple welcome tool that greets the user
Tool names lack action verbs. 'welcome-tool' and 'echo-tool' do not follow verb_noun convention (e.g., 'greet_user', 'echo_message'). LLMs cannot infer intent from generic names.
Descriptions are too brief (under 100 chars). Rubric baseline is 194 chars. No explanation of WHEN to use each tool or what distinguishes them. LLMs cannot reliably select between them.
No output schema documented. Callers cannot predict return type or structure. Rubric requires 100% of A+ tools to document return types.
No error handling or recovery guidance. If 'name' is empty or invalid, no actionable error message. Rubric requires error responses to tell LLM what to do next.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 42 | 2026-07-28+ | v2 |
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Both tools are read-only but this is not declared in the schema. Agents cannot reason about side effects.