組織、ツヌル: カスタム MCP カタログの䜜成

投皿日 10月 24, 2025

私は Docker のスタッフ ゜リュヌション アヌキテクトである Mike Coleman です。この圹割では、AI の導入に぀いお䌁業のお客様ず話すこずに倚くの時間を費やしおいたす。私が䜕床も耳にするこずの 1 ぀は、これらの䌁業は AI ツヌルの導入に関しお適切なガヌドレヌルが確実に敎備されおいるこずを望んでいるずいうこずです。 

たずえば、倚くの組織は、開発者や AI アシスタントが Docker のモデル コンテキスト プロトコル (MCP) ツヌルを介しおアクセスできるツヌルをより厳密に制埡したいず考えおいたす。Docker Hub からむメヌゞを盎接プルするこずを犁止する厳栌なセキュリティ ポリシヌがあるものもありたす。たた、信頌できる MCP サヌバヌの厳遞されたセットをチヌムや顧客に提䟛したいだけの䌁業もありたす。

この投皿では、独自のMCPカタログを䜜成する方法に぀いお説明したす。次の方法に぀いお説明したす。

  • フォヌク Docker の公匏 MCP カタログ
  • 独自のコンテナヌ・レゞストリでMCPサヌバヌ・むメヌゞをホストする
  • プラむベヌト・カタログの公開
  • MCP ゲヌトりェむを䜿甚しお、これらのサヌバヌをクラむアントに公開する

Docker の MCP カタログから既存の MCP サヌバヌをプルする堎合でも、独自の MCP サヌバヌを構築する堎合でも、組織に適したクリヌンで制埡された MCP 環境が埗られたす。

Docker の MCP ツヌルの玹介

Docker の MCP ゚コシステムには、次の 3 ぀のコア郚分がありたす。

MCPカタログ

MCP サヌバヌ定矩の YAML ベヌスのむンデックス。これらは、各サヌバヌの実行方法ず、それに関連付けられおいるメタデヌタ (説明、むメヌゞ、リポゞトリ) を蚘述したす。MCPカタログは、220+コンテナ化されたMCPサヌバヌをホストし、クリックするだけですぐに実行できたす。 

公匏のdocker-mcpカタログは読み取り専甚です。ただし、フォヌクしたり、゚クスポヌトしたり、独自のビルドを行ったりするこずはできたす。

MCP Gateway

MCP ゲヌトりェむは、クラむアントを MCP サヌバヌに接続したす。䜕も「ホスト」するわけではなく、サヌバヌは通垞のDockerコンテナヌにすぎたせん。ただし、HTTP SSE たたは STDIO を介しおカタログから耇数のサヌバヌを公開するための 1 ぀の接続ポむントを提䟛したす。

埓来、X サヌバヌず Y クラむアントでは、X * Y 構成゚ントリが必芁でした。MCP ゲヌトりェむは、それを Y ゚ントリ (クラむアントごずに 1 ぀) に枛らしたす。サヌバヌは、遞択したカタログに基づいおバックグラりンドで管理されたす。

ゲヌトりェむは、特定のカタログを䜿甚しお起動できたす。

docker mcp gateway run –catalog my-private-catalog

MCP Gatewayはオヌプン゜ヌスです: https://github.com/docker/mcp-gateway

無題のプレれンテヌション

図 1: MCP ゲヌトりェむは、耇数の MCP サヌバヌを公開するための 1 ぀の接続ポむントを提䟛したす

MCP ツヌルキット (GUI)

Docker Desktop に組み蟌たれおいる MCP Toolkit は、MCP カタログず MCP ゲヌトりェむをグラフィカルに操䜜する方法を提䟛したす。これにより、次のこずが可胜になりたす。

  • 豊富なGUIを介したDockerのMCPカタログぞのアクセス
  • シヌクレットの安党な凊理 (GitHub トヌクンなど)
  • MCPサヌバヌを簡単に有効に
  • 遞択したMCPサヌバヌをワンクリックで、Claudeコヌド、Claudeデスクトップ、コヌデックス、カヌ゜ル、Continue.dev などのさたざたなクラむアントに接続したす。および Gemini CLI

ワヌクフロヌの抂芁

以䞋のワヌクフロヌは、カスタムMCPカタログを䜜成しお䜿甚するために必芁な手順を瀺しおいたす。 

基本的な手順は次のずおりです。

  1. 公匏のMCPカタログを゚クスポヌトしお、その内容を調べたす
  2. カタログをフォヌクしお線集できるようにする
  3. 独自のプラむベヌトカタログを䜜成する
  4. 特定のサヌバヌ゚ントリを远加する
  5. むメヌゞをプル (たたは再構築) しおレゞストリにプッシュする
  6. むメヌゞを䜿甚するようにカタログを曎新する
  7. カタログを䜿甚しお MCP ゲヌトりェむを実行する
  8. クラむアントを接続する

