An MCP server that retrieves similar knowledge points based on input queries using RAG (Retrieval-Augmented Generation) with Milvus vector database and Ark embeddings
Single tool 'retrieve_knowledge' has critical definition gaps. Input schema visible in code (Input struct with Query field) but lacks proper JSON Schema type declarations in the tool registration. Description is present (Chinese: '根据输入问题检索相似的知识点') but only 24 chars when translated, below the 34-char p10 baseline. No output schema documented in tool registration, only visible in code (Output struct). Parameter 'query' has a description in the struct tag but tool registration does not expose it. No error handling guidance, no pagination despite returning lists, no idempotent/destructive hints. Tool does one thing (retrieve) but implementation is incomplete for production use.
根据输入问题检索相似的知识点
Tool registration lacks input schema in mcp.AddTool() call. Schema is defined in Go struct (Input) but not passed to MCP server. LLM cannot see parameter types or constraints.
No output schema documented in tool registration. Output struct exists in code but is not exposed to MCP protocol. LLM cannot plan downstream operations or extract fields.
Description is 24 characters (Chinese original), below 34-char p10 baseline. Lacks WHEN to use, prerequisites, or state-modification warnings. Does not answer: what does it return? When use vs alternatives?
No error handling guidance. Code returns generic errors ('检索失败了') without recovery hints. LLM cannot determine if error is retryable or user-fixable.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 40 | 2026-07-28+ | v2 |
Results hardcoded to limit of 3 items with no pagination support. Tool returns list but no limit/offset parameters, no total_count, no next_cursor. Large result sets will blow context window.