A cross-project, cross-team, and best-practice knowledge base server for AI and developers
Server has 4 tools with explicit Zod schemas and basic descriptions. However, descriptions are minimal (10-30 chars), lack context on WHEN to use each tool, and omit error recovery guidance. Parameter descriptions exist but are generic. Output schemas are not documented. No tool annotations (readOnlyHint/destructiveHint). Naming follows verb_noun convention (list, search, add, delete) but lacks clarity on relationships between tools. Error handling returns only 'ok'/'fail' strings with no actionable guidance. Composition is reasonable (each tool has one responsibility), but missing pagination, result limits, and chaining IDs in responses.
新增知识(需指定owner)
删除知识(需权限校验)
列出知识(支持多维度过滤和权限)
语义检索知识(可扩展为RAG检索)
Tool descriptions are too short (10-30 chars) and lack context. 'List knowledge' does not explain WHEN to call it vs searchKnowledge, what filters apply, or what the response contains. LLMs cannot reliably select the right tool.
Output schemas are not documented. Tools return JSON or text ('ok'/'fail') but LLMs do not know the structure of returned knowledge items, making downstream tool chaining impossible.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Clients cannot determine which tools are safe to retry or which modify state. deleteKnowledge is destructive but unmarked.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 44 | 2026-07-28+ | v2 |
Error responses are non-actionable. Tools return 'ok' or 'fail' with no context. If addKnowledge fails due to permission denial or duplicate ID, the LLM has no guidance on what to do next (retry, ask user, call a different tool).
listKnowledge and searchKnowledge lack pagination (no limit, offset, or cursor parameters). If a project has thousands of knowledge items, returning all of them will exhaust context and degrade LLM reasoning.