Spawn OpenWebUI tool JSONs as isolated Model Context Protocol (MCP) servers
Server provides 7 tools with complete JSON schemas and descriptions. Naming follows verb_noun convention (add, multiply, write_note, list_notes, greet). Descriptions are present but vary in quality, some are clear (write_note: 3 sentences explaining purpose and return value), others are minimal (add: 4 words). All tools have typed input schemas with required fields and parameter descriptions. However, output schemas are not documented, LLMs cannot predict return structure. Error handling is absent from tool definitions. No tool annotations (readOnlyHint, destructiveHint) despite clear risk classifications in metadata. Parameter descriptions are adequate but lack format/constraint details (e.g., 'number' type has no min/max bounds). write_note is marked WRITE but has no confirmation or dry-run pattern.
Add two numbers.
Return the greeting word that is configured right now (to test the Valve).
Greet a person with the currently configured greeting word.
List the notes this instance has written so far.
Multiply two numbers.
Report which of the three paths is in force (to check the setup).
Write a note to a file and return a download link for it. The link is what the user clicks. Returning the *path* instead would be useless to them: the file lives on the server, not on their machine.
Output schemas not documented. LLMs cannot predict return structure for any tool. write_note claims to return 'download link' but schema is invisible; list_notes structure unknown; greet/current_setting return types undocumented.
Minimal descriptions on arithmetic tools. 'Add two numbers' and 'Multiply two numbers' are 4 words each, below the 10-char minimum and lack context for LLM selection. No explanation of when to use add vs multiply, or what happens on overflow.
No tool annotations despite clear risk metadata. write_note is marked WRITE (destructive) but has no destructiveHint annotation. add/multiply/list_notes/greet/current_setting are READ_ONLY but lack readOnlyHint. Annotations enable safer agent planning.
Inferred effective spec: 2025-06-18+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 61 | 2025-06-18+ | v2 |
Numeric parameters lack bounds. 'a' and 'b' in add/multiply are typed 'number' with no min/max. LLMs may pass extreme values (1e308, -1e308) causing overflow or precision loss. Baseline: 100% of A+ tools specify numeric ranges.
where_do_files_go has vague naming and description. Name does not start with action verb (get_, list_, check_). Description 'Report which of the three paths is in force' is unclear, what three paths? When should this be called? Ambiguous names cause LLM confusion.