dsh-codegraph
已验证@hilariouhiss/dsh-codegraph · v1.0.1 · MIT
CodeGraph — semantic code intelligence (MCP) for DeepSeek Harness. Adds codegraph_explore so agents answer structural code questions from a pre-built code graph.
安装
dsh plugin add @hilariouhiss/dsh-codegraph 用 dsh --profile default --dump-config 确认 layer 已生效 —— 参见安装指南。
源码
标签
作者
说明文档
@hilariouhiss/dsh-codegraph
把 codegraph(本地优先的代码图 / 知识图谱,让 AI agent 用「预建的符号·调用边·依赖图」回答代码结构问题,而非逐文件 grep)接入 DeepSeek Harness。
本插件以 DSH bundle 插件形式,通过 DSH 内置的 MCP 客户端桥(@deepseek-ai/dsh-mcp-client)连接 CodeGraph 的 MCP server,注册 mcp__codegraph__* 工具,并注入一条轻量使用引导。安装后对 web、headless 等任意 profile 的所有会话生效。
功能
- 注册
mcp__codegraph__codegraph_explore工具:一次调用返回相关符号的逐字源码(按文件分组)、符号间调用链(含动态分派跳转)与影响范围(blast radius)。 - 注入系统提示词引导,让智能体对结构性问题(「X 如何工作」「X 如何到达 Y」「改某处会影响什么」)优先直接调
codegraph_explore,而不是 grep/逐文件读,并传projectPath指向当前工作区。
前置要求
全局安装 CodeGraph CLI(
codegraph需在 DSH 宿主进程的 PATH 上):npm i -g @colbymchenry/codegraph # 或:irm https://raw.githubusercontent.com/colbymchenry/codegraph/main/install.ps1 | iex每个项目首次建图(生成
.codegraph/索引;之后 MCP server 的 watcher 自动增量同步):cd <your-project> codegraph init
安装
dsh plugin --profile web add @hilariouhiss/dsh-codegraph
把 web 换成你的 profile 名(例如 headless)。然后重启 dsh。
dsh plugin 会把本包安装进 profile 的 node_modules;因为 package.json 声明了 dsh.bundle.patch,profile 的 bundle 列表会自动追加 @hilariouhiss/dsh-codegraph,重启后插件行自动激活。
验证
- 重启后,让模型回答一个代码结构问题(如「这个请求是怎么到达数据库的」),观察它调用
mcp__codegraph__codegraph_explore且返回源码 + 调用链。 - 若某项目尚未建图,工具会返回「无索引」提示——在该项目跑一次
codegraph init即可。
卸载
dsh plugin --profile web remove @hilariouhiss/dsh-codegraph
然后重启 dsh。
已知问题与限制
当前实现是「MCP server 直连 + 动态引导」的最小可行集成,已知有以下问题:
模型仍需手动传
projectPath(部分缓解):DSH 宿主是单实例、多会话(多工作区),而 mcp-client 的cwd是宿主面静态配置(process.cwd())。codegraph_explore无法默认指向「当前会话工作区」,模型每次调用仍要自己填projectPath。引导文本现已动态注入当前会话工作区的绝对路径,降低漏填/填错概率;但工具本身仍未自动注入。理想做法是包装一个能自动注入会话cwd的工具,或让 server 按会话定位项目。自动同步只覆盖 server 默认目录的项目:codegraph 的文件 watcher 只持续监视 MCP server 启动
cwd对应的项目;经projectPath查询的其它项目没有持续 watcher,索引不会随编辑自动刷新,需手动codegraph sync保持最新(本插件未做任何同步封装)。不自动建索引:每个项目必须手动
codegraph init一次;插件不代建。未初始化时工具返回「无索引」引导而非真实结果。
开发
pnpm install
pnpm test
结构:
lib/index.js 插件入口:apply(ctx) 用 ctx.plugin 加载 mcp-client + 注入引导
cordis.patch.yml bundle patch:插入本插件的宿主行
test/ node:test 单元测试(config 组装、plugin 加载、引导注册)
发布(给维护者)
cd dsh-codegraph
pnpm install
pnpm test
npm login # 首次发布前登录 npm
npm publish # publishConfig.access 已设为 public
prepublishOnly 会在每次发布前自动运行 npm test;发布新版本前记得递增 package.json 的 version。
许可与来源
本插件为 MIT 许可。它只通过 MCP 连接外部的 codegraph CLI,未内置 codegraph 源码;codegraph 本身来自 colbymchenry/codegraph(© Colby McHenry,MIT,其自身许可见上游仓库)。
提示:若日后升级 dsh 后
@deepseek-ai/dsh-mcp-client的公开 API 发生变化,需同步更新本插件的依赖版本。