🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

代码图谱记忆 LoveDoLove/dsh-codebase-memory-mcp

DeepSeek Harnessv0.1.4
LoveDoLove30 天前有提交已提供中文文档扫描:含敏感能力

为 DeepSeek Harness 打造的 Codebase Memory MCP 桥接插件:知识图谱代码搜索、AST 片段、架构分析、调用图追踪、自动启动的图谱界面、内置技能,还有 /cbm 命令。

30.8/100
综合分
1
GitHub 星标
265
npm 周下载
—/5
用户评分

数据截至 2026/10/4 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add @lovedolove/dsh-codebase-memory-mcp
npm 源 · @lovedolove/dsh-codebase-memory-mcp 的发布者账号已校验与本仓库一致

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · vision
装得上吗
本站已在 dsh 0.2.1-rc.2 下真实安装成功
非静态推断
L5 · 运行时冒烟等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 30 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过
展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✓npm 包@lovedolove/dsh-codebase-memory-mcp @ 0.1.4
✓Node 引擎要求 >=18.0.0 <25.0.0 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/16 14:07:55

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令读写/删除本地文件
查看扫描证据(共 26 处,展示前 23 条)
  • 读取本地文件
    src/client.mjs:24
    if (env.CBM_EXE && existsSync(env.CBM_EXE)) {
  • 读取本地文件
    src/client.mjs:27
    if (env.CODEBASE_MEMORY_EXE && existsSync(env.CODEBASE_MEMORY_EXE)) {
  • 读取本地文件
    src/client.mjs:48
    if (existsSync(c)) return c
  • 读取本地文件
    src/client.mjs:56
    if (existsSync(target)) return target
  • 读取本地文件
    src/client.mjs:60
    if (!isWin && existsSync('/proc/sys/fs/binfmt_misc/WSLInterop')) {
  • 读取本地文件
    src/client.mjs:65
    if (existsSync(target)) return target
  • 执行外部命令来自配置/变量
    src/client.mjs:109
    this.child = spawn(this.exePath, args, {
  • 读取本地文件
    src/discovery.mjs:167
    if (existsSync(absTarget)) {
  • 读取本地文件
    src/discovery.mjs:200
    if (!existsSync(absPath)) return false
  • 读取本地文件
    src/discovery.mjs:201
    const fd = readFileSync(absPath, { flag: 'r' })
  • 读取本地文件
    src/discovery.mjs:280
    if (!existsSync(absRoot)) {
  • 读取本地文件
    src/discovery.mjs:286
    if (existsSync(gitignorePath)) {
  • 读取本地文件
    src/discovery.mjs:288
    gitignoreRules.push(...parseGitignoreContent(readFileSync(gitignorePath, 'utf8')))
  • 读取本地文件
    src/engine.mjs:53
    if (existsSync(metaPath)) {
  • 读取本地文件
    src/engine.mjs:54
    return JSON.parse(readFileSync(metaPath, 'utf8'))
  • 写入本地文件
    src/engine.mjs:68
    mkdirSync(dirname(metaPath), { recursive: true })
  • 写入本地文件
    src/engine.mjs:69
    writeFileSync(metaPath, JSON.stringify(data, null, 2), 'utf8')
  • 读取本地文件
    src/watcher.mjs:120
    if (!existsSync(absPath)) {
  • 读取本地文件
    src/watcher.mjs:123
    const st = statSync(absPath)
  • 读取本地文件
    src/skills.mjs:121
    exists: existsSync(file),
  • 读取本地文件
    src/skills.mjs:137
    const raw = await readFile(fileURLToPath(candidate.locator), 'utf8')
  • 读取本地文件
    src/skills.mjs:173
    const raw = await readFile(file, 'utf8')
  • 读取本地文件
    src/skills.mjs:202
    const raw = await readFile(file, 'utf8')
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-commands@deepseek-ai/dsh-skill@deepseek-ai/dsh-system-prompt@deepseek-ai/dsh-tools
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 知识图谱代码搜索
  • AST片段提取
  • 调用图追踪
v0.1.52026-11-03
· 新增 · 从 Veyra 提取出完整的 Codebase Memory 核心: - src/types.mjs:索引、新鲜度、实体、关系、方向的常量。 - src/client.mjs:stdio JSON-RPC 客户端、可执行文件发现、守护进程自动启动。 - src/discovery.mjs:路径遍历防护、gitignore 解析器、敏感/机密检测、仓库发现。 - src/engine.mjs:CodeIntelligenceEngine,负责索引、搜索、片段提取、架构和状态。 - src/watcher.mjs:RepositoryWatcher,做防抖的增量文件监听。 - src/tools.mjs:全部 6 个 cbm_* 工具的完整定义和执行处理器。 - src/redact.mjs:敏感模式擦除器和内容清洗器。 · 重新导出模块化 API(@lovedolove/dsh-codebase-memory-mcp/client、/discovery、/engine、/tools、/types、/watcher)。 · 覆盖所有已提取模块的完整单元测试。
v0.1.02026-10-01
· 新增 · 独立 DSH 插件,用来集成 codebase-memory-mcp。 · 插件初始化时自动启动后台守护进程(--ui=true)。 · Web 知识图谱可视化界面,托管在 · 6 个 MCP 工具全部注册进 DSH: - cbm_projects:列出已索引项目。 - cbm_search:按名称、标签或路径搜索代码知识图谱。 - cbm_snippet:为限定符号取回精确源码片段。 - cbm_arch:目录架构摘要。 - cbm_trace:追踪入站和出站调用图路径。 - cbm_search_code:跨仓库文件快速文本搜索。 · 跨平台可执行文件检测(Linux、macOS、Windows 和 WSL)。 · 内置 codebase-memory 技能,供 DeepSeek Harness 智能体使用。 · 斜杠命令 /cbm,查看守护进程状态、可执行文件路径和已索引项目。 · 自动化 CI 与 npm 发布的 GitHub Actions 工作流。
数据来自仓库的 GitHub Release,可能与插件实际版本不一致。

README

由 DeepSeek 最新模型翻译生成
@lovedolove/dsh-codebase-memory-mcp 独立 Codebase Memory MCP 桥接插件,用于 DeepSeek Harness(DSH)。 注册六个知识图谱代码工具,自动启动 codebase-memory-mcp 守护进程及其图谱可视化 Web UI,并附带一个内置智能体技能和一个 /cbm 状态命令。 M8ven Score 功能 - 六个知识图谱代码工具,原生注册在 DSH 工具界面上(cbm_projects、cbm_search、cbm_snippet、cbm_arch、cbm_trace、 cbm_search_code)。内置技能的说明指出,图谱查询返回精确的结构化结果只需约 500 token,而 grep 需要约 80K。 - 自动启动的后台守护进程与 Web UI —— 插件加载时,以子进程方式启动 codebase-memory-mcp --ui=true,走 stdio JSON-RPC 2.0(MCP 握手 2025-03-26),并打印 codebase-memory UI is live: http://localhost:9749/。共享客户端会在守护进程退出时自动重启,并在插件关闭时将其释放。
展开完整文档(README 剩余 1 节)
@lovedolove/dsh-codebase-memory-mcp

独立 Codebase Memory MCP 桥接插件,用于 DeepSeek Harness(DSH)。
注册六个知识图谱代码工具,自动启动 codebase-memory-mcp 守护进程及其图谱可视化 Web UI,并附带一个内置智能体技能和一个 /cbm 状态命令。

M8ven Score

功能

- 六个知识图谱代码工具,原生注册在 DSH 工具界面上(cbm_projects、cbm_search、cbm_snippet、cbm_arch、cbm_trace、 cbm_search_code)。内置技能的说明指出,图谱查询返回精确的结构化结果只需约 500 token,而 grep 需要约 80K。
- 自动启动的后台守护进程与 Web UI —— 插件加载时,以子进程方式启动 codebase-memory-mcp --ui=true,走 stdio JSON-RPC 2.0(MCP 握手 2025-03-26),并打印 codebase-memory UI is live: http://localhost:9749/。共享客户端会在守护进程退出时自动重启,并在插件关闭时将其释放。
- 系统提示词引导 —— 注入一节 Codebase Memory — Knowledge Graph Policy,告诉模型何时优先使用图谱工具,而不是 grep/read。
- 内置智能体技能 —— skills/codebase-memory/SKILL.md 注册为原生内置技能服务商(codebase-memory,rank 600,模型和用户均可调用),因此面向模型的 skill 工具可以加载它。
- /cbm 斜杠命令 —— 报告解析出的可执行文件路径、Web UI 链接,以及守护进程中当前已索引的项目。
- 优雅降级 —— 只有 tools 是硬依赖(inject: ['tools']); systemPrompt、skills、commands 通过延迟的 ctx.inject() 挂载,所以宿主服务缺失时直接跳过对应功能。
- 跨平台可执行文件检测 —— 支持 CBM_EXE 覆盖、用户和系统目录、当前工作目录、PATH,以及 WSL 互操作回退,可从 Linux/WSL 定位到可访问的 codebase-memory-mcp.exe。

环境要求

| 组件 | 版本 |
| DeepSeek Harness | >=0.1.2-rc.1 <0.3.0-0(dsh.compatibility.dshVersions) |
| Node.js | >=18 <25(engines) |
| codebase-memory-mcp 可执行文件 | 任意近期版本(已在 0.11.0 上测试) |

可选同级依赖(在 peerDependencies 中声明,存在时从 DSH 运行时解析):@deepseek-ai/cordis >=4.0.1-rc.1 <5.0.0-0,以及 @deepseek-ai/dsh-commands、@deepseek-ai/dsh-skill、 @deepseek-ai/dsh-system-prompt、@deepseek-ai/dsh-tools >=0.1.2-rc.1 <0.3.0-0.

启动 DSH 之前先安装可执行文件。 插件加载时会解析二进制文件;找不到就不会启动守护进程,cbm_ 工具也不会注册。之后再安装二进制文件,需要重新加载配置档。

安装

1. 安装 codebase-memory-mcp 可执行文件

插件只是一座桥——代码索引和查询由 codebase-memory-mcp 运行时完成(上游项目、文档):

Installs the CLI and downloads/caches the native runtime for your platform
npm install -g codebase-memory-mcp

Verify it runs
codebase-memory-mcp --version

也可以下载对应平台的发布二进制文件,放到插件会搜索的位置之一:

- ~/.local/bin/codebase-memory-mcp(Linux/macOS 用户 bin 目录)
- /usr/local/bin/ 或 /usr/bin/(系统目录)
- 当前工作目录,或 PATH 上的任意位置
- %USERPROFILE%\AppData\Local\Programs\codebase-memory-mcp\codebase-memory-mcp.exe(Windows)

或者用 CBM_EXE=/path/to/codebase-memory-mcp 直接指定路径。

2. 把插件安装到 DSH 配置档

dsh plugin --profile web add @lovedolove/dsh-codebase-memory-mcp

(把 web 换成你的配置档名——web、headless、sdk、acp……)

这条命令会把包安装转发到配置档目录。由于包声明了 dsh.bundle.patch,DSH 会把 @lovedolove/dsh-codebase-memory-mcp 追加到配置档的 dsh.profile.bundles 列表,自动激活 bundle。

其他安装方式:

- Web 侧边栏 → Plugins 页面:搜索这个包并安装(Creator 模式下 plugin_manager 工具提供同样的操作)。
- 手动接线:把包加到配置档 $DSH_HOME/profiles/<name>/package.json 的 dependencies 里,并在 dsh.profile.bundles 下列出它,然后在该目录执行一次包安装。随包发布的 bundle 补丁(cordis.patch.yml,声明为 dsh.bundle.patch)会挂载插件:

- insert:
- id: codebase-memory
name: '@lovedolove/dsh-codebase-memory-mcp'

3. 启动 DSH

插件加载时你会看到:

[codebase-memory] 🔍 codebase-memory UI is live: http://localhost:9749/

日志里还有:

[codebase-memory] registered tools: cbm_projects, cbm_search, cbm_snippet, cbm_arch, cbm_trace, cbm_search_code
[codebase-memory] registered system prompt guidance
[codebase-memory] registered /cbm command
[codebase-memory] registered skill: codebase-memory

用法

让智能体用它

插件会把知识图谱策略注入系统提示词,并打包 codebase-memory 技能,让智能体自己挑对工具。
典型工作流:

1. cbm_projects() —— 确认项目已建索引(默认从工作区推断项目)。
2. cbm_search(name_pattern=".auth.") —— 按名称/标签/路径查找符号。
3. cbm_trace(symbol="login", direction="both", max_depth=3) —— 追踪调用方与被调用方。
4. cbm_snippet(qualified_name="app.auth.login") —— 读取精确定义,不用加载整个文件。
5. cbm_arch(directory="src") —— 获取目录级组件概览。

快速决策表(来自内置技能):

| 问题 | 工具调用 |
| 谁调用了 X? | cbm_trace(symbol="...", direction="inbound") |
| X 调用了什么? | cbm_trace(symbol="...", direction="outbound") |
| 完整调用上下文 | cbm_trace(symbol="...", direction="both") |
| 按名称模式查找 | cbm_search(name_pattern="...") |
| 读取源码片段 | cbm_snippet(qualified_name="...") |
| 目录架构 | cbm_arch(directory="...") |
| 在仓库中做文本搜索 | cbm_search_code(query="...") |
| 列出已建索引的项目 | cbm_projects() |

用 /cbm 查看状态

🔍 Codebase Memory MCP
• Executable: /home/you/.local/bin/codebase-memory-mcp
• Web UI: http://localhost:9749/

Indexed Projects:
home-you-my-repo

如果找不到可执行文件,/cbm 会报告: ⚠️ codebase-memory-mcp executable not found. Install codebase-memory-mcp or set CBM_EXE.

Web UI

守护进程启动时带了 --ui=true,所以会在 http://localhost:9749/ 提供 HTTP 图可视化 UI(这是运行时的默认端口;上游二进制接受 --port=N 并会持久化该设置 —— 插件的提示词和 /cbm 都按默认的 9749 处理)。

可用工具

六个工具都接受 project(显式项目 slug)和/或 repo(仓库根路径,自动转成 slug),并且都标记为并发安全。
结果以文本返回。

| 工具 | 描述 | 参数(★ = 必填) |
| cbm_projects | 列出守护进程中已建索引的所有项目 | (无)* |
| cbm_search | 在知识图谱中搜索符号或文件 | name_pattern、label(Function \| Class \| Interface \| File)、file_path_pattern、limit(默认 50)、project、repo |
| cbm_snippet | 获取符号的精确源码片段 | qualified_name、file_path、start_line、end_line、project、repo |
| cbm_arch | 目录的架构摘要(组件、入口点、依赖) | directory(相对于仓库根目录)、depth(默认 2)、project、repo |
| cbm_trace | 沿图谱追踪入向/出向调用路径 | ★ symbol、direction(inbound \| outbound \| both,默认 both)、max_depth(默认 3)、project、repo |
| cbm_search_code | 对已建索引的文件做快速文本正则搜索 | ★ query、file_pattern、limit(默认 50)、project、repo |
每个工具都会转发到守护进程的 MCP tools/call 方法(list_projects、search_graph、get_code_snippet、get_architecture、 trace_path、search_code),超时 120 秒;工具级错误会作为失败的工具结果返回。

配置

环境变量

| 变量 | 作用 |
| CBM_EXE | 显式指定 codebase-memory-mcp 可执行文件的路径(必须存在;优先级高于其他所有查找方式)。 |
| CBM_DEFAULT_PROJECT | 当工具调用既没传 project 也没传 repo 时,用作兜底的项目 slug。 |

项目解析顺序

调用工具时,项目按以下顺序解析:

1. 显式传入的 project 参数,
2. repo 参数对应的 slug,
3. CBM_DEFAULT_PROJECT,
4. 当前工作目录对应的 slug。

slug 映射规则:/home/user/my-repo → home-user-my-repo;Windows 路径保留盘符前缀,例如 C:\Users\me\app → C-Users-me-app。

守护进程自动启动

插件生效时守护进程会立即启动(除非进程运行在 node --test 下),并且每次工具调用都会确保它处于运行状态,所以子进程挂掉后会被透明地重启。插件销毁时,守护进程会连同所有待处理的请求一起终止。

开发与测试

Unit + integration test suite (node --test)
npm test

Verify npm package packing
npm run pack:check

测试套件覆盖路径 slug 化、findExe/CBM_EXE 查找、stdio JSON-RPC 客户端(启动、握手、工具调用、错误)、工具注册、针对模拟 Cordis 上下文执行完整的 apply(),以及——当宿主机安装了真实可执行文件时——一次实时的 list_projects 往返调用(否则跳过该测试)。CI 在 Ubuntu 上使用 Node 20、22、24 运行测试套件。

仓库结构:

src/index.mjs # Cordis plugin: apply(), system prompt, /cbm command
src/bridge.mjs # stdio JSON-RPC client, executable discovery, cbm_* tools
src/skills.mjs # bundled skill provider registration
skills/codebase-memory/SKILL.md # agent-facing skill
cordis.patch.yml # bundle patch that mounts the plugin

发布

每次推送到 main 都会运行 Publish 工作流:它先跑测试套件,然后通过 Trusted Publishing(OIDC)把包发布到 npm。如果当前版本已存在,工作流会递增补丁版本号,并用 [skip publish] 提交回去,避免死循环;提交信息里任何位置包含 [skip publish] 都会完全跳过发布运行。

许可证

MIT © 2025 LoveDoLove
预览分享卡片长什么样 ↓LoveDoLove/dsh-codebase-memory-mcp
分享 · DeepSeek Harness Hub
LoveDoLove/dsh-codebase-memory-mcp

为 DeepSeek Harness 打造的 Codebase Memory MCP 桥接插件:知识图谱代码搜索、AST 片段、架构分析、调用图追踪、自动启动的图谱界面、内置技能,还有 /cbm 命令。

这是你的仓库?认领条目

回到顶部