Skip to main content
Glama

Docker Explorer

by jar285

🐳 Docker Explorer MCP サーバー

Dockerエクスプローラーパイソンライセンス

📋 概要

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 パッケージ: requestspydantic

設定

  1. このリポジトリをクローンします:
git clone https://github.com/yourusername/docker-mcp-server.git cd docker-mcp-server
  1. 仮想環境を作成する:
python -m venv .venv310 source .venv310/bin/activate # On Windows: .venv310\Scripts\activate
  1. 依存関係をインストールします:
pip install -r requirements.txt

または、個別のパッケージをインストールします。

pip install anthropic-mcp requests pydantic

💻 使用方法

サーバーの実行

コマンドラインから直接サーバーを実行できます。

python docker_explorer.py

これにより、デフォルトのポート (5000) で MCP サーバーが起動します。

Claude Desktopとの統合

Claude Desktop で Docker Explorer MCP サーバーを使用するには:

  1. Claude デスクトップの構成を更新します
    • Claude Desktop 構成ディレクトリでclaude_desktop_config.jsonファイルを開くか作成します。
    • Docker Explorerサーバー構成を追加する
{ "mcp_servers": [ { "name": "docker-explorer", "command": ["python", "/path/to/mcpIS421/docker_explorer.py"], "cwd": "/path/to/mcpIS421" } ] }
  1. 新しい設定をロードするには、 Claude Desktopを再起動してください。

ツールの使用

Claude Desktop と統合すると、次のような質問を Claude にすることで Docker Explorer ツールを使用できるようになります。

コアツール
  1. Docker イメージを検索:
    Can you search for Python Docker images?
  2. 画像の詳細を取得:
    What are the details of the python:3.11-slim image?
  3. 利用可能なタグを検索:
    What tags are available for the nginx image?
高度なツール
  1. セキュリティスキャナー:
    Scan the security of the nginx image
  2. 画像サイズ最適化:
    How can I reduce the size of my python:3.9 image?
  3. Docker Compose ジェネレーター:
    Generate a docker-compose file for nginx with port 8080:80
  4. コンテナランタイムアナライザー:
    Analyze the runtime behavior of mysql:5.7 as a database

👷 開発

プロジェクト構造

docker-explorer-mcp/ ├── docker_explorer.py # Main server implementation with all tools ├── requirements.txt # Project dependencies ├── .gitignore # Git ignore file └── docs/ # Documentation ├── server_guide.md # Guide for setting up and using the server ├── new_tools_suggestions.md # Ideas for additional tools └── docker_mcp_server_project.md # Project overview

新機能の追加

Docker Explorer MCP サーバーに新しいツールを追加するには:

  1. MCP ツール デコレータを使用して、 docker_explorer.pyにツール関数を実装します。
@mcp.tool() def my_new_tool( param1: str = Field(description="Description of param1"), param2: int = Field(default=10, description="Description of param2") ) -> str: """Description of what your tool does""" try: # Implementation logic here result = f"Your formatted result" return result except Exception as e: return f"Error in my_new_tool: {str(e)}"
  1. ツールの実装については、次のベスト プラクティスに従ってください。
    • Claude Desktop 向けに出力を簡潔かつフォーマット化します
    • 例外を適切に処理する
    • 明確なパラメータの説明を提供する
    • 適切に構造化された結果を返す

テスト

  1. 手動テスト:
    • サーバーを実行します: python docker_explorer.py
    • 関連する質問をしてClaude Desktopでテストする
  2. デバッグ:
    • 端末出力にエラーがないか確認する
    • 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リポジトリへの完全なURL
    • tag (文字列、デフォルトは「latest」): 分析するDockerイメージのタグ
  • 戻り値: サイズ最適化の推奨事項
generate_docker_compose
  • 説明: イメージに基づいて docker-compose.yml ファイルを生成します
  • パラメータ:
    • repository_url (文字列): Docker Hubリポジトリへの完全なURL
    • tag (文字列、デフォルトは「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ファイルを生成して実行する際には注意が必要です
  • 実装前に必ずセキュリティ推奨事項を確認してください

📌 ライセンス

マサチューセッツ工科大学

👥 貢献する

貢献を歓迎します!新しいツールや既存の機能の改善に関するプルリクエストをお気軽に送信してください。

-
security - not tested
A
license - permissive license
-
quality - not tested

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 リソースを検索、分析、管理できるようになります。

  1. 📋 概要
    1. ✨ 特徴
      1. コア機能
      2. 高度なツール
    2. 🚀 インストール
      1. 前提条件
      2. 設定
    3. 💻 使用方法
      1. サーバーの実行
      2. Claude Desktopとの統合
      3. ツールの使用
    4. 👷 開発
      1. プロジェクト構造
      2. 新機能の追加
      3. テスト
    5. 📚 APIドキュメント
      1. コアツール
      2. 高度なツール
    6. 🔒 セキュリティに関する考慮事項
      1. 📌 ライセンス
        1. 👥 貢献する

          Related MCP Servers

          • A
            security
            A
            license
            A
            quality
            A powerful Model Context Protocol (MCP) server for Docker operations, enabling seamless container and compose stack management through Claude AI.
            Last updated -
            4
            160
            Python
            MIT License
            • Apple
          • A
            security
            F
            license
            A
            quality
            A Model Context Protocol server that enables Docker container management through natural language interactions using a custom GPT interface.
            Last updated -
            7
            7
            TypeScript
          • -
            security
            F
            license
            -
            quality
            A 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 -
            46
            2
            Python
            • Linux
            • Apple
          • -
            security
            F
            license
            -
            quality
            A 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 -
            275
            JavaScript
            • Apple

          View all related MCP servers

          MCP directory API

          We provide all the information about MCP servers via our MCP API.

          curl -X GET 'https://glama.ai/api/mcp/v1/servers/jar285/mcp-docker'

          If you have feedback or need assistance with the MCP directory API, please join our Discord server