Help us improve
Share bugs, ideas, or general feedback.
Share bugs, ideas, or general feedback.
Share bugs, ideas, or general feedback.
By jmagar
Manage Docker containers, images, volumes, networks, and stacks via the Arcane API.
npx claudepluginhub jmagar/claude-homelab --plugin arcane-mcpThis plugin requires configuration values that are prompted when the plugin is enabled. Sensitive values are stored in your system keychain.
arcane_api_keyAPI key for authenticating with the Arcane service. Found in Arcane Settings > API.
${user_config.arcane_api_key}arcane_api_urlShare bugs, ideas, or general feedback.
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge.
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge.
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
Base URL of your Arcane Docker management instance, e.g. https://arcane.example.com. No trailing slash.
${user_config.arcane_api_url}arcane_mcp_urlFull MCP endpoint URL including /mcp path (e.g. https://arcane.example.com/mcp or http://localhost:44332/mcp).
${user_config.arcane_mcp_url}arcane_mcp_tokenBearer token for authenticating with the MCP server. Must match ARCANE_MCP_TOKEN in .env. Generate with: openssl rand -hex 32
${user_config.arcane_mcp_token}Beta MCP skills from Docker
Docker and containerization expert for Dockerfile optimization, multi-stage builds, docker-compose orchestration, container debugging, image size reduction, security scanning, networking, and volume management. Use when working with Docker containers, writing Dockerfiles, or troubleshooting containerization issues.
Generate Docker Compose configurations for multi-container applications with best practices
Memory compression system for Claude Code - persist context across sessions
Standalone image generation plugin using Nano Banana MCP server. Generates and edits images, icons, diagrams, patterns, and visual assets via Gemini image models. No Gemini CLI dependency required.
Ultra-compressed communication mode. Cuts ~75% of tokens while keeping full technical accuracy by speaking like a caveman.
Query, monitor, and manage Unraid servers via GraphQL API through MCP tools. Supports system info, Docker, VMs, array/parity, notifications, plugins, rclone, and live telemetry.
Core homelab agents, commands, and setup/health skills for self-hosted service management. Includes interactive credential setup wizard and unified service health dashboard.
UniFi network management via MCP tools. Monitor devices, clients, network health, firewall rules, and perform management operations.
Gotify push notifications and management via MCP tools with HTTP fallback. Sends alerts for long-running tasks, plan completions, and blocked states.
Agents, commands, skills, and scripts for scaffolding, reviewing, aligning, and deploying homelab MCP server plugins. Includes canonical Python, TypeScript, and Rust server templates.
TypeScript MCP server for the Arcane Docker management API. Exposes a single arcane tool that routes all Docker environment, project, container, image, network, volume, system, registry, image-update, vulnerability, and GitOps operations through the Arcane service.
Arcane MCP wraps the Arcane REST API behind a Model Context Protocol interface. An AI agent calls the arcane tool with an action and subaction. The server authenticates the request, enforces a confirmation gate on destructive operations, routes to the appropriate backend service, and returns JSON.
The server ships two MCP tools:
| Tool | Purpose |
|---|---|
arcane | Unified action/subaction router for all Arcane API operations |
arcane_help | Returns the full action/subaction reference as formatted text |
arcaneCall this tool with action, subaction, and optional envId, id, and params.
{
"action": "container",
"subaction": "list",
"envId": "env-abc123"
}
| Parameter | Type | Description |
|---|---|---|
action | string (enum) | Resource family: environment, project, container, image, network, volume, system, image-update, vulnerability, registry, gitops |
subaction | string (enum) | Operation to perform (see per-family tables below) |
envId | string (optional) | Target environment ID. Required by all families except registry. For environment subactions, envId and id are interchangeable for single-resource ops. |
id | string (optional) | Resource ID for single-resource operations (get, delete, etc.) |
params | object (optional) | Operation-specific payload. Pass { "confirm": true } to authorize a destructive operation without elicitation. |
Any operation in the DESTRUCTIVE set (listed per family below) is blocked unless one of three conditions is met:
ARCANE_MCP_ALLOW_DESTRUCTIVE=true — all destructive ops auto-confirm, no re-call needed.ARCANE_MCP_ALLOW_YOLO=true — skips the interactive elicitation prompt; the tool must still be re-called with params: { "confirm": true } to proceed.params: { "confirm": true }.environmentTop-level Docker host connections. envId and id are interchangeable for single-resource operations.
| Subaction | Description | Destructive |
|---|---|---|
list | List all environments | |
get | Get an environment by ID | |
create | Create a new environment; pass params with apiUrl, apiKey, and optional name, enabled, isEdge | |
update | Update environment settings; pass params with fields to change | |
delete | Permanently delete an environment | yes |
test | Test the environment's API connection |
Example:
{"action": "environment", "subaction": "list"}
{"action": "environment", "subaction": "get", "id": "env-abc123"}
{"action": "environment", "subaction": "create", "params": {"apiUrl": "https://host.example.com", "apiKey": "..."}}
{"action": "environment", "subaction": "delete", "id": "env-abc123", "params": {"confirm": true}}
projectDocker Compose stacks running inside an environment. Requires envId.
| Subaction | Description | Destructive |
|---|---|---|
list | List all projects in the environment | |
get | Get a project by ID | |
create | Create a project; pass params with name, composeContent, and optional envContent | |
update | Update a project; pass params with composeContent, envContent, or name | |
up | Start a project (docker compose up) | |
down | Stop a project (docker compose down) | yes |
restart | Restart all containers in the project | yes |
pull | Pull latest images without restarting | |
destroy | Stop and remove containers, networks, volumes created by the compose file | yes |
redeploy | Pull images and recreate the project | yes |
build | Build images for the project; pass optional params with services, provider, push, load |
Example: