analyze-image-mcp
Sends clean OpenAI-compatible vision API requests to a configured vision model provider, allowing text-only models to analyze images and receive text descriptions without using tool calling.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@analyze-image-mcp analyze ~/Pictures/error.png and tell me what the error says"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
analyze-image-mcp
Минимальный MCP-сервер (пример подключения ниже — для OpenCode, но подойдёт любому MCP-клиенту), который даёт text-only модели доступ к отдельной vision-модели через один инструмент — analyze_image. Работает с любым OpenAI-compatible vision API (включая провайдеров с ограниченной поддержкой tool calling), так как обращается к нему напрямую, минуя механизм tools/tool_choice самого OpenCode.
Зачем это нужно
Если у тебя:
основная модель — только текстовая;
вторая модель — с поддержкой изображений, но у провайдера не включён
--enable-auto-tool-choice(частая ошибка"auto" tool choice requires --enable-auto-tool-choice and --tool-call-parser to be set);
то стандартная отправка картинки напрямую в OpenCode ломается. Этот MCP-сервер решает проблему: он вызывает vision-модель отдельным чистым HTTP-запросом без полей tools/tool_choice, а результат (текстовое описание) отдаёт основной модели как обычный текст.
Related MCP server: vision-bridge-mcp
Как это работает
Пользователь прикладывает изображение
│
▼
Основная (text-only) модель видит инструкцию:
"если есть изображение — вызови analyze_image"
│
▼
MCP-сервер (analyze_image):
1. читает файл / URL / data-URI
2. кодирует в data:image/...;base64,...
3. отправляет чистый OpenAI-compatible запрос
(без tools, без tool_choice) в vision-провайдера
│
▼
Текстовое описание возвращается основной модели
│
▼
Основная модель отвечает пользователюУстановка
Нужен Node.js 18+ (используется встроенный fetch) и git. Пакет в npm не публикуется — ставится из GitHub. Выбери один из вариантов.
Вариант 1. Клонирование (рекомендуется)
git clone https://github.com/iljyxa/analyze-image-mcp.git ~/analyze-image-mcp
cd ~/analyze-image-mcp
npm install --omit=devnpm install скачивает @modelcontextprotocol/sdk — официальную библиотеку протокола MCP (JSON-RPC через stdio). Папка node_modules/ должна оставаться рядом с index.js, иначе OpenCode не сможет запустить сервер.
Обновление:
cd ~/analyze-image-mcp && git pull && npm install --omit=devВариант 2. Без клонирования, через npx
Ничего ставить заранее не нужно: npx сам скачает репозиторий из GitHub и зависимости при первом запуске (кэшируется). Команда для конфига приведена ниже. Чтобы зафиксировать версию, добавь тег или коммит: github:iljyxa/analyze-image-mcp#v1.0.0.
Конфигурация
Сервер настраивается переменными окружения:
Переменная | Описание |
| Базовый URL OpenAI-compatible API, например |
| API-ключ провайдера |
| ID vision-модели |
Сервер сам не читает .env — значения передаются через блок environment в конфиге OpenCode (см. ниже).
Подключение к OpenCode
В opencode.json (глобальный конфиг OpenCode — ~/.config/opencode/opencode.json):
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"vision": {
"type": "local",
"command": ["node", "/home/<пользователь>/analyze-image-mcp/index.js"],
"environment": {
"VISION_BASE_URL": "https://твой-провайдер.com/v1",
"VISION_API_KEY": "твой-ключ",
"VISION_MODEL": "твоя-vision-модель"
}
}
}
}Путь в command — абсолютный (~ в конфиге не раскрывается). Для варианта 2 (npx) замени command на:
"command": ["npx", "-y", "github:iljyxa/analyze-image-mcp"]Инструкция для агента
Чтобы основная модель сама вызывала инструмент при появлении изображения, добавь правило в системный промпт / AGENTS.md / настройки агента:
Если пользователь прикладывает изображение, а активная модель не может видеть изображения напрямую, всегда сначала вызывай инструмент analyze_image с путём к изображению, затем формируй ответ на основе полученного описания.Проверка работы
Перезапусти OpenCode после изменения конфига.
Спроси у агента: "есть ли у тебя инструмент analyze_image?"
Приложи изображение и задай вопрос по нему — модель должна вызвать
analyze_imageи ответить на основе полученного описания.
Известные ограничения
MCP-инструмент не перехватывает изображение автоматически — модель должна сама решить вызвать
analyze_image. Надёжность зависит от инструкции в системном промпте и от того, насколько хорошо основная модель следует правилам вызова инструментов.Поддерживаемые форматы изображений: PNG, JPEG, GIF, WebP.
Максимальный размер ответа vision-модели ограничен
max_tokens: 2048— при необходимости увеличь вindex.js.
Лицензия
Available Tools
1 toolanalyze_imageA
Analyzes an image using a dedicated vision model and returns a detailed text description. Use this whenever the user attaches or references an image and the active model cannot see images itself. Accepts a local file path, file:// URI, http(s) URL, or data: URL.
Inputs: image_path (required), question.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 1 tool
There is only one tool, so there is no possibility of confusing it with another. Its purpose—analyze an image and return a text description—is unambiguous, and the description clearly scopes when to use it.
The single tool name 'analyze_image' follows a clean verb_noun snake_case convention. With no other names to conflict with, consistency is trivially perfect.
The server's scope is narrowly a single capability—image analysis—so one tool is largely justified and each tool earns its place. It sits below the typical 3-15 range, and optional additions like batch analysis or multi-image comparison could be argued for, keeping it just short of ideal.
The tool covers the core lifecycle for its purpose: it accepts local paths, file URIs, http(s) URLs, and data URLs, so most image-referencing workflows are reachable. Minor gaps exist around batch/multiple-image handling and structured output options, but no dead ends for the primary use case.
Maintenance
Related MCP Connectors
OCR, transcription, file extraction, and image generation for AI agents via MCP.
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.
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.
Create images & video from any MCP agent — 17 models, spend limits, one URL.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables text-only agents to process images by accepting image files, base64 data, or URLs, sending them to multimodal models, and returning structured text results via MCP.41MIT
- AlicenseAqualityDmaintenanceEnables non-multimodal models to see images by providing MCP tools for image understanding and OCR, backed by any OpenAI-compatible vision model.2MIT
- FlicenseNot gradedqualityCmaintenanceProvides an MCP tool that analyzes images from local paths, URLs, or data URLs via a vision language model, returning structured descriptions (brief, detailed, summary) so text-only LLMs can understand image content.-
- AlicenseAqualityDmaintenanceGives text-only LLMs vision capabilities via MCP, using vision models like Xiaomi MiMo-V2.5 to analyze images, describe content, and extract text through tools such as analyze_image, describe_image, and extract_text_from_image.31MIT