Mcpgo

io.github.jschoemaker由 GitHub 账号 jschoemaker 发布v0.1.6更新于 Oct 24, 2026

Manage your Claude Code MCPs by talking to Claude — list, restart, wrap, and more.

已验证STDIO仅桌面效率与工作流开发者工具

概览

AI 生成的概览

一个本地 MCP 服务器,让 Claude Code 通过对话列出、添加、删除、配置、包装和重启其他 MCP 服务器。

可以做什么
列出、查看、添加、删除和更新 Claude Code 配置中的 MCP 服务器条目,默认隐藏环境变量值,可按需显示(list_all_mcps、get_mcp_details、add_mcp、remove_mcp、configure_mcp)。用常驻包装进程包装或取消包装 stdio MCP,以获得可靠重启(wrap_mcp_stdio、unwrap_mcp_stdio)。重启已包装 MCP 的子进程,并检查某个 MCP 是否已配置、已包装且正在运行(restart_mcp_process、check_mcp_health)。从 Codex CLI 配置文件包装并重启其 MCP(wrap_codex_mcp_stdio、restart_codex_mcp_process)。
适用场景
适合管理多个 Claude Code MCP 服务器、希望通过询问 Claude 来列出、修改或重启它们的场景,尤其是在无法使用 /mcp 命令的 Remote Control 模式下。包装是可选的,仅在希望无需手动重连即可重启时才需要。
运行要求
通过 npx 从 npm 包 @exfil/mcpgo 以 stdio 在本地运行,需要 Node.js 18 或更高版本。需以用户级 MCP 条目安装到 Claude Code。会读写 Claude Code 配置(~/.claude.json),Codex 支持还需 ~/.codex/config.toml。未声明 API 密钥或环境变量。
安装前请注意
它会修改 Claude Code 和 Codex 的 MCP 配置文件:添加、删除、更改和包装条目,并把包装脚本复制到用户数据目录。包装会改写 MCP 的启动命令并改变传给它的环境变量,且需重启 Claude Code 后才生效。配置类工具在被明确要求时可显示已存储的环境变量值,因此 MCP 配置中的密钥可能被暴露。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Mcpgo,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

mcpgo

Manage your Claude Code MCPs by talking to Claude — list, restart, wrap, and more.

Works everywhere Claude Code works, including Remote Control where /mcp isn't available.

Installation

bash
npm install -g @exfil/mcpgoclaude mcp add mcpgo --scope user -- mcpgo

Requirements: Node.js ≥ 18

Remote Control

Claude Code's Remote Control mode has no access to /mcp. That means you can't list, restart, or manage MCP servers remotely — unless you have mcpgo.

Because mcpgo is itself an MCP server, it's available everywhere Claude Code is:

"list my mcps""restart github""check postgres health"

No /mcp UI needed.

What it does

Reliable restarts

Claude Code connects to stdio MCP servers via pipes it creates at launch. If a server crashes or you want to restart it, Claude Code marks it as failed with no auto-recovery.

mcpgo solves this with a wrapper: a long-lived process that sits between Claude Code and your MCP. Claude Code talks to the wrapper (which stays alive), and the wrapper spawns the real server as a child — auto-respawning it whenever it's killed.

Wrapping is optional — you can use mcpgo just for listing, adding, or removing MCPs without wrapping anything. Wrapping is only needed if you want reliable restarts without touching /mcp.

One-time setup per MCP:

  1. wrap_mcp_stdio — wraps the target MCP in config
  2. Restart Claude Code (or disconnect + reconnect via /mcp)
  3. Done — use restart_mcp_process anytime

After setup:

"restart github"     → instant, wrapper auto-respawns the child, Claude Code stays connected"restart postgres"        → same

If you ever want to undo wrapping, use unwrap_mcp_stdio to restore the original config.

Tools

Process management

wrap_mcp_stdio

Wrap a Claude Code stdio MCP for reliable restarts.

"wrap github""wrap postgres"
unwrap_mcp_stdio

Restore a wrapped MCP to its original config.

"unwrap github""unwrap postgres"
restart_mcp_process

Restart a wrapped MCP's child process — wrapper auto-respawns it, Claude Code stays connected.

"restart github""restart postgres"
check_mcp_health

Check if an MCP is configured, wrapped, and its process is running.

"check github health""is postgres running?"

Codex CLI support

wrap_codex_mcp_stdio

Wrap a Codex CLI MCP from ~/.codex/config.toml.

"wrap my codex mcp called postgres"
restart_codex_mcp_process

Restart a wrapped Codex CLI MCP.

"restart the codex postgres"

Config management

list_all_mcps

List all configured MCP servers.

"list my mcps""what mcps do I have?"
add_mcp

Add a new MCP server to ~/.claude.json.

"add an mcp called my-tool that runs python server.py"
remove_mcp

Remove an MCP server.

"remove the my-tool mcp"
configure_mcp

Update an existing MCP server's config fields.

"change github's command to python3"
get_mcp_details

Get full config details for a specific MCP.

"show me the github config""get details for postgres"

How wrapping works

When you call wrap_mcp_stdio "github", the config entry changes from:

json
{ "command": "python", "args": ["server.py"] }

to:

json
{  "command": "node",  "args": [    "/path/to/wrapper.js",    "--name", "github",    "--pidfile", "...",    "--env-allowlist", "PATH,Path,PATHEXT,HOME,USERPROFILE,SystemRoot,...",    "--",    "python", "server.py"  ]}

The wrapper:

  • Spawns the original command as a child
  • Writes the child's PID to a pidfile
  • Auto-respawns the child on exit (with backoff)
  • Passes a curated env to the child (PATH, locale, temp, home, plus the MCP's declared env keys) instead of inheriting Claude Code's full environment
  • Exits cleanly on SIGTERM, SIGINT, or stdin EOF

restart_mcp_process reads the pidfile and kills the child. The wrapper respawns it — Claude Code never sees a disconnect.

unwrap_mcp_stdio reverses this — it restores the original command from the args after -- and removes the pidfile.

Stable wrapper location

When you wrap an MCP, mcpgo copies wrapper.js to a stable user-data location and writes that path into ~/.claude.json. This means the config survives npx cache clears and mcpgo version upgrades — the wrapper won't disappear from under you.

  • Windows: %LOCALAPPDATA%\mcpgo\wrapper.js
  • Linux/macOS: ~/.mcpgo/wrapper.js

Re-running wrap_mcp_stdio on an already-wrapped MCP refreshes the wrapper copy in place.

Pidfile locations

  • Windows: %LOCALAPPDATA%\mcpgo\pids\<name>.pid
  • Linux/macOS: $TMPDIR/mcpgo/pids/<name>.pid

Notes

  • Wrapping requires a Claude Code restart (or manual /mcp disconnect + reconnect) to take effect — Claude Code caches config in memory
  • restart_mcp_process works best on wrapped MCPs; for unwrapped ones it kills the process but you'll need to reconnect manually via /mcp
  • Mid-request crashes may cause a brief protocol desync; Claude Code recovers on the next tool call
  • Wrapped MCPs receive a curated env (PATH, locale, temp, home, plus the MCP's declared env keys) rather than the full Claude Code environment. Re-run wrap_mcp_stdio on previously-wrapped MCPs to pick up this default
  • list_all_mcps and get_mcp_details redact env values by default so the tools can't be used to exfiltrate secrets stored in MCP configs — pass show_env_values: true when you actually need to see them

来源:README.md,提交 ab89fcb

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v0.1.6最新Sep 16, 2026

评分

已满足适用检查项的 40%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分

    请在仓库或注册中心条目中声明许可证。