A simple MCP server with Ollama integration
Three tools with minimal descriptions (all under 150 chars) and no parameter descriptions. Input schemas are present but trivial (say_hello has one string param; others have empty objects). No output schemas documented. Descriptions lack WHEN/WHY context and do not guide LLM selection. No error handling guidance. Tools are READ_ONLY but lack explicit idempotentHint annotations. Naming is acceptable (verb_noun pattern) but descriptions are too generic to support reliable tool selection in multi-tool scenarios.
a function that takes no arguments and returns a string containing the date of ahlam's birthday
a function that takes no arguments and returns a string containing a list of ahlam's favorite foods.
a function that takes in one argument (name: user's name) and returns a string containing a personalized greeting using their name
No parameter descriptions. 'name' parameter in say_hello lacks description explaining what format is expected (e.g., first name, full name, username). LLMs cannot infer parameter semantics from names alone.
No output schemas documented. Tools return strings or lists but LLMs have no formal schema to parse results. get_favorite_foods returns list[str] but this is not declared in tool metadata.
Descriptions are too generic and lack WHEN/WHY guidance. 'a function that takes no arguments and returns a string containing the date of ahlam's birthday' is 115 chars but does not explain when to call this vs other tools or what format the date is in (14/11/2001 is ambiguous: DD/MM/YYYY or MM/DD/YYYY?).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 38 | 2026-07-28+ | v2 |
No error handling guidance. Tools have no documented error cases or recovery paths. If say_hello is called with an empty string or None, the LLM has no guidance on what to do next.
Missing tool annotations. All three tools are READ_ONLY and idempotent but lack explicit readOnlyHint and idempotentHint annotations in the tool definition. This forces LLMs to infer safety properties from descriptions.