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 分

    請在儲存庫或註冊中心條目中宣告授權條款。