1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Docker MCP Gatewayを使ってみた

Last updated at Posted at 2025-07-21

image.png
作成日:2025年7月21日(月)

1.はじめに

2024年11月26日のAnthropic社のMCP(Model Context Protocol)の提唱以降、各ビッグテック企業は以下のような表明をしてきました。今後の生成AIの発展において、MCPはAIアシスタントとデータシステムを接続するための標準プロトコルとして重要な役割を果たすことが期待されています。表にあるように、Microsoft、OpenAI、Google、AWSといった主要プレイヤーが次々とMCP対応を発表しており、業界標準としての地位を確立しつつあります。

このように期待されるMCPですが、MCP Serverを利用する際には「野良MCP」も数多く存在します。これらの非公式MCPサーバは確かに細かいニーズに対応する便利なものもありますが、同時に危険なコードが含まれている可能性も懸念されています。

この記事は@moritalousさんのDocker MCP Gatewayがすんばらしい👌記事を読んで、会社で導入できないか私自身で検討したことを記録に残した記事です。

2024年11月以降の生成AI業界の動き

日付 ビックテック 内容
2024年11月26日 Anthropic AnthropicがAIアシスタントがデータが存在するシステムに接続できるMCPをオープンソースとして公開Introducing the Model Context Protocol
2025年3月24日 Microsoft Azure AI FoundryやAgent ServiceでMCP対応を開始したことを発表
Microsoft Adds Anthropic’s Model Context Protocol to Azure AI and Aligns with Open Agent Ecosystem
2025年3月27日 OpenAI CEOのサム・アルトマンがX(旧Twitter)上で、OpenAIがMCPをAgents SDKに導入し、ChatGPTデスクトップアプリやResponses APIにも順次対応することを表明
people love MCP and we are excited to add support across our products.
2025年4月9日 Google Google DeepMindのCEOデミス・ハサビスがMCPの採用を発表。GeminiモデルやSDKに統合する計画を示し、MCPがAIエージェント時代のオープン標準として急速に拡大していることを強調
Google's Strategic Move to Adopt MCP Standard
2025年4月19日 Amazon Web Service AWSは複数回にわたり、MCPに準拠したMCPサーバーのリリースと拡充を発表。これによりAIアシスタントがAWS APIを自然言語で扱えるようになった
AWS MCP Servers
Announcing new Model Context Protocol (MCP) Servers for AWS Serverless and Containers
2025年4月22日 Docker Docker MCP toolkit及びDocker MCP Gatewayを発表

2.Docker MCP Gatewayとは

Docker MCP Gatewayは、2025年4月22日にDocker社から発表された安全なMCPサーバを提供するプラットフォームです。これによりAIアシスタントがDockerエコシステムと安全に対話できるようになります。

当初、発表時点では、Docker Desktop(Windows)版のGUI拡張機能であるDocker MCP Toolkitから操作するプロキシだと考えていました。しかし、詳細情報が明らかになるにつれ、Docker Desktopがなくても、Docker MCP PluginでDocker MCP Gatewayを管理・利用できることがわかりました。Docker MCP CatalogではDocker-Built ServerとCommunity-Built Serverという2つのカテゴリでMCPサーバを管理しています。

Docker MCP GatewayではMCPサーバをDockerコンテナで管理するため、Docker環境のホストにはNode.jsやPython環境は必要ありません。すべてがコンテナ内の隔離環境でマイクロサービス化されて提供されます(この隔離環境が企業プロキシで問題になるのですが…)。

Docker MCP Gatewayの最大の特徴は、MCPサーバのDockerコンテナをDocker Incが厳格なセキュリティ基準で管理しているレジストリで提供している点です。これにより、ユーザーは安心してMCPサーバを利用できます。

各コンポーネントの役割

No コンポーネント 役割 説明
1 MCP Client クライアントアプリケーション Claude Code/Gemini CLI/VSCodeなどのクライアントアプリケーションです。
ユーザーからの入力をMCP Hostを介して、MCPサーバーに送信します。
2 MCP Host クライアント実行環境 MCPクライアントでMCP Serverと通信を司るコンポーネントです。
アプリケーションやCLIツールなど、クライアントがホストされるコンポーネントです。
3 Docker MCP Plugin Dockerとの連携 Docker MCP Gatewayを操作するDocker CLIのプラグインです。
Docker CLIを使用してMCPサーバーを簡単に管理できるようにします。
4 Docker MCP Gateway ルーティング・プロキシ 複数のMCP Serverへのアクセスを一元管理し、適切なサーバーにリクエストをルーティングするプロキシサーバーです。
Docker MCP Pluginのdocker mcpコマンドで起動したりdocker componentコマンドで起動することができます。
5 Docker MCP Toolkit 開発・運用支援 Docker Desktop(Windows)のGUIで動作するDocker MCP Gatewayの管理を行うDocker Desktopの拡張機能です。
Docker MCP Gateway上で動作させるMCP Serverを管理します。
6 Docker MCP Catalog サーバー登録・管理 利用可能なMCP Serverの一覧を管理するカタログサービス。サーバーの検索や選択が可能です。
7 MCP Server X AIモデル実行 実際にAIモデルを実行し、クライアントからのリクエストを処理するサーバー。複数のサーバーが存在し、それぞれ異なるモデルや機能を提供します。

3.MCPサーバの安全性

Anthropic社はmodelcontextprotocol/serversサイトにおいて、Third-Party ServersのOfficial Integrationsや登録によって出どころを明確にしている一方、Third-Party ServersのCommunity Serversなどは明示的にテストしていないため、自己責任で使用するよう宣言しています。

modelcontextprotocol/serversサイトの分類

No 大分類 小分類 説明 信頼度
1 Reference Servers Demonstrate Anthropic社のMCP Official SDKのデモ用に開発されたMCPサーバ
2 Archived modelcontextprotocol/servers-archivedにpull requestで審査されアーカイブされたMCPサーバ
3 Third-Party Servers Official Integrations 各サービス提供企業が自社のサービス向けに開発しているMCPサーバ
4 Community Servers - コミュニティで開発・保守されているMCPサーバ(Anthropicとしてはテストしていないので利用は自己責任でリスク大) ×

今回、紹介するDocker MCP GatewayではDocker-Built ServerとCommunity-Built Serverでカタログを管理しています。

No 分類 説明 信頼度
1 Docker MCP Gateway Docker IncがMCPサーバのコンテナビルドを実施しているMCPサーバで暗号署名、ソフトウェア部品表(SBOM)、継続的な脆弱性スキャンが提供され、Dockerのビルドパイプラインを制御しているため信頼性が高く、セキュリティ基準が厳格です。
2 Docker-Built Server Docker Inc.が運用するdocker/mcp/registryへの登録とDockerコンテナにより以下のようなセキュリティが確保されます。MCPサーバの安全な運用には、DockerのMCP CatalogとMCP Toolkitを利用します。これにより、暗号化された署名でイメージの改ざんを防ぎ、ソフトウェア部品表(SBOM)で透明性を確保します。MCPサーバはホストシステムから完全に隔離され、アクセス制御により必要なリソースのみにアクセスできます。MCP Toolkitはインストールを簡素化し、認証管理を強化します。これらの機能を活用することで、安全な開発環境を提供します。

要するにDocker MCP Gatewayから利用するDocker MCPカタログには安全なMCPサーバしか存在しないということです。

Docker MCPカタログ:MCPサーバーを安全に検出して実行する方法(2025/7/1:docker)

4.MCP Gatewayの通信プロトコル

MCP GatewayとMCP Client間の通信方式には、主にStdio方式、Streamable HTTP方式、そしてSSE(Server-Sent Event)方式(非推奨)の3種類があります。

MCP GatewayはMCP Serverのプロキシとして機能するため、元のMCPサーバがStreamable HTTPに対応していなくても、MCP Gatewayを経由することでStreamable HTTP通信が可能になります。

No 通信方式 説明 備考
1 Stdio MCPサーバを呼び出す際に標準入出力を用いてJSON-RPC 2.0形式のデータで命令を実行する方式。npxなどでパッケージをインストールすることなく、コンピュータ内でMCPサーバを起動するのに適した方式です。
2 Streamable HTTP MCPサーバとMCPクライアントがネットワークを介して通信する方式。SSE方式がステートフル(状態を管理して動作)なのに対し、こちらはステートレス(サーバ側で状態を管理しない)で、長時間の接続維持が不要なため推奨される方式です。
3 SSE(Server-Sent Event) MCPサーバとMCPクライアントがネットワークを介してSSE方式で命令を実行する方式。2025年4月19日時点では大多数がこの方式を採用していますが、今後はステートレスでより柔軟なStreamable HTTP方式への移行が推奨されています。DifyなどのコンテナベースのアプリケーションからMCPサーバを使用したり、企業内でMCPサーバを構築してユーザーに提供するといった用途に適しています。

本構築では、Docker DesktopのDocker MCP Toolkitは使用せず、Docker MCP Gatewayのみを活用します。そのため、Docker MCP GatewayのMCP Serverを管理するDocker MCP PluginとDocker MCP Gateway自体の構築を行います。

今回構築するDocker MCP Gatewayはいくつかの起動方法があります。

No 起動方式 説明
1 Docker MCP Plugin Docker CLIのプラグインDocker MCP Pluginから起動する方式です。
2 Docker dockerコマンドでMCP Gatewayを起動する方法です。
3 Docker Compose docker composeコマンドでMCP Gatewayを起動する方法です。

6.MCP Gateway環境の構築

6.1. 構築の流れ

Docker MCP Gatewayの環境構築は以下の3つのステップで行います。

STEP 1: GitHubからdocker-mcpコマンドのバイナリをダウンロードし、~/.docker/cli-pluginsに配置します。

STEP 2: MCP Gatewayを起動します。起動方法は、CLI Plugin、Dockerコンテナ、Docker Composeの3つのいずれかから選択できます。

