{"name":"io.github.friendlygeorge/docker-mcp-server","slug":"friendlygeorge-docker-mcp-server","title":"Docker MCP Server","description":"MCP server for Docker — containers, health checks, Compose, logs, monitoring for AI agents","url":"https://mcp.market/server/friendlygeorge-docker-mcp-server","rating":null,"grade":"C","score":60,"certified":false,"status":"active","category":"devtools","tags":["devtools"],"presence":{"score":23,"stars":5,"forks":1,"downloads_week":91,"last_push_at":"2026-06-24T09:04:31.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/friendlygeorge/docker-mcp-server","website":null,"version":"0.3.5","remotes":[],"packages":[{"registryType":"npm","identifier":"@supernova123/docker-mcp-server","version":"0.3.5","transport":{"type":"stdio"},"environmentVariables":[{"description":"Docker socket path (default: /var/run/docker.sock)","format":"string","name":"DOCKER_HOST"}]}],"tools":[{"name":"build_image","description":"Build a Docker image from a Dockerfile or build context path.","write_action":false,"price_micros":0,"input_schema":null},{"name":"check_health","description":"Run a health probe against a container. Supports HTTP, TCP, and exec probes. Auto-detects from container HEALTHCHECK if available.","write_action":true,"price_micros":0,"input_schema":null},{"name":"compose_down","description":"Stop and remove services defined in a docker-compose.yml file","write_action":false,"price_micros":0,"input_schema":null},{"name":"compose_logs","description":"Get logs from Compose services","write_action":false,"price_micros":0,"input_schema":null},{"name":"compose_ps","description":"List services in a Compose project","write_action":false,"price_micros":0,"input_schema":null},{"name":"compose_restart","description":"Restart Docker Compose services. Restart specific services or the entire stack.","write_action":false,"price_micros":0,"input_schema":null},{"name":"compose_up","description":"Start services defined in a docker-compose.yml file","write_action":false,"price_micros":0,"input_schema":null},{"name":"container_health_status","description":"Check health status, uptime, and restart count for all running Docker containers. Returns JSON with container name, state, health probe status (healthy/unhealthy/no-healthcheck), and restart count. Use this for a quick fleet health overview; for resource metrics use container_resource_usage instead. Returns an array of objects with name, id, state, status, health, uptime, restartCount, and image f","write_action":false,"price_micros":0,"input_schema":null},{"name":"container_resource_usage","description":"Monitor CPU, memory, and network I/O across all running Docker containers. Returns sorted resource usage metrics with percentage breakdowns for each container. Use container_health_status for health probes; use resource_alert_check for threshold violations. Supports sort by cpu, memory, or network. Returns array of objects with name, id, cpu_percent, memory_usage_mb, memory_percent, network_rx_mb,","write_action":false,"price_micros":0,"input_schema":null},{"name":"container_stats","description":"Get real-time resource usage statistics for a Docker container (CPU, memory, network, I/O).","write_action":false,"price_micros":0,"input_schema":null},{"name":"copy_from_container","description":"Copy a file from a Docker container to read its contents. Returns the file content as text along with metadata (size, permissions). Useful for inspecting config files, logs, or application state inside running containers.","write_action":false,"price_micros":0,"input_schema":null},{"name":"copy_to_container","description":"Write file content into a Docker container at the specified path. Overwrites existing files. Useful for injecting configuration files, scripts, or environment files into running or stopped containers.","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_container","description":"Create a new Docker container from an image","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_volume","description":"Create a Docker volume with optional driver, labels, and options. Returns volume name, driver, and mountpoint.","write_action":true,"price_micros":0,"input_schema":null},{"name":"disk_usage","description":"Get Docker disk usage breakdown: space used by images, containers, volumes, and build cache. Shows total and reclaimable space.","write_action":false,"price_micros":0,"input_schema":null},{"name":"docker_info","description":"Get Docker daemon system information: server version, OS, kernel, CPU count, memory total, storage driver, and running container/image counts.","write_action":false,"price_micros":0,"input_schema":null},{"name":"exec_in_container","description":"Execute a command inside a running Docker container. Returns stdout, stderr, and exit code.","write_action":true,"price_micros":0,"input_schema":null},{"name":"fleet_status","description":"Get status overview of all Docker containers","write_action":false,"price_micros":0,"input_schema":null},{"name":"inspect_container","description":"Get detailed info about a Docker container","write_action":false,"price_micros":0,"input_schema":null},{"name":"inspect_volume","description":"Inspect a Docker volume. Returns detailed info including name, driver, mountpoint, labels, scope, and usage data.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_containers","description":"List Docker containers with optional filters","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_images","description":"List Docker images on the host","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_networks","description":"List Docker networks","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_volumes","description":"List Docker volumes","write_action":false,"price_micros":0,"input_schema":null},{"name":"monitor_dashboard","description":"Comprehensive Docker fleet dashboard in a single API call. Aggregates health status of all containers, top 5 CPU consumers, recent events (last 5 minutes), and threshold violations into one response. Use individual tools (container_health_status, container_resource_usage, watch_events) for targeted queries; use this for a complete fleet overview. Returns object with summary (total, running, health","write_action":false,"price_micros":0,"input_schema":null},{"name":"prune_containers","description":"Remove all stopped Docker containers. Returns the number of containers removed and reclaimed disk space. This is a destructive operation — stopped containers and their non-persisted data will be deleted. Use list_containers first to see what will be removed. Useful for cleanup after deployments or when disk space is low.","write_action":true,"price_micros":0,"input_schema":null},{"name":"prune_images","description":"Remove unused Docker images (dangling and unreferenced). Returns the number of images deleted and reclaimed disk space. Only removes images not used by any container. Use list_images first to see what will be removed. Useful for reclaiming disk space after builds or when switching base images frequently.","write_action":true,"price_micros":0,"input_schema":null},{"name":"prune_volumes","description":"Remove all unused Docker volumes. Returns count of removed volumes and reclaimed space.","write_action":true,"price_micros":0,"input_schema":null},{"name":"pull_image","description":"Pull a Docker image from a registry","write_action":false,"price_micros":0,"input_schema":null},{"name":"recreate_container","description":"Recreate a container with the same configuration (stop, remove, re-create). Useful for applying config changes.","write_action":false,"price_micros":0,"input_schema":null},{"name":"remove_container","description":"Remove a Docker container","write_action":true,"price_micros":0,"input_schema":null},{"name":"remove_image","description":"Remove a Docker image by name or ID. Use force to remove even if tagged.","write_action":true,"price_micros":0,"input_schema":null},{"name":"remove_volume","description":"Remove a Docker volume. Use force=true to remove even if in use by containers.","write_action":true,"price_micros":0,"input_schema":null},{"name":"resource_alert_check","description":"Check all running Docker containers against configurable CPU%, memory%, and restart count thresholds. Returns containers that violate thresholds with specific metrics that triggered alerts. Use container_resource_usage for raw metrics; use this tool for automated alerting. Default thresholds: 80% CPU, 80% memory, 5 restarts. Returns { violations: [...], checked: N } or { message: 'All containers w","write_action":false,"price_micros":0,"input_schema":null},{"name":"restart_container","description":"Restart a Docker container","write_action":false,"price_micros":0,"input_schema":null},{"name":"run_container","description":"Create and start a new Docker container with one command. Supports image, env, ports, volumes, restart policy, and command override. Auto-pulls missing images.","write_action":true,"price_micros":0,"input_schema":null},{"name":"search_logs","description":"Search container logs by keyword","write_action":false,"price_micros":0,"input_schema":null},{"name":"set_restart_policy","description":"Change the restart policy of a running container without recreating it. Use restart_container for an immediate restart; use this tool to change the policy (always, unless-stopped, on-failure, no) for future restarts. Returns a confirmation string on success. Idempotent: setting the same policy is a no-op. Returns an error string if the container does not exist.","write_action":false,"price_micros":0,"input_schema":null},{"name":"start_container","description":"Start a stopped Docker container","write_action":false,"price_micros":0,"input_schema":null},{"name":"stop_container","description":"Stop a running Docker container","write_action":false,"price_micros":0,"input_schema":null},{"name":"stream_logs","description":"Get logs from a single Docker container by ID or name. Use stream_logs for one container; use compose_logs for multi-service Compose stacks. Supports tail count (default 100 lines), since timestamp for filtering, and follow mode. Returns UTF-8 log text with multiplexed stream headers stripped, or 'No logs found.' when the container has no output. Read-only and safe to call repeatedly. Returns an e","write_action":false,"price_micros":0,"input_schema":null},{"name":"update_container","description":"Update a Docker container's resource limits (CPU, memory, CPU shares). Requires the container to be stopped first. Returns the updated resource limits. Use this to right-size containers based on actual usage — set CPU limits to prevent runaway processes and memory limits to prevent OOM kills.","write_action":true,"price_micros":0,"input_schema":null},{"name":"watch_events","description":"Stream Docker daemon events (containers, images, networks)","write_action":false,"price_micros":0,"input_schema":null},{"name":"watch_health","description":"Poll a container's health status until it becomes healthy or times out. Useful for waiting on service startup.","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":60,"grade":"C","scanned_at":"2026-09-27T05:27:19.382Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-27T05:27:19.368Z","components":{"code":{"score":13,"max":25,"notes":["58 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":12,"max":15,"notes":["local package, no credentials required"]},"maintenance":{"score":8,"max":15,"notes":["last push 95 days ago"]},"identity":{"score":6,"max":10,"notes":["registry namespace matches repository owner"]}},"findings":[{"id":"exec.shell-concat","severity":"high","component":"code","title":"Shell command built from a string (injection risk)","evidence":"dist/tools/compose.js: …path); try { const result = execSync(`docker compose -f \"${filePath}\" ${args.join(\" \")}`, { encoding…"}],"inputs":{"packages":[{"registryType":"npm","identifier":"@supernova123/docker-mcp-server","version":"0.3.5","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":3,"publishedAt":"2026-06-14T21:06:16.927Z","repositoryUrl":"git+https://github.com/friendlygeorge/docker-mcp-server.git","weeklyDownloads":91}],"repo":{"found":true,"owner":"friendlygeorge","repo":"docker-mcp-server","archived":false,"pushedAt":"2026-06-24T09:04:31Z","stars":5,"forks":1,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/262916214?v=4","ownerCreatedAt":"2026-02-21T00:15:18Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/262916214?v=4&s=128","source":"github"},"presence":{"stars":5,"forks":1,"downloadsWeek":91,"license":"MIT","lastPushAt":"2026-06-24T09:04:31.000Z","score":23}}}},"grade_history":[],"reviews":[]}