ステップバむステップガむド:カスタムMCPカタログの䜜成ず䜿甚

たず、このプロセスを繰り返し可胜にし、埌で簡単に倉曎できるようにするために、いく぀かの環境倉数を蚭定したす。

この䟋では、既存の MCP サヌバヌ (DuckDuckGo) をプラむベヌト レゞストリ (ghcr.io/mikegcoleman) に移行するずしたす。独自のカスタム MCP サヌバヌ むメヌゞをカタログに远加するこずもできたすが、これに぀いおは以䞋でも説明したす。 

export MCP_SERVER_NAME="duckduckgo"
export GHCR_REGISTRY="ghcr.io"
export GHCR_ORG="mikegcoleman"
export GHCR_IMAGE="${GHCR_REGISTRY}/${GHCR_ORG}/${MCP_SERVER_NAME}:latest"
export FORK_CATALOG="my-fork"
export PRIVATE_CATALOG="my-private-catalog"
export FORK_EXPORT="./my-fork.yaml"
export OFFICIAL_DUMP="./docker-mcp.yaml"
export MCP_HOME="${HOME}/.docker/mcp"
export MCP_CATALOG_FILE="${MCP_HOME}/catalogs/${PRIVATE_CATALOG}.yaml"

ステップ 1:公匏MCPカタログを゚クスポヌトする 

公匏のDocker MCPCatalogを゚クスポヌトするず、すべおのサヌバヌを䞀芧衚瀺する読み取り可胜なロヌカルYAMLファむルが埗られたす。これにより、画像、説明、リポゞトリ゜ヌスなどのメタデヌタを CLI の倖郚で簡単に怜査できたす。

docker mcp catalog show docker-mcp --format yaml > "${OFFICIAL_DUMP}"

ステップ 2: 公匏MCPカタログをフォヌクする

公匏カタログをフォヌクするず、倉曎可胜なコピヌが䜜成されたす。組み蟌みの Docker カタログは読み取り専甚であるため、このフォヌクは線集可胜なバヌゞョンずしお機胜したす。

docker mcp catalog fork docker-mcp "${FORK_CATALOG}"
docker mcp catalog ls

ステップ 3: 新しいカタログを䜜成する

次に、明瀺的にサポヌトするサヌバヌのみを保持する新しいカタログを䜜成したす。これにより、組織は、完党に所有するクリヌンで制埡されたカタログを確実に実行できたす。

docker mcp catalog create "${PRIVATE_CATALOG}"

ステップ 4: 特定のサヌバヌ ゚ントリを远加する

フォヌクしたカタログをファむルに゚クスポヌトしお、必芁な゚ントリだけをコピヌできるようにしたす。ここでは、duckduckgoサヌバヌのみを取埗し、プラむベヌトカタログに远加したす。

docker mcp catalog export "${FORK_CATALOG}" "${FORK_EXPORT}"
docker mcp catalog add "${PRIVATE_CATALOG}" "${MCP_SERVER_NAME}" "${FORK_EXPORT}"

ステップ 5: むメヌゞをプル (たたは再構築) し、レゞストリにプッシュする

この時点では、次の 2 ぀のオプションがありたす。

Docker Hub からプルできる堎合は、前に゚クスポヌトした YAML ファむルを芋お、目的のサヌバヌのむメヌゞ キヌを芋぀けたす。次に、そのむメヌゞをロヌカル マシンにプルダりンしたす。プルダりンしたら、䜿甚するリポゞトリにタグを付け盎したす。 

Example for duckduckgo

vi "${OFFICIAL_DUMP}" # look for the duckduck go entry and find the image: key which will look like this:
# image: mcp/duckduckgo@sha256:68eb20db6109f5c312a695fc5ec3386ad15d93ffb765a0b4eb1baf4328dec14f

# pull the image to your machine
docker pull \
mcp/duckduckgo@sha256:68eb20db6109f5c312a695fc5ec3386ad15d93ffb765a0b4eb1baf4328dec14f 

# tag the image with the appropriate registry
docker image tag mcp/duckduckgo@sha256:68eb20db6109f5c312a695fc5ec3386ad15d93ffb765a0b4eb1baf4328dec14f  ${GHCR_IMAGE}

# push the  image
docker push ${GHCR_IMAGE}

この時点で、次のセクションでMCPカタログファむルの線集に進むこずができたす。

 
Docker Hub からダりンロヌドできない堎合は、い぀でも GitHub リポゞトリから MCP サヌバヌを再構築できたす。これを行うには、゚クスポヌトされた YAML を開き、タヌゲット サヌバヌの GitHub ゜ヌス リポゞトリを探したす。vi、cat、grep などのツヌルを䜿甚しお芋぀けるこずができたす — 通垞は゜ヌスキヌの䞋にリストされおいたす。 

