mcpField
M
mcpgo

mcpgo

ローカル
github.com/jschoemaker開発ツール023 週間前に更新

mcpgo について

mcpgoは、会話形式のコマンドでClaude CodeのMCP設定を管理するMCPサーバーです。stdioサーバーをラップして自動再起動でき、Codex CLIのMCPにも対応します。

主な機能

  1. 01設定済みMCPの一覧と詳細表示
  2. 02サーバーの追加・削除・設定変更
  3. 03stdio MCPの再起動用ラップ
  4. 04ラップしたサーバープロセスの再起動
  5. 05サーバープロセスの状態確認
  6. 06Codex CLI MCPの管理

活用シーン

  1. 01Remote Control中にMCP一覧を確認
  2. 02停止したラップ済みサーバーの再起動
  3. 03会話形式でMCPサーバー設定を変更

MCP 対応

mcpgo自身がMCPサーバーとして、Claude CodeのMCP設定とプロセスを管理するツールを公開します。stdio MCPのラップと再起動に加え、Codex CLI MCP用のツールも備えています。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"jschoemaker-mcpgo": {
"command": "npx",
"args": [
"-y",
"@exfil/mcpgo"
]
}
}
}
起動コマンドnpx -y @exfil/mcpgo

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@exfil/mcpgo0.1.6

ツール

11

掲載時のツール一覧 · 3 週間前に更新

パラメーター型必須説明
show_env_valuesbooleanいいえ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 ごとの初回設定:

  1. wrap_mcp_stdio — 設定内の対象 MCP をラップします
  2. Claude Code を再起動します(または /mcp から切断して再接続します)
  3. 完了 — 以後はいつでも 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 を渡してください

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。