claw machine
About
claw machine gives any agent access to the users local scoped docker socket.
Details
- Author
- mentholmike
- Categories
- Other, Infrastructure
Jump to
Setup
Install claw machine in your MCP client (Claude Desktop, Cursor, Windsurf, and others).
Repository: https://github.com/mentholmike/clawmachine
Follow the installation instructions in the repository README, then restart your MCP client.
Give any AI a homelab.MCP server forWAGMIOS— exposes Docker management as Model Context Protocol tools with scoped API keys.
Works with Claude Code, Cursor, GitHub Copilot, VS Code, Gemini, and any MCP-compatible client.
AI agents that manage Docker need access to the Docker socket — which means full root on the host. One wrongdocker rmand production data is gone.
ClawMachine solves this by sitting between the AI and Docker, routing all requests throughWAGMIOS's scoped API:
- Scope-gated tools— If the API key doesn't havecontainers:delete, thedelete_containertool doesn't exist. The AI literally can't call it.
- Audit trail— Every API call is tracked per-key in WAGMIOS.
- Multi-machine— One MCP server, multiple WAGMIOS instances, each with its own key and scopes.
The AI never touches the Docker socket. The AI never gets sudo. The enforcement is in the key, not the prompt.
┌──────────────┐ MCP (stdio/SSE) ┌──────────────┐ REST (scoped key) ┌──────────────┐ Docker API ┌────────┐ │ AI Client │ ───────────────────────→ │ ClawMachine │ ──────────────────────→ │ WAGMIOS │ ────────────────→ │ Docker │ │ (Claude,etc) │ │ MCP Server │ │ REST API │ │ Daemon │ └──────────────┘ └──────────────┘ └──────────────┘ └────────┘
curl -O https://raw.githubusercontent.com/mentholmike/wagmios/main/docker-compose.yaml docker compose up -d
WAGMIOS runs athttp://localhost:5179(API) andhttp://localhost:5174(UI).
In WAGMIOS UI → Settings → Agent Permissions:
- Name:my-agent
- Enable:containers:read,containers:write,images:read,marketplace:read,system:read
- Leavecontainers:deleteoffunless you want the AI to be able to remove containers
- Copy the key:wag_live_abc123...
go install github.com/mentholmike/clawmachine/cmd/clawmachine@latest
docker run -i itzmizzle/clawmachine -api-url http://host.docker.internal:5179 -api-key wag_live_abc123
Claude Code(~/.claude/claude_desktop_config.json):
{ "mcpServers": { "clawmachine": { "command": "clawmachine", "args": ["-api-url", "http://localhost:5179", "-api-key", "wag_live_abc123"] } } }
{ "mcpServers": { "clawmachine": { "command": "clawmachine", "args": ["-api-url", "http://localhost:5179", "-api-key", "wag_live_abc123"] } } }
Docker MCP Toolkit(Docker Desktop 4.62+):
{ "servers": { "clawmachine": { "command": "docker", "args": ["run", "-i", "itzmizzle/clawmachine", "-api-url", "http://host.docker.internal:5179", "-api-key", "wag_live_abc123"], "type": "stdio" } } }
You: "What containers am I running?" → list_containers "3 containers: nginx-proxy (running), postgres-db (running), jellyfin (stopped)" You: "Delete postgres" → "I don't have a delete_container tool — your API key is missing the containers:delete scope." You: "Install Ollama" → browse_marketplace → install_app → start_app "Ollama is installed and running on port 11434."
Tools are dynamically registered based on API key scopes. If the key doesn't have the required scope, the tool doesn't exist.
Manage multiple machines from one MCP server. Create a config file:
{ "instances": { "nas": { "url": "http://192.168.1.10:5179", "key": "wag_live_aaa", "label": "Homelab NAS" }, "vps": { "url": "https://vps.example.com:5179", "key": "wag_live_bbb", "label": "VPS" } } }
clawmachine -config instances.json -transport sse -sse-addr :8080
- Every tool gets ahostparameter (e.g.host="nas")
- Alist_hoststool shows all configured instances with labels and scopes
- Each host's key has its own scope restrictions — the NAS key can havecontainers:deletewhile the VPS key doesn't
You: "Restart Nginx on the NAS and check images on the VPS" → restart_container(host="nas", id="nginx-proxy") → list_images(host="vps")
Flags can be set via environment variables:
- WAGMIOS_API_URL— WAGMIOS backend URL
- WAGMIOS_API_KEY— WAGMIOS API key
The enforcement isin the key, not the prompt. Even if an AI decides to calldelete_containerwithout asking, the call fails at the WAGMIOS API level if the key doesn't have the scope.
cmd/clawmachine/main.go Entry point, single/multi routing internal/config/ config.go Single-instance config multi.go Multi-instance config loader internal/wagmios/ client.go WAGMIOS REST API client internal/mcp/ server.go Single-instance MCP server (18 tools) multi.go Multi-instance MCP server (19 tools)
Stack:Go 1.25,mcp-gov0.48.0, MCP protocol version 2024-11-05
# Build docker build -t itzmizzle/clawmachine . # Run (stdio) docker run -i itzmizzle/clawmachine -api-url http://host.docker.internal:5179 -api-key wag_live_xxx # Run (SSE) docker run -p 8080:8080 itzmizzle/clawmachine \ -api-url http://host.docker.internal:5179 -api-key wag_live_xxx \ -transport sse -sse-addr :8080 -sse-base-url http://localhost:8080
Multi-arch images (amd64 + arm64) are built and pushed toitzmizzle/clawmachineon Docker Hub via GitHub Actions on every push to main and on version tags.
git clone https://github.com/mentholmike/clawmachine.git cd clawmachine go build ./cmd/clawmachine/ go vet ./...
- WAGMIOS— Self-hosted Docker management platform
- mcp-go— Go MCP SDK
- Docker MCP Catalog— Curated MCP server catalog
Read-only MCP server inside a self-hosted homelab dashboard — explore hosts, Docker containers, GPU/VRAM, systemd services, AI models, alerts and disk.
MCP servers for managing homelab infrastructure through Claude Desktop. Monitor Docker/Podman containers, Ollama AI models, Pi-hole DNS, Unifi networks, and Ansible inventory.
A daemon to orchestrate MCP servers as Docker containers and configure AWS ALB path-based routing.
Manage Docker containers through the Portainer API.
The Fabric MCP server exposes the following MCP tools that allow AI assistants to interact with your Equinix Fabric resources. Each tool corresponds to a specific Fabric API endpoint.
Secure Zero-Trust SSH Gateway for AI Agents. A Go-based Model Context Protocol (MCP) server featuring runtime Regex Command Firewalls and multi-host isolation.
Secure every MCP server with one governed gateway. Give each AI agent its own scoped MCP access, contain credentials at the gateway, and audit every MCP tool call without wiring agents directly to each server.
Civilian situational awareness for AI deployments — real-time risk dashboards, multi-source threat correlation, anomaly detection, and automated alerting for critical infrastructure and enterprise AI systems.
MCP server to Automate Exposure Management
A comprehensive Model Context Protocol (MCP) server for Cisco Nexus Dashboard, enabling AI agents like Claude to interact with Nexus Dashboard APIs for intelligent network automation and management.
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.