STEP 3: MCP Catalogの確認とMCP Serverの管理を行います。また、定期更新、本番運用、セキュリティ、設定ファイルに関する重要ポイントとクイックコマンドも参照できる実用的な構成になっています。

※起動方法から用途に応じてそれぞれの特徴(開発・テスト向け、本番環境推奨、運用管理向け)を色分けで示しています。

6.2. Docker CLI Pluginの導入

@moritalousさんの「Docker MCP Gatewayがすんばらしい👌」記事を参考に起動方法を調べてみました。

①Docker CLI Pluginのバイナリのダウンロード

 docker/mcp-gatewayに掲載のインストール手順ではGo 1.24+をインストールする必要があるためReleases · docker/mcp-gatewayのリンクから最新のバイナリーを取得します。(週に2階くらいアップデートされていますので、できるだけ最新の取得を心がけましょう)

[root@localmotion home]# pwd
/home
[root@localmotion home]# mkdir mcp-gateway
[root@localmotion home]# cd mcp-gateway
[root@localmotion mcp-gateway]# wget https://github.com/docker/mcp-gateway/releases/download/v0.11.0/docker-mcp-linux-amd64.tar.gz
--2025-07-21 08:23:31--  https://github.com/docker/mcp-gateway/releases/download/v0.11.0/docker-mcp-linux-amd64.tar.gz
github.com (github.com) をDNSに問いあわせています... 20.27.177.113
github.com (github.com)|20.27.177.113|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 302 Found
場所: https://release-assets.githubusercontent.com/github-production-release-asset/970603579/2549bf9e-36b9-418d-bf46-8018a99f5fb7?sp=r&sv=2018-11-09&sr=b&spr=https&se=2025-07-21T00%3A04%3A48Z&rscd=attachment%3B+filename%3Ddocker-mcp-linux-amd64.tar.gz&rsct=application%2Foctet-stream&skoid=96c2d410-5711-43a1-aedd-ab1947aa7ab0&sktid=398a6654-997b-47e9-b12b-9515b896b4de&skt=2025-07-20T23%3A04%3A25Z&ske=2025-07-21T00%3A04%3A48Z&sks=b&skv=2018-11-09&sig=R35TVH%2BTaGb47aBEorfJZuSrH7w0KevZmTnf1E08Msw%3D&jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmVsZWFzZS1hc3NldHMuZ2l0aHVidXNlcmNvbnRlbnQuY29tIiwia2V5Ijoia2V5MSIsImV4cCI6MTc1MzA1NDExMiwibmJmIjoxNzUzMDUzODEyLCJwYXRoIjoicmVsZWFzZWFzc2V0cHJvZHVjdGlvbi5ibG9iLmNvcmUud2luZG93cy5uZXQifQ.cwkWZTnDX3A5IIq9Bueia9pCim8ACIuUJkw6LoaAm4s&response-content-disposition=attachment%3B%20filename%3Ddocker-mcp-linux-amd64.tar.gz&response-content-type=application%2Foctet-stream [続く]
--2025-07-21 08:23:32--  https://release-assets.githubusercontent.com/github-production-release-asset/970603579/2549bf9e-36b9-418d-bf46-8018a99f5fb7?sp=r&sv=2018-11-09&sr=b&spr=https&se=2025-07-21T00%3A04%3A48Z&rscd=attachment%3B+filename%3Ddocker-mcp-linux-amd64.tar.gz&rsct=application%2Foctet-stream&skoid=96c2d410-5711-43a1-aedd-ab1947aa7ab0&sktid=398a6654-997b-47e9-b12b-9515b896b4de&skt=2025-07-20T23%3A04%3A25Z&ske=2025-07-21T00%3A04%3A48Z&sks=b&skv=2018-11-09&sig=R35TVH%2BTaGb47aBEorfJZuSrH7w0KevZmTnf1E08Msw%3D&jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmVsZWFzZS1hc3NldHMuZ2l0aHVidXNlcmNvbnRlbnQuY29tIiwia2V5Ijoia2V5MSIsImV4cCI6MTc1MzA1NDExMiwibmJmIjoxNzUzMDUzODEyLCJwYXRoIjoicmVsZWFzZWFzc2V0cHJvZHVjdGlvbi5ibG9iLmNvcmUud2luZG93cy5uZXQifQ.cwkWZTnDX3A5IIq9Bueia9pCim8ACIuUJkw6LoaAm4s&response-content-disposition=attachment%3B%20filename%3Ddocker-mcp-linux-amd64.tar.gz&response-content-type=application%2Foctet-stream
release-assets.githubusercontent.com (release-assets.githubusercontent.com) をDNSに問いあわせています... 185.199.108.133, 185.199.109.133, 185.199.110.133, ...
release-assets.githubusercontent.com (release-assets.githubusercontent.com)|185.199.108.133|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 11572451 (11M) [application/octet-stream]
`docker-mcp-linux-amd64.tar.gz' に保存中

docker-mcp-linux-amd64.tar.gz           100%[===============================================================================>]  11.04M  --.-KB/s 時間 0.1s

2025-07-21 08:23:32 (93.4 MB/s) - `docker-mcp-linux-amd64.tar.gz' へ保存完了 [11572451/11572451]
[root@localmotion home]# 

