ewankb-server-query
通过 MCP 远端查询 ewankb 知识库。默认图谱查询,也可指定 kb 或 deep 双路对比模式。查询结果自动穿透到源代码层,验证规格与实现的一致性。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
通过 MCP 远端查询 ewankb 知识库。默认图谱查询,也可指定 kb 或 deep 双路对比模式。查询结果自动穿透到源代码层,验证规格与实现的一致性。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
| name | ewankb-server-query |
| description | 通过 MCP 远端查询 ewankb 知识库。默认图谱查询,也可指定 kb 或 deep 双路对比模式。查询结果自动穿透到源代码层,验证规格与实现的一致性。 |
| trigger | /ewankb-server-query |
通过 ewan-kb-server MCP 服务远端查询知识库,无需本地安装 ewankb 或拉取知识库代码。
/ewankb-server-query <问题> # 图谱查询(默认)
/ewankb-server-query graph <kb> <问题> # 图谱查询(指定 KB)
/ewankb-server-query kb <kb> <问题> # 文档检索
/ewankb-server-query deep <kb> <问题> # 双路对比查询
/ewankb-server-query list # 列出所有可用 KB
在执行任何查询之前,先尝试调用 list_kbs MCP 工具确认 ewan-kb-server 已连接。
如果工具不可用(No such tool available),输出以下引导信息并停止:
未检测到 ewan-kb-server MCP 服务。请按以下步骤配置:
1. 打开 ~/.claude.json(注意:不是 settings.json,settings.json 不支持 mcpServers)
2. 添加或修改 "mcpServers" 字段:
"mcpServers": {
"ewankb-server": {
"type": "sse",
"url": "http://<server-host>:22902/sse"
}
}
或使用 Streamable HTTP:
"mcpServers": {
"ewankb-server": {
"type": "streamable-http",
"url": "http://<server-host>:22902/mcp"
}
}
3. 保存后重启 Claude Code 即可生效
如果没有搭建过 ewan-kb-server 服务,参考:https://github.com/Ewan-Jones/ewan-kb-server
如果工具可用,继续执行后续步骤。
用户可以通过以下方式指定 KB:
/ewankb-server-query graph mall "付款额度"如果用户没有指定 KB,调用 list_kbs MCP 工具获取可用 KB 列表,然后:
/ewankb-server-query list的展示根据用户输入确定模式:
/ewankb-server-query <问题>(无子命令,无 KB)→ 先确定 KB(步骤 0.5),再图谱模式(步骤 2A)/ewankb-server-query graph <kb> <问题> → 图谱模式(步骤 2A)/ewankb-server-query kb <kb> <问题> → kb 模式(步骤 2B)/ewankb-server-query deep <kb> <问题> → 双路对比模式(步骤 2C)/ewankb-server-query list → 调用 list_kbs MCP 工具,严格按以下模板展示所有 KB:检测到以下可用知识库:
| 库名(英文) | 库名(中文) | 描述 | 文档数 |
|------|--------|------|--------|
| ... | ... | ... | ... |
请指定要查询的知识库,如:/ewankb-server-query graph <库名> "问题"
list 展示规则:
—list_kbs 返回的 description 字段,若无则填 —list_kbs 返回的 docs 字段调用 query_graph MCP 工具:
query_graph(query_text="用户问题", kb="目标kb", traversal="bfs", max_nodes=50)
解读结果:
结果为空或节点极少: → 告知用户图中未找到匹配节点,建议:
/ewankb-server-query kb <kb> "同一问题" 切换到文档检索结果非空: → 基于节点和边关系用自然语言合成回答:
回答末尾附建议:"想看原文?试 /ewankb-server-query kb <kb> \"同一问题\""
调用 query_kb MCP 工具:
query_kb(query_text="用户问题", kb="目标kb", max_results=8, domain="")
关联代码为空时的处理: 如果返回的文档中"关联代码"章节为空,自动触发代码穿透(步骤 3)来查找对应的源代码文件。
回答末尾附建议:"想看关联?试 /ewankb-server-query graph <kb> \"同一问题\""
用 Agent 工具并行启动两个 subagent(同一条消息):
Subagent A(graph):
调用
query_graphMCP 工具(query_text="{问题}", kb="{kb}", traversal="bfs"),分析结果(涉及哪些节点、边、域)。从结果中提取技术术语(字段名、类名、API路径等),用于代码穿透。
Subagent B(kb):
调用
query_kbMCP 工具(query_text="{问题}", kb="{kb}"),分析结果。从文档内容中提取技术术语(字段名、类名、API路径、表名等),用于代码穿透。如果文档的"关联代码"为空,标记需要代码穿透。
对比 + 歧义处理:
代码穿透:Subagent A/B 完成后,汇总两路提取的技术术语,执行代码穿透(步骤 3),重点比对规格描述 vs 实际实现的差异。
最终回答格式:
## 回答
[综合回答]
## 信息来源
- 图谱:[关键发现]
- 文档:[关键发现]
- 代码:[关键发现](如有代码穿透结果)
## 代码验证(如有差异)
- [规格 vs 实现] {差异描述}
- 证据:{源文件路径}:{行号}
## 差异说明(如有)
无论哪种查询模式,在获得知识库/图谱结果后,执行代码穿透来验证规格与实现的一致性。
执行前提:
步骤 1:提取技术术语
从知识库/图谱查询结果中提取可用于搜索源代码的技术关键词:
| 来源类型 | 可提取的术语 | 示例 |
|---|---|---|
| 接口文档 | API路径、请求参数名、响应字段名 | /contract/info/page, contractCode |
| 需求文档 | 表名、字段代码、业务实体编码 | contract_archive_info |
| 图谱节点 | source_file 中的路径片段、类名 | ContractInfoRest |
| 文档正文 | 任何明确提及的技术标识 | config.js, advanceUser |
同时从中文术语推断可能的技术命名:
contractManage、ContractInfo)searchContract、contractPage)步骤 2:搜索源代码
调用 search_source MCP 工具搜索源代码:
search_source(query_text="技术术语", kb="目标kb", glob="*.java", max_results=50)
根据目标语言调整 glob 参数:
*.java*.vue 或 *.ts 或 *.js*.py*(默认)如果搜索结果中包含关键文件,用 read_source_file 深入阅读:
read_source_file(kb="目标kb", path="repos/.../KeyFile.java", start_line=1, end_line=0)
步骤 3:补充回答
将源代码搜索结果作为补充信息纳入回答:
严格模式约束:用户选择了哪种查询模式,就只用该模式的结果回答。禁止因为认为结果不理想而自动切换或追加其他模式的查询。
代码穿透是所有模式的标配:代码穿透不是独立查询模式,而是每种模式回答后的验证步骤。即使严格模式约束下,代码穿透仍然执行。