Skip to content

manage-only Docker tooling + DOCKER_MCP_ALLOW_CREATE gate (#113)#1

Merged
eejd merged 1 commit into
feat/http-transportfrom
security/manage-only-tools-113
Jul 3, 2026
Merged

manage-only Docker tooling + DOCKER_MCP_ALLOW_CREATE gate (#113)#1
eejd merged 1 commit into
feat/http-transportfrom
security/manage-only-tools-113

Conversation

@eejd

@eejd eejd commented Jun 9, 2026

Copy link
Copy Markdown
Owner

Supports agent-services-hive #113 (scope the Docker socket).

Changes

  1. Commits previously-uncommitted lifecycle workstart/stop/restart/inspect tool entries + handlers existed only in the working tree on feat/http-transport (the deployed mcp-docker, scored 4.9/5, was built from uncommitted source). This lands them properly (addresses ADR-006 build-drift).
  2. Manage-only gate (DOCKER_MCP_ALLOW_CREATE, default false):
    • hides create-container + deploy-compose from tools/list
    • refuses them if called (defense in depth)
    • suppresses the deploy-stack prompt
    • =true restores full lifecycle.

Why

create-container/deploy-compose allow run -v /:/host = host root via the Docker socket. Trajectory logs showed zero real use of either. In as-hive this pairs with a scoped wollomatic/socket-proxy (default-deny allowlist) so the underlying create/pull/exec API calls are also blocked — removing the host bind-mount escape while keeping lifecycle management.

Verification

Built + deployed in as-hive. tools/list → only get-logs, list-containers, stop/start/restart-container, inspect-container. create-container call → refused. Lifecycle ops verified end-to-end through the proxy.

🤖 Generated with Claude Code

…gate (#113)

Two related changes (the second built on previously-uncommitted working-tree work
that the deployed agent-services-hive mcp-docker was already running):

1. Commits the lifecycle handlers + tool entries (start/stop/restart/inspect) that
   existed only in the working tree on feat/http-transport — addresses the build-
   from-uncommitted-source drift noted in ADR-006.
2. Adds a manage-only gate: when DOCKER_MCP_ALLOW_CREATE is false (default), hides
   create-container + deploy-compose from tools/list, refuses them if called, and
   suppresses the deploy-stack prompt. Pairs with a scoped docker-socket-proxy in
   the as-hive deployment (which also denies the underlying create/pull API calls)
   to remove the host bind-mount escape path while keeping lifecycle management.
   Set the var to true to restore the full lifecycle capability.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@eejd eejd merged commit ca19223 into feat/http-transport Jul 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant