使用说明
mcpgo
通过与Claude交谈来管理您的Claude Code MCP——列表、重启、包装等。
适用于Claude Code工作的所有地方,包括 遥控器 哪里 /mcp 不可用。
安装
npm install -g @exfil/mcpgo
claude mcp add mcpgo --scope user -- mcpgo
要求: Node.js≥18
遥控器
Claude Code的远程控制模式无法访问 /mcp。这意味着您无法远程列出、重启或管理MCP服务器,除非您有mcpgo。
因为mcpgo本身就是一个MCP服务器,所以它可以在Claude Code所在的任何地方使用:
"list my mcps"
"restart github"
"check postgres health"
不 /mcp 需要UI。
它的作用
可靠的重启
Claude Code通过启动时创建的管道连接到stdio MCP服务器。如果服务器崩溃或您想重新启动它,Claude Code会将其标记为失败,没有自动恢复。
mcpgo通过一个 包装器:位于Claude Code和MCP之间的长期进程。Claude Code与包装器(保持活力)进行通信,包装器将真正的服务器作为子服务器生成——每当它被杀死时,都会自动重新生成它。
包装是 可选的 --您可以使用mcpgo来列出、添加或删除MCP,而无需包装任何东西。只有当您希望在不接触的情况下可靠地重新启动时,才需要包装 /mcp.
每个MCP的一次性设置:
wrap_mcp_stdio--将目标MCP封装在配置中- 重新启动Claude Code(或通过断开连接+重新连接
/mcp) - 完成--使用
restart_mcp_process随时
设置后:
"restart github" → instant, wrapper auto-respawns the child, Claude Code stays connected
"restart postgres" → same
如果你想撤消包装,请使用 unwrap_mcp_stdio 恢复原始配置。
工具
过程管理
wrap_mcp_stdio
包装Claude Code stdio MCP以实现可靠的重启。
"wrap github"
"wrap postgres"
unwrap_mcp_stdio
将包装好的MCP恢复到其原始配置。
"unwrap github"
"unwrap postgres"
restart_mcp_process
重新启动包装好的MCP的子进程——包装器自动重新包装它,Claude Code保持连接。
"restart github"
"restart postgres"
check_mcp_health
检查MCP是否已配置、包装,以及其进程是否正在运行。
"check github health"
"is postgres running?"
Codex CLI支持
wrap_codex_mcp_stdio
包装Codex CLI MCP ~/.codex/config.toml.
"wrap my codex mcp called postgres"
restart_codex_mcp_process
重新启动包装好的Codex CLI MCP。
"restart the codex postgres"
配置管理
list_all_mcps
列出所有已配置的MCP服务器。
"list my mcps"
"what mcps do I have?"
add_mcp
向添加新的MCP服务器 ~/.claude.json.
"add an mcp called my-tool that runs python server.py"
remove_mcp
卸下MCP服务器。
"remove the my-tool mcp"
configure_mcp
更新现有MCP服务器的配置字段。
"change github's command to python3"
get_mcp_details
获取特定MCP的完整配置详细信息。
"show me the github config"
"get details for postgres"
包装是如何工作的
当你打电话的时候 wrap_mcp_stdio "github",配置条目更改为:
{ "command": "python", "args": ["server.py"] }
致:
{
"command": "node",
"args": [
"/path/to/wrapper.js",
"--name", "github",
"--pidfile", "...",
"--env-allowlist", "PATH,Path,PATHEXT,HOME,USERPROFILE,SystemRoot,...",
"--",
"python", "server.py"
]
}
包装:
- 将原始命令作为子命令生成
- 将孩子的PID写入pidfile
- 儿童在出口时自动呼吸(后退)
- 将一个精心策划的环境传递给孩子(PATH、locale、temp、home,加上MCP声明的
envkey)而不是继承Claude Code的完整环境 - 在SIGTERM、SIGINT或stdin EOF上干净退出
restart_mcp_process 读取pidfile并杀死孩子。包装器会重新包装它——Claude Code永远不会看到断开连接。
unwrap_mcp_stdio 反转此操作--它从以下参数中恢复原始命令 -- 并删除pidfile。
稳定的包装位置
当你包装MCP时,mcpgo会复制 wrapper.js 到一个稳定的用户数据位置,并将该路径写入 ~/.claude.json。这意味着配置在npx缓存清除和mcpgo版本升级后仍然存在——包装器不会从您下方消失。
- 窗户:
%LOCALAPPDATA%\mcpgo\wrapper.js - Linux/macOS:
~/.mcpgo/wrapper.js
重新 wrap_mcp_stdio 在已经包装好的MCP上刷新包装器副本。
Pidfile位置
- 窗户:
%LOCALAPPDATA%\mcpgo\pids\<name>.pid - Linux/macOS:
$TMPDIR/mcpgo/pids/<name>.pid
备注
- 包装需要重新启动Claude代码(或手动)
/mcp断开连接+重新连接)生效——Claude Code将配置缓存在内存中 restart_mcp_process在包裹的MCP上效果最佳;对于未包装的,它会终止进程,但您需要通过手动重新连接/mcp- 中间请求崩溃可能会导致短暂的协议失同步;Claude Code在下次工具调用时恢复
- 包装好的MCP会收到一个精心策划的环境(PATH、locale、temp、home,以及MCP声明的
env密钥)而不是完整的Claude Code环境。重新运行wrap_mcp_stdio在之前包装的MCP上启用此默认值 list_all_mcps和get_mcp_details修订env默认值,因此工具不能用于泄露存储在MCP配置中的机密--passshow_env_values: true当你真的需要看到它们的时候