dsh-mcp-jetbrains:把 JetBrains IDE 内置 MCP 接进 DSH

前言

在 DSH 里做智能体开发时,工具链往往只盯着磁盘上的文件:读路径、跑 shell、看 git 状态。JetBrains 系 IDE meanwhile 维护另一套「真相」——未保存缓冲区、inspection 结果、项目级构建与调试能力。两边不对齐时,常见现象是 IDE 里一片红,而 DSH 侧检查仍报「没问题」;或者 IDE 重启后,工具列表还在,每次调用却 session not found。

dsh-mcp-jetbrains 是 DeepSeek Harness(DSH)社区插件(维护者 darkwithlight,目录分类为联网工具),定位是连接管理器:把 IDE 2025.2 起内置、默认启用的 MCP Server 以客户端形式挂到 DSH,让模型直接调用 IDE 侧的诊断、构建、读文件、数据库、终端、调试等 MCP 工具。DSH 侧不向 IDE 安装额外组件;名字用 jetbrains 而非 idea,是因为同一套连接方式也适用于 CLion、PyCharm 等。

装插件前建议通读仓库中的 SAFETY.md:接入 IDE MCP 等于把 IDE 能做的事交给模型,其中包括终端命令与数据库操作。

这是什么

一句话:dsh-mcp-jetbrains 在 DSH Web profile 里管理一条或多条到本机 JetBrains IDE MCP 的 streamable-http 连接,并在可选策略下把框架的 read / write / edit 强制路由到 IDE 执行。

项目原则(README 原文):读不到 IDE 结论时不得伪装成「检查通过」,应显式报未知或不可用。

核心功能

下面按 README 已列能力归纳,均为插件自述并经文档结构核实。

多 IDE 连接与健康维护

每条连接对应一个 MCP 客户端子插件;配置写入插件自有存储(见下文路径),不写入 profile 的 cordis.patch.yml,改连接后无需重启 DSH。

后台定期健康探测,区分 TCP 连不上(IDE 未开)与会话 404 / 工具面变化(连接失效)。失效时只重挂受影响连接。MCP 调用失败时会先拉服务端工具清单做自诊断:区分工具名问题与连接问题;仅传输类失败会就地重挂并最多重试一次。

Host 保留最近 50 条自动动作,设置页展示前 5 条,便于回答「为何自动重连」。

读写走 IDE(ideIo)

设置页顶部开关对应存储字段 ideIo.enabled,默认开启。开启后在工具调用层拦截 DSH 的 read / write / edit,改走 IDE 的 read_file / create_new_file / apply_patch。

路由规则:目标文件绝对路径与各启用连接的 projectPath 做最长前缀匹配;多条并列匹配则失败;无匹配且仅一条启用连接时使用该连接(诊断标记 fallback: true)。无法路由时明确失败,不静默写磁盘;报错会提示关开关、补连接或修正 projectPath 三种方向。

尚未配置任何连接时,开关仍可开着;首次 read / write / edit 会先向用户提问(粘贴 IDE「复制配置」JSON 自动建连并重试、或声明本次不代执行、或取消)。README 强调第二条 deliberately:避免模型误以为磁盘写入来自 IDE。

edit 路径先用 search_text 定位再 apply_patch,并有读取与 patch 次数预算上限。

IDE 侧「路由模式」与工具面

IDE MCP Server 的「工具暴露」若处于仅路由模式,tools/list 只暴露 execute_tool,其余工具通过字符串参数 --name value 间接调用,例如:

mcp__idea__execute_tool  →  get_file_problems --filePath src/main.ts

README 注明:工具面是连接建立时的快照;IDE 内切换暴露模式后须重新连接才能看到新工具列表。本机实测该模式下 IDE 实际约有 66 个工具(以你本机为准)。

安装与启用

前提

  • JetBrains IDE 2025.2+(内置 MCP Server 插件,默认启用),且 IDE 侧 MCP 地址可从本机访问。
  • DSH 使用 web profile 安装与配置(下文命令均带 --profile web)。

