MCP server that provides weather information via OpenWeather API and integrates with Ethereum Sepolia testnet for service registration
Single tool 'query_weather' has a basic description in Chinese but lacks English documentation. Input schema present with 'city' parameter (string type, minimal description). No output schema documented. Tool description is 60 characters but in Chinese, reducing LLM utility for English-speaking agents. No error handling guidance, no parameter constraints (e.g., city name format), no pagination or result limits. The codebase mixes weather API logic with blockchain/Solidity contract deployment code, suggesting incomplete or abandoned implementation. Tool is READ_ONLY but lacks explicit idempotent annotation.
输入指定城市的英文名称,返回今日天气查询结果。
Tool description is in Chinese ('输入指定城市的英文名称,返回今日天气查询结果。') with no English translation. LLMs trained primarily on English will struggle to understand when/why to invoke this tool.
No output schema documented. Callers cannot predict the structure of the response (dict with 'error' key vs weather fields). LLMs cannot plan downstream operations or extract required fields reliably.
Input parameter 'city' has minimal description ('城市名称(需使用英文)'). No constraints on format, length, or valid values. LLMs may pass invalid city names, special characters, or multi-word cities without guidance.
No error handling guidance. The code returns {'error': '...'} on failure, but the tool description does not explain what errors are possible, whether they are retryable, or what the LLM should do next.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 39 | 2026-07-28+ | v2 |
Codebase contains unrelated Solidity contract code (WertherserverRegistry.sol, SimpleStorage.sol, deploysol.py) mixed with the weather server. This suggests incomplete refactoring, abandoned features, or copy-paste errors. Reduces confidence in code quality and maintenance.