Nemeton MCP
oficialPonte MCP de código aberto para o Nemeton: crie, inicie, faça snapshot e controle máquinas virtuais nativas do macOS a partir do Claude Desktop, Claude Code ou Cursor, incluindo automação de UI dentro do guest. Executa localmente em Apple silicon.
O que você pode fazer com Nemeton MCP?
- Criar e configurar VMs — Peça ao seu assistente para criar uma VM com uma distro, contagem de CPUs e RAM escolhidas, e depois atualizá-la ou cloná-la.
- Controlar o estado de energia da VM — Inicie, pare, pause, retome, suspenda ou force a parada de VMs, e verifique o status de suspensão.
- Executar comandos via SSH — Use
ssh_executepara executar comandos dentro de uma VM evm_ippara encontrar o endereço dela. - Transferir arquivos — Faça upload, download e liste arquivos dentro de uma VM com
file_upload,file_downloadefile_list. - Gerenciar snapshots — Crie, liste, restaure e exclua snapshots CoW de uma VM.
- Ler console e capturas de tela — Envie entrada para o console, leia a saída, execute comandos no console e capture telas.
Documentação
Servidor MCP Nemeton
Controle máquinas virtuais nativas do macOS a partir do Claude Desktop, Claude Code, Cursor ou qualquer cliente MCP.
Este é a ponte oficial do Model Context Protocol para o Nemeton — um app nativo de macOS que cria e gerencia VMs Linux e macOS usando o Virtualization.framework da Apple (sem Parallels, sem VMware, sem assinaturas).
Você precisa do app Nemeton instalado e em execução. Este servidor MCP é uma ponte fina stdio→HTTP — a lógica real das VMs fica no app. Obtenha o Nemeton em store.juergenkoller.software/apps/nemeton.
O que você pode fazer
"Claude, crie uma VM Ubuntu 24.04 com 4 CPUs e 8 GB de RAM, instale o Docker e me avise quando estiver pronta."
O servidor MCP expõe mais de 50 ferramentas nestas categorias:
| Categoria | Ferramentas |
|---|---|
| Ciclo de vida da VM | list_vms, get_vm, create_vm, update_vm, clone_vm, delete_vm, reorder_vms, stop_all |
| Controle da VM | start_vm, stop_vm, force_stop_vm, pause_vm, resume_vm, suspend_vm, get_suspend_status |
| Snapshots (CoW em APFS) | list_snapshots, create_snapshot, restore_snapshot, delete_snapshot |
| Console | send_console, read_console, console_execute, take_screenshot |
| Rede e arquivos | vm_ip, ssh_execute, file_upload, file_download, file_list |
| Controle de GUI | gui_launch, gui_windows, vscode_command, select_vm |
| Ponte de área de transferência | clipboard_read, clipboard_write |
| Informações do host | get_host_info, get_metrics |
| Armazenamento | resize_disk, export_vm, import_vm |
| Distros | list_distros (Ubuntu, Debian, Fedora, Arch — download automático de ISOs) |
| Exibição | fullscreen_enter, fullscreen_exit, fullscreen_toggle |
| Webhooks | list_webhooks, register_webhook, delete_webhook |
| Runtime | vm_runtime, vm_errors, list_downloads |
Cada ferramenta retorna JSON estruturado com o estado da VM, metadados de snapshot, saída do console ou resultado da operação.
Instalação
Pré-requisitos
- macOS 14 (Sonoma) ou superior — necessário para os recursos do
Virtualization.framework. - App Nemeton instalado e em execução — obtenha aqui.
- Swift 5.9+ (Xcode 15+) se você quiser compilar a partir do código-fonte. Binários pré-compilados também estão disponíveis.
Compilar a partir do código-fonte
git clone https://github.com/juergenkoller-software/nemeton-mcp.git
cd nemeton-mcp
swift build -c release
# Binary: .build/release/NemetonMCP
Binário pré-compilado
Baixe o binário NemetonMCP mais recente na página de Releases.
Configuração
Claude Desktop
Edite ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"nemeton": {
"command": "/path/to/NemetonMCP",
"env": {
"NEMETON_PORT": "22100",
"NEMETON_TOKEN": "your-token-here"
}
}
}
}
Obtenha o NEMETON_TOKEN em Nemeton → Configurações → API e Integrações.
Claude Code
Adicione a ~/.claude/mcp.json (ou via claude mcp add):
claude mcp add nemeton /path/to/NemetonMCP \
--env NEMETON_PORT=22100 \
--env NEMETON_TOKEN=your-token-here
Cursor / outros clientes MCP
Mesmo padrão: configure o NemetonMCP como um servidor MCP stdio com as duas variáveis de ambiente acima.
Como funciona
┌────────────────┐ JSON-RPC stdio ┌────────────────┐ HTTP+Bearer ┌────────────────┐
│ Claude/Cursor │ ───────────────► │ NemetonMCP │ ─────────────► │ Nemeton.app │
│ (MCP client) │ ◄─────────────── │ (this repo) │ ◄───────────── │ (port 22100) │
└────────────────┘ └────────────────┘ └────────────────┘
A ponte lê requisições JSON-RPC 2.0 de stdin, encaminha-as para o servidor HTTP local do Nemeton em 127.0.0.1:22100/mcp e grava as respostas de volta em stdout. Toda a autenticação, lógica de VM e despacho de ferramentas acontece dentro do app Nemeton.
Essa separação nos permite manter o formato de comunicação MCP como código aberto (para que você possa auditá-lo, fazer um fork ou executá-lo através de qualquer camada de sandbox que preferir), enquanto os detalhes internos das VMs permanecem no app.
Variáveis de ambiente
| Variável | Padrão | Descrição |
|---|---|---|
NEMETON_PORT | 22100 | Porta do servidor HTTP local do Nemeton |
NEMETON_TOKEN | (nenhum) | Token Bearer das Configurações do Nemeton (obrigatório para operações de escrita) |
Erros e logs de rastreamento são gravados em stderr para não poluir o canal stdout do JSON-RPC.
Sobre o Nemeton
O Nemeton é um app nativo de macOS para criar e gerenciar máquinas virtuais usando o Virtualization.framework da Apple. Destaques:
- Sem assinatura — compra única, €389
- VMs Linux e macOS com download automático de ISO/IPSW
- Snapshots CoW em APFS — salve estados de VM sem desperdiçar disco
- API REST + eventos WebSocket (42 endpoints) para automação
- Servidor MCP (este repositório) para agentes Claude/IA
- Desempenho nativo — usa o framework da Apple diretamente, sem overhead do QEMU
- 100% local — sem nuvem, sem telemetria
→ Obtenha o Nemeton em store.juergenkoller.software
Licença
MIT — consulte LICENSE. A ponte é de código aberto; o app Nemeton em si é comercial.
Problemas e suporte
- Bugs da ponte: abra uma issue
- Suporte do app: support@juergenkoller.software
Desenvolvido por Juergen Koller Software GmbH.