vision-bridge-mcp
vision-bridge-mcp
Vision sidecar MCP сервер — даёт текстовым LLM возможность видеть изображения. Нативно поддерживает форматы API OpenAI И Anthropic. Включает навык маршрутизации на основе возможностей модели.
Зачем?
Большинство LLM работают только с текстом — они не могут видеть изображения. Этот MCP сервер устраняет этот пробел, передавая изображения модели, способной работать с визуальной информацией, и возвращая текстовые результаты. Он работает с любым API-эндпоинтом, совместимым с OpenAI или Anthropic.
В паре с навыком vision-sidecar он автоматически выполняет маршрутизацию на основе возможностей хост-модели:
Хост-модель | Путь к изображению |
Только текст (без мультимодальности) | Вызывает |
Мультимодальная (gpt-4o / claude vision / gemini / grok и т.д.) | Использует встроенное понимание изображений, не вызывает этот MCP |
Исключение: когда в системном буфере обмена есть изображение, а в разговоре нет пути/URL/вложения, даже мультимодальные хост-модели могут передать image="clipboard".
Related MCP server: Vision MCP Server
Возможности
✅ Три инструмента:
analyze_image,ocr_image,compare_images✅ Двойной протокол: формат OpenAI
chat/completionsИ Anthropicmessages✅ Поддержка буфера обмена: Windows (PowerShell) + macOS (Swift)
✅ Файловый кеш SHA256 с настраиваемым TTL
✅ Повторная загрузка URL: автоматическая загрузка удалённых URL в base64 при неудаче сквозной передачи
✅ Резервный вариант для моделей рассуждения: извлекает
reasoning_content, когдаcontentравен null✅ Таймаут полной цепочки: соединение + заголовки + чтение тела
✅ Ограничения безопасности: 16 МБ ответ / 20 МБ изображение / 1 МБ детали ошибки
✅ Типизированные ошибки:
VisionInputError/VisionApiError/VisionTimeoutError✅ Комплексные тесты: 30+ модульных тестов + сквозные smoke-тесты
✅ Ноль новых npm-зависимостей (использует workspace
node_modules)
Быстрый старт
Убедитесь, что
node≥ 18 находится в вашем PATH.Установите переменные окружения:
export VISION_API_BASE_URL=https://api.example.com/v1 # OpenAI: ends with /v1; Anthropic: base without /v1
export VISION_API_KEY=sk-... # API key
export VISION_MODEL=gpt-4o # Vision model name
# Optional: export VISION_API_FORMAT=anthropic # openai (default) or anthropicЗарегистрируйте в конфигурации вашего MCP-клиента:
{
"id": "vision-bridge-mcp",
"transport": "stdio",
"command": "node",
"args": ["server.js"],
"cwd": "/path/to/vision-bridge-mcp",
"env": {
"VISION_API_BASE_URL": "https://api.example.com/v1",
"VISION_API_KEY": "your-key",
"VISION_MODEL": "gpt-4o"
},
"enabled": true
}Конфигурация
Переменная | Описание | Пример |
| Базовый URL API модели зрения. OpenAI: обычно заканчивается на |
|
| Ключ API |
|
| Имя модели зрения |
|
| (Опционально) Протокол запроса: |
|
| (Опционально) Максимальное количество токенов в ответе на вызов, по умолчанию 2048 |
|
| (Опционально) Время жизни кеша в секундах, по умолчанию 3600; |
|
| (Опционально) Директория кеша, по умолчанию |
|
| (Опционально) |
|
При запуске проверяются первые три переменные; отсутствующие вызывают понятную ошибку и завершение работы (код 1).
Инструменты
analyze_image
Предварительное условие: Вызывайте только тогда, когда хост-модель не обладает мультимодальным зрением. Если хост-модель мультимодальна, используйте её встроенное понимание изображений.
image(обязательно, строка): Локальный путь к файлу / http(s) URL / dataURL в base64 /clipboard.Локальный путь: определяет MIME по расширению (png/jpg/jpeg/gif/webp/bmp), преобразует в dataURL base64.
http(s) URL: передаётся напрямую как
image_url.dataURL: принимается только кодировка base64 для
image/*.clipboard/clip/pasteboard: читает текущее изображение из системного буфера обмена (Windows:scripts/clipboard.ps1, macOS:scripts/clipboard.swift), записывает во временный PNG, затем нормализует. Linux не поддерживается.
prompt(опционально, строка): Пользовательская инструкция для распознавания. По умолчанию: "Опишите это изображение подробно."Возвращает: успех
{ content: [{ type: "text", text }] }; неудача{ content: [{ type: "text", text: "[vision_error] ..." }], isError: true }.
Внутренний запрос (разделяется по VISION_API_FORMAT):
OpenAI:
POST {base}/chat/completions, изображение как частьimage_url, аутентификацияAuthorization: Bearer.Anthropic:
POST {base}/v1/messages, изображение как блокimage(source: {type: base64, media_type, data}или{type: url, url}), аутентификацияx-api-key+anthropic-version: 2023-06-01(также отправляетAuthorization: Bearerдля совместимости).
Таймаут по умолчанию: 60 с (охватывает соединение + чтение тела).
Ограничения безопасности: ответ API 16 МБ, загрузка изображения 20 МБ (предварительная проверка content-length + повторная проверка фактического размера).
Примечания к поведению (из реального тестирования моделей):
Модели рассуждения могут возвращать
content: nullс ответом вreasoning_content— автоматически используется резервный вариант.Неудача сквозной передачи http(s) URL с ошибкой медиа/загрузки → автоматическая загрузка в base64 и повторная попытка один раз.
ocr_image
image(обязательно, строка): Та же нормализация, что и дляanalyze_image.languages(опционально, строка): Подсказки по языкам (например,zh,en).format(опционально, перечисление):plain(по умолчанию, обычный текст с сохранением макета) /markdown(сохраняет заголовки/списки/таблицы) /json(возвращает массивblocksсtext+type).Внутренне использует
image_url.detail = "high"; подсказка внедряется в зависимости от формата.
compare_images
images(обязательно, массив, 2–4): Каждый поддерживает локальный путь / http(s) URL / dataURL / clipboard.prompt(опционально, строка): Пользовательская инструкция для сравнения. По умолчанию: "Сравните эти изображения и опишите их различия и сходства."Одно сообщение пользователя с текстом + несколько частей
image_url(detail = "auto").Если какой-либо URL завершается ошибкой медиа/загрузки, все URL загружаются в base64 и повторяется попытка один раз.
Навык Vision Sidecar
Навык vision-sidecar обеспечивает маршрутизацию на основе возможностей модели. При включении в вашем MCP-клиенте:
Хост-модель имеет мультимодальность → использует встроенное понимание изображений (без вызова MCP)
Хост-модель только текстовая → вызывает
analyze_imageэтого MCPИсключение: чтение буфера обмена доступно для мультимодальных хост-моделей
Без навыка поведение хост-модели полностью неизменно — нулевое вторжение.
См. файл навыка skill/vision-sidecar.md.
Кеширование
Включено по умолчанию. Кеширует результаты API зрения для одинаковых комбинаций "изображение + подсказка".
Ключ:
SHA256(идентификатор изображения + "::" + подсказка). Локальные файлы/dataURL хешируются по содержимому base64; http(s) URL хешируются по строке URL.Хранение: Один JSON-файл на ключ (
{ result, cachedAt }), хранится в директории кеша.TTL: По умолчанию 1 час. Просроченные записи автоматически удаляются при следующем обращении.
Отключение:
VISION_CACHE_TTL=0(или отрицательное значение).Примечание: Ключ не включает имя модели. После переключения
VISION_MODELв течение периода TTL могут возвращаться кешированные результаты от старой модели — очищайте директорию кеша при переключении моделей.
Тестирование
cd vision-bridge-mcp
node --testtest/vision.test.js: Модульные тесты основной библиотеки (нормализация ввода / тело сообщения / вызовы API / сопоставление ошибок / таймаут / кеш / повтор URL / OCR / буфер обмена).test/cache.test.js: Тесты модуля кеша (стабильность ключа / попадание / истечение / повреждённый JSON / обратная совместимость).test/smoke.test.mjs: Сквозной smoke-тест — запускает реальныйserver.jsчерез stdio, использует локальный HTTP-заглушку для имитации модели зрения, проверяет tools/list и вызовы инструментов.
Сравнение с другими Vision MCP
См. docs/COMPARISON.md для подробного сравнения с другими проектами Vision MCP.
Лицензия
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Image & PDF tools for AI agents: compress, convert, resize, PDF, AI vision, pipeline.
Generate images from Claude, ChatGPT, Cursor and Codex with 12 top AI image models. Up to 4 images per call, SVG vectorization, background removal, upscaling and image-to-video. Remote MCP with OAuth, no API keys.
Generate images from Claude, ChatGPT, Cursor and Codex with 12 top AI image models and 10 tools: up to 4 images per call, SVG vectorization, editing and more. Remote MCP with OAuth, no API keys. Pay per image, no subscription.
Turn any LLM multimodal; generate images, voices, videos, 3D models, music, and more.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables text-only LLMs to analyze images by routing them to an OpenAI-compatible vision backend, supporting local files, URLs, and data URLs.11 npmMIT
- AlicenseAqualityDmaintenanceEnables AI agents to analyze images, extract text, compare images, and analyze video through any OpenAI-compatible vision model.4154 npm20MIT
- FlicenseNot gradedqualityDmaintenanceEnables text-only language models to 'see' and describe images by calling multimodal APIs (OpenAI, Anthropic) for image analysis.-
- AlicenseNot gradedqualityBmaintenanceEnables text-only LLMs to understand images by converting them into text descriptions, supporting multiple vision backends like cloud APIs, local models, and OCR engines.1MIT