
Mcpgo
io.github.jschoemakerPublished by GitHub account jschoemakerv0.1.6Updated Oct 24, 2026
Manage your Claude Code MCPs by talking to Claude — list, restart, wrap, and more.
Overview
A local MCP server that lets Claude Code list, add, remove, configure, wrap and restart other MCP servers by conversation.
- What you can do
- List, inspect, add, remove and update MCP server entries in Claude Code config, with env values redacted by default and optionally shown on request (list_all_mcps, get_mcp_details, add_mcp, remove_mcp, configure_mcp). Wrap and unwrap stdio MCPs in a long-lived wrapper process for reliable restarts (wrap_mcp_stdio, unwrap_mcp_stdio). Restart a wrapped MCP's child process and check whether an MCP is configured, wrapped and running (restart_mcp_process, check_mcp_health). Wrap and restart Codex CLI MCPs from its config file (wrap_codex_mcp_stdio, restart_codex_mcp_process).
- When to use it
- Useful when you manage several Claude Code MCP servers and want to list, edit or restart them by asking Claude, especially in Remote Control mode where the /mcp command is unavailable. Wrapping is optional and only needed if you want restarts without reconnecting manually.
- Requirements
- Runs locally over stdio via npx from the npm package @exfil/mcpgo; requires Node.js 18 or newer. Installed into Claude Code with a user-scope MCP entry. Reads and writes Claude Code config (~/.claude.json) and, for Codex support, ~/.codex/config.toml. No API keys or environment variables declared.
Installation
In SourceWeft
- Open Mcpgo in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
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
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:
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:
wrap_mcp_stdio— wraps the target MCP in config- Restart Claude Code (or disconnect + reconnect via
/mcp) - Done — use
restart_mcp_processanytime
After setup:
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.
unwrap_mcp_stdio
Restore a wrapped MCP to its original config.
restart_mcp_process
Restart a wrapped MCP's child process — wrapper auto-respawns it, Claude Code stays connected.
check_mcp_health
Check if an MCP is configured, wrapped, and its process is running.
Codex CLI support
wrap_codex_mcp_stdio
Wrap a Codex CLI MCP from ~/.codex/config.toml.
restart_codex_mcp_process
Restart a wrapped Codex CLI MCP.
Config management
list_all_mcps
List all configured MCP servers.
add_mcp
Add a new MCP server to ~/.claude.json.
remove_mcp
Remove an MCP server.
configure_mcp
Update an existing MCP server's config fields.
get_mcp_details
Get full config details for a specific MCP.
How wrapping works
When you call wrap_mcp_stdio "github", the config entry changes from:
to:
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
envkeys) 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
/mcpdisconnect + reconnect) to take effect — Claude Code caches config in memory restart_mcp_processworks 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
envkeys) rather than the full Claude Code environment. Re-runwrap_mcp_stdioon previously-wrapped MCPs to pick up this default list_all_mcpsandget_mcp_detailsredactenvvalues by default so the tools can't be used to exfiltrate secrets stored in MCP configs — passshow_env_values: truewhen you actually need to see them
Source: README.md at commit ab89fcb
Tools
0Version history
1- v0.1.6LatestSep 16, 2026
Score
40% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts
Declare a license in the repository or the registry entry.