MCP Dockhand

MCP Dockhand

Exposes over 130 Dockhand API endpoints as tools to manage Docker infrastructure through AI assistants. It enables comprehensive control over containers, stacks, networks, and volumes across multiple environments and hosts.

Category
Visit Server

README

MCP Dockhand

CI License: MIT Docker

An MCP (Model Context Protocol) server that exposes 130+ Dockhand API endpoints as MCP tools. Manage your entire Docker infrastructure through AI assistants.

Dockhand is a Docker management server that connects to multiple Docker hosts via Hawser agents. This MCP server provides full programmatic access to all Dockhand features.

Features

  • 130+ MCP Tools covering all Dockhand API endpoints
  • Streamable HTTP Transport (MCP Spec 2025-03-26) for Docker container hosting
  • Session-based Auth with auto-relogin on 401
  • SSE Support for deploy operations (start, stop, down, restart)
  • Environment Filter enforced on all container/stack/image/network/volume endpoints
  • Docker Ready with multi-stage build, non-root user, and health checks

Quick Start

Docker (recommended)

docker run -d \
  --name mcp-dockhand \
  -p 8080:8080 \
  -e DOCKHAND_URL=https://your-dockhand-server.com \
  -e DOCKHAND_USERNAME=your-username \
  -e DOCKHAND_PASSWORD=your-password \
  ghcr.io/strausmann/mcp-dockhand:latest

Docker Compose

services:
  mcp-dockhand:
    image: ghcr.io/strausmann/mcp-dockhand:latest
    container_name: mcp-dockhand
    restart: unless-stopped
    ports:
      - "8080:8080"
    environment:
      - DOCKHAND_URL=https://your-dockhand-server.com
      - DOCKHAND_USERNAME=your-username
      - DOCKHAND_PASSWORD=your-password

From Source

git clone https://github.com/strausmann/mcp-dockhand.git
cd mcp-dockhand
npm install
npm run build
DOCKHAND_URL=https://your-server.com DOCKHAND_USERNAME=admin DOCKHAND_PASSWORD=secret npm start

Configuration

Variable Required Default Description
DOCKHAND_URL Yes - Dockhand server URL
DOCKHAND_USERNAME Yes - Dockhand username
DOCKHAND_PASSWORD Yes - Dockhand password
MCP_PORT No 8080 Port for the MCP server
LOG_LEVEL No info Log level

MCP Client Configuration

Claude Desktop / Claude Code

Add to your MCP settings:

{
  "mcpServers": {
    "dockhand": {
      "url": "http://localhost:8080/mcp"
    }
  }
}

Tool Reference

Containers (27 tools)

Tool Description
list_containers List all containers in an environment
get_container Get container details
inspect_container Docker inspect (full details)
get_container_logs Get container logs
get_container_stats Get resource usage stats
get_container_top Get running processes
start_container Start a container
stop_container Stop a container
restart_container Restart a container
pause_container Pause a container
unpause_container Unpause a container
rename_container Rename a container
update_container Update container settings
create_container Create a new container
get_container_shells List available shells
list_container_files Browse files inside container
get_container_file_content Read file from container
create_container_file Create file in container
delete_container_file Delete file in container
rename_container_file Rename file in container
chmod_container_file Change file permissions
check_container_updates Check for image updates
get_pending_updates Get pending updates
batch_update_containers Batch update containers
get_container_sizes Get container disk sizes
get_containers_stats Get aggregated stats

Stacks (21 tools)

Tool Description
list_stacks List all stacks
get_stack Get stack details
create_stack Create and optionally deploy a stack
start_stack Start a stack (compose up)
stop_stack Stop a stack (compose stop)
restart_stack Restart a stack
down_stack Take down a stack (compose down)
delete_stack Delete a stack
get_stack_compose Read compose file
update_stack_compose Update compose file
get_stack_env Read environment variables
update_stack_env Update environment variables
get_stack_env_raw Read raw .env file
validate_stack_env Validate env variables
scan_stacks Scan filesystem for stacks
adopt_stack Adopt an untracked stack
relocate_stack Move stack to new path
get_stack_sources Get stack sources
get_stack_base_path Get base path
get_stack_path_hints Get path suggestions
validate_stack_path Validate a stack path

Images (9 tools)

Tool Description
list_images List all images
get_image Get image details
get_image_history Get image layer history
tag_image Tag an image
remove_image Remove an image
pull_image Pull an image
push_image Push an image
scan_image Vulnerability scan (Trivy/Grype)
export_image Export image as tarball

Environments (18 tools)

Tool Description
list_environments List all environments
get_environment Get environment details
create_environment Create an environment
update_environment Update an environment
delete_environment Delete an environment
test_environment Test connection
test_environment_connection Test without saving
detect_docker_socket Auto-detect socket
get_environment_timezone Get timezone
set_environment_timezone Set timezone
get_environment_update_check Get update-check settings
set_environment_update_check Set update-check settings
get_environment_image_prune Get image prune settings
set_environment_image_prune Set image prune settings
list_environment_notifications List notifications
create_environment_notification Create notification
get_environment_notification Get notification
delete_environment_notification Delete notification

Networks (7 tools)

