MCP test server for elicitation, demonstrating user input collection through various form field types
All 13 tools have basic descriptions (10-50 chars) and simple input schemas with a 'message' parameter. However, descriptions are generic and lack actionable context for LLM selection. Most tools lack output schema documentation. Parameter descriptions are minimal. No error handling guidance, no enum constraints, and no indication of what each tool returns or when to use it instead of similar tools. Tools like elicit_enum have an 'options' parameter but lack detail on defaults and validation. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite all being READ_ONLY. Naming is consistent (elicit_*) but descriptions do not explain the semantic difference between elicit_text, elicit_number, elicit_integer, etc., or when an LLM should choose one over another.
Elicit a form with every supported primitive type.
Elicit a boolean (true / false) from the user.
Elicit a date (YYYY-MM-DD) from the user.
Elicit an ISO 8601 date-time from the user.
Elicit an email address from the user.
Elicit with an empty form (no fields).
Elicit a selection from a fixed set of options.
No output schemas documented. Tools return elicitation results but LLMs cannot infer what fields to expect or how to chain results to downstream tools.
Descriptions are too generic (10-50 chars) and lack actionable context. 'Elicit a plain text string from the user' does not explain when to use elicit_text vs elicit_email vs elicit_uri, or what the tool returns.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 44 | 2026-07-28+ | v2 |
Elicit an integer from the user.
Elicit a multi-field form (name, age, email, newsletter).
Elicit a floating-point number from the user.
Elicit a plain text string from the user.
Elicit a time (HH:MM:SS) from the user.
Elicit a URI/URL from the user.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite all tools being READ_ONLY. Annotations field is null in all tool definitions.
elicit_enum 'options' parameter lacks detail on defaults, validation, and expected format. Description says 'Defaults to ["Option A", "Option B", "Option C"]' but does not explain when/how defaults apply.
No error handling guidance. Handler checks for elicitation capability but returns generic error. No recovery hints for LLM if client does not support elicitation.