Skip to main content
Glama

eyes-mcp

Дайте любому текстовому LLM глаза. Локальное зрение для вашего кодинг-агента.

Одна команда · ноль API-ключей · ничего не покидает вашу машину

License: MIT MCP llama.cpp 简体中文

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

Вот и всё. Установщик:

  1. спрашивает, какую модель вы хотите, с рекомендацией на основе вашей RAM и GPU (пропустите вопрос с помощью EYES_PRESET или --yes),

  2. устанавливает зависимости и загружает модель (~0.3–3.5GB, с докачкой),

  3. определяет, какие из ваших агентов работают на текстовых моделях, читая конфиги Claude Code / Codex / Cursor и проверяя каждую модель по базе модальностей,

  4. регистрирует 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.jsonmcpServers):

"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.

Перезапустите агента и спросите: "что на этом скриншоте?"

Инструменты

Инструмент

Движок

Назначение

analyze_image(path, question?)

VLM via llama.cpp

Описания, понимание UI, визуальные вопросы и ответы

ocr_image(path)

RapidOCR (onnx)

Плотный текст: терминалы, документы, таблицы; быстро и точно

Пресеты моделей

Пресет

Модель

Загрузка

RAM

Лицензия

Примечания

nano

SmolVLM2-256M

~0.3GB

~1GB

Apache-2.0

самая маленькая полезная VLM

lfm-450m (default)

LFM2.5-VL-450M

~0.4GB

~1.2GB

Liquid

проверена; самый быстрый запуск

fast

Qwen3.5-0.8B

~0.7GB

~1.8GB

Apache-2.0

нативно мультимодальная (изображение + видео)

ocr

GLM-OCR

~1.4GB

~3.5GB

MIT

лучшая для плотного текста и документов (3M+ загрузок/мес)

strong

Qwen3.5-2B

~2GB

~3.5GB

Apache-2.0

лучший баланс качества и размера

xstrong

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. У весов моделей свои лицензии (см. таблицу пресетов); они загружаются при установке и здесь не распространяются.


-
license - not tested
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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.

View all MCP Connectors

Latest Blog Posts

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