この進行中の Docker Labs GenAI シリーズ AI開発者ツールのエキサイティングな空間を探ります。 Dockerでは、誇大広告なしでオープンに探求できる広大な範囲があると信じています。 私たちは探索を共有し、開発者コミュニティとリアルタイムで協力します。 開発者はGitHub Copilotのようなオートコンプリートツールを採用し、チャットを使用していますが、AIツールがソフトウェアのライフサイクル全体を通じて、より具体的なタスクやインターフェースを支援する可能性は大いにあります。 したがって、私たちの探求は広範囲に及びます。 ソフトウェアをオープンソースとしてリリースするので、私たちと一緒にプレイしたり、探索したり、ハックしたりできます。
12 月には、『 The Model Context Protocol: Simplifying Building AI apps with Anthropic Claude Desktop and Docker』を公開しました。 ブログ記事に加えて、Anthropic から参照 サーバー ごとに Docker バージョンを作成し、新しい Docker Hub mcp 名前空間に公開しました。
これにより、 Docker Desktop だけを使用して新しい AI 機能を試すための多くの方法が提供されます。
![- 2400x1260 Docker Labs Genai 2400x1260 Docker Labs Genai](https://www.docker.com/ja-jp/app/uploads/2024/06/2400x1260_docker-labs-genai-1110x583.png)
たとえば、Claude Desktop を拡張して Puppeteer を使用するには、次のスニペットで claude_desktop_config.json
ファイルを更新します。
"puppeteer": {
"command": "docker",
"args": ["run", "-i", "--rm", "--init", "-e", "DOCKER_CONTAINER=true", "mcp/puppeteer"]
}
Claude Desktopを再起動した後、Dockerで実行されているHeadless Chromiumブラウザを使用して、任意のURLのスクリーンショットを撮るようにClaudeに依頼できます。
作成した MCP (Model Context Protocol) サーバーに対しても同じことができます。 その後、このサーバーをユーザーに配布でき、Docker Desktop 以外のものをユーザーに提供しなくてもかまいません。
MCPサーバーのDockerイメージを作成する方法
MCP サーバーは、任意の言語で記述できます。 ただし、Anthropic の 参照サーバーの セットを含むほとんどの例は、Python または TypeScript で記述されており、 MCP サイトに記載されている公式 SDK のいずれかを使用しています。
一般的な uv ベースの Python プロジェクト (ルートに pyproject.toml
と uv.lock
があるプロジェクト) や npm TypeScript プロジェクトの場合、サーバーを Docker イメージとして配布するのは簡単です。
- Docker Desktop をまだお持ちでない場合は、無料の Docker Personal サブスクリプション にサインアップして、イメージを他のユーザーにプッシュできるようにします。
- ターミナルから
docker login
を実行します。 - この npm Dockerfile テンプレートまたはこの Python Dockerfile テンプレートをプロジェクトのルートにコピーします。 Python Dockerfile では、最後の行を少なくとも 1 回更新する必要があります。
- Docker CLI を使用してビルドを実行します (以下の手順を参照)。
上記の 2 つの Dockerfile は単なるテンプレートです。 MCP サーバーに他のランタイム依存関係が含まれている場合は、Dockerfile を更新してこれらの追加を含めることができます。 MCP サーバーのランタイムは、簡単に配布できるように自己完結型にする必要があります。
配布する準備ができている MCP サーバーがない場合は、単純な mcp-hello-world プロジェクト を使用して練習できます。 これは、1 つのツール呼び出しを持つサーバーを含む単純な Python コードベースです。 まず 、リポジトリをフォークし、マシンにクローンを作成し、次の手順に従って MCP サーバー イメージをビルドします。
イメージのビルド
ほとんどのサンプル MCP サーバーは、引き続きローカル (MCP クライアントと同じマシン上、stdio 経由の通信) で動作するように設計されています。 今後数か月の間に、リモート MCP サーバーをサポートするクライアントが増え始めますが、今のところは、少なくとも 2 つの異なるアーキテクチャ (amd64
と arm64
) で実行するサーバーを計画する必要があります。 つまり、ターゲットがローカルの MCP サーバーである場合は、常にマルチプラットフォーム イメージと呼ばれるものを配布する必要があります。 幸いなことに、これは簡単に行うことができます。
マルチプラットフォームビルダーの作成
最初のステップは、両方のプラットフォームを構築できるローカルビルダーを作成することです。 ご安心ください;このビルダーは、エミュレーションを使用して、ユーザーが持っていないプラットフォームを構築します。 詳細については、 マルチプラットフォームのドキュメント を参照してください。
docker buildx create \
--name mcp-builder \
--driver docker-container \
--bootstrap
イメージをビルドしてプッシュする
以下のコマンドラインで、 <your-account>
と mcp-server-name
を有効な値に置き換え、ビルドを実行してアカウントにプッシュします。
docker buildx build \
--builder=mcp-builder \
--platform linux/amd64,linux/arm64 \
-t <your-docker-account>/mcp-server-name \
--push .
Claude Desktopの拡張
イメージがプッシュされると、ユーザーは次のようなエントリを Claude Desktop に追加することで、MCP サーバーを Claude Desktop に接続 claude_desktop_config.json
。
"your-server-name": {
"command": "docker",
"args": ["run", "-i", "--rm", "--pull=always",
"your-account/your-server-name"]
}
これは最小限の引数のセットです。 追加のコマンドライン引数、環境変数、またはボリュームマウントを渡すことができます。
次のステップ
MCPプロトコルは、AIアプリケーションを拡張する標準的な方法を提供します。 拡張機能を Docker イメージとしてパッケージ化して、簡単に配布できることを確認してください。 Docker Hub の mcp 名前空間 で、今すぐ Claude Desktop で試すことができる例を確認してください。
いつものように、 公開リポジトリでお気軽にフォローしてください。
Docker での取り組みの詳細については、 ニュースレターを購読してください。
さらに詳しく
- Docker Newsletter を購読してください。
- Docker AI カタログで AI 開発を加速する方法をご紹介します。
- Docker Labs の GenAI シリーズを読む
- Docker デスクトップの最新リリースを入手します。
- 質問がありますか? Docker コミュニティがお手伝いします。
- ドッカーは初めてですか? 始めましょう。