hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Integrations
Captures and vectorizes canvas elements from browser games/applications, enabling visualization of what's happening in canvas-based applications.
Collects console logs, errors and unhandled exceptions from JavaScript applications to provide debug information alongside visual context.
Includes Mermaid diagrams in documentation to visualize the architecture and data flow of the application.
氛围眼
MCP 服务器使 LLM 能够通过矢量化画布可视化和调试信息“看到”基于浏览器的游戏和应用程序中发生的情况。
Vibe-Eyes 使用客户端-服务器架构,其中轻量级浏览器客户端捕获画布内容和调试信息,通过 WebSockets 将其发送到 Node.js 服务器,然后将图像矢量化为紧凑的 SVG 表示,并通过模型上下文协议 (MCP) 将其提供给 LLM。
注意:该项目是实验性的,旨在通过提供视觉环境和丰富的调试信息来增强 LLM 的“氛围编码”会话。
视频讲解
关键功能
- 从浏览器游戏中捕获并矢量化画布元素
- 实时收集控制台日志和错误
- 使用完整堆栈跟踪捕获未处理的异常
- 通过 MCP 向 LLM 提供可视化和调试信息
- 为使用 LLM 的开发人员创造无缝调试体验
工作原理
- 轻量级客户端在浏览器游戏/应用程序中运行
- 客户端捕获画布快照、控制台日志/错误和未处理的异常
- 数据通过 WebSocket 发送到 Vibe-Eyes 服务器(避免 CORS 问题)
- 服务器将画布图像矢量化并将其与调试信息一起存储
- LLM 通过模型上下文协议连接以访问最新数据
- LLM 可以“看到”正在发生的事情,并帮助在完整上下文中调试问题
成分
1. Vibe-Eyes MCP 服务器( mcp.js
)
核心服务器:
- 通过 Socket.IO 接收画布快照
- 将图像矢量化为紧凑的 SVG 表示(粗略近似)
- 存储调试信息(日志、错误、异常、时间)
- 通过模型上下文协议(MCP)公开数据
- 提供 HTTP 端点以直接访问
- 按顺序处理图像以管理资源
2.浏览器客户端
浏览器客户端可在vibe-eyes-client 存储库中找到。
轻量级浏览器集成:
- 查找页面中的画布元素
- 将画布内容捕获为数据 URL
- 拦截控制台日志和错误
- 使用堆栈跟踪捕获全局未处理的异常
- 通过 WebSockets 将数据发送到 Vibe-Eyes 服务器
- 最大限度地减少对游戏性能的影响
- 支持显式初始化来控制捕获何时开始
3. 矢量化引擎( vectorizer.js
)
高质量的 SVG 矢量化库:
- 将光栅图像转换为矢量 SVG
- 优化 SVG 的尺寸和清晰度
- 保留视觉信息,同时减少数据量
入门
安装
与 LLM 代理一起使用
使用您的 AI 代理注册 MCP 服务器:
这使得 Claude 能够通过 MCP 使用 Vibe-Eyes 功能。
与游戏/应用程序集成
通过包含所需的脚本将客户端添加到您的浏览器应用程序中:
与 Claude 或其他法学硕士合作
MCP 服务器为 LLM 提供了一个工具,可以通过模型上下文协议 (MCP) 访问最新的视觉和调试信息:
法学硕士将获得:
- 应用程序的最新控制台日志和错误
- 未处理的异常及其完整堆栈跟踪(如果发生)
- 画布的矢量化 SVG 近似值(如果
includeSvg
为真) - 将视觉状态与日志连接起来的时间和相关信息
这使得 LLM 能够“看到”应用程序中发生的情况并提供更好的帮助。
MCP 配置示例(适用于 Claude 代码)
要从 Claude 访问 Vibe-Eyes:
Vibe-Eyes 如何帮助“Vibe 编码”
传统的“Vibe 编码”流程需要开发者手动截取屏幕截图并描述应用程序的运行情况。Vibe-Eyes 通过以下方式自动化此流程:
- 提供视觉环境:LLM 可以看到游戏/应用程序的实际视觉状态
- 关联视觉和代码问题:控制台日志与视觉状态配对
- 减少手动工作:无需手动捕获和上传屏幕截图
- 启用实时调试:LLM 可以实时观察变化
- 优化数据传输:矢量表示比屏幕截图更紧凑
性能考虑
- 浏览器客户端旨在最大限度地减少对应用程序性能的影响
- 创建画布数据 URL 可能会占用大量 CPU,因此捕获频率是可配置的
- WebSocket 传输避免了跨域设置中常见的 CORS 问题
- 服务器按顺序处理图像以防止过载
- SVG 矢量化平衡了视觉精度和尺寸优化
直接 SVG 访问
对于想要重用矢量化 SVG 输出的应用程序:
- WebSocket 响应:服务器直接在 WebSocket 响应中包含 SVG:Copy
- HTTP 端点:通过
/latest
端点访问最新捕获:Copy
API 参考
浏览器客户端
MCP 工具
独立矢量化 CLI
该项目还包括一个用于矢量化单个文件的独立 CLI 工具:
执照
国际学习中心
This server cannot be installed
MCP 服务器使 LLM 能够通过矢量化画布可视化和调试信息“看到”基于浏览器的游戏和应用程序中发生的情况。