nideil

Docker MCP Server

Community nideil
Updated

Docker's MCP Server

Docker MCP Server

The Docker MCP Server is a Model Context Protocol (MCP)server that provides seamless integration with Docker Desktop on Windows, enabling advancedautomation and interaction capabilities for developers and tools.

Prerequisites

  1. Install Docker Desktop for Windows from Docker's official download page.

  2. In Docker Desktop, go to Settings > General and check the box for "Expose daemon on tcp://localhost:2375 without TLS". This is required for the MCP server to communicate with Docker Desktop.

    ๐Ÿ’ก Tip: You can verify that the port is exposed successfully by opening http://localhost:2375/version in your browser. If the setup is correct, you should see a JSON response with Docker version information.If you're having trouble, check this discussion for a possible solution:WSL and Docker for Windows: Cannot connect to the Docker daemon

Installation

Usage with Claude Desktop

{
  "mcpServers": {
    "docker-mcp-stdio": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "freezeolo/docker-mcp-server"
      ]
    }
  }
}

Tools

โœ… Completed ๐Ÿ› ๏ธ In Progress โŒ Plan

Container Lifecycle Management โœ…

  • list_containers - Get the list of containers โœ…
  • get_container_info - Get details of a specific container โœ…
    • container_id: Container ID (string, required)
  • start_container - Start a container โœ…
    • container_id: Container ID (string, required)
  • restart_container - Restart a container โœ…
    • container_id: Container ID (string, required)
  • stop_container - Stop a container โœ…
    • container_id: Container ID (string, required)
  • remove_container - Remove a container โœ…
    • container_id: Container ID (string, required)
  • create_container - Create a new container โœ…
    • imageName: Image name (string, required)
    • containerName: Container name (string, required)
    • command: Command to run (string, optional)
    • env: Environment variables (string[], optional)
    • ports: Port bindings (string[], optional)
    • volumes: Volume bindings (string[], optional)
    • network: Network name (string, optional)
    • restartPolicy: Restart policy (string, optional)

Network Management โœ…

  • list_networks - List all networks โœ…
  • get_network_info - Get network information โœ…
    • networkId: Network ID (string, required)
  • create_network - Create a new network โœ…
    • networkName: Network name (string, required)
    • driver: Network driver (string, required)
    • subnet: Subnet CIDR (string, required)
    • gateway: Gateway IP (string, required)
  • connect_container_to_network - Connect container to network โœ…
    • containerId: Container ID (string, required)
    • networkId: Network ID (string, required)
  • disconnect_container_from_network - Disconnect container from network โœ…
    • containerId: Container ID (string, required)
    • networkId: Network ID (string, required)
  • remove_network - Remove a network โœ…
    • networkId: Network ID (string, required)
  • get_network_containers - Get containers in a network โœ…
    • networkId: Network ID (string, required)

Image Management โœ…

  • list_images - List all images โœ…
  • pull_image - Pull an image from registry โœ…
    • imageName: Image name with tag (string, required)
  • push_image - Push an image to registry โœ…
    • imageName: Image name with tag (string, required)
  • remove_image - Remove an image โœ…
    • imageId: Image ID (string, required)
    • force: Force removal (boolean, optional)
  • tag_image - Tag an image with multiple tags โœ…
    • imageId: Image ID (string, required)
    • repository: Repository name (string, required)
    • tags: Array of tags (string[], required)
  • build_image - Build an image from Dockerfile โœ…
    • dockerfilePath: Path to Dockerfile (string, required)
    • repository: Repository name (string, required)
    • tags: Array of tags (string[], required)
  • get_image_details - Get image details โœ…
    • imageId: Image ID (string, required)

Logs Management โœ…

  • get_container_logs - Get container logs โœ…
    • containerId: Container ID (string, required)
    • follow: Follow log output (boolean, optional, default: false)
    • stdout: Show stdout (boolean, optional, default: true)
    • stderr: Show stderr (boolean, optional, default: true)
    • since: Show logs since timestamp (string, optional)
    • until: Show logs until timestamp (string, optional)
    • tail: Number of lines to show from the end (integer, optional)
    • timestamps: Show timestamps (boolean, optional, default: false)

FAQ

Q: How do I install the project?

A: Follow the steps in the Installation section. Make sure you have the required dependencies.

License

This project is licensed under the terms of the MIT open source license. Please refer to MIT for the full terms.

MCP Server ยท Populars

MCP Server ยท New

    williamzujkowski

    live-coding-music-mcp

    A Model Context Protocol (MCP) server that gives Claude direct control over Strudel.cc for AI-assisted music generation and live coding.

    Community williamzujkowski
    xmpuspus

    Cloudwright

    AI-powered cloud architecture - describe infrastructure in natural language, get Terraform, cost estimates, and compliance reports

    Community xmpuspus
    wallneradam

    Claude Auto-Approve MCP

    An MCP server to inject auto-approve MCP functionality into Claude Desktop

    Community wallneradam
    YV17labs

    ghostdesk

    Give any AI agent a full desktop โ€” it sees the screen, clicks, types, and runs apps like a human. Automate anything with a UI: browsers, legacy software, internal tools. No API needed. One Docker command.

    Community YV17labs
    remotebrowser

    mcp

    Free your data

    Community remotebrowser