DeepSeek Harness 怎么接记忆插件?DSH plugin 的 MCP 配置与 mcp__ 工具调用
DeepSeek Harness 通过 @deepseek-ai/dsh-mcp-client 接入 MCP 记忆服务:本地用 transport: stdio 配 command 与 args,远程用 streamable-http 配 url 与 headers,模型侧工具按 mcp__<serverName>__<tool> 命名。 官方给了 memorix、mcp-reference-memory、engram 三份参考配置,默认关闭、需 --patch 加载。
DeepSeek Harness 记忆 MCP 怎么接:dsh-mcp-client 与三条参考配置
DeepSeek Harness 的 MCP 能力由客户端包 @deepseek-ai/dsh-mcp-client 提供,官方在 apps/cli/config/examples/mcp-memory 下给出 memorix、mcp-reference-memory、engram 三份参考配置,默认关闭(来源)。 接入分四步:
- 认参考配置 — 三份 overlay 分别对应不同记忆后端:
memorix.cordis.yml、mcp-reference-memory.cordis.yml、engram.cordis.yml。预期:先选一个最接近你需求的作模板。 - 选加载方式 — 用
--patch指向对应文件,或把内容搬进$DSH_HOME/profiles/<name>/cordis.patch.yml。预期:不加载时这些配置完全不生效。 - 配数据目录环境变量 — 按后端补
MEMORIX_DATA_DIR、MEMORY_FILE_PATH、ENGRAM_DATA_DIR、ENGRAM_PROJECT。预期:数据落到你指定的目录,便于备份。 - 启动验证 — 启动后在工具列表里确认出现
mcp__前缀的工具。预期:出现即接入成功。
DeepSeek Harness 本地 MCP 怎么配:transport: stdio 与命令参数
本地 MCP 在插件条目里用 transport: stdio,配合 command、args、env、cwd 字段,由 serverName 指定服务名;启动时以子进程方式拉起命令并通过标准输入输出通信(来源)。 字段清单:
name— 插件名,指向@deepseek-ai/dsh-mcp-client。serverName— 这个 MCP 服务的名字,决定工具前缀。预期:取一个清晰、稳定的名字,如memory。transport: stdio— 声明用本地子进程通信。command与args— 要拉起的可执行文件与参数。预期:命令在目标机器上必须可执行。env与cwd— 传给子进程的环境变量与工作目录。预期:数据目录类变量常在这里给。insert与id— 控制条目插入位置与唯一标识,便于与已有配置共存。
# $DSH_HOME/profiles/<profile>/cordis.patch.yml(结构示意)
- insert:
- name: "@deepseek-ai/dsh-mcp-client"
id: memory-mcp
config:
serverName: memory
transport: stdio
command: npx
args: ["-y", "some-memory-mcp"]
env:
MEMORY_FILE_PATH: /path/to/memory.json
DeepSeek Harness 远程 MCP 怎么配:streamable-http 与工具命名
远程 MCP 把 transport 设为 streamable-http 并给 url 与可选 headers;接入后工具按 mcp__<serverName>__<tool> 暴露给模型(来源)。 按下面配:
- 改用远程 transport —
transport: streamable-http,配url指向服务端。预期:无需在本机起子进程。 - 补认证头 — 需要鉴权时在
headers里带 token。预期:别把长期令牌提交进仓库。 - 认工具全名 — 服务端工具
search在serverName: memory下暴露为mcp__memory__search。预期:模型按全名调用,改名会导致调用失败。 - 验证连通 — 启动后触发一次检索类操作。预期:能返回结果即链路通。
想要现成的记忆类 DSH插件 而不想自己接 MCP,可在 DSH Plugin Hub 里按「记忆」筛选。

DeepSeek Harness MCP 记忆配置的注意事项与局限
- 参考配置默认关闭:
apps/cli/config/examples/mcp-memory下的三份只是示例,必须--patch或搬进 patch 才生效。 serverName决定工具名:改它会同时改掉mcp__<serverName>__<tool>,已写好的调用会失效。command要能在本机跑:stdio 方式依赖本机可执行的命令,CI 或容器里可能没有。- 令牌别进仓库:远程 MCP 的
headers常含 token,用环境变量注入更稳妥。 - 数据目录要显式指定:不设
MEMORIX_DATA_DIR这类变量时,数据可能落到默认路径,备份与迁移会找不到。
MCP 插件的安装侧见《dsh plugin 多 profile 安装》;配置覆盖顺序见《DeepSeek Harness 插件配置怎么改》。
常见问题
DeepSeek Harness 通过客户端包 @deepseek-ai/dsh-mcp-client 接入 MCP 服务,官方在 apps/cli/config/examples/mcp-memory 下给了 memorix、mcp-reference-memory、engram 三份参考配置。这三份默认关闭,要用 --patch 显式加载。
本地 MCP 在插件条目里用 transport: stdio,并给 command、args、env、cwd 等字段;服务名由 serverName 指定。启动时会以子进程方式拉起该命令,通过标准输入输出通信。
远程 MCP 把 transport 设为 streamable-http,并给 url 与可选的 headers。相比 stdio 无需在本机起子进程,适合已有的记忆服务端。
DeepSeek Harness 把每个 MCP 服务的工具暴露成 mcp__<serverName>__<tool>,serverName 是你在配置里起的服务名,tool 是服务端暴露的工具名。模型按这个全名调用,所以 serverName 要取清晰、稳的名字。
因为它们只是示例 overlay,放在 apps/cli/config/examples/mcp-memory 下、默认不加载。要用得通过启动参数 --patch 指向对应 cordis.yml,或把内容搬进 profile 的 cordis.patch.yml。
相关术语
- dsh-mcp-client
- dsh-mcp-client 是 DeepSeek Harness 的 MCP 客户端插件包(@deepseek-ai/dsh-mcp-client),负责连接受支持的 MCP 服务并把其工具暴露给模型。— DeepSeek Harness 官方文档 - MCP 记忆
- MCP
- MCP(Model Context Protocol)是用于把外部工具与数据源以统一协议接入模型的开放标准,DeepSeek Harness 通过 dsh-mcp-client 作为客户端消费 MCP 服务。— DeepSeek Harness 官方文档 - MCP 记忆
- transport: stdio
- transport: stdio 是 DeepSeek Harness 接入本地 MCP 服务的方式,通过 command、args、env、cwd 拉起子进程并经标准输入输出通信。— DeepSeek Harness 官方文档 - MCP 记忆
- mcp__<serverName>__<tool>
- mcp__<serverName>__<tool> 是 DeepSeek Harness 暴露 MCP 工具时的命名规则,serverName 为配置中的服务名、tool 为服务端工具名,模型按此全名调用。— DeepSeek Harness 官方文档 - MCP 记忆
来源
- DeepSeek Harness 官方文档 - MCP 记忆· deepseek-ai
- dsh CLI README· deepseek-ai