mcpgo について
mcpgoは、会話形式のコマンドでClaude CodeのMCP設定を管理するMCPサーバーです。stdioサーバーをラップして自動再起動でき、Codex CLIのMCPにも対応します。
主な機能
- 01設定済みMCPの一覧と詳細表示
- 02サーバーの追加・削除・設定変更
- 03stdio MCPの再起動用ラップ
- 04ラップしたサーバープロセスの再起動
- 05サーバープロセスの状態確認
- 06Codex CLI MCPの管理
活用シーン
- 01Remote Control中にMCP一覧を確認
- 02停止したラップ済みサーバーの再起動
- 03会話形式でMCPサーバー設定を変更
MCP 対応
mcpgo自身がMCPサーバーとして、Claude CodeのMCP設定とプロセスを管理するツールを公開します。stdio MCPのラップと再起動に加え、Codex CLI MCP用のツールも備えています。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
11掲載時のツール一覧 · 3 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| show_env_values | boolean | いいえ | true の場合、生の 'env' 値を表示します。デフォルトは false です(値は '***' と表示されます)。 |
詳細
mcpgo
Claude に話しかけて Claude Code の MCP を管理できます。一覧表示、再起動、ラップなどが可能です。
Remote Control を含め、Claude Code が動作するあらゆる環境で利用できます。Remote Control では /mcp が使用できません。
インストール
npm install -g @exfil/mcpgo
claude mcp add mcpgo --scope user -- mcpgo
要件: Node.js ≥ 18
Remote Control
Claude Code の Remote Control モードでは /mcp にアクセスできません。そのため、mcpgo がないとリモートから MCP サーバーの一覧表示、再起動、管理ができません。
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 は稼働し続けるラッパーと通信し、ラッパーは実際のサーバーを子プロセスとして起動します。子プロセスが終了すると、ラッパーが自動的に再起動します。
ラップは任意です。ラップせずに、MCP の一覧表示、追加、削除だけに mcpgo を利用することもできます。/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/config.toml の Codex CLI MCP をラップします。
"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 に書き込みます
- 子プロセスが終了すると、自動的に再起動します(バックオフあり)
- Claude Code の環境変数をすべて継承するのではなく、選別した環境変数(PATH、ロケール、一時ディレクトリ、ホームディレクトリ、および MCP で宣言された
envキー)を子プロセスに渡します - SIGTERM、SIGINT、または stdin の EOF で正常に終了します
restart_mcp_process は pidfile を読み込み、子プロセスを強制終了します。ラッパーが子プロセスを再起動するため、Claude Code は接続が切れたことを認識しません。
unwrap_mcp_stdio はこの処理を元に戻します。-- の後にある引数から元のコマンドを復元し、pidfile を削除します。
安定したラッパーの配置場所
MCP をラップすると、mcpgo は wrapper.js をユーザーデータの安定した場所にコピーし、そのパスを ~/.claude.json に書き込みます。そのため、npx キャッシュの削除や mcpgo のバージョンアップ後も設定が維持され、ラッパーが突然なくなることはありません。
- Windows:
%LOCALAPPDATA%\mcpgo\wrapper.js - Linux/macOS:
~/.mcpgo/wrapper.js
ラップ済みの MCP に対して wrap_mcp_stdio を再実行すると、ラッパーのコピーがその場で更新されます。
Pidfile の配置場所
- Windows:
%LOCALAPPDATA%\mcpgo\pids\<name>.pid - Linux/macOS:
$TMPDIR/mcpgo/pids/<name>.pid
注意事項
- ラッピングを有効にするには、Claude Code の再起動(または手動での
/mcpの切断と再接続)が必要です。Claude Code は設定をメモリにキャッシュします restart_mcp_processはラッピング済みの MCP で最も効果的に動作します。ラッピングされていない MCP の場合はプロセスを終了しますが、/mcpから手動で再接続する必要があります- リクエスト処理中にクラッシュすると、一時的にプロトコルの同期がずれることがあります。Claude Code は次のツール呼び出しで復旧します
- ラッピング済みの MCP に渡されるのは、完全な Claude Code 環境ではなく、厳選された環境変数(PATH、ロケール、一時ディレクトリ、ホームディレクトリ、および MCP で宣言された
envキー)です。このデフォルト設定を反映するには、ラッピング済みの MCP に対してwrap_mcp_stdioを再実行してください list_all_mcpsとget_mcp_detailsは、MCP の設定に保存されたシークレットの持ち出しにツールが悪用されないよう、デフォルトでenvの値をマスキングします。実際に値を確認する必要がある場合は、show_env_values: trueを渡してください
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。