rarcane
Enables managing Docker containers, images, networks, volumes, and Compose projects through the Arcane platform, with support for create, update, start, stop, restart, delete, prune, deploy, sync, scan, and backup operations.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@rarcanewhat containers are currently running?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
arcane-rmcp
MCP server and CLI for Arcane: manage Docker containers, images, networks, volumes, and Compose projects over stdio or streamable HTTP, with auth.
It exposes one MCP tool, arcane, plus the rarcane CLI. Agents can inspect
Arcane environments, manage compose projects, containers, images, networks,
volumes, registries, GitOps syncs, image updates, vulnerability findings, and
system operations through stdio MCP, Streamable HTTP MCP, or direct shell
commands.
30-second path: set RARCANE_API_URL and RARCANE_API_KEY, then run
npx -y arcane-rmcp status -> start loopback HTTP with
RARCANE_MCP_HOST=127.0.0.1 npx -y arcane-rmcp serve -> call tools/call with
{"action":"status"}.
Status: operational RMCP upstream-client server. Write-capable; destructive
Docker and Arcane operations require explicit confirmation. HTTP MCP supports
loopback dev mode, static bearer tokens, and Google OAuth through lab-auth.
Not for: replacing Arcane, bypassing Docker or Arcane authorization, running arbitrary shell commands, storing registry or Git credentials, multi-tenant isolation, or passing Arcane API keys through MCP tool arguments.
Contents
Related MCP server: docker-helper-ai-mcp
Naming
Surface | This repo |
Repository |
|
Rust crate |
|
Binary / CLI |
|
npm package |
|
npm binary alias |
|
MCP server name |
|
MCP tool |
|
Config home |
|
Env prefixes |
|
The repo and npm package use the upstream service name, while the shipped
binary keeps the historical Rust CLI name rarcane. The MCP server may be
registered as rarcane, but the tool clients call is arcane.
Capabilities And Boundaries
Read Arcane status plus Docker environment, project, container, image, network, volume, registry, GitOps, update, vulnerability, and system state.
Create, update, start, stop, restart, delete, prune, deploy, sync, scan, and back up supported Arcane resources through action/subaction dispatch.
Enforce action scopes and destructive-operation confirmation before forwarding write operations to Arcane.
Expose the
quick_startprompt andrarcane://schema/mcp-toolresource for client-side discovery.Provide setup, doctor, and watch commands for local plugin/runtime checks.
This repo owns | Arcane owns | Explicitly out of scope |
MCP/CLI projection, request validation, auth policy, response shaping, setup checks, schema/resource exposure, and destructive gates. | Docker state, Arcane projects and environments, upstream authorization, registry credentials, GitOps secrets, vulnerability scanner output, and API semantics. | Direct Docker socket access, shell execution, credential storage, generic REST proxy behavior, multi-tenant sandboxing, scheduler behavior, and replacing the Arcane UI/API. |
Install
Path | Command | Best for | Notes |
npm / npx |
| Local MCP clients and quick trials. | Downloads the matching |
Release installer |
| Host installs without Node. | Installs |
Docker / Compose |
| Shared HTTP MCP deployments. | Reads |
Build from source |
| Development and audits. | Produces |
Plugin |
| Claude Code local plugin setup from this checkout. | Uses the packaged skill and monitor metadata. The plugin ships no lifecycle hooks — run |
npm / npx
Run the stdio MCP server or CLI without a manual binary install:
npx -y arcane-rmcp --help
npx -y arcane-rmcp mcp
npx -y arcane-rmcp statusThe npm package downloads rarcane during postinstall. Override download
behavior only when testing packaging:
Variable | Purpose |
| Skip postinstall binary download. |
| Select the GitHub Release tag. |
| Select the GitHub repo used for release downloads. |
| Select a custom release base URL. |
Build From Source
git clone https://github.com/dinglebear-ai/rarcane
cd rarcane
cargo build --release
./target/release/rarcane --helpMinimum supported Rust version: 1.90.
Quickstart
1. Configure Arcane
Point the bridge at an existing Arcane API server:
export RARCANE_API_URL=https://arcane.example.com
export RARCANE_API_KEY=...The API key is read from env or config only. Do not pass it in MCP tool
arguments or CLI --params-json.
2. Run A Safe CLI Call
npx -y arcane-rmcp status3. Start Loopback HTTP MCP
RARCANE_MCP_HOST=127.0.0.1 npx -y arcane-rmcp serveIn another shell:
curl -sf http://127.0.0.1:40110/health4. Make A First MCP Call
curl -s -X POST http://127.0.0.1:40110/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"arcane","arguments":{"action":"status"}}}'Client Configuration
Claude Code Stdio
{
"mcpServers": {
"rarcane": {
"command": "npx",
"args": ["-y", "arcane-rmcp", "mcp"],
"env": {
"RARCANE_API_URL": "https://arcane.example.com",
"RARCANE_API_KEY": "..."
}
}
}
}Claude Code HTTP
{
"mcpServers": {
"rarcane": {
"type": "http",
"url": "http://127.0.0.1:40110/mcp",
"headers": {
"Authorization": "Bearer ${RARCANE_MCP_TOKEN}"
}
}
}
}Codex / Labby Gateway
Register Arcane through Labby as an HTTP upstream when sharing one long-running server, or run it directly as stdio for local-only use.
[mcp_servers.rarcane]
command = "npx"
args = ["-y", "arcane-rmcp", "mcp"]Generic MCP JSON
{
"command": "rarcane",
"args": ["mcp"],
"env": {
"RARCANE_API_URL": "https://arcane.example.com"
}
}Do not put RARCANE_API_KEY, registry credentials, Git credentials, OAuth
secrets, SSH keys, passwords, or upstream bearer tokens in MCP tool arguments.
Use env, config files, or the MCP client's secret storage.
MCP callers never provide credentials, tokens, keys, or secrets as action
arguments.
Runtime Surfaces
Surface | Status | Entry point | Purpose |
MCP stdio | Supported |
| Local child-process MCP clients. |
MCP HTTP | Supported |
| Streamable HTTP MCP for local or shared server deployments. |
CLI | Supported |
| Scriptable parity and debugging. |
Prompt | Supported |
| Guides a client through |
Resource | Supported |
| JSON schema for the |
REST API | Not shipped | N/A | Arcane already owns the REST API. |
Web UI | Not shipped | N/A | Arcane already owns the web UI. |
MCP Tool Reference
One MCP tool is exposed: arcane. Pass the required action argument and, for
most domains, a required subaction.
Action | Common subactions | Scope |
| action reference or domain-specific help | public |
| local bridge and Arcane config status |
|
| MCP elicitation demonstration |
|
| side-effect-free scaffold planning handoff |
|
|
| read/write |
|
| read/write |
|
| read/write |
|
| read/write |
|
| read/write |
|
| read/write |
|
| read/write |
|
| read |
|
| read/write |
|
| read/write |
|
| read/write |
Action specs in src/actions.rs and the generated schema notes in
docs/MCP_SCHEMA.md are the source of truth for required parameters.
Example read-only tool arguments:
{
"action": "container",
"subaction": "list",
"envId": "default"
}Example destructive operation:
{
"action": "container",
"subaction": "stop",
"envId": "default",
"id": "my-container",
"params": {
"confirm": true
}
}CLI Reference
rarcane exposes the same service layer as the MCP tool:
rarcane status
rarcane help --domain container
rarcane call --action container --subaction list --env-id default
rarcane call --action system --subaction docker-info --env-id default
rarcane call --action container --subaction stop --env-id default --id my-container --confirm
rarcane doctor --json
rarcane watch --url http://127.0.0.1:40110
rarcane setup check
rarcane setup repair--params-json accepts action-specific JSON payloads. Do not use it to pass
credentials.
Configuration
Host installs read ~/.rarcane/.env, ~/.rarcane/config.toml, and process env.
Containers read /data/.env, /data/config.toml, and process env.
Variable | Default | Purpose |
| unset | Arcane API base URL. |
| unset | Arcane API key or bearer token. |
|
| HTTP bind host. |
|
| HTTP bind port. |
|
| Advertised MCP server name. |
| unset | Static bearer token for HTTP MCP. |
|
| Disable auth only for loopback development. |
|
| Trust an upstream gateway to enforce auth. |
| unset | Extra accepted Host header values. |
| unset | Extra accepted CORS origins. |
| unset | Public base URL for OAuth issuer metadata. |
|
|
|
|
| Bypass the per-call destructive confirmation gate. Do not set in shared deployments. |
|
| Config/appdata root override. |
|
| Log filter. |
Authentication
Stdio MCP runs as a local trusted child process and does not use HTTP auth.
HTTP MCP auth policy:
State | Condition | Behavior |
Loopback dev | Bound to | Local unauthenticated development is allowed. |
Mounted bearer | Non-loopback with | Requires |
Mounted OAuth |
| Uses Google OAuth/JWT through |
Trusted gateway |
| Assumes a reverse proxy or gateway already enforced auth. |
OAuth mode uses the RARCANE_MCP_* Google OAuth variables documented in
docs/CONFIG.md.
OAuth mode is single-replica: client/session state and signing keys are local to one host. Do not run multiple OAuth replicas until those stores are externalized or safely shared.
Safety And Trust Model
Arcane API credentials are loaded from config/env only.
MCP callers select actions and payloads, not upstream credentials.
Destructive subactions reject unless
params.confirm=trueor CLI--confirmis present.Unknown actions, unknown subactions, missing environment IDs, missing IDs, and unsafe volume paths are rejected before upstream calls.
Non-loopback HTTP deployments must use bearer auth, OAuth, or a trusted authenticated gateway.
This bridge does not sandbox Arcane itself. Arcane remains responsible for Docker authorization and the effects of Docker operations.
Architecture
ArcaneClient (src/arcane.rs) HTTP transport and redacted errors
|
ArcaneService (src/app.rs) action validation, confirmation, response normalization
|
MCP shim (src/mcp/tools.rs) JSON args -> service -> Value
CLI shim (src/cli.rs) argv -> service -> stdoutDistribution Contract
Cargo.toml,Cargo.lock,packages/arcane-rmcp/package.json,.release-please-manifest.json, andserver.jsonmust agree on the released version.GitHub Releases publish the
rarcanebinary consumed by the npm launcher.The npm package name is
arcane-rmcp; the installed binary alias israrcane.Docker/OCI metadata uses
ghcr.io/dinglebear-ai/rarcane:<version>.plugins/rarcane/.mcp.jsonmust launchnpx -y arcane-rmcp mcpso stdio clients start the MCP transport rather than the HTTP server.The root README is curated. Generated or source-of-truth details live in
src/actions.rs,docs/MCP_SCHEMA.md, and the package/registry manifests.
Development
cargo fmt --check
cargo test
cargo clippy -- -D warnings
cargo build --release
npm --prefix packages/arcane-rmcp run checkVerification
just verify # fmt-check → lint → check → test
just template-check # patterns, plugin layout, schema docs, scaffold contract
npm --prefix packages/arcane-rmcp run check
git diff --checkRuntime smoke:
RARCANE_API_URL=https://arcane.example.com \
RARCANE_API_KEY=... \
rarcane statusHTTP smoke:
RARCANE_MCP_HOST=127.0.0.1 rarcane serve
curl -sf http://127.0.0.1:40110/healthDeployment
Use loopback for local development:
RARCANE_MCP_HOST=127.0.0.1 rarcane serveUse Docker Compose for shared HTTP deployment:
cp .env.example .env
docker compose up -dWhen binding to a non-loopback address, configure RARCANE_MCP_TOKEN,
RARCANE_MCP_AUTH_MODE=oauth, or RARCANE_NOAUTH=true behind an authenticated
gateway.
Troubleshooting
Symptom | Check |
| Set |
Arcane calls return unauthorized | Refresh |
HTTP | Set |
Stdio client hangs or logs JSON errors | Ensure client config runs |
Destructive action is rejected | Add CLI |
Port conflict | Set |
Related Servers
soma - RMCP runtime for provider-backed MCP servers.
unifi-rmcp - UniFi controller REST API bridge.
tailscale-rmcp - Tailscale API bridge for devices, users, and tailnet operations.
unraid - Unraid GraphQL bridge for NAS and server management.
apprise-rmcp - Apprise notification fan-out bridge for many delivery backends.
gotify-rmcp - Gotify push notification bridge for sends, messages, apps, and clients.
yarr - Media-stack bridge for Sonarr, Radarr, Prowlarr, Plex, and related services.
ytdl-rmcp - Media download and metadata workflow server.
synapse-rmcp - Local Synapse workflow server for scout and flux actions.
cortex - Syslog and homelab log aggregation MCP server.
axon - RAG, crawl, scrape, extract, and semantic search project.
labby - Homelab control plane and MCP gateway project.
lumen - Local semantic code search MCP server.
Documentation
docs/API.mdis the curated action-contract overview.docs/CONFIG.mdis the curated configuration and auth reference.docs/QUICKSTART.mdis the curated smoke-test guide.docs/MCP_SCHEMA.mdis the generated/schema-drift contract for actions, resources, prompts, and validation rules.plugins/rarcane/skills/rarcane/SKILL.mdis the agent usage guide.
License
MIT. See LICENSE.
This server cannot be installed
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 Servers
- Alicense-qualityAmaintenanceAI-powered Docker management server that enables natural language control of environments, containers, images, networks, volumes, and more through a unified Arcane API interface.Last updated2MIT
- Alicense-qualityAmaintenanceDocker Helper MCP server that provides tools for automating Docker tasks such as generating Dockerfiles, parsing docker-compose files, and optimizing images.Last updated22MIT
- Flicense-qualityCmaintenanceAn MCP server that gives any LLM client the ability to list, inspect, start, stop, and monitor Docker containers on the host machine.Last updated1
- AlicenseAqualityAmaintenanceMore than just a fully featured MCP server that lets AI agents manage Docker — containers, images, networks, volumes, swarm services, secrets, configs, nodes, plugins, etc., it helps you create workflows to easily manage your Docker environments.Last updated41003MIT
Related MCP Connectors
A MCP server built for developers enabling Git based project management with project and personal…
An MCP server that let you interact with Cycloid.io Internal Development Portal and Platform
An MCP server for Arcjet - the runtime security platform that ships with your AI code.
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/dinglebear-ai/rarcane'
If you have feedback or need assistance with the MCP directory API, please join our Discord server