插件以当前 DSH 进程权限运行;安装前请自行查看源码与 MIT 许可证,并阅读 SAFETY.md。

从 npm 安装(推荐)

dsh plugin --profile web add dsh-mcp-jetbrains

安装完成后重启 DSH(例如 dsh web),打开 设置 → JetBrains IDE 连接 添加连接。

开发 linked 安装(可选)

dsh plugin --profile web add link:<本仓库根目录>

改源码后需重装才生效;remove、why 等子命令与 add 一样通过 profile 目录内的 pnpm 转发。

连接持久化路径:

$DSH_HOME/storages/dsh-mcp-jetbrains.connections.json

结构为 { version: 1, ideIo: { enabled }, connections: [...] }。若存在旧插件 @local/dsh-mcp-idea 的 dsh-mcp-idea.connections.json,首次启动会自动迁移,旧文件保留以便回滚。

配置一条连接

在设置页填写下表字段(含义来自 README):

字段 含义
连接 ID 日志与诊断用,同配置内不可重复
serverName 工具名前缀,形如 ^[A-Za-z0-9_-]{1,32}$;对外工具为 mcp__<serverName>__*
MCP 地址 IDE MCP Server 监听 URL,DSH 以 streamable-http 连接,例如 http://127.0.0.1:64342/stream
项目路径 可选;作为 U_MCP_SERVER_PROJECT_PATH 请求头发给 IDE,空则由 IDE 自选项目
启用 / 自动重载 是否挂载、是否允许后台自动重连

端口无固定公式:README 本机实测 IDEA 64342、CLion 64362、PyCharm 64462,以 IDE 界面显示为准。

典型用法

1、安装插件并重启 DSH,确认 IDE 已开且 MCP Server 可访问。

2、在 设置 → JetBrains IDE 连接 新建连接:填 serverName、MCP 地址;若需精确路由读写,填写与工程一致的 projectPath。

3、在对话中让智能体使用暴露的工具(全量模式下工具名直接可见;路由模式下经 execute_tool 间接调用)。需要 IDE inspection 或构建类能力时,优先走 IDE MCP 而非仅读磁盘。

4、若开启「读写走 IDE」,编辑文件前应意识到:IDE 打开且未保存时,读到的是缓冲区内容;经 IDE 写入的换行符可能与 DSH 原生 LF 不同(README 本机实测为 CRLF)。

适用场景与注意

适合谁:本地同时用 DSH Web 与 JetBrains 2025.2+ 做同一仓库;希望模型用 IDE 的诊断、构建、调试、终端、SQL 等 MCP 能力,并可选地统一读写路径到 IDE。

传输与兼容:DSH 侧支持 stdio、streamable-http,不支持 SSE。README 本机实测 IDE 2026.2.3(IU-262.10968.63);更旧版本未在文档中承诺。

已知边界(节选,装前建议读完整表格):

  • 「读写走 IDE」只拦工具层 read/write/edit;rm 等 shell 删除或 IDE 终端/SQL 工具不受该开关约束。
  • apply_patch 多处相同文本时可能静默改第一处;批量 patch 非原子。
  • 官方文档参数名与本机 MCP 实现可能不一致(README 举例 read_file 参数)。

完整限制与安全说明见仓库 SAFETY.md 与 README「已知限制与边界」一节。

结尾

dsh-mcp-jetbrains 解决的是 DSH 与 JetBrains IDE 两套上下文割裂的问题:通过多连接 MCP 客户端把 IDE 能力暴露给智能体,并用健康探测、失败自诊断与可选的 ideIo 路由,减少「以为查过了其实没连上 IDE」的 silent wrong。DeepSeek Harness 生态强调「一切皆插件」;社区目录 SkillHub 为独立站点,与 DeepSeek / 幻方无官方从属关系。

  • 目录页:https://www.skillhub.cn/plugins/darkwithlight/dsh-mcp-jetbrains
  • GitHub:https://github.com/darkwithlight/dsh-mcp-jetbrains
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