The server implements 3 MCP tools with visible schemas and basic descriptions. However, there are significant quality issues: (1) tool_http_get_domains has identical parameter schema to tool_get_domains but no implementation (just 'print(ctx)'), making it non-functional; (2) descriptions are in Chinese and very short (13-17 characters), below the 34-char p10 baseline and violating the 20-char minimum rule for actionable descriptions; (3) no parameter descriptions exist, the 'domains' array and 'domain'/'color' params lack explanation of purpose, format, or constraints; (4) no output schemas are documented despite tools returning structured responses; (5) no error handling or recovery guidance. The schemas themselves are syntactically valid JSON Schema but lack semantic richness (no min/max for arrays, no examples, no format directives). The naming convention (tool_* prefix) is clear but redundant with MCP's tool namespace. Per-tool: tool_get_domain has enum constraints for 'color' which is good, but 'domain' param lacks validation rules. Tool composition is reasonable (separate batch vs single domain operations), but the HTTP variant appears broken.
获取单个域名服务
获取批量域名服务
获取http域名服务
tool_http_get_domains is non-functional, implementation is just 'print(ctx)' with no actual logic or response handling. This tool is broken and should not be advertised to the agent.
All tool descriptions are in Chinese and extremely short (13-17 characters: '获取单个域名服务', '获取批量域名服务', '获取http域名服务'). They do not meet the 10-1024 character guideline and fail to explain WHAT the tool does, WHEN to use it, or what distinguishes it from similar tools. LLMs cannot make informed selection decisions.
No parameter descriptions exist. 'domain' param: is it a FQDN, domain name without TLD, or a domain ID? Does it accept wildcards? The 'domains' array: what is the max length? Are duplicates allowed? The 'color' enum has no explanation of its purpose, why does fetching a domain require a color selection? Without descriptions, LLMs cannot reliably construct valid calls.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 42 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 23 | - | v1 |
Output schemas are not documented. tool_get_domain returns {'domain': string, 'color': string}, but is this the complete response? Are there error fields, timestamps, or nested data? Without documented return types, LLMs cannot plan downstream operations or extract the right fields.
No error handling or recovery guidance. What happens if a domain is not found? If the domains array is empty or exceeds a size limit? If a color value is invalid? Agents have no guidance on what to do if a call fails.
The 'color' parameter in tool_get_domain is semantically unclear. Why does retrieving domain information require selecting a color? This suggests either a misnamed parameter, a domain coloring/tagging feature that is not explained, or a copy-paste error from unrelated code. Ambiguous parameters cause LLMs to guess wrong.
Input schemas lack validation constraints. The 'domains' array has no minItems, maxItems, or uniqueItems constraints. The 'domain' string has no minLength, maxLength, or pattern (e.g., to enforce valid FQDN format). Unbounded inputs let LLMs pass invalid values that may silently fail or break backend logic.
Tool naming uses 'tool_' prefix (tool_get_domain, tool_get_domains, tool_http_get_domains), which is redundant. MCP already namespaces these as tools. The HTTP variant name ('tool_http_get_domains') conflates transport implementation details with semantic intent, agents should not reason about which HTTP method is used internally.
No documentation of pagination, result limits, or batching behavior. Does tool_get_domains accept arbitrary-sized arrays, or is there a max? If results can exceed context, is there a limit enforced? The description does not clarify.