AIエージェントと外部ツールをつなぐ標準規格「MCP (Model Context Protocol)」の普及に伴い、Docker社が公式に「Docker MCP レジストリ」を公開しました。
これは、セキュリティと品質が保証されたMCPサーバーの厳選カタログです。DifyなどのAIアプリケーションを運用する際、信頼できるMCPサーバーをDockerコンテナとして即座にデプロイできる環境が整いつつあります。
この記事では、Docker MCPレジストリの概要と、開発者が自身のMCPサーバーをこのレジストリに登録(貢献)するための手順を解説します。
Docker MCP レジストリを使用するメリット
なぜ、GitHubなどで公開されているコードを直接使うのではなく、Docker MCPレジストリ経由で利用するべきなのでしょうか?主な理由は以下の通りです。
- エンタープライズレベルのセキュリティ: Dockerによってビルドされたイメージには、暗号化署名、出所追跡、SBOM(ソフトウェア部品表)が含まれており、信頼性が担保されています。
- コンテナによる分離: すべてのMCPサーバーは独立したコンテナ内で実行されるため、ホストシステム(Difyが稼働しているサーバーなど)へのセキュリティリスクを最小限に抑えられます。
- 簡単な検出とデプロイ: Docker Desktopの「MCPツールキット」やカタログから、ユースケースに合ったサーバーを簡単に見つけ、標準化された方法でデプロイできます。
レジストリへの貢献(サーバー登録)プロセス
自作のMCPサーバーを公式レジストリに登録し、世界中の開発者に利用してもらうための手順を解説します。
前提条件
- Go言語 (v1.24以上)
- Docker Desktop
- Task (タスクランナー)
登録オプションの選択
登録には2つの方法がありますが、「オプションA」が推奨されています。
| オプション | 内容 | メリット |
|---|---|---|
| A: Dockerビルド (推奨) | Docker社があなたのリポジトリからイメージをビルド・署名・公開する | 自動セキュリティ更新、署名付き、Docker Hubの公式名前空間で公開 |
| B: 自己ビルド | 自分でビルドしたイメージを提供する | コンテナ分離のメリットはあるが、セキュリティ機能は限定的 |
登録のステップバイステップ手順
1. リポジトリの準備
まず、公式リポジトリを自分のGitHubアカウントにフォークし、ローカルにクローンします。
2. サーバー構成の生成
server.yaml という設定ファイルを作成します。これを簡単に行うためのウィザードが用意されています。
task wizard
または、コマンドラインで直接生成することも可能です。以下はデータベース接続用MCPサーバーの例です。
task create -- --category database https://github.com/myorg/my-orgdb-mcp -e API_TOKEN=test
これにより、servers/ ディレクトリ内に以下のような server.yaml が自動生成されます。
name: my-orgdb-mcp
image: mcp/my-orgdb-mcp
type: server
meta:
category: database
tags:
- database
about:
title: My OrgDB MCP (TODO)
description: TODO (only to provide a better description than the upstream project)
icon: https://avatars.githubusercontent.com/u/182288589?s=200&v=4
source:
project: https://github.com/myorg/my-orgdb-mcp
config:
description: Configure the connection to TODO
secrets:
- name: my-orgdb-mcp.api_token
env: API_TOKEN
example: <API_TOKEN>
config:
description: Configure the connection to AWS
secrets:
- name: tigris.aws_secret_access_key
env: AWS_SECRET_ACCESS_KEY
example: YOUR_SECRET_ACCESS_KEY_HERE
env:
- name: AWS_ACCESS_KEY_ID
example: YOUR_ACCESS_KEY_HERE
value: '{{tigris.aws_access_key_id}}'
- name: AWS_ENDPOINT_URL_S3
example: https://fly.storage.tigris.dev
value: '{{tigris.aws_endpoint_url_s3}}'
parameters:
type: object
properties:
aws_access_key_id:
type: string
required:
- aws_access_key_id
3. ローカルでのテスト実行
作成した設定が正しく動作するか、ローカル環境でテストします。
# イメージのビルドとカタログへのインポート
task build -- my-orgdb-mcp
task catalog -- my-orgdb-mcp
docker mcp catalog import $PWD/catalogs/my-orgdb-mcp/catalog.yaml
Docker Desktopの「MCP Toolkit」を開き、新しいサーバーが表示され、正常に動作することを確認してください。
4. プルリクエストの送信
テストが完了したら、フォークしたリポジトリから本家リポジトリへプルリクエスト(PR)を送信します。
Dockerチームによるレビューと承認が行われると、24時間以内に公式カタログに掲載されます。
まとめ
Docker MCPレジストリへの貢献は、あなたの作成したAIツールを安全かつ標準的な方法で世界中に配布する絶好の機会です。
Difyユーザーにとっても、「Docker公式の安心できるMCPサーバー」が増えることは、環境構築のハードルを下げる大きなメリットとなります。


コメント