Nemeton MCP

官方

Nemeton 的开源 MCP 桥接工具:可从 Claude Desktop、Claude Code 或 Cursor 创建、启动、快照和控制原生 macOS 虚拟机,包括客户机内的 UI 自动化。在 Apple silicon 上本地运行。

你可以用 Nemeton MCP 做什么?

  • 创建并配置虚拟机 — 让助手创建具有所选发行版、CPU 数量和内存的虚拟机,随后更新或克隆它。
  • 控制虚拟机电源状态 — 启动、停止、暂停、恢复、挂起或强制停止虚拟机,并检查挂起状态。
  • 通过 SSH 运行命令 — 使用 ssh_execute 在虚拟机内运行命令,使用 vm_ip 查找其地址。
  • 传输文件 — 使用 file_upload、file_download 和 file_list 在虚拟机内上传、下载和列出文件。
  • 管理快照 — 创建、列出、恢复和删除虚拟机的 CoW 快照。
  • 读取控制台和截图 — 发送控制台输入、读取输出、执行控制台命令并捕获截图。

文档

Nemeton MCP 服务器

Swift Platform License MCP juergenkoller-software/nemeton-mcp MCP server

通过 Claude Desktop、Claude Code、Cursor 或任意 MCP 客户端控制原生 macOS 虚拟机。

这是 Nemeton 的官方 Model Context Protocol 桥接器——Nemeton 是一款原生 macOS 应用,使用 Apple 的 Virtualization.framework 创建和管理 Linux 与 macOS 虚拟机(无需 Parallels,无需 VMware,无需订阅)。

你需要安装并运行 Nemeton 应用。 本 MCP 服务器只是一个轻量的 stdio→HTTP 桥接器——实际的虚拟机逻辑位于应用中。请在 store.juergenkoller.software/apps/nemeton 获取 Nemeton。


你可以做什么

“Claude,启动一台配备 4 个 CPU 和 8 GB 内存的 Ubuntu 24.04 虚拟机,安装 Docker,准备好后告诉我。”

该 MCP 服务器在以下类别中提供 50+ 个工具:

类别工具
虚拟机生命周期list_vms, get_vm, create_vm, update_vm, clone_vm, delete_vm, reorder_vms, stop_all
虚拟机控制start_vm, stop_vm, force_stop_vm, pause_vm, resume_vm, suspend_vm, get_suspend_status
快照(APFS 上的 CoW)list_snapshots, create_snapshot, restore_snapshot, delete_snapshot
控制台send_console, read_console, console_execute, take_screenshot
网络与文件vm_ip, ssh_execute, file_upload, file_download, file_list
GUI 控制gui_launch, gui_windows, vscode_command, select_vm
剪贴板桥接clipboard_read, clipboard_write
主机信息get_host_info, get_metrics
存储resize_disk, export_vm, import_vm
发行版list_distros(Ubuntu、Debian、Fedora、Arch——自动下载 ISO)
显示fullscreen_enter, fullscreen_exit, fullscreen_toggle
Webhooklist_webhooks, register_webhook, delete_webhook
运行时vm_runtime, vm_errors, list_downloads

每个工具都会返回结构化 JSON,包含虚拟机状态、快照元数据、控制台输出或操作结果。


安装

前提条件

  1. macOS 14 (Sonoma) 或更高版本——使用 Virtualization.framework 功能所必需。
  2. 已安装并运行 Nemeton 应用——在此获取。
  3. Swift 5.9+(Xcode 15+),如果你想从源码构建。也提供预编译二进制文件。

从源码构建

git clone https://github.com/juergenkoller-software/nemeton-mcp.git
cd nemeton-mcp
swift build -c release
# Binary: .build/release/NemetonMCP

预编译二进制文件

从 Releases 页面 下载最新的 NemetonMCP 二进制文件。


配置

Claude Desktop

编辑 ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "nemeton": {
      "command": "/path/to/NemetonMCP",
      "env": {
        "NEMETON_PORT": "22100",
        "NEMETON_TOKEN": "your-token-here"
      }
    }
  }
}

从 Nemeton → Settings → API & Integrations 获取 NEMETON_TOKEN。

Claude Code

添加到 ~/.claude/mcp.json(或通过 claude mcp add):

claude mcp add nemeton /path/to/NemetonMCP \
  --env NEMETON_PORT=22100 \
  --env NEMETON_TOKEN=your-token-here

Cursor / 其他 MCP 客户端

模式相同:将 NemetonMCP 配置为 stdio MCP 服务器,并使用上述两个环境变量。


工作原理

┌────────────────┐  JSON-RPC stdio   ┌────────────────┐  HTTP+Bearer   ┌────────────────┐
│  Claude/Cursor │ ───────────────►  │  NemetonMCP    │ ─────────────► │  Nemeton.app   │
│  (MCP client)  │ ◄───────────────  │   (this repo)  │ ◄───────────── │  (port 22100)  │
└────────────────┘                   └────────────────┘                └────────────────┘

该桥接器从 stdin 读取 JSON-RPC 2.0 请求,将其转发到 Nemeton 位于 127.0.0.1:22100/mcp 的本地 HTTP 服务器,并将响应写回 stdout。所有身份验证、虚拟机逻辑和工具分发都在 Nemeton 应用内部完成。

这种拆分让我们能够保持 MCP 通信格式开源(因此你可以审计它、fork 它,或通过你偏好的任意沙箱层运行它),同时虚拟机内部实现保留在应用中。


环境变量

变量默认值描述
NEMETON_PORT22100Nemeton 本地 HTTP 服务器的端口
NEMETON_TOKEN(无)来自 Nemeton 设置的 Bearer 令牌(写操作所必需)

错误和跟踪日志会写入 stderr,因此不会污染 JSON-RPC 的 stdout 通道。


关于 Nemeton

Nemeton 是一款原生 macOS 应用,使用 Apple 的 Virtualization.framework 创建和管理虚拟机。亮点:

  • 无订阅——一次性购买,€389
  • Linux 与 macOS 虚拟机,自动下载 ISO/IPSW
  • APFS 上的 CoW 快照——保存虚拟机状态而不浪费磁盘
  • REST API + WebSocket 事件(42 个端点)用于自动化
  • MCP 服务器(本仓库)用于 Claude/AI 代理
  • 原生性能——直接使用 Apple 的框架,无 QEMU 开销
  • 100% 本地——无云,无遥测

→ 在 store.juergenkoller.software 获取 Nemeton


许可证

MIT——参见 LICENSE。桥接器是开源的;Nemeton 应用本身是商业软件。

问题与支持

由 Juergen Koller Software GmbH 构建。