MCP server for querying Luogu (洛谷) programming contest problems, providing detailed problem information including problem statement, input/output formats, samples, and difficulty ratings
The server implements a single tool 'get_problem' with a valid input schema and clear naming. The tool description is in Chinese but adequately explains the purpose (fetch Luogu problem details including statement, I/O format, samples, constraints). The input parameter 'problem_id' has a basic type (string) and description with examples of valid formats (P1001, B2002, CF1234A, AT_abc123_a). However, critical gaps exist: (1) No documented output schema is visible in the code, the response structure is not formally specified, forcing LLMs to infer what fields are returned; (2) Parameter description lacks formal constraints (regex pattern, length limits), it lists examples but does not declare what constitutes a valid ID format; (3) No error handling guidance is present, if an invalid problem_id is passed, the error response does not guide the LLM to retry with a corrected format or alternative recovery steps; (4) The tool operates as a read-only web scraper of a Chinese education platform, which carries risk of rate-limiting, blocking, or terms-of-service violation, but no rate-limit or timeout documentation exists. The naming convention (verb_noun: get_problem) is solid. The description is adequate in length (~150 chars in English translation) but could be strengthened by stating what format the problem_id must follow and what structure is returned.
根据题目编号获取洛谷题目详细信息,包括题面、输入输出格式、样例、数据范围等。
No documented output schema: the response structure returned by get_problem is not formally defined. LLMs cannot plan downstream operations or know what fields to expect without seeing examples or a schema declaration in code.
Parameter constraint missing formal specification: problem_id description lists examples (P1001, B2002, CF1234A, AT_abc123_a) but does not declare a regex pattern, character set, or length bounds. LLMs rely on formal constraints (enums, patterns) to avoid hallucinated values.
No error recovery guidance: if an invalid problem_id is passed or the network request fails, the error response does not tell the LLM what to do next. A bare error message provides no recovery path.
No rate-limit or timeout documentation: the tool scrapes an external website (luogu.com.cn) without documented safeguards. If rate-limited or blocked, there is no guidance for backoff or retry strategy.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 59 | 2026-07-28+ | v2 |
| 2026-03-09 | C | 64 | 2025-11-25+ | v1 |
Parameter description in Chinese only: the input schema lists the description in Chinese. While not inherently wrong, LLM integrations are primarily English-oriented. A bilingual or English description would improve LLM comprehension.