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 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 Servers
- Alicense-qualityDmaintenanceEnables text-only LLMs to analyze images by routing them to an OpenAI-compatible vision backend, supporting local files, URLs, and data URLs.34MIT
- AlicenseAqualityDmaintenanceEnables AI agents to analyze images, extract text, compare images, and analyze video through any OpenAI-compatible vision model.455019MIT
- Flicense-qualityCmaintenanceEnables text-only language models to 'see' and describe images by calling multimodal APIs (OpenAI, Anthropic) for image analysis.
- Flicense-qualityCmaintenanceEnables text-only LLMs to process images by describing them through a configurable vision model.
Related MCP Connectors
OCR, transcription, file extraction, and image generation for AI agents via MCP.
LLM chat, text summarization and AI image generation
Image/video analysis: NSFW detection, object detection, thumbnails
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/Catapult291/vision-bridge-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server