2025/08/21 追記
この記事の内容は参考になりません
Cipherの機能を使ってMCPをまとめることにしたのでもうDockerのMCP Gateway は使わなくなった
Cipherの設定も結構ややこしかったので今度記事にする
VSCode cursor ClaudeCode GminiCLI RooCode 全部個別にMCPの設定ってめんどくさくないか?
パープレで聞くと Docker MCP GateWay なるものがあるよと教えてくれた
Docker MCP Gatewayがすんばらしい👌 #AmazonQDeveloper - Qiita
なかなか便利そうと思ったが よく使ってるserena はDockerに対応してないから手間がかかった
Docker MCP GateWayを介して使用できるツールの収集まで確かめただけ
ざっくり
- SerenaはSSEモードで先に立ち上げる (例: http://localhost:9121/sse)
- MCP GateWayは「既定のdocker-mcpカタログ」にSerenaの“SSEエンドポイント”定義を追加
- registryで“serena”をEnabledにし、gateway runで公開
- 以後は、Serenaが起動していればGatewayは毎回自動で取り込む
ポイント
- SerenaのSSE起動コマンド(uv/uvx)と、MCP Gatewayのカタログ管理(catalog/registry)を分ける
- カタログに追加するSerena定義は、transportはsse、エンドポイントはsseEndpointを使う
- Gatewayはcatalog(定義の集合)とregistry(有効化リスト)を分離管理していて両方が揃って初めて有効化できる
Step 1. SerenaをSSEで常駐起動
- uvxで最新版を直接実行(推奨)
- コマンド:
uvx --from git+https://github.com/oraios/serena serena start-mcp-server --transport sse --port 9121
接続先:
注意点
- 毎回サーバー実行が面倒ならタスクスケジューラでログオン時に自動実行にしておくと便利らしいよ
Step 2. Serenaの定義YAMLを作成
どこでもいいんだがわかりやすいんでユーザーのDocker MCP設定ディレクトリ直下に Serena専用のカタログ設定ファイルを用意
- 例: C:\Users\.docker\mcp\serena.yaml
- 中身(最小例)
registry: serena: description: Serena running as SSE server title: Serena (external SSE) type: server transport: sse sseEndpoint: http://localhost:9121/sse
- 解説
- typeはserver
- transportはsseを指定
- SerenaのエンドポイントはsseEndpointキーで渡す
- http://localhost:9121/sseに接続する
sseEndpointなのを パープレのGPT-5が url
って言い張るハルシネーション
なかなか解決しなくて自分でリポジトリのISSUE地道に検索したわ
Step 3. 既定カタログ(docker-mcp)に追加
ユーザーカスタムのカタログにも対応してるみたいだけど新しく作らない
ユーザー定義とデフォルト同時に参照してくれないみたいだった
- コマンド例:
- docker mcp catalog add docker-mcp serena "C:\Users\.docker\mcp\serena.yaml"
- 目的
- 既定の“docker-mcp”カタログに、serena.yamlの定義を追加します
- catalog ls / showで登録内容を確認できる
docker mcp catalog update
でカタログ更新すると追加した文の設定消えるからアップデートしたらdocker mcp catalog add
というやり方は美しくないわ
Step 4. serenaを有効化(registry)
カタログに追加されたんで使用できるサーバーとしてレジストリに追加
- コマンド:
- docker mcp server enable serena
- 確認: docker mcp server list
Step 5. MCPゲートウェイを起動
serena: (26 tools)
となってれば成功
- 例:
- docker mcp gateway run
- Streamingで公開するなら:
- docker mcp gateway run --port 8090 --transport streaming
終わり
これで mcp gateway 実行するか http://localhost:8090/mcp にクライアントから接続するようにMCPの設定をすれば使えるはず
はず