②Docker CLI Pluginの解凍とコピー

ダウンロードしたdocker-mcp-linux-amd64.tar.gzを解凍するとdocker-mcpというファイルがカレントフォルダに作成されるので~/.docker/cli-pluginsフォルダを作成して移動して実行件を付与します。

[root@localmotion mcp-gateway]# tar zxvf docker-mcp-linux-amd64.tar.gz
docker-mcp
[root@localmotion mcp-gateway]# ls
docker-mcp  docker-mcp-linux-amd64.tar.gz
[root@localmotion mcp-gateway]#
[root@localmotion mcp-gateway]# mkdir -p ~/.docker/cli-plugins
[root@localmotion mcp-gateway]# mv docker-mcp ~/.docker/cli-plugins
[root@localmotion mcp-gateway]# chmod +x ~/.docker/cli-plugins/docker-mcp
[root@localmotion mcp-gateway]#

③Docker CLI Pluginのバージョン確認

Releases · docker/mcp-gatewayによると週に2階くらいアップデートされていますので、できるだけ最新の取得を心がけましょう

[root@localmotion mcp-gateway]# docker mcp --version
v0.11.0
[root@localmotion mcp-gateway]#

④Docker MCP Catalogの登録確認

デフォルトではdocker-mcpとうDocker MCP Catalogサーバが追加されています。

[root@localmotion mcp-gateway]# docker mcp catalog ls
docker-mcp: Docker MCP Catalog
[root@localmotion mcp-gateway]#

企業内で独自のホワイトリストカタログを運用したい場合は~/.docker/mcp/catalogs/docker-mcp.yamlファイルを参考にcustom_catalog.yamlファイルなどを

作成して、docker mcp catalog importコマンドでMCP Catalogサーバを読み込めそうです。

docker mcp catalog import /path/to/custom_catalog.yaml

6.3. MCP Gatewayの起動

MCP Gatewayは、Docker MCP Pluginのgatewayコマンド、Dockerコマンド、または Docker Composeコマンドのいずれかで起動できます。

①Docker MCP Plugin

この方式はコマンドラインから手軽にMCP Gatewayを起動できる反面、MCP Gatewayのデーモン化には不向きです。MCP HostとMCP Serverが同一ホストの場合は、MCP Serverを使う都度stdio方式の通信方式で通知することができるので、そのような使い方に向いている起動方法だと思います。
起動方法:
stdio

docker mcp gateway run  --transport stdio

SSE

docker mcp gateway run --port **8811** --transport sse

streamable HTTP

docker mcp gateway run --port 8080 --transport streaming

②Docker

Docker Desktopの拡張機能(Docker MCP Toolkit)から接続して管理するのが基本ですが、Docker MCP Pluginから管理することもできます。
こちらの方式ではDocker MCP Gateway自体をDockerコンテナ化されていますので、/var/run/docker.sockや/mcp/配下の設定ファイルをホストにマップして起動します。

docker/mcp-gateway (DockerHub)

起動方法:

docker run -d \
    -p 8811:8811 \
    --restart=always \
    --name=mcp-gateway \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -v $HOME/.docker/mcp:/mcp:ro \
    docker/mcp-gateway \
    --catalog=/mcp/catalogs/docker-mcp.yaml \
    --config=/mcp/config.yaml \
    --registry=/mcp/registry.yaml \
    --secrets=docker-desktop \
    --watch=true \
    --transport=sse \
    --port=8811

※—transport=をstreamingやstdioにすることでStreamable HTTPやstdioで起動することもできます。
参考:Run the MCP Gateway in a container(7/11:docker/mcp-gateway)

③Docker Compose

以下のdocker-compose.yamlファイルを作成してdocker compose up -dコマンドで起動する方法です。

docker compose up -d

version: '3.8'

services:
mcp-gateway:
image: docker/mcp-gateway
container_name: mcp-gateway
restart: always
ports:
- "8811:8811"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ${HOME}/.docker/mcp:/mcp:ro
command: >
--catalog=/mcp/catalogs/docker-mcp.yaml
--config=/mcp/config.yaml
--registry=/mcp/registry.yaml
--secrets=docker-desktop
--watch=true
--transport=sse
--port=8811

6.4. MCP Catalogの接続確認

MCP Gatewayで利用可能なMCP Catalogは「docker mcp catalog show」コマンドで確認可能です。

こちらのコマンドは「MCP Gateway」を起動したあとに実行してください

[root@localmotion mcp-gateway]# docker mcp catalog ls
docker-mcp: Docker MCP Catalog
[root@localmotion mcp-gateway]#

6.5. MCP Server覧の表示

MCP Gatewayにインストール可能なMCP Serverは「docker mcp catalog show」コマンドで確認可能です。

