Single tool 'hello' with minimal definition. Tool has a description (good), but it is a placeholder template ('This is a sample tool, replace it with your own') that provides no actionable guidance. Input schema is present with proper JsonSchema derivation (HelloParams struct with name: String), but parameter description is generic ('Name to greet'). No output schema documented. No error handling guidance. Tool is READ_ONLY but lacks idempotent/readonly annotations. Overall, this is a template server with placeholder tooling, not production-ready.
Say hello to someone. This is a sample tool — replace it with your own.
Tool description is a placeholder template ('This is a sample tool, replace it with your own'). Provides no actionable guidance on when/why to call the tool or what it returns. LLMs cannot determine tool selection intent from this.
No output schema documented. Tool returns JSON with a 'message' field, but LLMs have no formal specification of the response structure. Downstream tool chaining is impossible without guessing.
Parameter description 'Name to greet' is generic and lacks format/constraint guidance. No indication of expected length, character restrictions, or examples of valid input.
Tool lacks error handling guidance. No documentation of failure modes (e.g., empty name, special characters) or recovery steps for the LLM.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 50 | <=2025-11-25 | v2 |
Tool is marked READ_ONLY but lacks formal annotation (readOnlyHint). rmcp framework does not expose tool annotations in the visible code, limiting LLM awareness of idempotency/safety properties.