A FreePascal MCP server library implementing the Model Context Protocol with dual-era support (modern 2026-07-28 and legacy 2025-11-25), transport-agnostic core, and comprehensive feature support including MRTR, structured output, and HTTP/stdio bindings.
Four tools with complete schemas and descriptions, but quality varies significantly. Echo and add are trivial utilities with minimal descriptions (18-24 chars, below the 50-200 char LLM-optimized baseline). greet_user lacks input schema detail and relies on MRTR elicitation rather than explicit parameters. pixel is underdocumented. Tool names follow verb_noun convention (echo, add, greet_user, pixel) but lack specificity, 'echo' and 'pixel' are generic. No parameter descriptions visible for echo/add beyond type hints. Error handling and output schemas not documented. Composition is reasonable (single responsibility), but descriptions need expansion to guide LLM selection.
Add two numbers and return the sum
Echo a message back to the caller
Greet a person; asks who to greet via elicitation (MRTR)
Return a 1x1 transparent PNG as image content
Tool descriptions too short (18-24 chars for echo/add). LLM-optimized descriptions should be 50-200 chars, explaining WHAT the tool does, WHEN to use it, and any prerequisites.
greet_user has empty input schema (no properties defined). MRTR elicitation is valid, but the schema should document that the tool accepts no direct parameters and uses inputRequests for user input.
Parameter descriptions missing or minimal. 'message' in echo and 'a'/'b' in add lack context. Descriptions should explain format, constraints, and examples (e.g., 'a: First number (integer or float, range -1e6 to 1e6)').
Output schemas not documented. Tools return content arrays and structured data, but LLMs cannot plan downstream calls without knowing the response structure. Document return types for all tools.
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 48 | 2026-07-28+ | v2 |
Generic tool names reduce discoverability. 'echo' and 'pixel' are vague; 'echo_message' and 'generate_transparent_pixel' would clarify intent. 'add' lacks context (add_numbers? add_to_list?).