[root@localmotion mcp-gateway]# docker mcp catalog show
Ref: Ref powerful search tool connets your coding tools with documentation context. It includes an up-to-date index of public documentation and it can ingest your private documentation (eg. GitHub repos, PDFs) as well.
SQLite: Database interaction and business intelligence capabilities.
arxiv-mcp-server: The ArXiv MCP Server provides a comprehensive bridge between AI assistants and arXiv's research repository through the Model Context Protocol (MCP).   Features: ~ Search arXiv papers with advanced filtering ~ Download and store papers locally as markdown ~ Read and analyze paper content ~ Deep research analysis prompts ~ Local paper management and storage  Perfect for researchers, academics, and AI assistants conducting literature reviews and research analysis.
astra-db: An MCP server for Astra DB workloads.
atlan: MCP server for interacting with Atlan services including asset search, updates, and lineage traversal for comprehensive data governance and discovery.
atlas-docs: Provide LLMs hosted, clean markdown documentation of libraries and frameworks.
atlassian: Tools for Atlassian products (Confluence and Jira). This integration supports both Atlassian Cloud and Jira Server/Data Center deployments.
audiense-insights: Audiense Insights MCP Server is a server based on the Model Context Protocol (MCP) that allows Claude and other MCP-compatible clients to interact with your Audiense Insights account.
aws-cdk-mcp-server: AWS Cloud Development Kit (CDK) best practices, infrastructure as code patterns, and security compliance with CDK Nag.
aws-core-mcp-server: Starting point for using the awslabs MCP servers.
aws-diagram: Seamlessly create diagrams using the Python diagrams package DSL. This server allows you to generate AWS diagrams, sequence diagrams, flow diagrams, and class diagrams using Python code.
aws-documentation: Tools to access AWS documentation, search for content, and get recommendations.
aws-kb-retrieval-server: An MCP server implementation for retrieving information from the AWS Knowledge Base using the Bedrock Agent Runtime.
aws-terraform: Terraform on AWS best practices, infrastructure as code patterns, and security compliance with Checkov.
azure: The Azure MCP Server, bringing the power of Azure to your agents.
beagle-security: Connects with the Beagle Security backend using a user token to manage applications, run automated security tests, track vulnerabilities across environments, and gain intelligence from Application and API vulnerability data.
bitrefill: A Model Context Protocol Server connector for Bitrefill public API, to enable AI agents to search and shop on Bitrefill.
box: An MCP server capable of interacting with the Box API.
brave: Web and local search using Brave's Search API.
buildkite-mcp-server: Buildkite MCP lets agents interact with Buildkite Builds, Jobs, Logs, Packages and Test Suites.
cdata-connectcloud: This fully functional MCP Server allows you to connect to any data source in Connect Cloud from Claude Desktop.
chroma: A Model Context Protocol (MCP) server implementation that provides database capabilities for Chroma.
circleci: A specialized server implementation for the Model Context Protocol (MCP) designed to integrate with CircleCI's development workflow. This project serves as a bridge between CircleCI's infrastructure and the Model Context Protocol, enabling enhanced AI-powered development experiences.
clickhouse: Official ClickHouse MCP Server.
cockroachdb: Enable AI agents to manage, monitor, and query CockroachDB using natural language. Perform complex database operations, cluster management, and query execution seamlessly through AI-driven workflows. Integrate effortlessly with MCP clients for scalable and high-performance data operations.
context7: Context7 MCP Server -- Up-to-date code documentation for LLMs and AI code editors.
curl: Standard curl tool.
cyreslab-ai-shodan: A Model Context Protocol server that provides access to Shodan API functionality.
dappier: Enable fast, free real-time web search and access premium data from trusted media brands—news, financial markets, sports, entertainment, weather, and more. Build powerful AI agents with Dappier.
dart: Dart AI Model Context Protocol (MCP) server.
databutton: Databutton MCP Server.
descope: The Descope Model Context Protocol (MCP) server provides an interface to interact with Descope's Management APIs, enabling the search and retrieval of project-related information.
desktop-commander: Search, update, manage files and run terminal commands with AI.
devhub-cms: DevHub CMS LLM integration through the Model Context Protocol.
docker: Use the Docker CLI.
dockerhub: Docker Hub official MCP server.
duckduckgo: A Model Context Protocol (MCP) server that provides web search capabilities through DuckDuckGo, with additional features for content fetching and parsing.
e2b: Giving Claude ability to run code with E2B via MCP (Model Context Protocol).
edubase: The EduBase MCP server enables Claude and other LLMs to interact with EduBase's comprehensive e-learning platform through the Model Context Protocol (MCP).
elasticsearch: Interact with your Elasticsearch indices through natural language conversations.
elevenlabs: Official ElevenLabs Model Context Protocol (MCP) server that enables interaction with powerful Text to Speech and audio processing APIs.
everart: Image generation server using EverArt's API.
exa: Exa is a Web Search API | This is Exa MCP (Model Context Protocol).
fetch: Fetches a URL from the internet and extracts its contents as markdown.
ffmpeg: Use ffmpeg to process video files.
fibery: Interact with your Fibery workspace.
filesystem: Local filesystem access with configurable allowed paths.
firecrawl: Official Firecrawl MCP Server - Adds powerful web scraping to Cursor, Claude and any other LLM clients.
flexprice: Official flexprice MCP Server.
git: Git repository interaction and automation.
github: Tools for interacting with the GitHub API, enabling file operations, repository management, search functionality, and more.
github-chat: A Model Context Protocol (MCP) for analyzing and querying GitHub repositories using the GitHub Chat API.
github-official: Official GitHub MCP Server, by GitHub. Provides seamless integration with GitHub APIs, enabling advanced automation and interaction capabilities for developers and tools.
gitlab: MCP Server for the GitLab API, enabling project management, file operations, and more.
glif: Easily run glif.app AI workflows inside your LLM: image generators, memes, selfies, and more. Glif supports all major multimedia AI models inside one app.
google-maps: Tools for interacting with the Google Maps API.
grafana: MCP server for Grafana.
gyazo: Official Model Context Protocol server for Gyazo.
hackle: Model Context Protocol server for Hackle.
handwriting-ocr: Model Context Protocol (MCP) Server for Handwriting OCR.
heroku: Heroku Platform MCP Server using the Heroku CLI.
husqvarna-automower: MCP Server for huqsvarna automower.
hyperbrowser: A MCP server implementation for hyperbrowser.
hyperspell: Hyperspell MCP Server.
iaptic: Model Context Protocol server for interacting with iaptic.
jetbrains: A model context protocol server to work with JetBrains IDEs: IntelliJ, PyCharm, WebStorm, etc. Also, works with Android Studio.
kagisearch: The Official Model Context Protocol (MCP) server for Kagi search & other tools.
keboola-mcp: Keboola MCP Server is an open-source bridge between your Keboola project and modern AI tools.
kong: A Model Context Protocol (MCP) server for interacting with Kong Konnect APIs, allowing AI assistants to query and analyze Kong Gateway configurations, traffic, and analytics.
kubernetes: Connect to a Kubernetes cluster and manage it.
lara: Connect to Lara Translate API, enabling powerful translation capabilities with support for language detection and context-aware translations.
line: MCP server that integrates the LINE Messaging API to connect an AI Agent to the LINE Official Account.
linkedin-mcp-server: This MCP server allows Claude and other AI assistants to access your LinkedIn. Scrape LinkedIn profiles and companies, get your recommended jobs, and perform job searches. Set your li_at LinkedIncookie to use this server.
mcp-api-gateway: A universal MCP (Model Context Protocol) server to integrate any API with Claude Desktop using only Docker configurations.
mcp-discord: Interact with the Discord platform.
memory: Knowledge graph-based persistent memory system.
minecraft-wiki: A MCP Server for browsing the official Minecraft Wiki!.
mongodb: A Model Context Protocol server to connect to MongoDB databases and MongoDB Atlas Clusters.
multiversx-mx: MCP Server for MultiversX.
nasdaq-data-link: MCP server to interact with the data feeds provided by the Nasdaq Data Link. Developed by the community and maintained by Stefano Amorelli.
needle-mcp: Production-ready RAG service to search and retrieve data from your documents.
neo4j-cloud-aura-api: Manage Neo4j Aura database instances through the Neo4j Aura API.
neo4j-cypher: Interact with Neo4j using Cypher graph queries.
neo4j-memory: Provide persistent memory capabilities through Neo4j graph database integration.
neon: MCP server for interacting with Neon Management API and databases.
node-code-sandbox: A Node.js–based Model Context Protocol server that spins up disposable Docker containers to execute arbitrary JavaScript.
notion: Official Notion MCP Server.
novita: Seamless interaction with Novita AI platform resources.
npm-sentinel: MCP server that enables intelligent NPM package analysis powered by AI.
obsidian: MCP server that interacts with Obsidian via the Obsidian rest API community plugin.
onlyoffice-docspace: ONLYOFFICE DocSpace is a room-based collaborative platform which allows organizing a clear file structure depending on users' needs or project goals.
openapi-schema: OpenAPI Schema Model Context Protocol Server.
openbnb-airbnb: MCP Server for searching Airbnb and get listing details.
openweather: A simple MCP service that provides current weather and 5-day forecast using the free OpenWeatherMap API.
opik: Model Context Protocol (MCP) implementation for Opik enabling seamless IDE integration and unified access to prompts, projects, traces, and metrics.
osp_marketing_tools: A Model Context Protocol (MCP) server that empowers LLMs to use some of Open Srategy Partners' core writing and product marketing techniques.
oxylabs: A Model Context Protocol (MCP) server that enables AI assistants like Claude to seamlessly access web data through Oxylabs' powerful web scraping technology.
paper-search: A MCP for searching and downloading academic papers from multiple sources like arXiv, PubMed, bioRxiv, etc.
perplexity-ask: Connector for Perplexity API, to enable real-time, web-wide research.
pinecone: Pinecone Assistant MCP server.
playwright: Playwright MCP server.
pluggedin-mcp-proxy: A unified MCP proxy that aggregates multiple MCP servers into one interface, enabling seamless tool discovery and management across all your AI interactions. Manage all your MCP servers from a single connection point with RAG capabilities and real-time notifications.
postgres: Connect with read-only access to PostgreSQL databases. This server enables LLMs to inspect database schemas and execute read-only queries.
pref-editor: Pref Editor is a tool for viewing and editing Android app preferences during development.
pulumi: Pulumi MCP Server.
puppeteer: Browser automation and web scraping using Puppeteer.
razorpay: Razorpay's Official MCP Server.
redis: Access to Redis database operations.
redis-cloud: MCP Server for Redis Cloud's API, allowing you to manage your Redis Cloud resources using natural language.
render: Interact with your Render resources via LLMs.
resend: Send emails directly from Cursor with this email sending MCP server.
risken: RISKEN's official MCP Server.
root: MCP server that provides container image vulnerability scanning and remediation capabilities through Root.io.
schogini-mcp-image-border: This adds a border to an image and returns base64 encoded image.
scrapegraph: ScapeGraph MCP Server.
scrapezy: A Model Context Protocol server for Scrapezy that enables AI models to extract structured data from websites.
sec-edgar: MCP server to interact with the US SEC EDGAR database, developed by the community and maintained by Stefano Amorelli.
securenote-link-mcp-server: SecureNote.link MCP Server - allowing AI agents to securely share sensitive information through end-to-end encrypted notes.
sentry: A Model Context Protocol server for retrieving and analyzing issues from Sentry.io. This server provides tools to inspect error reports, stacktraces, and other debugging information from your Sentry account.
sequentialthinking: Dynamic and reflective problem-solving through thought sequences.
shopify: Shopify.dev MCP server.
singlestore: MCP server for interacting with SingleStore Management API and services.
slack: Interact with Slack Workspaces over the Slack API.
sonarqube: Interact with SonarQube Cloud, Server and Community build over the web API. Analyze code to identify quality and security issues.
stripe: Interact with Stripe services over the Stripe API.
suzieq: MCP Server to interact with a SuzieQ network observability instance via its REST API.
tavily: The Tavily MCP server provides seamless interaction with the tavily-search and tavily-extract tools, real-time web search capabilities through the tavily-search tool and Intelligent data extraction from web pages via the tavily-extract tool.
tembo: MCP server for Tembo Cloud's platform API.
terraform: The Terraform MCP Server provides seamless integration with Terraform ecosystem, enabling advanced automation and interaction capabilities for Infrastructure as Code (IaC) development.
text-to-graphql: Transform natural language queries into GraphQL queries using an AI agent. Provides schema management, query validation, execution, and history tracking.
tigris: Tigris is a globally distributed S3-compatible object storage service that provides low latency anywhere in the world, enabling developers to store and access any amount of data for a wide range of use cases.
time: Time and timezone conversion capabilities.
triplewhale: Triplewhale MCP Server.
veyrax: VeyraX MCP is the only connection you need to access all your tools in any MCP-compatible environment.
vizro: provides tools and templates to create a functioning Vizro chart or dashboard step by step.
webflow: Model Context Protocol (MCP) server for the Webflow Data API.
wikipedia-mcp: A Model Context Protocol (MCP) server that retrieves information from Wikipedia to provide context to LLMs.
wolfram-alpha: Connect your chat repl to wolfram alpha computational intelligence.
youtube_transcript: Retrieves transcripts for given YouTube video URLs.
[root@localmotion mcp-gateway]#

