A Spring Boot-based MCP (Model Context Protocol) server demonstrating tool registration and execution with calculator and datetime conversion utilities
Two tools with minimal definitions. Both have descriptions (positive), but they are extremely short (4-8 chars in Chinese, well below the 10-char minimum). Parameter descriptions are present but generic. No input schema validation, no enums for constrained values (operator should be enum), no output schema documentation, no error handling guidance. Tool names lack English verb prefixes (calculate vs compute_arithmetic, dateToTime vs convert_date_to_timestamp). No evidence of idempotency, pagination, or composition patterns. This is a demo-quality server, not production-ready.
计算器
时间转时间戳
Tool descriptions are critically short (4-8 characters in Chinese). Descriptions must be 10-1024 characters and explain WHAT the tool does, WHEN to use it, and any prerequisites. Current descriptions ('计算器', '时间转时间戳') provide no context for LLM selection.
No input schema validation. The 'operator' parameter in calculate accepts any string but should be an enum ('+', '-', '*', '/'). Free-form strings invite hallucinated values. The dateToTime 'state' parameter lacks format specification (expects 'yyyy-MM-dd HH:mm:ss' but this is not documented).
No output schema documentation. LLMs cannot plan downstream calls or extract data without knowing return types. calculate returns double, dateToTime returns long, these must be explicitly documented in tool definitions.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 25 | 2026-07-28+ | v2 |
Tool names lack action verbs and are not English. 'calculate' is acceptable but 'dateToTime' uses camelCase and is vague (does it convert TO timestamp, FROM timestamp, or both?). Rename to 'convert_date_to_timestamp' or 'parse_datetime_to_unix_timestamp' for clarity.
No error handling guidance. The calculate tool throws IllegalArgumentException for division by zero and invalid operators, but the LLM receives no recovery hint. Error responses must tell the agent what to do next (e.g., 'Invalid operator. Use one of: +, -, *, /').