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
Visit Server

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

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured