MCP Server for micro-app knowledge base with semantic search, GitHub source code integration, and vector database management
This MCP server has significant gaps in definition quality. While 4 tools are explicitly registered with schemas and descriptions, the descriptions are minimal and lack LLM-optimized context. Most critically, parameter descriptions are either missing or trivial, making it difficult for LLMs to reason about tool selection and invocation. The server demonstrates basic schema structure but falls well below production quality baseline. Tool names follow verb_noun convention (good), but parameter documentation is sparse. Error handling and recovery guidance are not evident in the visible code.
获取知识库状态。
统一处理 /micro 命令并自动分发到对应工具。
语义检索 micro-app 知识库。
非阻塞触发知识库更新。
Parameter descriptions are missing or trivial (under 20 chars) across all tools. Examples: 'force' parameter described as '是否强制更新' (12 chars, translates to 'whether to force update'), 'command' as '用户输入命令' (10 chars). LLMs cannot infer constraints, format, or behavior from these one-word translations.
Tool descriptions are sparse and lack LLM-optimized context. Most descriptions (12 - 50 chars) omit WHEN to call the tool vs alternatives, WHAT fields are returned, and prerequisites. Example: get_knowledge_base_status (12 chars) does not document the returned status object structure.
Output schemas are not documented. search_micro_app_knowledge returns formatted results (visible in code: 'formato' truncated, result includes source, path, content) but the LLM has no schema to understand the structure. get_knowledge_base_status returns status dict but no schema is provided.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 50 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 49 | - | v1 |
Error handling provides no recovery guidance. search_micro_app_knowledge catches TimeoutError and returns generic message ('向量模型正在冷启动…请稍后重试', ~50 chars) but does not tell the LLM whether to retry immediately, wait, or try a different tool. No structured error codes or actionable next steps.
update_knowledge_base is non-blocking but provides no way to poll completion status. Code shows it returns immediately while _UPDATE_TASK runs in background. LLM cannot know when update is done, has no way to wait, and cannot distinguish 'update triggered' from 'update complete'.
Parameter type 'top_k' is numeric with default 15 but no bounds documented (min/max allowed values). Unbounded integers let LLMs request unreasonable result counts.