The server has 5 well-named tools covering online judge problem lookup and status queries. Tool names follow verb_noun convention (resolve_problem, get_problem, get_platform_status, get_daily_challenge, find_similar_problems). All tools have descriptions (50-150 chars) that explain what they do and when to use them. Input parameters are documented with type hints and descriptions. However, there are significant gaps: no output schemas are documented in the source code provided; error handling guidance is absent; parameter constraints (enums, ranges) are minimal; and descriptions lack dependency hints and usage guidance. The descriptions are well above the minimum threshold (>20 chars) and informative, placing them in the 'good' range for LLM consumption, but lack the production maturity of A-grade servers. The tool composition is clean (one responsibility per tool), but schema completeness is a major gap preventing a higher score.
Find similar problems by problem ID or free-text query across LeetCode, Codeforces, AtCoder, and Luogu. Returns a ranked list with similarity scores. Provide either a text query, or a source + ID pair.
Get the LeetCode daily challenge problem. Returns the full problem including title, difficulty, tags, and description. Defaults to today in domain's timezone (UTC+0 for 'com', UTC+8 for 'cn'). Daily challenge switches at 00:00 in respective timezone.
Get problem counts and indexing coverage for each platform (LeetCode, Codeforces, AtCoder, Luogu). Returns total problems, missing content count, and un-embedded count per platform.
Get a specific problem by source and ID. Returns the full problem including title, difficulty, tags, and description. Supports LeetCode, Codeforces, AtCoder, and Luogu. Use resolve_problem instead when the input is a URL or the ID format is uncertain.
Preferred way to look up a problem. Accepts a URL, problem slug, or prefixed ID and returns the full problem (title, difficulty, tags, and description). Supports LeetCode, Codeforces, AtCoder, and Luogu. Use this when the input format is uncertain; use get_problem when source and ID are already known.
No output schemas documented for any tool. LLMs cannot plan downstream operations or extract required fields without knowing response structure.
Missing error handling guidance. Tools provide no documentation on what errors to expect, which are retryable, or how to recover. Error responses likely contain raw HTTP status or exception messages.
Parameter constraints are underdocumented. 'source' parameters accept 4 specific values but are not declared as enums; 'limit' and 'threshold' in find_similar_problems lack min/max bounds; date format for get_daily_challenge is stated but not enforced via a pattern constraint.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 56 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 43 | - | v1 |
Descriptions lack dependency hints and pre-requisite guidance. E.g., resolve_problem says 'Use this when input format is uncertain', but does not explain what error users will see if they call it with invalid input, or what to do if it fails.
get_daily_challenge description includes example values ('UTC+0 for com', 'UTC+8 for cn'). While these explain timezone logic, the domain parameter should be declared as an enum ('com' | 'cn') rather than free-form string, and example dates should not appear in descriptions.