Skip to main content
Glama

local-docker-mcp

A Python MCP (Model Context Protocol) server that provides Docker container management and test execution capabilities via FastMCP. Runs as an HTTP server on port 8000 at path /local-docker/mcp/.

Features

  • Docker Image Management: Build, pull, list, and remove Docker images

  • Container Operations: Run, stop, remove containers; fetch logs; execute commands

  • Test Execution: Run tests inside containers with automatic file/folder upload

  • Cross-Platform: Works on Windows, macOS, and Linux with platform-appropriate upload strategies

  • MCP Protocol: Exposes all functionality as MCP tools for LLM consumption

Related MCP server: Docker MCP

Tech Stack

  • Python ≥3.14

  • FastMCP ≥3.4.2 - MCP server framework

  • docker ≥7.1.0 - Docker SDK for Python

  • uv - Dependency management

Project Structure

local-docker-mcp/
├── main.py          # Main MCP server entry point (single file)
├── pyproject.toml   # Project config & dependencies
├── uv.lock          # Locked dependencies
├── .python-version  # Python version pin
├── .gitignore
└── README.md

Quick Start

Prerequisites

  • Python ≥3.14

  • Docker installed and running

  • uv package manager

Installation

# Clone and navigate to project
cd local-docker-mcp

# Install dependencies
uv sync

# Run the MCP server
uv run main.py

The server starts at http://0.0.0.0:8000/local-docker/mcp/

Development

# Install in editable mode
uv pip install -e .

# Add a new dependency
uv add package-name
uv sync

Available MCP Tools

All tools are decorated with @mcp.tool() and exposed via the MCP protocol.

Image Management

Tool

Description

build_image

Build Docker image from Dockerfile

pull_image

Pull Docker image from registry

remove_image

Remove Docker image

list_resources

List containers and images

Container Operations

Tool

Description

run_container

Start container from image (requires byagent_ prefix)

get_container_logs

Fetch container logs

stop_and_remove_container

Stop/remove container, optionally remove image

exec_in_container

Execute arbitrary command in container (requires byagent_ prefix)

Test Execution

Tool

Description

run_tests

Run tests inside container with optional file/folder upload

run_tests Parameters

  • container_name (required, must have prefix byagent_)

  • container_tests_folder (required, absolute path in container)

  • test_file (optional, specific test file)

  • test_node_ids (optional, specific test node IDs)

  • upload_from_folder / upload_from_files (mutually exclusive, for uploading test files)

  • test_runner (default: pytest)

  • test_runner_args (optional, additional test runner arguments)

  • env_vars (optional, environment variables)

  • timeout_seconds (optional, test timeout)

Upload Strategy

  • upload_from_folder: Copies entire folder contents to container_tests_folder

  • upload_from_files: Copies specific files to container_tests_folder

  • Mutually exclusive — cannot use both

Architecture

Main Entry Point (main.py)

  • FastMCP Server: Named "local-docker-mcp", runs on HTTP transport at 0.0.0.0:8000 with path /local-docker/mcp/

  • Platform Detection: Detects OS at import time for cross-platform Docker commands

Key Components

  1. _run(cmd, cwd, timeout) — Shell command runner with structured output and timeout handling

  2. _fmt(res, label) — Formats command results into readable strings with success/failure icons

  3. _upload_files_to_container(files, container_name, dest) — Cross-platform file upload via docker cp

  4. _upload_folder_to_container(folder, container_name, dest) — Cross-platform folder upload:

    • Windows: Uses docker cp exclusively

    • macOS/Linux: Prefers tar pipe for permissions/symlinks, falls back to docker cp

Container Naming Convention

All container operations require the byagent_ prefix for container names (validated in tools).

Cross-Platform Support

Platform

Folder Upload Method

Windows

docker cp

macOS/Linux

tar pipe (preferred), docker cp (fallback)

License

[Add your license here]

Contributing

  1. Fork the repository

  2. Create a feature branch

  3. Make your changes

  4. Run tests (when available)

  5. Submit a pull request

F
license - not found
-
quality - not tested
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    -
    quality
    D
    maintenance
    Enables secure Docker command execution from isolated environments like containers through MCP protocol. Provides tools for managing Docker containers, images, and Docker Compose services with security validation and async operation support.
    MIT
  • A
    license
    -
    quality
    D
    maintenance
    Enables remote Docker management over SSH via a local MCP server, providing tools to manage containers, images, Compose, and system resources.
    1
    GPL 3.0
  • A
    license
    -
    quality
    C
    maintenance
    A comprehensive MCP server that provides advanced Docker operations through a unified interface with 16 MCP tools and 25+ CLI aliases, enabling secure container lifecycle management, multi-container orchestration, registry publishing, and system maintenance.
    38
    15
    ISC

View all related MCP servers

Related MCP Connectors

View all MCP Connectors

Latest Blog Posts

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/Jatin-Gurwani/local-docker-mcp'

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