MCP自动重连工具

用于在Claude Code中自动重新连接MCP服务器,避免手动重新加载或重新连接每个选项卡。

  • by Serg2000Mr
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 Serg2000Mr/claude-code-mcp-reconnect

使用说明

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.py

3.从构建脚本触发 --成功重建后,在末尾添加:

# Git Bash:
touch /path/to/.mcp-reconnect

4.验证 --输出→ 克劳德代码:显示日志:

[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上进行测试