6.6. MCP Serverのインストール

「docker mcp catalog show」コマンドで表示された「playwright: Playwright MCP server.」をインストールしてみます。

[root@localmotion mcp-gateway]# docker mcp server ls
No server is enabled
[root@localmotion mcp-gateway]# docker mcp server enable playwright
[root@localmotion mcp-gateway]# docker mcp server ls
playwright
[root@localmotion mcp-gateway]#

7.MCP Hostからの接続

MCP GatewayをTCPポート8811でSSEで動作起動している場合の基本的なmcp_setting.jsonは以下の通りです。

{
  "mcpServers": {
    "mcpgateway": {
      "type": "sse",
      "url": "http://192.168.1.2:8811/",
      "description": "My MCP Server for MCP gateway"
    }
  }
}

VSCodeのRoo Codeで登録するとmcpgatewayという名前でplaywrightのツール(browser_xxxx)が24個参照できています。

8.Roo Codeで動かしてみる

プロンプト:mcpgatewayを使ってmsnニュースを日本語で10件まとめてください。

9.Docker CLIのmcpコマンド

docker-mcpコマンドのVersion 0.11.0のコマンドは以下の通りです。

No 分類 コマンド 説明
1 Catalog docker mcp catalog —help MCP Gatewayで使用できるカタログを管理するコマンドのヘルプを表示する
2 docker mcp catalog init 登録されているMCP Catalogを初期化する
3 docker mcp catalog ls 登録されているMCP Catalogを表示する
4 docker mcp catalog reset 登録されているMCP Catalogを全て削除する
5 docker mcp catalog show Docker MCP Catalogサイトで管理されるMCPサーバの一覧を表示する
6 docker mcp catalog import デフォルトのDocker MCP Catalog(docker-mcp)以外のカスタムカタログをインポートする
※catalog.yamlファイルの書式は~/.docker/mcp/catalogs/docker-mcp.yamlを参照
docker/mcp-gateway/docs/catalog.md
7 Client docker mcp client —help MCP Clientのサブコマンド一覧と使用方法を表示する
8 docker mcp client connet MCP Serverに接続する(クライアントの登録)
9 docker mcp client disconnect MCP Serverから切断する(クライアントの登録解除)
10 docker mcp client ls 接続されているMCP Clientの一覧を表示する
11 Gateway docker mcp gateway run —help MCP Gatewayを起動するコマンドとそのオプション一覧を表示する
12 docker mcp gateway run MCP Gatewayを起動する
① --transport stdio:標準入出力で起動
② --port 8811 --transport sse:SSEで起動
③ --port 8811 --transport streaming:HTTPストリーミングで起動
13 Config docker mcp config —help 設定ファイルの読み書きやリセットに関するコマンドのヘルプを表示する
14 docker mcp config read MCP設定ファイルの内容を読み取る
15 docker mcp config reset MCP設定ファイルをデフォルト状態にリセットする
16 docker mcp config write MCP設定ファイルに新しい値を書き込む
17 Policy docker mcp policy —help ポリシー設定に関するコマンドのヘルプを表示する
18 docker mcp policy dump 現在設定されている全ポリシーを表示する
19 docker mcp policy set 指定したMCPポリシーを設定する
20 Secret docker mcp secret —help シークレット管理に関するコマンドのヘルプを表示する
21 docker mcp secret ls 登録されているシークレットの一覧を表示する
22 docker mcp secret rm 指定したシークレットを削除する
23 docker mcp secret set 新しいシークレットを登録する
24 Server docker mcp server —help MCP Serverの操作に関するヘルプを表示する
25 docker mcp server ls MCP Gatewayに登録されていMCP Server一覧を表示
26 docker mcp server disable 指定したMCP Serverを無効化する
27 docker mcp server enable 指定したMCP Serverを有効化する
28 docker mcp server inspect MCP Serverの詳細情報を表示する
29 docker mcp server reset MCP Serverの設定を初期状態にリセットする
30 Tool docker mcp tools —help MCPツール操作に関するコマンドのヘルプを表示する
31 docker mcp tools call MCP Server経由でツールを呼び出して実行する
32 docker mcp tools inspect MCPツールの詳細仕様を表示する
33 docker mcp tool list MCP Server経由で利用できるツール一覧を表示
34 Version docker mcp version Docker CLIのMCPコマンドのバージョンを表示

