mcp-server-docker
mcp-server-docker
Управляйте контейнерами, образами и сервисами Docker прямо из вашего AI-ассистента для кодинга. Просматривайте списки, запускайте и останавливайте контейнеры, читайте логи, выполняйте команды внутри контейнеров и проверяйте использование ресурсов.
npx mcp-docker-serverСовместимо с Claude Desktop, Cursor, VS Code Copilot и любым MCP-совместимым клиентом. Не требуются ключи API. Автоматически подключается к вашему локальному сокету Docker.

Демо создано с помощью remotion-readme-kit
Why
Если вы работаете с Docker каждый день, вы знаете эту рутину: переключиться на терминал, ввести docker ps, пролистать логи, скопировать ID контейнеров, перезапустить сервисы. Это отнимает время. Этот MCP-сервер позволяет вашему AI-ассистенту выполнять эти задачи за вас, пока вы сосредоточены на коде. Попросите его проверить, какие контейнеры запущены, показать логи сбойного сервиса или перезапустить зависший контейнер. Он общается с API Docker через локальный сокет, так что ничего не нужно настраивать и управлять учётными данными.
Related MCP server: Docker Manager MCP
Tools
Tool | Что делает |
| Показать запущенные (или все) контейнеры со статусом, портами и информацией об образе |
| Получить последние логи контейнера |
| Запустить остановленный контейнер |
| Остановить работающий контейнер |
| Перезапустить контейнер |
| Удалить контейнер (при необходимости принудительно) |
| Выполнить команду внутри работающего контейнера |
| Получить живые данные о CPU, памяти и сети |
| Показать все образы Docker на хосте |
| Удалить образ Docker |
Quick Start
Cursor
Добавьте в .cursor/mcp.json:
{
"mcpServers": {
"docker": {
"command": "npx",
"args": ["-y", "mcp-docker-server"]
}
}
}Claude Desktop
Добавьте в claude_desktop_config.json:
{
"mcpServers": {
"docker": {
"command": "npx",
"args": ["-y", "mcp-docker-server"]
}
}
}VS Code
Добавьте в настройки пользователя или в .vscode/mcp.json:
{
"mcp": {
"servers": {
"docker": {
"command": "npx",
"args": ["-y", "mcp-docker-server"]
}
}
}
}Examples
"Показать все запущенные контейнеры Docker"
"Покажи логи контейнера nginx"
"Перезапусти контейнер api-server"
"Какое использование CPU и памяти у моего контейнера postgres?"
"Выполни
ls -la /appвнутри контейнера web""Покажи все образы Docker и их размеры"
"Останови все контейнеры, использующие старый образ"
Prerequisites
Docker должен быть запущен на вашей машине
Сервер подключается к сокету Docker по адресу
/var/run/docker.sock(Linux/macOS) или через именованный канал в WindowsНе требуются ключи API или токены
Agent Plugins
Этот репозиторий является пакетом Agent Plugins версии 1.0.0: plugin.json, портативный mcp.json и skills/ поставляются вместе с MCP-сервером.
Для Cursor клонируйте репозиторий и скопируйте или сделайте симлинк в ~/.cursor/plugins/local/mcp-server-docker, затем перезагрузите окно. Skills и MCP появятся в разделе Customize > Plugins.
Кнопки установки для Cursor и VS Code выше по-прежнему работают: они добавляют тот же stdio-сервер npx -y mcp-docker-server, что и ручной JSON.
FAQ
Что такое mcp-docker-server?
Это npm-пакет для этого MCP-сервера (имя репозитория mcp-server-docker). Он общается с вашим локальным сокетом Docker, чтобы выводить список контейнеров, просматривать логи, выполнять команды и управлять образами.
Нужно ли, чтобы Docker Desktop был запущен?
Да. Демон должен быть запущен, а процесс MCP должен иметь доступ к docker.sock (или именованному каналу Windows).
Безопасно ли это для продакшен-контейнеров?
Относитесь к остановке, удалению и перезапуску как к разрушительным действиям. Подтверждайте с пользователем перед изменением продакшен-нагрузок.
Можно ли установить его как Agent Plugin в Cursor?
Да. Используйте ~/.cursor/plugins/local/mcp-server-docker, чтобы встроенный навык docker-management загружался вместе с конфигурацией MCP.
Нужны ли ключи API?
Нет. Достаточно локального доступа к Docker.
Development
git clone https://github.com/ofershap/mcp-server-docker.git
cd mcp-server-docker
npm install
npm test
npm run buildSee also
Больше MCP-серверов и инструментов для разработчиков в моём портфолио.
Author
README создан с помощью README Builder
License
MIT © 2026 Ofer Shapira
Available Tools
10 toolscontainer_logsC
Get logs from a Docker container.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Container ID or name | |
| tail | No | Number of lines from the end |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. While 'Get logs' implies a read operation, it doesn't disclose important behavioral traits like whether this requires specific permissions, if it streams or returns static output, rate limits, or what happens with invalid container IDs. The description is minimal and lacks operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero wasted words. It's appropriately sized for a simple tool and front-loads the essential information ('Get logs from a Docker container'). Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations and no output schema, the description is insufficiently complete. It doesn't explain what format the logs are returned in (e.g., text, JSON), whether it includes timestamps, or how errors are handled. Given the lack of structured fields, more descriptive context is needed for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters ('id' and 'tail') with their types and descriptions. The description adds no additional parameter semantics beyond what's in the schema, but the schema provides adequate documentation, meeting the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get logs') and resource ('from a Docker container'), making the tool's purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'container_stats' or 'exec_command' which also interact with containers but serve different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With siblings like 'list_containers' (for discovery) and 'exec_command' (for executing commands), there's no indication that this tool is specifically for retrieving log output rather than other container operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
container_statsA
Get CPU, memory, and network stats for a running Docker container.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Container ID or name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions the tool retrieves stats but lacks details on behavioral traits such as permissions required, rate limits, error handling, or whether it's a read-only operation. The description is minimal and does not compensate for the absence of annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It is front-loaded and appropriately sized, making it easy to understand quickly with zero waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (retrieving stats for a container) and no annotations or output schema, the description is adequate but incomplete. It covers the basic purpose but lacks details on output format, error conditions, or dependencies, which could hinder an AI agent's ability to use it effectively without additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the 'id' parameter documented as 'Container ID or name.' The description does not add any meaning beyond this, such as format examples or constraints. With high schema coverage, the baseline score of 3 is appropriate as the schema handles the parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Get') and the resource ('CPU, memory, and network stats for a running Docker container'), distinguishing it from siblings like container_logs (logs) or exec_command (execute commands). It precisely identifies what the tool does without being vague or tautological.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by specifying 'for a running Docker container,' suggesting it should be used when a container is active. However, it does not explicitly state when to use this tool versus alternatives (e.g., list_containers for status vs. stats) or provide exclusions, leaving some ambiguity in context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
exec_commandC
Execute a command inside a running Docker container.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Container ID or name | |
| command | Yes | Command and arguments, e.g. ['ls', '-la'] |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. While it implies a mutation operation ('execute'), it doesn't disclose critical traits: whether this requires specific permissions, if commands run with container user privileges, potential security implications, error handling for invalid commands, or output format. This leaves significant gaps for a tool that executes arbitrary commands.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose with zero wasted words. It's appropriately sized and front-loaded, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given this is a command execution tool with no annotations and no output schema, the description is incomplete. It doesn't address security implications, error conditions, output handling, or execution context. For a tool that can run arbitrary commands in containers, more behavioral context is needed to use it safely and effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are well-documented in the schema itself. The description adds no additional parameter semantics beyond what the schema provides (e.g., it doesn't clarify command execution context, shell vs. exec format, or environment variables). The baseline of 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('execute a command') and target ('inside a running Docker container'), providing specific verb+resource information. However, it doesn't distinguish this tool from potential alternatives like 'container_logs' or 'container_stats' which also interact with containers but serve different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., the container must be running), exclusions (e.g., not for stopped containers), or comparisons with sibling tools like 'container_logs' (for viewing output) or 'restart_container' (for container management).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_containersB
List Docker containers. Set all=true to include stopped containers.
| Name | Required | Description | Default |
|---|---|---|---|
| all | No | Include stopped containers |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the 'all' parameter behavior but doesn't describe other important traits: whether this is a read-only operation, what the output format looks like (e.g., list of container IDs/names), if there are rate limits, or if specific permissions are required. For a tool with zero annotation coverage, this leaves significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two short sentences that directly address the tool's function and key parameter. Every word earns its place, and it's front-loaded with the main purpose. There's zero waste or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what the tool returns (e.g., a list of container objects with properties), behavioral constraints, or error conditions. For a tool in a Docker management context with multiple siblings, more guidance on output and usage context would be helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents the single parameter ('all'). The description adds minimal value by restating the parameter's effect ('include stopped containers'), which is essentially what the schema description says. With high schema coverage, the baseline is 3, and the description doesn't provide additional syntax or format details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('List') and resource ('Docker containers'), making the purpose immediately understandable. It distinguishes from siblings like 'list_images' by specifying containers rather than images, but doesn't explicitly differentiate from other container-related tools like 'container_stats' or 'container_logs'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides implied usage guidance by mentioning the 'all' parameter to include stopped containers, suggesting this tool is for viewing container status. However, it doesn't explicitly state when to use this tool versus alternatives like 'container_stats' for performance metrics or 'container_logs' for logs, nor does it mention prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_imagesB
List Docker images on the host.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but offers minimal behavioral insight. It states what the tool does but doesn't disclose traits like whether it's read-only, how results are formatted (e.g., list vs. detailed view), potential errors, or performance considerations. This leaves gaps for safe and effective use.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence with no wasted words, making it highly concise and front-loaded. It immediately conveys the core functionality without unnecessary elaboration, which is ideal for a simple tool like this.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 parameters, no output schema, no annotations), the description is minimally adequate but lacks depth. It states the purpose but omits behavioral context (e.g., output format, error handling) that would help an agent use it correctly. For a read operation with no structured guidance, more completeness would be beneficial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters with 100% schema description coverage, so the schema already fully documents the lack of inputs. The description adds no parameter information, which is appropriate here—no compensation is needed. A baseline of 4 reflects that the description doesn't need to cover parameters for this zero-param tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List') and resource ('Docker images on the host'), making the purpose immediately understandable. It distinguishes from siblings like 'list_containers' by specifying images rather than containers, though it doesn't explicitly contrast them. The description avoids tautology by not just restating the tool name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. While the description implies it's for listing images, it doesn't specify scenarios where this is preferred over other tools or mention prerequisites like Docker being installed. The agent must infer usage from the tool name and sibling context alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_containerA
Remove a Docker container. Use force=true to remove running containers.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Container ID or name | |
| force | No | Force remove running container |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the destructive nature ('Remove') and the force option for running containers, which are critical behavioral traits. However, it lacks details on permissions needed, whether removal is irreversible, or error handling, leaving room for improvement in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two sentences that are front-loaded and waste no words. The first sentence states the core purpose, and the second provides essential usage guidance, making it efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (a destructive operation with 2 parameters), no annotations, and no output schema, the description is minimally adequate. It covers the basic action and a key parameter nuance but lacks details on prerequisites, side effects, or return values, which would enhance completeness for such a tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters ('id' and 'force') fully. The description adds minimal value by reiterating the 'force' parameter's purpose but doesn't provide additional syntax or format details beyond what the schema specifies, meeting the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Remove a Docker container') and resource ('Docker container'), distinguishing it from siblings like 'remove_image' (which targets images) and 'stop_container' (which stops but doesn't remove). It uses a precise verb that directly matches the tool's name without being tautological.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use 'force=true' (for running containers), which helps differentiate usage from simply stopping a container first. However, it doesn't mention alternatives like using 'stop_container' before removal or when not to use this tool, leaving some context gaps compared to siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_imageB
Remove a Docker image. Use force=true to force removal.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Image ID or tag | |
| force | No | Force remove |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the 'force' parameter, which hints at potential resistance (e.g., if the image is in use), but doesn't explain what happens without force, whether removal is permanent, if it affects running containers, or any error conditions. For a destructive operation with zero annotation coverage, this leaves significant gaps in understanding the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two short sentences that are front-loaded: the first states the core purpose, and the second adds crucial parameter guidance. There is zero waste or redundancy, making it highly efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (a destructive operation with potential side effects), lack of annotations, and no output schema, the description is incomplete. It doesn't cover important aspects like what happens on success/failure, whether removal is reversible, or how it interacts with sibling tools (e.g., containers using the image). For a tool that modifies system state, this leaves too much unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters ('id' as 'Image ID or tag' and 'force' as 'Force remove'). The description adds minimal value by reiterating the 'force' parameter usage but doesn't provide additional context like examples of image IDs/tags or what 'force' specifically overrides. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Remove') and resource ('Docker image'), making the purpose immediately understandable. It distinguishes from siblings like 'remove_container' by specifying the resource type. However, it doesn't explicitly contrast with other image-related tools (none in the sibling list), so it's not a perfect 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides some usage guidance by mentioning 'force=true to force removal', which implies when to use that parameter. However, it doesn't explicitly state when to use this tool versus alternatives like 'list_images' (for checking before removal) or 'remove_container' (for different resources). The guidance is limited to parameter usage rather than tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
restart_containerC
Restart a Docker container.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Container ID or name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. While 'Restart' implies a mutation operation, it doesn't disclose whether this requires specific permissions, whether it's reversible, what happens to running processes, or potential side effects. For a mutation tool with zero annotation coverage, this is inadequate behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero wasted words. It's appropriately sized for a simple tool and front-loads the essential information immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations, no output schema, and multiple sibling alternatives, the description is incomplete. It doesn't address behavioral implications, usage context relative to other container tools, or what to expect from the operation. Given the complexity of container management, more guidance is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with the single parameter 'id' documented as 'Container ID or name'. The description adds no additional parameter semantics beyond what the schema already provides, so the baseline score of 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Restart') and target resource ('a Docker container'), providing a specific verb+resource combination. However, it doesn't distinguish this tool from its sibling 'stop_container' and 'start_container' which could be used in sequence for similar effect, missing explicit differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'stop_container' followed by 'start_container', nor does it mention prerequisites (e.g., container must be running) or exclusions. With multiple sibling container management tools, this lack of comparative context is a significant gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_containerA
Start a stopped Docker container.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Container ID or name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states the action but lacks critical details: whether this requires specific permissions, if it's idempotent (starting an already running container), what happens on failure, or what the response looks like. For a mutation tool with zero annotation coverage, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that immediately conveys the core purpose without any wasted words. It's appropriately sized for a simple tool and front-loads the essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is incomplete. It doesn't address behavioral aspects like error conditions, permissions needed, or what constitutes success/failure. Given the complexity of container management and lack of structured data, more context would be helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the single parameter 'id' documented as 'Container ID or name'. The description doesn't add any parameter-specific information beyond what the schema provides, but since the schema fully covers the parameter, the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Start') and resource ('a stopped Docker container'), distinguishing it from siblings like 'restart_container' (which implies a running container) and 'stop_container' (the opposite action). The verb+resource combination is precise and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by specifying 'a stopped Docker container', which helps differentiate from 'restart_container' (for running containers). However, it doesn't explicitly state when NOT to use this tool or name alternatives, leaving some ambiguity about edge cases like containers in other states (e.g., paused).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stop_containerC
Stop a running Docker container.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Container ID or name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action but doesn't explain what 'stop' entails (e.g., graceful shutdown vs. force, state persistence, error handling, or permissions required). This leaves significant gaps in understanding the tool's behavior beyond the basic operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste, clearly front-loading the core action. It's appropriately sized for a simple tool, making it easy to parse without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a destructive operation (stopping a container) with no annotations and no output schema, the description is incomplete. It lacks details on behavioral traits, error cases, or return values, which are crucial for safe and effective use in a Docker management context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with the single parameter 'id' documented as 'Container ID or name'. The description adds no additional parameter semantics beyond what the schema provides, such as format examples or constraints. Baseline 3 is appropriate since the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Stop') and resource ('a running Docker container'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'restart_container' or 'remove_container' beyond the basic verb, missing an opportunity to clarify its specific role in the container lifecycle.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'restart_container' or 'remove_container'. The description assumes the agent knows the context of stopping versus other container operations, offering no explicit when/when-not instructions or prerequisites for a running container.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
10 tool updates
v1.0.1- First observed
container_logs - First observed
container_stats - First observed
exec_command - First observed
list_containers - First observed
list_images - First observed
remove_container - First observed
remove_image - First observed
restart_container - First observed
start_container - First observed
stop_container
TDQS
Each tool has a clearly distinct purpose targeting specific Docker operations: logs, stats, exec, listing containers/images, removal, restart, start, and stop. There is no overlap or ambiguity between tools, as each handles a unique action on a well-defined resource.
All tool names follow a consistent verb_noun pattern with snake_case (e.g., list_containers, remove_image, start_container). The naming is predictable and uniform across all tools, making them easily readable and systematic.
With 10 tools, the server is well-scoped for Docker management, covering essential operations like lifecycle control (start, stop, restart), inspection (logs, stats, list), and cleanup (remove). Each tool earns its place without redundancy or bloat.
The toolset provides strong coverage for core Docker workflows, including CRUD-like operations for containers and images. A minor gap exists in creating or building images (e.g., build_image or pull_image), but agents can still perform most common tasks effectively with the available tools.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Inspect and control your Northflank projects, services, jobs, and builds from your AI assistant.
Manage Rackspace Spot Kubernetes Cloudspaces, node pools, and VMs from your AI assistant.
Manage Scalingo PaaS apps, deployments, containers, logs and env vars from your AI assistant.
Manage Laravel Forge servers, sites, and deployments from your AI assistant.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables natural language interaction with Docker commands and operations. Supports container management, image operations, system information, and Docker Compose through conversational requests.141861MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to manage Docker containers, deploy stacks, and monitor services across multiple Docker hosts from one centralized location. Supports container lifecycle management, Docker Compose operations, and infrastructure orchestration through natural language commands.6MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to manage Docker containers, images, networks, volumes, and Compose services through the Model Context Protocol. It supports system operations, command execution within containers, and integration with Docker Hub and GitHub Container Registry.1302MIT
- AlicenseCqualityDmaintenanceEnables AI assistants to manage Docker containers, images, networks, volumes, and Docker Compose services through the Model Context Protocol.27186MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/ofershap/mcp-server-docker'
If you have feedback or need assistance with the MCP directory API, please join our Discord server