Claude代码的MCP自动重新连接
每次重建后,在Claude Code中自动重新连接MCP服务器——所有打开的聊天都会在2秒内获得新的工具,无需手动 /mcp 需要重新连接。
如果你开发了一个MCP服务器,那么目前每次重建都会留下一个过时的工具列表,与克劳德代码聊天。您必须重新加载窗口或手动重新连接每个选项卡。这将完全删除该步骤。
根本原因:克劳德代码忽略 notifications/tools/list_changed 来自MCP服务器(第4118期).在本机修复之前,这将弥合差距。
平台:仅限Windows(目前)。在Claude Code v2.1.87–v2.1.114+版本上进行了测试。
______________________________________________________________________
VS代码扩展(推荐)
零配置:扩展程序从VS代码设置中读取MCP服务器设置,或 .vscode/mcp.json,监视服务器二进制文件,并在二进制文件重写时自动重新连接所有打开的聊天。
从发布版本安装:下载 mcp-reconnect-patch-*.vsix 从 发布那么:
code --install-extension mcp-reconnect-patch-*.vsix就是这样。在第一次重新加载VS代码后,每次后续重建都会在2秒内刷新所有打开的聊天记录。
扩展程序如何找到您的MCP服务器
它识别服务器 command 是一个可以查看的本地文件:
- 直接可执行:
"command": "C:\\path\\to\\server.exe" - Runner+脚本:
"command": "node"随着"args": ["C:\\path\\to\\server.js"]
(支持 node, python, bun, deno, ts-node, tsx)
服务器通过运行 npx some-package 没有可观看的本地二进制文件。
可选设置
| 设置 | 默认值 | 含义 |
|---|---|---|
mcpReconnect.serverName | *(自动)* | 限制重新连接到单个服务器名称 |
mcpReconnect.flagFile | %TEMP%\mcp-reconnect.flag | 覆盖手动触发的标志文件路径 |
mcpReconnect.autoReload | false | 修补后自动重新加载VS代码 |
命令
- MCP重新连接:立即应用补丁 --添加新的MCP服务器后重新应用
- MCP重新连接:将Claude代码还原为Pristine --恢复原始状态
extension.js
从源代码构建
npm install
npm run compile
npm run package # produces .vsix______________________________________________________________________
Python脚本(手动回退)
如果您更喜欢不安装VS Code扩展的一次性设置:
1.配置 --编辑顶部的两行 apply_patch.py:
SERVER_NAME = "your-mcp-server-name" # from .vscode/settings.json → mcp → servers
FLAG_FILE = r"C:\path\to\your\.mcp-reconnect"2.申请 --运行一次,然后重新加载VS代码(Ctrl+Shift+P → 开发人员:重新加载窗口):
python apply_patch.py3.从构建脚本触发 --成功重建后,在末尾添加:
# Git Bash:
touch /path/to/.mcp-reconnect4.验证 --输出→ 克劳德代码:显示日志:
[patch] All N channels reconnected OK注意:Python脚本不监视Claude Code的更新——每次更新后重新运行它。
______________________________________________________________________
运作原理
将IIFE注入Claude Code的 extension.js:
setInterval(2000ms)
└── flag file mtime changed?
└── yes → allComms (all open chats)
└── reconnectMcpServer(channelId, serverName)稳定的标识符 (未缩小,更新后仍有效): allComms, reconnectMcpServer
注入锚点是通过正则表达式找到的——克劳德代码版本之间的微小缩小器更改不会破坏它。主要模式从v2.1.87到v2.1.114+都有效。如果主服务器失败,将激活两个回退策略。注入的代码被包裹在 try/catch 因此,损坏的补丁不会导致Claude Code的激活崩溃。
______________________________________________________________________
锚点历史
| 版本 | allComms var |
|---|---|
| v2.1.87 | Z (命名空间: O6) |
| v2.1.88–v2.1.91 | Z (命名空间: M6) |
| v2.1.92–v2.1.95 | q (命名空间: M6) |
| v2.1.96–v2.1.100 | Z (命名空间: M6) |
| v2.1.101–v2.1.105 | Z (命名空间: M4) |
| v2.1.112–v2.1.114 | U (命名空间: F4) |
动态正则表达式会自动捕获当前变量名,因此除非Claude Code重构其 activate() 功能显著。
______________________________________________________________________
局限性
- 仅限Windows
extension.js是通过文件修改修补的-不是官方的VS代码扩展API- 未在VS Code Insiders或Cursor上进行测试
