eyeshot-mcp

eyeshot-mcp

Provides screenshot capture and vision analysis tools that enable AI to see and analyze screen content on Windows, forming an automated capture-analyze pipeline.

Category
访问服务器

README

eyeshot-mcp

Built by DeepSeek

中文

No telemetry, no external calls, no data exfiltration. Screenshots never leave your machine unless you explicitly send them to the vision API endpoint you configured.

Eyeshot (Screenshot + Vision) — two MCP tools that give your AI the ability to see, forming an automated capture → analyze pipeline on Windows.

If your AI already has vision (GPT-4V, Claude, etc.), you only need the screenshot MCP. The vision MCP is for AIs without built-in vision support.

Compatibility

Works with any MCP-compatible client: opencode, Claude Desktop, Cursor, VS Code (via extensions), or any other MCP host. These are standard MCP tools — not tied to any specific platform.

Use Cases

  • Automated UI testing — After writing frontend code, let AI launch the browser, screenshot, and verify the page
  • OCR text recognition — Capture a window or full screen, read text via vision model
  • App UI verification — Launch a desktop app, screenshot, and check if UI renders correctly
  • AI-assisted debugging — Program crashes? Take a screenshot and let AI look at it

Installation

Option 1: Let AI install it (Recommended)

Send this prompt to your AI assistant, it will handle everything:

"Clone https://github.com/yourname/eyeshot-mcp to my machine, install its dependencies, then configure it as an MCP server in my opencode config file."

Option 2: Manual install

git clone https://github.com/yourname/eyeshot-mcp.git
pip install -r requirements.txt

Configuration

opencode

Add to ~\.config\opencode\opencode.jsonc:

{
  "mcp": {
    "screenshot": {
      "type": "local",
      "command": ["python", "C:\\path\\to\\eyeshot-mcp\\screenshot_mcp.py"],
      "enabled": true
    },
    "vision": {
      "type": "local",
      "command": ["python", "C:\\path\\to\\eyeshot-mcp\\vision_mcp.py"],
      "enabled": true
    }
  }
}

Environment Variables

Variable Default Description
VISION_API_KEY (required) Vision API key
VISION_API_URL https://api.openai.com/v1/chat/completions Any OpenAI-compatible endpoint. Example: OpenRouter https://openrouter.ai/api/v1/chat/completions
VISION_MODEL qwen/qwen2.5-vl-32b-instruct Any VL model
VISION_MAX_WIDTH 2048 Max image width sent to API (0 = no resize)
VISION_MAX_TOKENS 512 Max tokens in API response
SCREENSHOT_BROWSER_CLASSES (optional) Comma-separated extra browser window classes

Tool Reference

screenshot_capture_to_file

Capture an existing window or full screen, save to screenshot.png, return path.

Parameter Type Default Description
window_title str "" Window title, empty = full screen
resize_width int 0 Screenshot resize width, 0 = auto based on display resolution

Auto-resolution logic:

  • 4K (3840) → resize to 1920
  • 1440p (2560) → resize to 1280
  • 1080p (1920) → resize to 960
  • Below 1920 → no resize, keep original

screenshot_test_window

Launch program → Wait → Capture → Close (fully automatic).

Parameter Type Default Description
command str required Launch command, browsers must include --new-window
wait_seconds int required Wait seconds after launch
maximized bool required Whether to maximize the window
window_title str "" Which window to capture; empty = full screen, no close
resize_width int 0 Same as capture_to_file

Browser tab protection: When a browser is detected without --new-window, closing is skipped to protect other tabs. With --new-window, the exclusive window is closed normally.

vision_analyze_image

Analyze an image with a vision model, return text result.

Parameter Type Default Description
file_path str required Image path, e.g. screenshot.png
prompt str "描述这张图片的内容" Your question, supports any language

Browser Support

Window Class Browser
Chrome_WidgetWin_1 Chrome, Edge (Chromium), Brave, Opera, Vivaldi
MozillaWindowClass Firefox
MSEdgeWindowClass Edge (UWP / legacy)
ApplicationFrameWindow UWP apps & WebView

Add custom classes: SCREENSHOT_BROWSER_CLASSES=MyClass1,MyClass2

FAQ

Q: Screenshot text is blurry? A: Increase resize_width (e.g. 4096) to keep original resolution.

Q: Don't know the window title? A: Use tasklist to list running processes, or capture full screen and let the vision model identify it.

Q: Why didn't the browser window close? A: Closing is skipped without --new-window to protect other tabs. Add --new-window to your launch command.

Q: Can I use a different vision model? A: Yes. Set VISION_API_URL and VISION_MODEL env vars. Compatible with any OpenAI-compatible API.

MIT

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选