A comprehensive MCP (Model Context Protocol) repository containing multiple server implementations: weather server with get_weather_warning and get_daily_forecast tools, Milvus vector database RAG server with knowledge/FAQ storage and search, and Tablestore Java MCP server with embedding support.
This is a multi-server repository with 6 tools across two implementations (weather API and RAG services). All tools have basic descriptions and inferred schemas, but critical gaps exist: (1) No visible input schema definitions in the source code provided, schemas are partially inferred from docstrings rather than properly declared via JSON Schema. (2) Parameter descriptions are minimal and lack type constraints (enums, min/max, format specs). (3) Output schemas are undocumented across all tools. (4) The source excerpt is truncated mid-function, preventing full assessment of implementation quality and error handling. (5) Tool naming is inconsistent: weather tools use underscores (get_weather_warning, get_daily_forecast) but RAG tools use camelCase (storeKnowledge, searchKnowledge). (6) No evidence of error recovery guidance, validation rules, or idempotency markers. Tools 1-2 (weather) are read-only but lack explicit risk annotations. Tools 3, 5 (store*) are WRITE operations but lack confirmation patterns or dry-run support. This is a portfolio of demonstration tools, not production-grade implementations.
获取指定位置的天气预报
获取指定位置的天气灾害预警
Search for similar documents on natural language descriptions from FAQ store.
Search for similar documents on natural language descriptions from knowledge store.
Store document into FAQ store for later retrieval.
Store document into knowledge store for later retrieval.
Input schemas are inferred from docstrings, not formally declared via JSON Schema. Parameter types are present but lack validation rules (enums, min/max, format constraints).
Output schemas are completely undocumented across all 6 tools. LLMs cannot infer what fields to expect in responses, breaking downstream tool chaining and forcing exploratory calls.
Parameter 'location' in weather tools (1-2) accepts union[str, int] but description is Chinese-only and lacks actionable format constraints. Example values ('101010100', '116.41,39.92') are given but no regex pattern or enum.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 44 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 45 | - | v1 |
Write operations (storeKnowledge, storeFAQ) lack confirmation patterns, dry-run support, or explicit irreversibility warnings.
Naming inconsistency: weather tools use snake_case (get_weather_warning) while RAG tools use camelCase (storeKnowledge). LLMs may conflate similarly-named tools or fail to parse intent from names.
No error handling guidance visible in any tool.
Tool descriptions are minimal and lack context for selection. E.g., 'Search for similar documents on natural language descriptions from knowledge store' doesn't explain WHEN to use searchKnowledge vs searchFAQ, or what 'similar' means (vector similarity? BM25?). When should the LLM call it instead of a similar tool?'
No pagination documented for search tools (searchKnowledge, searchFAQ). Parameter 'size' defaults to 5 but no mention of cursor, offset, or ability to retrieve beyond top-5 results.