Template project for SpringBoot + MCP + JUnit. A Model Context Protocol server built with Spring Boot that exposes tools for weather information and number operations.
Both tools have critical definition gaps. getWeather and judgeIfOdd lack proper descriptions (Chinese text is non-standard; 'null' description for cityName parameter). Input schemas are present but minimal, cityName has no description, num has a description but both lack type validation details. No output schemas documented. No error handling guidance. Tool names are acceptable (verb-noun style) but descriptions fail the 20-character minimum quality bar. This server would not pass production code review.
通过城市名字获取温度[伪]
判断是否是双数
Missing or inadequate parameter descriptions. getWeather.cityName has null description; judgeIfOdd.num lacks format/range constraints (e.g., 'integer, range -2147483648 to 2147483647'). LLMs cannot infer parameter semantics from names alone.
Tool descriptions are non-English and vague. 'getWeather: 通过城市名字获取温度[伪]' (Chinese; '[伪]' means 'fake/mock') and 'judgeIfOdd: 判断是否是双数' (Chinese; 'judge if even number') do not meet the 10 - 1024 character English baseline. LLMs trained primarily on English will struggle to understand intent.
No output schemas documented. Callers cannot predict return structure, field names, or types. This breaks tool chaining and forces LLMs to guess downstream parameter mappings.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 37 | 2026-07-28+ | v2 |
No error handling or recovery guidance. If getWeather receives an invalid city name or judgeIfOdd receives a non-integer, the tool provides no actionable error message or next steps for the LLM.
Tool definitions appear to be test code (src/test/java/top/dreamcenter/mcp/SSETest.java). Production tools should be in src/main/java. This suggests the server is a template/example, not production-ready.