README
🚀 MCPvil
MCPvil 是 Smithay 项目中 smallvil 的一个分支,并集成了 MCP (Model Context Protocol) 服务器。它是一个最小化的 Wayland 合成器,通过 MCP 公开其功能,允许 AI 代理和其他 MCP 客户端通过标准输入输出与合成器进行交互。
✨ 主要特性
MCPvil 借助 MCP 协议,以最小化的方式实现了 Wayland 合成器的功能,为 AI 代理和 MCP 客户端提供了与合成器交互的能力,支持多种操作,如应用程序的启动与关闭、屏幕截图、鼠标和键盘操作等。
📦 安装指南
系统依赖(Debian/Ubuntu)
sudo apt-get install build-essential pkg-config cmake \
libwayland-dev wayland-protocols libinput-dev libudev-dev \
libseat-dev libxkbcommon-dev libegl-dev libgles2-mesa-dev \
libgbm-dev libdrm-dev libxcb1-dev libx11-xcb-dev \
libdbus-1-dev libsystemd-dev libpixman-1-dev
通过 Cargo 安装
cargo install --git https://github.com/derekjchow/mcpvil
从源代码构建
git clone https://github.com/derekjchow/mcpvil.git
cd mcpvil
cargo build
💻 使用示例
基础用法
MCPvil 通过 MCP 协议(以换行符分隔的 JSON-RPC)在标准输入输出上进行通信,可与任何兼容 MCP 的客户端一起使用。
# 直接运行(MCP 服务器在标准输入输出上,合成器日志在标准错误输出上)
mcpvil
# 开启调试日志
RUST_LOG=debug mcpvil
# GUI 模式(打开一个窗口进行可视化检查)
mcpvil --gui
与 MCP 客户端的设置
Claude Code
claude mcp add mcpvil -- mcpvil
Gemini CLI
将以下内容添加到 ~/.gemini/settings.json 文件中:
{
"mcpServers": {
"mcpvil": {
"command": "mcpvil"
}
}
}
📚 详细文档
MCP 工具
| 工具 | 描述 |
|------|-------------|
| launch_app | 在合成器内启动一个应用程序 |
| close_app | 通过进程 ID 关闭一个应用程序 |
| save_screenshot_to_file | 将屏幕截图保存为 PNG 文件 |
| capture_screenshot | 以 base64 编码的 PNG 格式捕获屏幕截图 |
| mouse_move | 将鼠标指针移动到指定坐标 |
| mouse_click | 在指定坐标处点击鼠标按钮 |
| key_press | 通过 evdev 键码模拟按键操作 |
| scroll | 在指定坐标处向指定方向滚动 |
| open_window | 打开一个 GUI 窗口进行可视化检查 |
Scan to join WeChat group