🐳 Docker Explorer MCP サーバー
📋 概要
Docker Explorerは、Dockerイメージ、コンテナ、レジストリを操作するためのツールとリソースを提供する強力なModel Context Protocol(MCP)サーバーです。このサーバーにより、ClaudeのようなAIアシスタントは標準化されたインターフェースを介してDockerリソースを検索、分析、操作することができ、コンテナの管理と探索がより容易になります。
✨ 特徴
コア機能
- レジストリ全体で Docker イメージを検索する
- Dockerイメージの特定のタグを検索する
- Docker Hubユーザー/組織を検索する
- Dockerイメージに関する詳細なメタデータを取得する
- Dockerfileの内容を分析する
- Dockerイメージを比較する
高度なツール
- 🔒 セキュリティスキャナ:Dockerイメージの既知の脆弱性とセキュリティ問題を分析します
- 📦 イメージサイズオプティマイザー: Docker イメージのサイズを縮小するための推奨事項を取得します
- 📄 Docker Compose ジェネレーター: アプリケーション用の docker-compose.yml ファイルを生成します
- 📊 コンテナ ランタイム アナライザー: コンテナのランタイム動作とリソース使用状況に関する分析情報を取得します
- 🔍 イメージ比較ツール:2つのDockerイメージを比較し、違いを強調表示します
- 📜 Dockerfile ジェネレーター: 自然言語アプリケーション記述から Dockerfile を作成する
🚀 インストール
前提条件
- Python 3.10以上
- MCP Python SDK
- 必要な Python パッケージ:
requests
、pydantic
設定
- このリポジトリをクローンします:
- 仮想環境を作成する:
- 依存関係をインストールします:
または、個別のパッケージをインストールします。
💻 使用方法
サーバーの実行
コマンドラインから直接サーバーを実行できます。
これにより、デフォルトのポート (5000) で MCP サーバーが起動します。
Claude Desktopとの統合
Claude Desktop で Docker Explorer MCP サーバーを使用するには:
- Claude デスクトップの構成を更新します。
- Claude Desktop 構成ディレクトリで
claude_desktop_config.json
ファイルを開くか作成します。 - Docker Explorerサーバー構成を追加する
- Claude Desktop 構成ディレクトリで
- 新しい設定をロードするには、 Claude Desktopを再起動してください。
ツールの使用
Claude Desktop と統合すると、次のような質問を Claude にすることで Docker Explorer ツールを使用できるようになります。
コアツール
- Docker イメージを検索:
- 画像の詳細を取得:
- 利用可能なタグを検索:
高度なツール
- セキュリティスキャナー:
- 画像サイズ最適化:
- Docker Compose ジェネレーター:
- コンテナランタイムアナライザー:
👷 開発
プロジェクト構造
新機能の追加
Docker Explorer MCP サーバーに新しいツールを追加するには:
- MCP ツール デコレータを使用して、
docker_explorer.py
にツール関数を実装します。
- ツールの実装については、次のベスト プラクティスに従ってください。
- Claude Desktop 向けに出力を簡潔かつフォーマット化します
- 例外を適切に処理する
- 明確なパラメータの説明を提供する
- 適切に構造化された結果を返す
テスト
- 手動テスト:
- サーバーを実行します:
python docker_explorer.py
- 関連する質問をしてClaude Desktopでテストする
- サーバーを実行します:
- デバッグ:
- 端末出力にエラーがないか確認する
- Claude Desktopでツールの応答を確認する
- クロードに容量制限がある場合は出力フォーマットを調整する
📚 APIドキュメント
コアツール
search_images
- 説明: レジストリ間でDockerイメージを検索
- パラメータ:
query
(文字列): Dockerイメージの検索クエリlimit
(整数、デフォルト=10): 返される結果の最大数
- 戻り値: メタデータを含む Docker イメージのリスト
search_tags
- 説明: Dockerイメージの特定のタグを検索します
- パラメータ:
image_name
(文字列): Dockerイメージの名前tag_pattern
(文字列、デフォルト=""): タグにマッチするパターンlimit
(整数、デフォルト = 25): 返される結果の最大数
- 戻り値: 一致するタグのリスト
get_image_details
- 説明: Dockerイメージの詳細情報を取得します
- パラメータ:
image_name
(文字列): Dockerイメージの名前tag
(文字列、デフォルトは「latest」): Dockerイメージのタグ
- 戻り値: 詳細な画像情報
高度なツール
scan_security
- 説明: Docker イメージの既知の脆弱性とセキュリティ問題を分析します
- パラメータ:
image_name
(文字列): Dockerイメージの名前tag
(文字列、デフォルトは「latest」): スキャンするDockerイメージのタグ
- リターン:推奨事項を含むセキュリティ分析レポート
optimize_image_size
- 説明: Dockerイメージを分析し、サイズを縮小する方法を提案します
- パラメータ:
repository_url
(文字列): Docker Hubリポジトリへの完全なURLtag
(文字列、デフォルトは「latest」): 分析するDockerイメージのタグ
- 戻り値: サイズ最適化の推奨事項
generate_docker_compose
- 説明: イメージに基づいて docker-compose.yml ファイルを生成します
- パラメータ:
repository_url
(文字列): Docker Hubリポジトリへの完全なURLtag
(文字列、デフォルトは「latest」): Dockerイメージのタグport_mapping
(文字列、デフォルト=""): オプションのポートマッピング(例: '8080:80')environment_variables
(文字列、デフォルト=""): オプションの環境変数include_db
(ブール値、デフォルト=false): データベースサービスを含めるかどうか
- 戻り値: 生成された docker-compose.yml の内容
analyze_runtime
- 説明: コンテナが実行時にどのように動作するかを分析する
- パラメータ:
image_name
(文字列): Dockerイメージの名前tag
(文字列、デフォルトは「latest」): Dockerイメージのタグapp_type
(文字列、デフォルト = "web"): アプリケーションの種類 (Web、データベース、キャッシュ、API、バッチ)
- リターン: リソース使用予測と推奨事項を含む実行時分析
compare_images
- 説明: 2つのDockerイメージを比較し、違いを強調表示します
- パラメータ:
image1
(文字列): 比較する最初の Docker イメージ (例: 'nginx:1.21' または 'user/repo:tag')image2
(文字列): 比較する2番目のDockerイメージ(例: 'nginx:1.22' または 'user/repo:tag')
- リターン: サイズ、レイヤー、構成、互換性の違いを強調した詳細な比較レポート
generate_dockerfile
- 説明:自然言語で記述されたアプリケーション要件に基づいてDockerfileを生成します
- パラメータ:
app_description
(文字列): コンテナ化するアプリケーションの説明 (例: 'Redis を使用した Python Flask Web アプリ')app_type
(文字列、デフォルト = "web"): アプリケーションの種類 (web、api、database、worker、static)base_image
(文字列、デフォルトは ""): 使用するオプションのベースイメージ (例: 'python:3.9-alpine')include_comments
(ブール値、デフォルト=true): Dockerfileに説明コメントを含めるかどうか
- 戻り値: 使用方法の説明を含む生成されたDockerfile
🔒 セキュリティに関する考慮事項
Docker Explorer MCPサーバーは、教育および開発目的で設計されています。使用にあたっては、以下の点にご注意ください。
- 機密性の高い認証情報やAPIキーを公開しないでください
- Docker Composeファイルを生成して実行する際には注意が必要です
- 実装前に必ずセキュリティ推奨事項を確認してください
📌 ライセンス
マサチューセッツ工科大学
👥 貢献する
貢献を歓迎します!新しいツールや既存の機能の改善に関するプルリクエストをお気軽に送信してください。
This server cannot be installed
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
Docker イメージ、コンテナ、レジストリと対話するためのツールを提供するモデル コンテキスト プロトコル サーバー。これにより、AI アシスタントは標準化されたインターフェースを通じて Docker リソースを検索、分析、管理できるようになります。
Related MCP Servers
- AsecurityAlicenseAqualityA powerful Model Context Protocol (MCP) server for Docker operations, enabling seamless container and compose stack management through Claude AI.Last updated -4160PythonMIT License
- AsecurityFlicenseAqualityA Model Context Protocol server that enables Docker container management through natural language interactions using a custom GPT interface.Last updated -77TypeScript
- -securityFlicense-qualityA Model Context Protocol server that provides a comprehensive interface for interacting with the ConnectWise Manage API, simplifying API discovery, execution, and management for both developers and AI assistants.Last updated -462Python
- -securityFlicense-qualityA Model Context Protocol server that connects AI assistants like Claude to Notion workspaces, enabling them to view, search, create, and update Notion databases, pages, and content blocks.Last updated -275JavaScript