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 服务器
通过 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 |
| Webhook | list_webhooks, register_webhook, delete_webhook |
| 运行时 | vm_runtime, vm_errors, list_downloads |
每个工具都会返回结构化 JSON,包含虚拟机状态、快照元数据、控制台输出或操作结果。
安装
前提条件
- macOS 14 (Sonoma) 或更高版本——使用
Virtualization.framework功能所必需。 - 已安装并运行 Nemeton 应用——在此获取。
- 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_PORT | 22100 | Nemeton 本地 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 应用本身是商业软件。
问题与支持
- 桥接器缺陷: 提交 issue
- 应用支持: support@juergenkoller.software