MCP server for querying China Railway (12306) train tickets
Single tool 'search' has a valid Zod schema with three parameters (date, fromCity, toCity), each with descriptions. However, the tool description is minimal (11 chars in English: '查询12306火车票' = 'Query 12306 train tickets'), falling below the 20-char baseline. Parameter descriptions are present but terse (e.g., '出发城市' = 'departure city'). No output schema is documented, the tool returns JSON-stringified text without specifying field structure. Error handling returns isError flag but lacks actionable recovery guidance. The tool does one thing (search tickets) but lacks depth in documentation expected for production use.
查询12306火车票
Tool description is too short (11 characters). Baseline is 34 - 392 chars; descriptions under 20 chars score 0 - 20. Current description '查询12306火车票' lacks context on when to use this tool, what it returns, and prerequisites.
Output schema is not documented. Tool returns JSON-stringified text without specifying the structure of the ticket list (fields like '车次', '出发站', etc.). LLMs cannot plan downstream operations or extract data reliably.
Error handling lacks recovery guidance. Errors return isError=true with a message, but do not tell the LLM what to do next (e.g., 'Try a different date range' or 'Verify city name spelling').
Parameter descriptions are minimal and in Chinese. '出发日期 格式:YYYY-MM-DD' is terse; should explain why date format matters, valid range (0 - 15 days ahead per code), and what happens if constraints are violated.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 52 | 2026-07-28+ | v2 |
No pagination or result limits documented. Tool may return many tickets; no mention of max results, pagination, or how to handle large result sets that could exhaust context windows.