[OSS紹介#79] docker-mcp:Docker環境のコンテナ管理を効率化するツール紹介

この記事について

このブログシリーズでは、注目すべきオープンソースソフトウェア(OSS)を定期的に紹介していきます。連載第79回となる今回は、Docker環境でのコンテナ管理を効率化する「docker-mcp」に焦点を当てます。

今日のソフトウェア開発において、コンテナ技術は欠かせない存在となっています。しかし、複雑多岐にわたるコンテナの管理や操作は、しばしば手間がかかり、開発者にとってストレスとなることがあります。特に、複数のコンテナを同時に操作したり、Docker Composeスタックを展開したりする場合、その煩雑さは一層増すことがあります。

今回紹介する「docker-mcp」は、Model Context Protocol (MCP)を利用して、こうしたDocker操作をシンプルかつ効率的に行える強力なツールです。これにより、開発者はコンテナの作成やログの取得、状態の監視などのタスクを、Claude AIを通じて直感的に管理できるようになります。このツールは、特にDockerを活用した開発環境での生産性向上に大いに寄与することが期待されています。

リンク:https://github.com/QuantGeekDev/docker-mcp


本コンテンツは、弊社AI開発ツール「IXV」を用いたOSSツール紹介です。情報の正確性には努めておりますが、内容に誤りが含まれる可能性がございますのでご了承ください。

1. docker-mcpでできること

docker-mcpは、Dockerオペレーションのための強力なモデルコンテキストプロトコル(MCP)サーバーです。このツールを使用すると、コンテナおよびComposeスタックの管理がシームレスに行えます。主な機能は以下の通りです。

  • コンテナの作成とインスタンス化
  • Docker Composeスタックの展開
  • コンテナのログ取得
  • コンテナの一覧表示とステータス監視

これらの機能により、開発者はコンテナ化されたアプリケーションのライフサイクルを簡素化できます。

2. セットアップ手順

docker-mcpのセットアップには以下の前提条件があります。

  • UV(パッケージマネージャー)
  • Python 3.12以上
  • Docker DesktopまたはDocker Engine
  • Claude Desktop

2.1 Smitheryを使用したインストール

Smitheryを使用して、Claude Desktop用のdocker-mcpを自動でインストールするには、以下のコマンドを実行します。

npx @smithery/cli install docker-mcp --client claude

2.2 Claude Desktopの設定

docker-mcpサーバーの設定をClaude Desktopの設定ファイルに追加します。以下は、それぞれのOSにおける設定ファイルのパスです。

  • MacOS: ~/Library/Application\ Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%/Claude/claude_desktop_config.json

2.3 開発環境の設定

開発環境を構築するための手順は以下の通りです。

リポジトリをクローンします。

git clone https://github.com/QuantGeekDev/docker-mcp.git
cd docker-mcp

仮想環境を作成し、アクティブにします。

python -m venv venv
source venv/bin/activate

依存関係をインストールします。

uv sync

3. 簡単な使い方

docker-mcpは、以下のツールを提供しており、それぞれを利用することでさまざまな操作が可能です。

3.1 コンテナ作成

コンテナを作成するには、以下のようにJSON形式でリクエストを送信します。

{
    "image": "image-name",
    "name": "container-name",
    "ports": {"80": "80"},
    "environment": {"ENV_VAR": "value"}
}

3.2 Docker Composeスタックの展開

Docker Composeスタックを展開するには、次のようにリクエストを構成します。

{
    "project_name": "example-stack",
    "compose_yaml": "version: '3.8'\nservices:\n  service1:\n    image: image1:latest\n    ports:\n      - '8080:80'"
}

3.3 コンテナのログ取得

特定のコンテナからログを取得するには、以下のリクエストを使用します。

{
    "container_name": "my-container"
}

3.4 コンテナの一覧表示

すべてのDockerコンテナを一覧表示するには、次のリクエストを送信します。

{}

4. 結論

docker-mcpは、Dockerオペレーションにおける管理を効率化するための強力なツールです。コンテナ作成からComposeスタックの展開、ログの取得まで、さまざまな機能を提供しており、開発者の生産性を大いに向上させることができます。セットアップも比較的簡単であり、必要な環境が整っていればすぐに使用を開始できます。今後のバージョンアップに期待しつつ、このツールを活用してみてはいかがでしょうか。