eyes-mcp
eyes-mcp
Дайте любому текстовому LLM глаза. Локальное зрение для вашего кодинг-агента.
Одна команда · ноль API-ключей · ничего не покидает вашу машину
DeepSeek, GLM, Qwen-Coder, Llama… отличные модели, но все слепые.
❌ Без глаз
Вы вставляете скриншот в своего агента (работающего на текстовой модели через Claude Code / Codex / Cursor):
> Here's the error in my UI, fix it [screenshot.png]
I'm sorry — I cannot see images. Please describe the error in text.✅ С глазами
Агент вместо этого обращается к локальной VLM + OCR и сам читает скриншот:
> Here's the error in my UI, fix it [screenshot.png]
I see a React hydration error in `CartDrawer.tsx:142`. The OCR shows:
"Hydration failed because the server rendered HTML didn't match the client." …Быстрый старт
git clone https://github.com/JamesbbBriz/eyes-mcp
cd eyes-mcp && ./scripts/install.shВот и всё. Установщик:
спрашивает, какую модель вы хотите, с рекомендацией на основе вашей RAM и GPU (пропустите вопрос с помощью
EYES_PRESETили--yes),устанавливает зависимости и загружает модель (~0.3–3.5GB, с докачкой),
определяет, какие из ваших агентов работают на текстовых моделях, читая конфиги Claude Code / Codex / Cursor и проверяя каждую модель по базе модальностей,
регистрирует eyes-mcp только там, где это нужно. Мультимодальные агенты пропускаются автоматически.
# options:
EYES_PRESET=fast ./scripts/install.sh # Qwen3.5-0.8B, natively multimodal
HF_ENDPOINT=https://hf-mirror.com ./install.sh # mainland-CN mirror
./install.sh --yes # accept all recommendations, no prompts
./install.sh --dry-run # preview without changing anythingНужна только проверка модальности? python3 scripts/detect_modality.py
Требования: Python ≥3.11, llama.cpp (brew install llama.cpp), ~1GB RAM.
Ручная регистрация
Пропустили автоматическую установку или используете агента, которого установщик не знает? Добавьте его вручную.
Claude Code (~/.claude.json → mcpServers):
"eyes-mcp": {
"command": "uv",
"args": ["--directory", "/ABS/PATH/eyes-mcp", "run", "eyes-mcp"],
"env": { "EYES_PRESET": "lfm-450m" }
}Codex (~/.codex/config.toml):
[mcp_servers.eyes-mcp]
command = "uv"
args = ["--directory", "/ABS/PATH/eyes-mcp", "run", "eyes-mcp"]
env = { EYES_PRESET = "lfm-450m" }Cursor (.cursor/mcp.json): та же структура, что и у Claude Code.
Перезапустите агента и спросите: "что на этом скриншоте?"
Инструменты
Инструмент | Движок | Назначение |
| VLM via llama.cpp | Описания, понимание UI, визуальные вопросы и ответы |
| RapidOCR (onnx) | Плотный текст: терминалы, документы, таблицы; быстро и точно |
Пресеты моделей
Пресет | Модель | Загрузка | RAM | Лицензия | Примечания |
| SmolVLM2-256M | ~0.3GB | ~1GB | Apache-2.0 | самая маленькая полезная VLM |
| LFM2.5-VL-450M | ~0.4GB | ~1.2GB | проверена; самый быстрый запуск | |
| Qwen3.5-0.8B | ~0.7GB | ~1.8GB | Apache-2.0 | нативно мультимодальная (изображение + видео) |
| GLM-OCR | ~1.4GB | ~3.5GB | MIT | лучшая для плотного текста и документов (3M+ загрузок/мес) |
| Qwen3.5-2B | ~2GB | ~3.5GB | Apache-2.0 | лучший баланс качества и размера |
| Qwen3.5-4B | ~3GB | ~6GB | Apache-2.0 | максимальный уровень (рекомендуется GPU) |
Скрытые дополнения (всё ещё одна команда): smol500 (SmolVLM2-500M), paddle (PaddleOCR-VL-1.6), qwen3-2b (Qwen3-VL-2B).
Подойдёт любой другой GGUF. Укажите на него через env и полностью пропустите пресеты:
EYES_MODEL_DIR=~/models/my-vlm VLM_MODEL_FILE=model-Q4.gguf VLM_MMPROJ_FILE=mmproj.ggufХорошие кандидаты, не входящие в пресеты: LFM2.5-VL-1.6B/3B, InternVL3.5-2B/4B, MiniCPM-V-4.6, DeepSeek-OCR, dots.ocr, gemma-3n-E2B, moondream2. Подойдёт всё, что llama.cpp поддерживает с файлом mmproj.
Переключайтесь в любой момент: задайте EYES_PRESET и снова запустите ./scripts/download_models.sh. Не уверены, какую выбрать? python3 scripts/choose_model.py покажет ваши RAM/GPU и отметит рекомендацию.
Как это работает
Claude Code / Codex / Cursor
│ MCP stdio
▼
eyes-mcp (stateless, mcp SDK 2.x)
├─ analyze_image → llama.cpp llama-server (local VLM) "understand"
└─ ocr_image → RapidOCR (onnx, ~20MB) "extract text"Жизненный цикл следует за вашим агентом: VLM-сервер запускается при старте MCP и завершается при выходе агента, так что у вас не остаётся осиротевших процессов или демона, за которым нужно следить.
Плавающий порт: VLM никогда не привязывается к фиксированному порту (прощай, "порт 8080 уже занят"), поэтому она сосуществует с вашими другими локальными сервисами.
Переиспользование внешней VLM: если у вас уже запущена VLM на
VLM_BASE_URL, eyes-mcp использует её вместо запуска собственной.
Зачем
Самые дешёвые и лучшие кодинг-модели сейчас (DeepSeek-V4-Flash, GLM-5.x, Qwen-Coder) — текстовые. Каждая платформа предполагает, что вы можете вставить скриншот, и каждая из этих моделей молча с этим проваливается. eyes-mcp — недостающий сайдкар: небольшая локальная VLM плюс OCR, обёрнутая в жизненный цикл, который ваш агент уже понимает.
Дорожная карта
Ленивый запуск VLM (запуск при первом вызове инструмента, а не при старте MCP)
screenshot_analyze(захват экрана без файла)PDF-страницы → зрение
npx eyes-mcp— установка одной командойШаблоны промптов для каждой модели (OCR-модели llama.cpp требуют конкретных промптов)
FAQ
Имеет ли значение модель моего агента?
Только в том смысле, что она должна быть текстовой, чтобы это было полезно. Мультимодальные модели (GPT, Claude, GLM-V) уже видят изображения, так что не заморачивайтесь.
Нужен GPU?
Нет. Всё отлично работает на CPU, а llama.cpp автоматически подхватывает Apple Metal или CUDA, если они есть.
Где хранятся модели?
~/.eyes-mcp/models/<preset>/. Удалите их для сброса.
Лицензия
MIT. У весов моделей свои лицензии (см. таблицу пресетов); они загружаются при установке и здесь не распространяются.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
OCR, transcription, file extraction, and image generation for AI agents via MCP.
Screenshot, diff, audit and sitemap-capture any web page — 5 MCP tools for AI agents.
Generate images, GIFs, and PDFs from HTML, URLs, or templates — from your AI agent.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/JamesbbBriz/eyes-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server