Docker MCPゲートウェイで「Serena」を使えるようにする(SSE取り込み)

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の設定をすれば使えるはず

はず