Atlas / MCP servers / knuckles-team / container-manager-mcp

container-manager-mcpBLOCK

mcp/knuckles-team/container-manager-mcp

Manage containers on docker, podman, compose, and docker swarm through an MCP Server for Agentic AI

Verdict
BLOCK
Grade
D
Trust score
67 /100
Exposed tools
2 2r · 0w · 0d
Transport
sse · stdio · streamable-http
License
MIT
Stars
6
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

CLI or API | MCP | Agent

Version: 3.1.0

Documentation — Installation, deployment, usage across the API, CLI, MCP, and A2A agent interfaces, and the multi-host control plane are maintained in the official documentation.

Read from source at commit bfaa54059b52OBSERVED · 2026-10-11
Advertisement
02

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.

claude-code
claude mcp add container-manager-mcp --env LLM_API_KEY=${LLM_API_KEY} -- uvx container-manager-mcp
claude-desktop
{
  "mcpServers": {
    "container-manager-mcp": {
      "command": "uvx",
      "args": [
        "container-manager-mcp"
      ],
      "env": {
        "LLM_API_KEY": "${LLM_API_KEY}"
      }
    }
  }
}
03

Exposed tools (2)

2 read · 0 write · 0 destructive.

ToolRiskDescription
cm_list_hostsreadList the host aliases you can pass as ``host`` to any cm_* operation
list_specialist_containersreadLists all containers managed by Agent OS (filtered by managed-by=agent-os label).
04

Trust audit

BLOCKgrade D · trust 67/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codeFAIL
L2Instruction surface (what it tells the agent)FAIL
L3Class-specific surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
declared (8 observation(s))
Network
declared (12 observation(s))
Shell
declared (2 observation(s))
Dependencies
not all pinned
Secrets in source
none-found

Findings (25)

HIGHFilesystem / path · fs.credential_store · CWE-22, CWE-59
container_manager_mcp/doctor.py:524
kubeconfig = os.environ.get("KUBECONFIG") or os.path.expanduser("~/.kube/config")
Why it matters. touches a credential store
HIGHFilesystem / path · fs.credential_store · CWE-22, CWE-59
container_manager_mcp/doctor.py:535
"Place a kubeconfig at ~/.kube/config or set KUBECONFIG; for multiple clusters set "
Why it matters. touches a credential store
HIGHFilesystem / path · fs.credential_store · CWE-22, CWE-59
container_manager_mcp/k8s/kubeconfig_import.py:70
return os.path.expanduser("~/.kube/config")
Why it matters. touches a credential store
HIGHFilesystem / path · fs.credential_store · CWE-22, CWE-59
container_manager_mcp/k8s/kubeconfig_import.py:727
"~/.kube/config), so it can be reused later. Supports importing an "
Why it matters. touches a credential store
HIGHFilesystem / path · fs.credential_store · CWE-22, CWE-59
container_manager_mcp/k8s/kubeconfig_import.py:740
help="Target kubeconfig file to write (default: $KUBECONFIG first entry, else ~/.kube/config).",
Why it matters. touches a credential store
HIGHNetwork egress · net.tls_off · CWE-200, CWE-319
container_manager_mcp/k8s/kubeconfig_import.py:768
"--insecure-skip-tls-verify",
Why it matters. certificate verification is disabled
Fix. leave verification on
HIGHPrompt injection · prompt.override · CWE-94, CWE-1427
docs/overview.md:40
| **Prompt Injection Defense** | ✅ Built-in | 25+ pattern scanner + jailbreak taxonomy (CONCEPT:AU-OS.config.secrets-authentication) |
Why it matters. asks the agent to drop prior instructions or safety
Fix. remove the instruction
MEDIUMCode injection · code.dynamic_import · CWE-78, CWE-94, CWE-95
container_manager_mcp/__init__.py:37
module = importlib.import_module(module_name)
MEDIUMCode injection · code.dynamic_import · CWE-78, CWE-94, CWE-95
container_manager_mcp/__init__.py:47
return importlib.import_module(module_name)
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
container_manager_mcp/mcp/mcp_k8s_cluster.py:358
description="save_context (explicit): API server URL, e.g. https://10.0.0.10:6443",
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
container_manager_mcp/skills/kubernetes-mesh-provisioner/SKILL.md:51
`https://10.0.0.13:6443`).
LOWInventory / provenance · inv.hidden_file · CWE-1104
.bumpversion.cfg
.bumpversion.cfg
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInventory / provenance · inv.hidden_file · CWE-1104
.codespellignore
.codespellignore
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInventory / provenance · inv.hidden_file · CWE-1104
.pre-commit-config.yaml
.pre-commit-config.yaml
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInventory / provenance · inv.hidden_file · CWE-1104
.vulture_ignore
.vulture_ignore
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWCode injection · code.dynamic_import · CWE-78, CWE-94, CWE-95
tests/test_init_dynamics.py:26
mod = importlib.import_module(pkg_name)
LOWCode injection · code.dynamic_import · CWE-78, CWE-94, CWE-95
tests/test_init_dynamics.py:32
mod = importlib.import_module(pkg_name)
LOWCode injection · code.dynamic_import · CWE-78, CWE-94, CWE-95
tests/test_init_dynamics.py:44
mod = importlib.import_module(pkg_name)
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
README.md:131
container-manager-save-context --name prod --server https://10.0.0.10:6443 \
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
README.md:135
container-manager-save-context --name rke2 --server https://10.0.0.10:6443 \
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
README.md:139
container-manager-save-context --name oidc-dev --server https://10.0.0.10:6443 \
LOWNetwork egress · net.tls_off · CWE-200, CWE-319
tests/test_dispatch_k8s_cluster_characterization.py:97
insecure_skip_tls_verify=False,
Why it matters. certificate verification is disabled
Fix. leave verification on
LOWNetwork egress · net.tls_off · CWE-200, CWE-319
tests/test_dispatch_k8s_cluster_characterization.py:125
insecure_skip_tls_verify=False,
Why it matters. certificate verification is disabled
Fix. leave verification on
LOWNetwork egress · net.tls_off · CWE-200, CWE-319
tests/test_kubeconfig_import.py:473
"--insecure-skip-tls-verify",
Why it matters. certificate verification is disabled
Fix. leave verification on
LOWNetwork egress · net.tls_off · CWE-200, CWE-319
tests/test_kubeconfig_import.py:494
"--insecure-skip-tls-verify",
Why it matters. certificate verification is disabled
Fix. leave verification on

Gates applied: instruction_override, no_behavioural_pass.

Audited 2026-10-11 · audit v0.4.1 · source sha bfaa54059b52full audit observations/trust-audit/mcp-server/knuckles-team__container-manager-mcp.json · Report an issue / request a re-scan
05

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-11bfaa54059b52BLOCKD67first audit
06

Questions

What is the container-manager-mcp MCP server?

Manage containers on docker, podman, compose, and docker swarm through an MCP Server for Agentic AI

What tools does container-manager-mcp expose?

2 in total: 2 read-only, 0 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.

Is container-manager-mcp safe to connect to an agent?

No — not without reading the findings first. The audit graded it D (67/100) and found 7 critical or high issues in the source. Each one is listed on this page with the file and line it is on.

What credentials does container-manager-mcp need?

It reads LLM_API_KEY from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.

How does container-manager-mcp run?

It speaks sse, stdio and streamable-http, so it runs as a local process your client starts. It is published on PyPI as container-manager-mcp.

How current is this page?

The grade is for one exact copy of the source (bfaa54059b52), read on 2026-10-11. The repository is watched and re-audited when it changes.

Advertisement