Arcane MCP
Servidor MCP para interagir com a API Arcane
Documentação
arcane-mcp
Um servidor MCP que expõe recursos de gerenciamento Docker do Arcane para agentes de IA por meio do Model Context Protocol. Construído com FastMCP.
Cobre a API principal de gerenciamento Docker: contêineres, imagens, volumes, redes, projetos Compose, registries, varredura de vulnerabilidades, mapeamentos de porta, webhooks, gerenciamento do sistema, atualizador, atividades/eventos e gerenciamento de ambientes.
125 ferramentas em 14 módulos.
Instalação
Não está no PyPI. Instale diretamente do GitHub:
# pip
pip install git+https://github.com/MikeCase/arcane-mcp.git
# uv
uv tool install git+https://github.com/MikeCase/arcane-mcp.git
# or clone and install locally
git clone https://github.com/MikeCase/arcane-mcp.git
cd arcane-mcp
uv sync
Configuração
Defina estas variáveis de ambiente (ou coloque-as em um arquivo .env no diretório de trabalho):
ARCANE_API_KEY=arc_your_api_key_here
ARCANE_BASE_URL=http://localhost:3552
OpenCode
Adicione ao seu opencode.json:
{
"mcp": {
"arcane-docker": {
"type": "local",
"command": ["arcane-mcp"],
"env": {
"ARCANE_API_KEY": "arc_your_key_here",
"ARCANE_BASE_URL": "http://localhost:3552"
}
}
}
}
Ou defina as variáveis de ambiente globalmente e omita-as da configuração.
Ferramentas (125 no total)
Contêineres (18)
list_containers, inspect_container, create_container, start_container, stop_container, restart_container, kill_container, pause_container, unpause_container, remove_container, redeploy_container, commit_container, update_container, set_container_auto_update, exec_in_container, get_container_logs, get_container_stats, get_container_counts
Imagens (19)
list_images, inspect_image, pull_image, remove_image, tag_image, prune_images, get_image_counts, build_image, search_images, upload_image, get_image_history, get_image_export, get_image_attestations, scan_image_vulnerabilities, get_image_vulnerabilities, get_vulnerability_summary, check_image_update, check_all_image_updates, get_image_update_summary
Volumes (18)
list_volumes, create_volume, inspect_volume, remove_volume, prune_volumes, get_volume_counts, get_volume_sizes, get_volume_usage, list_volume_backups, create_volume_backup, restore_volume_backup, delete_volume_backup, download_volume_backup, browse_volume, read_volume_file, create_volume_directory, upload_to_volume, delete_volume_file
Projetos / Compose (17)
list_projects, get_project, deploy_project, redeploy_project, remove_project, update_project, get_project_counts, project_down, restart_project, build_project, archive_project, unarchive_project, pull_project_images, get_project_compose, get_project_file, update_project_services, get_project_runtime
Redes (9)
list_networks, create_network, inspect_network, remove_network, connect_container_to_network, disconnect_container_from_network, prune_networks, get_network_counts, get_network_topology
Ambientes (5)
list_environments, get_environment, create_environment, update_environment, remove_environment
Sistema (9)
get_docker_info, get_docker_version, prune_system, get_system_health, check_system_upgrade, trigger_upgrade, start_all_containers, start_stopped_containers, stop_all_containers
Atividades e Eventos (7)
list_activities, get_activity, cancel_activity, clear_activity_history, list_events, get_environment_events, delete_event
Registries de Contêineres (6)
list_registries, create_registry, get_registry, update_registry, delete_registry, test_registry
Vulnerabilidades (6)
get_vulnerability_summary_all, list_all_vulnerabilities, ignore_vulnerability, list_ignored_vulnerabilities, unignore_vulnerability, get_scanner_status
Webhooks (5)
trigger_webhook, list_webhooks, create_webhook, update_webhook, delete_webhook
Atualizador (3)
run_updater, get_updater_status, get_updater_history
Portas (1)
list_ports
Operações / Segurança (2)
confirm_operation, read_audit_log
Uso
Todas as ferramentas de recursos aceitam env_id: str = "0" para direcionar um ambiente Arcane específico (Docker local é "0", agentes remotos usam UUIDs). Operações de agentes remotos podem passar agent_token: str | None para autenticação por meio do cabeçalho X-Arcane-Agent-Token.
Segurança
Operações destrutivas usam um sistema de segurança em três camadas:
1. Tokens de confirmação (handshake em duas etapas)
Toda ferramenta que remove, limpa, encerra, restaura ou sobrescreve retorna um confirmation_token de curta duração em vez de executar. O agente deve chamar confirm_operation(token) como uma chamada de ferramenta separada para prosseguir. Os tokens expiram após 120 segundos.
remove_container("my-app")
→ {"warning": "...", "confirmation_token": "a1b2c3d4e5f6", "target": "my-app"}
confirm_operation(token="a1b2c3d4e5f6")
→ {"success": true, ...}
Isso impede que um agente atravesse uma barreira de segurança em uma única chamada — ele deve parar, processar o aviso e fazer uma segunda chamada.
2. Modo de simulação (ferramentas de limpeza)
Operações de limpeza (prune_images, prune_volumes, prune_networks, prune_system, clear_activity_history) usam dry_run=True por padrão, mostrando o que seria afetado sem fazer alterações:
prune_images()
→ {"dry_run": true, "warning": "Dry-run. Set dry_run=False to proceed.", "target": "all"}
prune_images(dry_run=False)
→ {"warning": "...", "confirmation_token": "..."}
3. Log de auditoria
Toda operação destrutiva confirmada é registrada em um log de auditoria estruturado em linhas JSON. Leia a qualquer momento:
read_audit_log(lines=10)
→ [{"timestamp": "2026-06-29T...", "action": "remove_container", "target": "my-app", "env_id": "0"}]
Defina a variável de ambiente ARCANE_MCP_AUDIT_LOG para alterar o caminho do arquivo de log (padrão: ~/.arcane-mcp-audit.log).
Desenvolvimento
git clone https://github.com/MikeCase/arcane-mcp.git
cd arcane-mcp
uv sync
uv run fastmcp run src/arcane_mcp/server.py
Licença
MIT