This MCP demo Server based on FastMCP, exposes Clever Cloud's Documentation
This server has critical definition quality gaps. All three tools have extremely minimal descriptions (20-30 chars) and no parameter descriptions despite accepting parameters. The schemas are minimal, two tools have empty object schemas {}, and the third accepts only a bare string with no description of what URL format is expected, range, or validation. No output schemas are documented. The naming convention is acceptable (verb_noun pattern), but the parameter and output documentation is essentially missing. This server would cause LLM decision failures due to lack of context and would fail to guide tool usage.
Get the content of a given URL in Markdown format
Get the list of Clever Cloud deployment zones
Get the list of Clever Cloud documentation URLs in Markdown format
Tool descriptions are critically short (20-30 chars). They lack WHAT the tool does, WHEN to use it, and any prerequisites. LLMs cannot determine when to select these tools vs alternatives.
No parameter descriptions exist. The 'url' parameter in fetch_webpage_markdown has no description explaining expected format, valid schemes (http/https), validation rules, or examples. LLMs cannot determine what URLs are valid or how to construct them.
No output schemas are documented. The execute functions return raw text (await response.text()), but LLMs have no specification of the structure, format, or fields they should expect. For get_clever_zones and get_doc_urls, the LLM does not know if the result is JSON, plain text, or structured markdown.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 41 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 29 | - | v1 |
No error handling or recovery guidance. If fetch_webpage_markdown receives an invalid URL or encounters a 404/timeout, the raw error text is returned with no actionable guidance for the LLM. No distinction between retryable, user-fixable, or fatal errors.
No input validation on the 'url' parameter. The tool accepts any string and passes it directly to fetch(). No checks for valid HTTP(S) schemes, malformed URLs, or potentially dangerous destinations. LLMs can pass arbitrary strings, leading to runtime errors.
Ambiguous tool selection between get_doc_urls and fetch_webpage_markdown. Both fetch and return markdown content, but the distinction is unclear from the short descriptions. An LLM might choose the wrong tool. The naming should be more distinct (e.g., 'get_doc_index' vs 'fetch_webpage_markdown' to signal that one is a directory and one fetches arbitrary content).