mcpField
G
glass

glass

本地服务
fixedwidth.tech开发工具202 周前更新

关于 glass

glass 是面向编码 Agent 的 MCP 服务,可在桌面和移动平台启动并操作原生 GUI 应用。它结合画面捕获、语义控件、输入、日志和变化检测,支持应用构建与调试闭环。

主要功能

  1. 01启动并控制原生 GUI 应用
  2. 02捕获屏幕并检测视觉变化
  3. 03通过无障碍树定位控件
  4. 04注入鼠标和键盘输入
  5. 05读取应用日志

适用场景

  1. 01复现并调试 GUI 应用故障
  2. 02验证表单及其他界面交互
  3. 03通过像素输入测试自绘界面

MCP 相关

向 MCP 客户端提供 GUI 应用启动、观察、交互和调试工具。支持通过 stdio 或网络 HTTP 使用 MCP。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

glass

CI glass MCP server

为正在构建应用的编码 Agent 装上双手——启动应用、操控应用并验证结果,无需每一步都消耗一张截图。

一个 Rust MCP 服务,为 AI 编码 Agent 提供针对外部原生 GUI 应用的闭环流程:构建 → 查看 → 交互 → 调试。

glass 让 Agent 能够启动 GUI 应用、捕获屏幕内容、注入鼠标和键盘输入、读取应用日志并检测视觉变化——这样编码 Agent 就能自主构建和调试 UI 应用,而不必询问用户“看起来对吗?”。

glass 将应用作为外部黑盒来操控,因此无论应用使用何种工具包或语言,都能适用于任何原生 GUI 应用。它提供两个 Linux 后端(X11 和 Wayland)、一个 Windows 后端、一个 Android 后端(AVD 模拟器,可从任何主机通过 adb 操控)、一个 iOS 后端(通过 xcrun simctl 操控 Simulator 中的原生应用,并通过 idb_companion 提供输入和辅助功能树,包括双指捏合),以及一个 macOS 后端,底层采用平台无关的核心。

相同的输入工具适用于所有后端。默认情况下,Linux 显示器和移动模拟器的输入与桌面隔离;原生 Windows 和 macOS 目前则共用输入。使用 scope: "session" 调用 glass_capabilities,可查看点击、滚动和文本输入支持情况,以及每项操作是否会影响桌面。

观看演示

使用 glass 调试 GTK 应用的 Agent

构建 GUI 应用的 Agent 会在 glass 下运行应用,通过辅助功能树(无需截图)复现问题,修复代码并重新验证——完成它原本无法独自闭合的循环。 亲自试试。

60 秒快速上手

  1. 从 Releases 页面下载适用于你平台的 glass,并将其连接到你的 Agent——glass 适用于任何 MCP 主机(查看已验证的主机)。

  2. 获取示例应用——克隆此仓库,或下载 examples/tasks-demo/tasks_demo.py(在 Linux 上需要 sudo apt install python3-gi gir1.2-gtk-4.0)。

  3. 将以下内容粘贴给你的 Agent:

    使用 glass 启动 examples/tasks-demo/tasks_demo.py,并启用辅助功能。这里有个问题:点击 Add 后,输入的任务没有添加。请通过操控 UI 并检查 辅助功能树来复现问题(不要只截屏),然后在代码中找到并修复这个问题,并验证确实有任务出现。

你的 Agent 会启动应用,通过辅助功能树复现问题,修复一处单行代码的连接错误,并确认任务出现——从头到尾完成整个构建 → 查看 → 交互 → 调试循环。(如果环境有问题,可以运行 glass-mcp doctor 进行检查。)

实际运行中的循环

Agent 可以填写表单、点击 Save,并确认应用报告成功。如果应用提供无障碍树,Agent 就可以使用有名称的控件,并通过文本验证更改:

glass_start { "run": ["python3", "app.py"] }
glass_do { "actions": [
  { "action": "set_value",
    "target": { "query": "account", "role": "TextField", "states": ["enabled"] },
    "text": "hello" },
  { "action": "click_element",
    "target": { "query": "Save", "role": "Button", "states": ["enabled"] },
    "mode": "auto" },
  { "action": "wait_for_element", "name": "Saved" }
] }
glass_logs

如果目标不唯一或不够明确,无法直接操作,请使用 glass_find_elements 检查候选项。使用 glass_a11y_snapshot 探索应用的控件。有关点击模式和平台行为,请参阅工具参考。

对于没有无障碍树的画布或自定义渲染应用,可改用像素进行操作——glass_screenshot、glass_click {x,y} 和 glass_diff。后者会以文本形式返回 changed_pct + bbox,因此截图之间的常规检查无需消耗视觉令牌。了解为何采用这种循环:构建 → 查看 → 交互 → 调试循环。

应用停止后,若要检查一次运行,请使用 --trace-dir 启用会话证据记录。Glass 会在有界存储中保留工具输入和请求的结果,然后使用 glass-mcp trace inspect 和 trace export 验证跟踪记录,并将证据打包为 ZIP。默认情况下不会启用记录;保留的应用内容可能包含敏感数据。

快速安装指南

从Releases 页面下载适用于你平台的最新版本,然后为主机完成设置:

所有资源文件都列在 docs/reference/platforms.md 中。想自行编译,或使用没有已发布资源文件的架构?请参阅 docs/how-to/build-from-source.md——只需执行一次 cargo build。

然后将 glass 连接到你的 Agent,并运行 glass-mcp doctor 检查环境。刚开始使用?请按照教程完成首次操作。

默认仍会启用完整工具箱。若要减少 Agent 的工具定义数量,请使用 glass-mcp --tool-profile lean 启动,并使用 glass_do 执行操作。无需启动会话即可查看任一工具清单,运行 glass-mcp tools --json;详情请参阅工具配置。

熟练操作 — glass-drive 技能

运行 glass 无需集成应用,也无需技能;但 Agent 使用开放的 glass-drive Agent Skill 操作时,会可靠得多——它能避免 Agent 在最初几轮中重新摸索“先低成本验证,再查看”的循环。为 Agent 安装此技能,是你在让它操作 glass 时能做的最有效的一项改进。

平台支持

✓ 支持 · ◑ 部分支持 · – 不支持 · 🚧 计划中。

功能Linux(X11 + Wayland)WindowsAndroid(AVD)iOS(Simulator)macOS
捕获 · 输入 · 窗口 · 剪贴板 · 日志✓✓✓✓✓
辅助功能(语义寻址)✓ AT-SPI✓ UI Automation✓ UIAutomator✓ idb✓ AX
隔离 / 沙盒✓ bubblewrap✓ Sandboxie✓ the emulator VM✓ the Simulator✓ Seatbelt
不干扰桌面的输入✓ 私有显示器– 共享桌面✓ 模拟器✓ Simulator– 共享桌面
显示隔离(应用不显示在桌面上)✓ 无头 Xvfb / sway– 需要 VM✓ 无头模拟器✓ 无头 simctl boot– 共享桌面

完整矩阵、各项能力的详细信息和系统要求: docs/reference/platforms.md。传输方式为通过 stdio(默认)或 网络 HTTP 使用 MCP。

文档

完整文档——教程、操作指南、参考资料和原理说明——位于 docs/。发行说明请参阅 CHANGELOG.md, 有关 1.0 版本所作保证,请参阅稳定性与版本控制。

想要贡献?CONTRIBUTING.md 介绍了 PR 必须通过的检查, 验证更改介绍了如何验证无法在自己的主机上运行的平台代码。

许可证

glass 采用开放核心模式,依据 Apache-2.0 许可——请参阅 LICENSE-APACHE。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。