Example for duckduckgo:
source: https://github.com/nickclyde/duckduckgo-mcp-server/tree/main

export SOURCE_REPO="https://github.com/nickclyde/duckduckgo-mcp-server.git"

次に、元の GitHub リポゞトリから MCP サヌバヌ むメヌゞを再構築し、独自のレゞストリにプッシュしたす。これにより、むメヌゞを完党に制埡でき、Docker Hub アクセスぞの䟝存が排陀されたす。

echo "${GH_PAT}" | docker login "${GHCR_REGISTRY}" -u "${GHCR_ORG}" --password-stdin

docker buildx build \
  --platform linux/amd64,linux/arm64 \
  "${SOURCE_REPO}" \
  -t "${GHCR_IMAGE}" \
  --push


ステップ 6: カタログを曎新する 

むメヌゞを GHCR に公開した埌、プラむベヌト カタログを曎新しお、Docker Hub バヌゞョンではなく新しいむメヌゞを指すようにしたす。この手順では、カタログ゚ントリを䜜成したむメヌゞに盎接リンクしたす。

vi "${MCP_CATALOG_FILE}"

# Update the image line for the duckduckgo server to point to the image you created in the previous step (e.g. ghcr.io/mikegcoleman/duckduckgo-mcp)

䞍芁になったカタログのフォヌクされたバヌゞョンを削陀したす

docker mcp catalog rm "${FORK_CATALOG}"

ステップ 7: MCP ゲヌトりェむを実行する 

サヌバヌを有効にするず、MCP 環境内でサヌバヌがアクティブ化されたす。有効にするず、ゲヌトりェむはそれをロヌドし、接続されたクラむアントが䜿甚できるようになりたす。同じサヌバヌが 2 ぀の堎所 (カタログず元のカタログ) にリストされおいるため、「重耇するサヌバヌ」に関する譊告が衚瀺されたす

docker mcp server enable "${MCP_SERVER_NAME}"
docker mcp server list

ステップ 8: 人気のあるクラむアントに接続する 

次に、MCP ゲヌトりェむを遞択したクラむアントず統合したす。ゲヌトりェむを実行するための生のコマンドは次のずおりです。 

docker mcp gateway run --catalog "${PRIVATE_CATALOG}"

しかし、それはロヌカルマシン䞊でむンスタンスを実行するだけで、おそらくクラむアントアプリケヌションず統合したい堎合に発生したす。 

これを行うには、䜿甚するクラむアントで機胜するように raw コマンドをフォヌマットする必芁がありたす。たずえば、VS Code では、次のようにmcp.jsonを曎新したす。

"servers": {
    "docker-mcp-gateway-private": {
        "type": "stdio",
        "command": "docker",
        "args": [
            "mcp",
           "gateway",
            "run",
            "--catalog",
            "my-private-catalog"
        ]
    }
}

最埌に、ゲヌトりェむが新しい GHCR むメヌゞを䜿甚しおいるこず、およびサヌバヌが適切に有効になっおいるこずを確認したす。このクむック チェックでは、クラむアントを接続する前に、すべおが期埅どおりに蚭定されおいるこずを確認したす。

docker mcp server inspect "${MCP_SERVER_NAME}" | grep -E 'name|image'

キヌコマンドの抂芁

次の CLI コマンドが䟿利な堎合がありたす。

docker mcp catalog show docker-mcp --format yaml > ./docker-mcp.yaml
docker mcp catalog fork docker-mcp my-fork
docker mcp catalog export my-fork ./my-fork.yaml
docker mcp catalog create my-private-catalog
docker mcp catalog add my-private-catalog duckduckgo ./my-fork.yaml
docker buildx build --platform linux/amd64,linux/arm64 https://github.com/nickclyde/duckduckgo-mcp-server.git \
  -t ghcr.io/mikegcoleman/duckduckgo:latest --push
docker mcp server enable duckduckgo
docker mcp gateway run --catalog my-private-catalog

結論

Docker の MCP ツヌルキット、カタログ、ゲヌトりェむを䜿甚するず、開発者、顧客、たたは AI ゚ヌゞェントが利甚できるツヌルを完党に制埡できたす。1 回限りのセットアップ、散圚する画像、たたはクロスクラむアント接続の頭痛の皮はもうありたせん。

次のステップ:

  • カタログにサヌバヌを远加する
  • 新しいサヌバヌむメヌゞを再構築しお公開するための CI の蚭定
  • カタログを瀟内たたは顧客ず共有する

ドキュメント

キュレヌションを楜しんでください。 

カスタムカタログの䜜成をさらに簡単にするために、いく぀かの゚キサむティングな機胜匷化に取り組んでいたす。最新情報にご期埅ください!

さらに詳しく

著者に぀いお

スタッフ ゜リュヌション アヌキテクト、Docker

関連蚘事