侏儒ui mcp
用于GNOME Wayland桌面自动化的小型MCP服务器。
它通过AT-SPI进行发现,并通过Mutter RemoteDesktop进行输入,从而公开GNOME桌面检查和交互。在实践中,这意味着当前桌面会话的元素查找、激活、键入、屏幕截图和等待助手。
需求
- Wayland上带有GNOME Shell的Linux主机
- 要自动化的计算机上的实时本地GNOME会话
- 可用会话环境:
DBUS_SESSION_BUS_ADDRESS,XDG_RUNTIME_DIR,WAYLAND_DISPLAY,DISPLAY,XDG_SESSION_TYPE
码头工人
- Docker引擎
容器必须与GNOME会话在同一台机器上运行,并使用会话环境和运行时挂载。
Docker镜像
建议通过已发布的GHCR映像运行服务器:
ghcr.io/asattelmaier/gnome-ui-mcp:latestlatest 追踪最新版本。版本标签,例如 v0.1.0 同时发布匹配的图像标签。
Docker设置
直接的 docker run:
docker run --rm \
--security-opt apparmor=unconfined \
--network host \
--user "$(id -u):$(id -g)" \
-e DBUS_SESSION_BUS_ADDRESS="$DBUS_SESSION_BUS_ADDRESS" \
-e XDG_RUNTIME_DIR="$XDG_RUNTIME_DIR" \
-e WAYLAND_DISPLAY="$WAYLAND_DISPLAY" \
-e DISPLAY="$DISPLAY" \
-e XDG_SESSION_TYPE="${XDG_SESSION_TYPE:-wayland}" \
-v "$XDG_RUNTIME_DIR:$XDG_RUNTIME_DIR" \
-v /tmp/.X11-unix:/tmp/.X11-unix:ro \
ghcr.io/asattelmaier/gnome-ui-mcp:latest--user "$(id -u):$(id -g)" 是必需的,因此容器将加入同一用户 会话为GNOME、D-Bus和AT-SPI。
通过Compose进行本地开发:
此路径还需要 docker compose.
- 复制
.env.example到.env - 根据会话调整值
- 运行:
docker compose build
docker compose run --rm gnome-ui-mcp可用运输工具
服务器支持本地和Docker中的三种传输方式:
stdio(默认):建议用于生成服务器进程的本地MCP客户端streamable-http:建议用于基于HTTP的集成http://127.0.0.1:8000/mcpsse:可用于向后兼容http://127.0.0.1:8000/sse通过消息POST发送至http://127.0.0.1:8000/messages/
示例:
gnome-ui-mcp
gnome-ui-mcp --transport streamable-http
gnome-ui-mcp --transport sse通过在镜像名称后附加相同的标志,可以将它们传递给Docker镜像:
docker run ... ghcr.io/asattelmaier/gnome-ui-mcp:latest --transport streamable-http
docker run ... ghcr.io/asattelmaier/gnome-ui-mcp:latest --transport sse市场
存储库包括这些分销渠道的元数据:
- MCP注册表
server.json - Claude Code插件市场通过
.claude-plugin/plugin.json - VS Code和GitHub代理插件市场
克劳德代码插件市场
要在Claude Code中将此存储库添加为插件市场:
/plugin marketplace add asattelmaier/gnome-ui-mcp然后安装插件:
/plugin install gnome-ui-mcp插件通过以下方式启动已发布的Docker镜像 所以Docker和 GNOME会话环境必须在主机上可用。
MCP客户端配置示例
{
"mcpServers": {
"gnome-ui": {
"command": "docker",
"args": [
"run",
"--rm",
"--security-opt",
"apparmor=unconfined",
"--network",
"host",
"--user",
"1000:1000",
"-e",
"DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus",
"-e",
"XDG_RUNTIME_DIR=/run/user/1000",
"-e",
"WAYLAND_DISPLAY=wayland-0",
"-e",
"DISPLAY=:0",
"-e",
"XDG_SESSION_TYPE=wayland",
"-v",
"/run/user/1000:/run/user/1000",
"-v",
"/tmp/.X11-unix:/tmp/.X11-unix:ro",
"ghcr.io/asattelmaier/gnome-ui-mcp:latest"
]
}
}
}API 文档
完整的工具参考可在
安全
此服务器可以检查和控制活动的桌面会话。仅与受信任的MCP客户端一起使用。 Ubuntu上的容器化执行可能需要 --security-opt apparmor=unconfined 因此该进程可以与GNOME会话总线通信。
