MCP server for web crawling and intent understanding in medical context
Scoring was not performed
Descriptions are extremely long (1200+ chars for getIntent), written in Chinese, and combine multiple unrelated concerns (intent detection, follow-up question reconstruction, knowledge base retrieval rules) into one incoherent blob. LLM-optimized descriptions should be 50-200 chars and clearly answer: WHAT, WHEN, and WHAT returns.
No output schemas documented for either tool. LLMs cannot plan downstream actions or extract return values when output structure is unknown. crawlWeb must document what it returns (text content, parsed HTML, metadata, status code?). getIntent must document what the knowledge base search returns (result list, scores, source documents?).
Tool naming violates verb_noun pattern. 'crawlWeb' uses camelCase and is vague (crawl what exactly? The whole web? One page?). 'getIntent' is ambiguous, does it return intent classification, reconstructed questions, or both? Names should be clear and actionable: fetch_webpage_content, retrieve_kb_result, classify_medical_intent.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-21 | F | 25 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 35 | - | v1 |
Parameter descriptions are minimal or missing. crawlWeb's 'url' parameter has only '需要被爬取的网页链接' (Chinese: 'webpage link to be crawled'). getIntent's 'clarified_question' has description text but no type specification visible in the schema. Parameters need descriptions explaining format, constraints, and valid values.
No error handling guidance. Neither tool documents what happens on failure (network error for crawlWeb, no matching KB results for getIntent, malformed input, timeouts). Error responses should classify as retryable or user-fixable and suggest recovery steps.
getIntent description mixes tool behavior rules, usage guidelines, example continuations, and prompt engineering instructions in a single unstructured text block. This violates the principle of separating WHAT the tool does (description) from HOW the LLM should use it (system prompt). The description is also in Chinese, limiting usability to non-Chinese-speaking clients.
No parameter constraints (enums, min/max, patterns). crawlWeb accepts any string as 'url', does it validate HTTP/HTTPS? Does it reject file:// or data: URIs? Does it have a timeout? getIntent has no clarification on 'clarified_question' format, length, required language (English or Chinese?), character limits.