9.課題

  • MCPサーバが企業プロキシを越えられない
    Docker MCP Gatewayのアーキテクチャに起因する課題として、現在playwrightが企業プロキシを通過できません。
    原因として考えられるのは、企業プロキシサーバのサーバ証明書またはプロキシ設定がplaywrightのベースイメージに正しく伝搬されていないことです。
    対策としては、Docker MCP Gatewayのdocker-compose.yamlでDockerイメージ内のサーバ証明書とプロキシ環境変数をオーバーライドし、サーバ証明書の再認識コマンドをdocker-compose.yamlファイル内で実行することが考えられます。しかし、問題なのはDocker CLIのdocker-mcpコマンドから起動されるplaywrightのDockerベースイメージです。
    このイメージはdocker-compose.yamlで起動していないため、サーバ証明書とプロキシ環境変数を簡単に設定することが困難です。
    この記事執筆後、会社環境で検証を続け、結果を記事に反映する予定です。

10.まとめ

Docker MCP Gatewayは、Anthropic社が2024年11月に提唱したModel Context Protocol(MCP)に対応し、AIアシスタントがDockerエコシステムと安全に対話するためのプラットフォームを提供します。Microsoft、OpenAI、Google、AWSなど業界主要企業が次々とMCP対応を表明する中、Docker MCPは業界標準として期待されるMCPを実装した先進的なツールとして注目されています。Dockerが提供するMCP Gatewayでは、Playwrightなどツールが使用可能で、AIアシスタントの能力を大幅に拡張します。このゲートウェイは、標準入出力(stdio)、Server-Sent Events(SSE)、HTTPストリーミングなど複数のトランスポート方式をサポートし、様々な利用シーンに対応できる柔軟性を備えています。33種類以上の豊富なコマンドラインインターフェイスを通じて、カタログ管理、クライアント接続、ポリシー設定、シークレット管理などの機能を提供し、使いやすさと高機能性を両立しています。Dockerの厳格なセキュリティ基準に準拠しており、安全性の高いMCPサーバ管理が可能なため、企業システムでの導入にも適しています。VSCodeのRoo Codeなど各種開発環境との連携も容易で、開発者が日常的な作業でAIアシスタントの能力を活用できる実用的なツールとして、今後のAIエコシステムにおいて重要な役割を果たすことが期待されています。

11.参考URL

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?