mcp-docker-agentic
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| docker_pingB | Test that a Docker container is reachable and return its identity. |
| docker_read_fileA | Read a UTF-8 text file from a Docker container. offset and limit select a 1-based line range; limit=0 means unlimited. Defaults to first 200 lines. |
| docker_write_fileA | Write UTF-8 text content directly to a file inside a Docker container (creates or overwrites; use append=true to append instead). |
| docker_mkdirA | Create a directory (and parents) inside a Docker container, equivalent to mkdir -p. |
| docker_read_imageA | Read a file from a Docker container and return it as an MCP image. Supports common raster formats. |
| docker_list_dirA | List a directory inside a Docker container with file metadata in ls -lAh style. |
| docker_grepA | Search text files recursively inside a Docker container with ripgrep, falling back to grep. Output format is file:line:match. |
| docker_apply_patchA | Apply a unified diff inside a Docker container. Tries apply_patch (strip=0 only), then git apply, then patch. Supports dry-run and strip level. |
| docker_deleteA | Delete a file or directory inside a Docker container. Directories require recursive=true. |
| docker_execA | Execute an intentional shell command inside a Docker container. Supports stdin, cwd, env, custom output limit, and acceptable exit codes. Set background=true to run a command detached and get a job_id; stdin is not allowed for background jobs. Use docker_exec_result to poll/wait and docker_exec_kill to stop or clean up. |
| docker_exec_resultA | Check the status and output of a background job started with docker_exec background=true. Optionally wait until it exits. |
| docker_exec_killA | Send a signal to a background job started with docker_exec background=true. Optionally remove the job log directory. |
| docker_interactive_execA | Start a command inside a Docker container with a TTY allocated, for programs that prompt for input (sudo password, y/N confirmations, setup wizards, REPLs). Waits until output goes quiet (likely waiting for input) or the process exits, then returns the output so far plus a session_id. If the command finishes without prompting, the session is closed automatically and there is nothing further to do. Otherwise, use docker_interactive_input to reply or poll, and docker_interactive_close when finished. Idle sessions auto-expire after 10 minutes. |
| docker_interactive_inputA | Send a line of input to a running docker_interactive_exec session (e.g. answer a sudo password or y/N prompt), or just poll for more output if input is omitted. Returns newly produced output and status. |
| docker_interactive_closeA | Kill and remove an interactive Docker session started with docker_interactive_exec. |
| docker_interactive_listA | List currently open interactive Docker sessions. |
| docker_cp_toA | Copy a local file or directory into a Docker container (analogous to docker cp local container:path). |
| docker_cp_fromA | Copy a file or directory from a Docker container to the local machine (analogous to docker cp container:path local). |
| docker_closeA | No-op for Docker: the transport does not keep a persistent connection. Always succeeds. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 19 tools
Each tool has a clearly distinct purpose: file operations, exec, interactive sessions, background jobs, copying, and a no-op close. The most similar pair (docker_exec and docker_interactive_exec) is well-differentiated by TTY allocation and interactive input handling, so there is no real ambiguity.
All tools consistently use snake_case with a docker_ prefix, and related tools share predictable sub-patterns (e.g., exec_result, exec_kill, interactive_*, cp_to/from). Minor style deviations like docker_mkdir and docker_grep are command-style but still readable and consistent with the overall naming convention.
19 tools is slightly above the typical well-scoped range, but the count is justified by the broad domain of Docker interactions—file manipulation, execution, interactive sessions, background jobs, and copying. Each tool serves a distinct operational need, so the count feels appropriate rather than bloated.
The toolset comprehensively covers file operations, execution, background jobs, interactive sessions, and copying. However, it lacks container lifecycle management (e.g., listing, starting, stopping, inspecting containers), which would be expected for a broad Docker agentic server. This gap limits the toolset when discovering or managing containers rather than operating on a known one.