Tool Description
list_networks List all networks
get_network Get network details
inspect_network Inspect network
create_network Create a network
remove_network Remove a network
connect_container_to_network Connect container
disconnect_container_from_network Disconnect container

Volumes (9 tools)

Tool Description
list_volumes List all volumes
get_volume Get volume details
inspect_volume Inspect volume
browse_volume Browse files in volume
get_volume_file_content Read file from volume
release_volume_browse Release browse session
clone_volume Clone a volume
export_volume Export volume
remove_volume Remove volume (destructive)

Git Stacks (15 tools)

Tool Description
list_git_stacks List Git-based stacks
get_git_stack Get Git stack details
deploy_git_stack Deploy a Git stack (SSE)
sync_git_stack Sync with remote repo
test_git_stack Test Git connection
get_git_stack_env_files Get env files
trigger_git_webhook Trigger webhook
get_git_webhook Get webhook details
list_git_credentials List Git credentials
create_git_credential Create Git credential
get_git_credential Get credential details
update_git_credential Update credential
delete_git_credential Delete credential
list_git_repositories List Git repositories
create_git_repository Create repository config

Dashboard & Activity (8 tools)

Tool Description
get_dashboard_stats Get dashboard statistics
get_dashboard_preferences Get display preferences
set_dashboard_preferences Set display preferences
get_activity_feed Get activity feed
get_container_activity Container activity
get_activity_events Activity events
get_activity_stats Activity statistics
get_merged_logs Merged logs from containers

Auth & Hawser (12 tools)

Tool Description
get_auth_session Check session status
get_auth_providers List auth providers
get_auth_settings Get auth settings
create_oidc_provider Create OIDC provider
get_oidc_provider Get OIDC provider
test_oidc_provider Test OIDC provider
create_ldap_provider Create LDAP provider
get_ldap_provider Get LDAP provider
test_ldap_provider Test LDAP provider
list_hawser_tokens List Hawser tokens
create_hawser_token Create Hawser token
revoke_hawser_token Revoke Hawser token

Audit (4 tools)

Tool Description
get_audit_log Get audit log
get_audit_events Get audit event types
get_audit_users Audit data by user
export_audit_log Export audit log

Notifications (8 tools)

Tool Description
list_notifications List notifications
create_notification Create notification
get_notification Get notification
update_notification Update notification
delete_notification Delete notification
test_notification Test notification
test_notification_config Test without saving
trigger_test_notification Trigger test event

Registries (10 tools)

Tool Description
list_registries List registries
create_registry Add registry
get_registry Get registry details
update_registry Update registry
delete_registry Delete registry
set_default_registry Set as default
search_registry Search registry
get_registry_catalog Get catalog
get_registry_image Get image from registry
get_registry_tags Get image tags

System & Settings (19 tools)

Tool Description
health_check Server health
health_check_database Database health
get_host_info Host information
get_system_info System information
get_system_disk Disk usage
list_system_files List system files
get_system_file_content Read system file
get_changelog Changelog
get_dependencies Dependencies
get_general_settings General settings
update_general_settings Update settings
get_theme_settings Theme settings
update_theme_settings Update theme
get_scanner_settings Scanner settings
update_scanner_settings Update scanner
get_license License info
activate_license Activate license
get_prometheus_metrics Prometheus metrics
prune_all Prune all resources

Users, Roles & Preferences (20 tools)

Tool Description
list_users List users
create_user Create user
get_user Get user details
update_user Update user
delete_user Delete user
get_user_mfa_status MFA status
enable_user_mfa Enable MFA
disable_user_mfa Disable MFA
get_user_roles Get user roles
set_user_roles Set user roles
list_roles List roles
create_role Create role
get_role Get role
update_role Update role
delete_role Delete role
get_profile Get own profile
update_profile Update own profile
get_favorites Get favorites
set_favorites Set favorites
list_config_sets List config sets

Schedules (9 tools)

Tool Description
list_schedules List schedules
get_schedule_settings Get settings
update_schedule_settings Update settings
get_schedule_executions Execution history
get_schedule_execution Execution details
get_schedule Get schedule
run_schedule_now Run immediately
toggle_schedule Enable/disable
toggle_system_schedule Toggle system schedule

Auto-Update (3 tools)

Tool Description
get_auto_update_settings Get all auto-update settings
get_container_auto_update Get container auto-update
set_container_auto_update Set auto-update policy

Important Notes

Environment ID is Required

Most Docker resource endpoints (containers, stacks, images, networks, volumes) require an environmentId parameter. This maps to the ?env=<id> query parameter in the Dockhand API. Without it, endpoints return empty arrays.

SSE Responses

Deploy operations (start, stop, down, restart, compose update with restart) return Server-Sent Events. The MCP server automatically parses these and returns the final result.

Authentication

The server uses session-based cookie authentication. It automatically:

  • Logs in on first request
  • Stores the session cookie in memory
  • Re-authenticates on 401 responses
  • Handles session timeout (24h)

Development

# Install dependencies
npm install

# Type check
npm run typecheck

# Build
npm run build

# Run in development mode
DOCKHAND_URL=https://your-server.com \
DOCKHAND_USERNAME=admin \
DOCKHAND_PASSWORD=secret \
npm run dev

License

MIT

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured