vision-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ZHIPU_MODEL | No | Zhipu model to use | glm-4v-flash |
| GEMINI_MODEL | No | Google Gemini model to use | gemini-2.5-flash |
| OLLAMA_MODEL | No | Required for Ollama provider. Model name to use with Ollama. | |
| OPENAI_MODEL | No | OpenAI model to use | gpt-4o |
| BAILIAN_MODEL | No | Alibaba Bailian model to use | qwen-vl-max |
| QIANFAN_MODEL | No | Baidu Qianfan model to use | ernie-4.5-vl-8k |
| STEPFUN_MODEL | No | StepFun model to use | step-1v |
| ZHIPU_API_KEY | No | API key for Zhipu | |
| GEMINI_API_KEY | No | API key for Google Gemini | |
| OPENAI_API_KEY | No | API key for OpenAI | |
| ZHIPU_BASE_URL | No | Base URL for Zhipu API | |
| ANTHROPIC_MODEL | No | Anthropic model to use | claude-sonnet-4-5 |
| BAILIAN_API_KEY | No | API key for Alibaba Bailian | |
| DASHSCOPE_MODEL | No | Alibaba DashScope model to use | qwen-vl-max |
| GEMINI_BASE_URL | No | Base URL for Google Gemini API | |
| OLLAMA_BASE_URL | No | Required for Ollama provider. Base URL of the local Ollama server. | |
| OPENAI_BASE_URL | No | Base URL for OpenAI API | |
| QIANFAN_API_KEY | No | API key for Baidu Qianfan | |
| STEPFUN_API_KEY | No | API key for StepFun | |
| BAILIAN_BASE_URL | No | Base URL for Alibaba Bailian (default is DashScope compatible mode) | |
| OPENROUTER_MODEL | No | OpenRouter model to use | openai/gpt-4o |
| QIANFAN_BASE_URL | No | Base URL for Baidu Qianfan API | |
| STEPFUN_BASE_URL | No | Base URL for StepFun API | |
| ANTHROPIC_API_KEY | No | API key for Anthropic | |
| DASHSCOPE_API_KEY | No | API key for Alibaba DashScope | |
| SILICONFLOW_MODEL | No | SiliconFlow model to use | Qwen/Qwen2.5-VL-72B-Instruct |
| ANTHROPIC_BASE_URL | No | Base URL for Anthropic API | |
| DASHSCOPE_BASE_URL | No | Base URL for Alibaba DashScope | |
| OPENROUTER_API_KEY | No | API key for OpenRouter | |
| QIANFAN_SECRET_KEY | No | Secret key for Baidu Qianfan (used together with QIANFAN_API_KEY) | |
| OPENAI_COMPAT_MODEL | No | Required for custom OpenAI-compatible endpoint. Model name to use. | |
| OPENROUTER_BASE_URL | No | Base URL for OpenRouter | https://openrouter.ai/api/v1 |
| SILICONFLOW_API_KEY | No | API key for SiliconFlow | |
| SILICONFLOW_BASE_URL | No | Base URL for SiliconFlow | https://api.siliconflow.cn/v1 |
| VOLCENGINE_ARK_MODEL | No | Volcengine Doubao model to use | doubao-1.5-vision-pro |
| OPENAI_COMPAT_API_KEY | No | Optional API key for a custom OpenAI-compatible endpoint | |
| VISION_MCP_MAX_IMAGES | No | Maximum images per tool call | 9 |
| VISION_MCP_TIMEOUT_MS | No | Download and request timeout in milliseconds | 60000 |
| OPENAI_COMPAT_BASE_URL | No | Required for custom OpenAI-compatible endpoint. Base URL of the compatible API. | |
| VISION_MCP_MAX_RETRIES | No | Per-provider retry count before falling back | 0 |
| VOLCENGINE_ARK_API_KEY | No | API key for Volcengine Doubao (Ark) | |
| VOLCENGINE_ARK_BASE_URL | No | Base URL for Volcengine Doubao (Ark) | |
| VISION_MCP_DEFAULT_MODEL | No | Default model to use if not specified | provider default |
| VISION_MCP_MAX_FALLBACKS | No | Max provider fallbacks before giving up | 0 |
| VISION_MCP_MAX_IMAGE_BYTES | No | Maximum image size in bytes | 20 MB |
| VISION_MCP_DEFAULT_PROVIDER | No | Default provider (name) to use if not specified | first available |
| VISION_MCP_PROVIDER_PRIORITY | No | Provider priority as a comma-separated list, high first (e.g. 'openai,dashscope,zhipu') |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| analyze_imageA | Analyze one or more images with a vision model and return the text result. Accepts 1 to 9 images (local path, URL, data URI, or base64; types can be mixed). Pass several images to compare, diff, or combine them — the model sees them in the given order. Use for reading screenshots, photos, charts, UI states, document pages, etc. |
| describe_imageA | Describe the image content: subject, layout, text, details. Accepts 1 to 9 images; each image is described in the given order. Equivalent to analyze_image with the default description instruction. |
| ocr_imageA | OCR: transcribe all text in the image(s), preserving reading order and paragraph structure. Accepts 1 to 9 images; transcripts follow the given order. Suitable for screenshots, scans, invoices, slides, etc. |
| list_providersA | List all registered vision model providers, their default models, and configuration status. Providers without keys will error when called. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 4 tools
analyze_image, describe_image, and ocr_image all accept the same input and return text results. describe_image is explicitly described as equivalent to analyze_image with a default instruction, and ocr_image is just a specialized prompt variant. This creates significant overlap and makes it unclear when to choose one over another. Only list_providers is clearly distinct.
All tool names use snake_case with a verb-first pattern: analyze_image, list_providers, describe_image, ocr_image. The only minor deviation is ocr_image using an acronym instead of a plain verb, but it still fits the pattern. Overall, naming is predictable and consistent.
With only 4 tools, the server is on the low end of the typical range. However, 3 of the 4 tools essentially perform the same task with different prompt variations, so the effective functionality is even more limited. The count feels padded rather than well-scoped, and could be reduced to just analyze_image and list_providers without loss.
The server covers the core functionality of image analysis, including general analysis, description, and OCR, plus provider list management. Since analyze_image is generic and accepts multiple images for comparison, it covers most basic vision tasks. Minor gaps include lack of explicit model management or configuration tools, but list_providers partially addresses this.