eyes-mcp
eyes-mcp
Dale ojos a cualquier LLM de solo texto. Visión local para tu agente de codificación.
Un comando · cero API keys · nada sale de tu máquina
DeepSeek, GLM, Qwen-Coder, Llama… grandes modelos, todos ciegos.
❌ Sin ojos
Pegas una captura de pantalla en tu agente (que ejecuta un modelo solo de texto mediante 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.✅ Con ojos
El agente llama a un VLM local + OCR en su lugar, y lee la captura de pantalla por sí mismo:
> 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." …Inicio rápido
git clone https://github.com/JamesbbBriz/eyes-mcp
cd eyes-mcp && ./scripts/install.shEso es todo. El instalador:
pregunta qué modelo quieres, con una recomendación calculada según tu RAM y tu GPU (omite la pregunta con
EYES_PRESETo--yes),instala las dependencias y descarga el modelo (~0.3 a 3.5GB, reanudable),
detecta cuáles de tus agentes ejecutan modelos solo de texto, leyendo tus configuraciones de Claude Code / Codex / Cursor y verificando cada modelo contra una base de datos de modalidades,
registra eyes-mcp solo donde se necesita. Los agentes multimodales se omiten automáticamente.
# 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¿Solo quieres la comprobación de modalidad? python3 scripts/detect_modality.py
Requiere: Python ≥3.11, llama.cpp (brew install llama.cpp), ~1GB de RAM.
Registro manual
¿Omitiste la instalación automática, o tienes un agente que el instalador no conoce? Añádelo manualmente.
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): misma forma que Claude Code.
Reinicia el agente y luego pregunta: "¿qué hay en esta captura de pantalla?"
Herramientas
Herramienta | Motor | Uso |
| VLM via llama.cpp | Descripciones, comprensión de UI, preguntas y respuestas visuales |
| RapidOCR (onnx) | Texto denso: terminales, documentos, tablas; rápido y preciso |
Modelos predefinidos
Preajuste | Modelo | Descarga | RAM | Licencia | Notas |
| SmolVLM2-256M | ~0.3GB | ~1GB | Apache-2.0 | el VLM más pequeño y útil |
| LFM2.5-VL-450M | ~0.4GB | ~1.2GB | probado; inicio más rápido | |
| Qwen3.5-0.8B | ~0.7GB | ~1.8GB | Apache-2.0 | nativamente multimodal (imagen + video) |
| GLM-OCR | ~1.4GB | ~3.5GB | MIT | campeón en texto denso / documentos (3M+ descargas/mes) |
| Qwen3.5-2B | ~2GB | ~3.5GB | Apache-2.0 | mejor equilibrio calidad/tamaño |
| Qwen3.5-4B | ~3GB | ~6GB | Apache-2.0 | nivel máximo (GPU recomendada) |
Extras ocultos (sigue siendo un solo comando): smol500 (SmolVLM2-500M), paddle (PaddleOCR-VL-1.6), qwen3-2b (Qwen3-VL-2B).
Cualquier otro GGUF también funciona. Apunta la variable de entorno a él y omite los preajustes por completo:
EYES_MODEL_DIR=~/models/my-vlm VLM_MODEL_FILE=model-Q4.gguf VLM_MMPROJ_FILE=mmproj.ggufBuenos candidatos que no vienen como preajustes: LFM2.5-VL-1.6B/3B, InternVL3.5-2B/4B, MiniCPM-V-4.6, DeepSeek-OCR, dots.ocr, gemma-3n-E2B, moondream2. Todo lo que llama.cpp admita con un archivo mmproj funciona.
Cambia cuando quieras: configura EYES_PRESET y vuelve a ejecutar ./scripts/download_models.sh. ¿No sabes cuál? python3 scripts/choose_model.py muestra tu RAM/GPU y marca una recomendación.
Cómo funciona
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"El ciclo de vida sigue a tu agente: el servidor VLM se inicia cuando arranca el MCP y se apaga cuando tu agente sale, para que nunca termines con procesos huérfanos o un demonio que cuidar.
Puerto flotante: el VLM nunca se vincula a un puerto fijo (adiós, "8080 ya está en uso"), por lo que convive con tus otros servicios locales.
Reutilización de VLM externo: si ya ejecutas uno en
VLM_BASE_URL, eyes-mcp lo usa en lugar de lanzar el suyo propio.
Por qué
Los modelos de código más baratos y mejores actualmente (DeepSeek-V4-Flash, GLM-5.x, Qwen-Coder) son solo de texto. Cada plataforma asume que puedes pegar una captura de pantalla, y todos estos modelos fallan silenciosamente. eyes-mcp es el sidecar que faltaba: un pequeño VLM local más OCR, envuelto en el ciclo de vida que tu agente ya entiende.
Hoja de ruta
Inicio diferido del VLM (se lanza en la primera llamada a una herramienta, no al iniciar MCP)
screenshot_analyze(captura la pantalla, sin necesidad de archivo)Páginas PDF → visión
Instalador de una línea
npx eyes-mcpPlantillas de prompt por modelo (los modelos OCR de llama.cpp necesitan prompts específicos)
Preguntas frecuentes
¿Importa el modelo de mi agente? Solo en que debe ser solo de texto para que esto sea útil. Los modelos multimodales (GPT, Claude, GLM-V) ya ven imágenes, así que no te molestes.
¿Se necesita GPU? No. Funciona bien en CPU, y llama.cpp detecta Apple Metal o CUDA automáticamente si están presentes.
¿Dónde se almacenan los modelos? ~/.eyes-mcp/models/<preset>/. Bórralos para restablecer.
Licencia
MIT. Los pesos de los modelos conservan sus propias licencias (consulta la tabla de preajustes); se descargan en el momento de la instalación, nunca se redistribuyen aquí.
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