vision-mcp
Click on "Install 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., "@vision-mcpWhat does this sign say? ./sign.jpg"
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.
vision-mcp
An MCP server that gives conversational image understanding to text-only models (DeepSeek, Claude Code, etc.).
The main model hands image paths and a question to a vision model, which returns a text description that the main model can reason over. A session mechanism enables "blind men and the elephant" style follow-ups: you can dig deeper into the same batch of images across multiple turns, and the vision model re-sees the full images and the conversation history on every turn.
Features
Multi-turn conversational follow-up: follow-ups within a session automatically carry history context, supporting referential questions ("What does that sign say?")
OpenAI-compatible vision API: any compatible endpoint works (default SiliconFlow; Qwen3.5-35B-A3B verified to accept images)
Path deduplication: paths passed on session reuse are compared against existing ones; only new images are added
URL support: pass http/https image URLs directly; they are forwarded to the vision API as-is (no local download)
Image integrity validation: checks extension vs. actual format consistency; supports png/jpg/jpeg/webp/gif/bmp/tif/tiff
Concurrency safe: operations on the same session are serialized; atomic writes; deletion is mutually exclusive with in-flight requests, so a deleted session can never be resurrected by a stale save
Auto-expiry: sessions idle for 24 hours are cleaned up (configurable)
Passthrough by default: images are sent as-is — no compression, no scaling, no re-encoding — unless compression is enabled (see
max_image_mb)Staged compression (optional): when enabled, images over the threshold are compressed in stages, format-preserving where possible (JPEG/WebP lower quality first, then downscale; PNG keeps transparency by downscaling before falling back to JPEG)
Related MCP server: llm-vision-mcp
Installation
git clone https://github.com/whyneedai/vision-mcp.git
cd vision-mcp
python3 -m venv .venv
.venv/bin/pip install -r requirements.txtConfiguration
The config file lives at ~/.config/vision-mcp/config.json:
{
"vision_model": {
"base_url": "https://api.siliconflow.cn/v1",
"api_key": "{env:SILICONFLOW_API_KEY}",
"model": "Qwen/Qwen3.5-35B-A3B",
"enable_thinking": false,
"max_tokens": 131072,
"temperature": 0.1
},
"max_history_rounds": 4,
"sessions_dir": "~/.local/share/vision-mcp/sessions",
"session_ttl_hours": 24,
"system_prompt": "optional, overrides the built-in vision system prompt"
}Field | Description |
| Number of recent Q&A rounds (1 round = one question + one answer) sent to the vision model as context. History beyond the window is kept on disk but not sent. Default |
| OpenAI-compatible endpoint; |
| Disable thinking mode (otherwise the API returns an empty |
| Compression threshold in MB: images at or above this size are auto-compressed below it (staged, format-preserving). Unset / empty / |
| Session storage directory (default |
| Session idle-expiry in hours (default 24) |
| Vision system prompt (default: strictly follow the question, no hallucination) |
Connecting to opencode
Add to the mcp section of your opencode config:
{
"mcp": {
"vision": {
"type": "local",
"command": ["/path/to/vision-mcp/.venv/bin/python", "/path/to/vision-mcp/server.py"],
"environment": {
"SILICONFLOW_API_KEY": "{env:SILICONFLOW_API_KEY}"
},
"enabled": true,
"timeout": 300000
}
}
}Tools
ask_image
Ask a question about one or more images, with multi-turn follow-up support.
Parameter | Required | Description |
| yes | The question |
| no | Existing session ID; omit to create a new session ( |
| no | List of image paths or http/https image URLs; may be omitted on session reuse (existing images are kept), new entries are deduplicated and appended. URLs are forwarded as-is to the vision API |
Returns {session_id, answer, image_paths}. Relative paths resolve against the opencode working directory.
end_session
Delete a session and all of its related files. Original images are never deleted.
Architecture
server.py MCP entry point: component wiring + tool registration
config.py Config loading ({env:XXX} resolution)
sessions.py Session storage: atomic writes, per-session locks, TTL cleanup
images.py Path/content validation, staged compression, data URL encoding
vision.py Vision client: OpenAI-compatible APITests
.venv/bin/python test/test_mcp_proto.py # MCP handshake and tool registration
.venv/bin/python test/test_e2e.py # end-to-end (requires a real API key)License
MIT
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
No tool schema history has been recorded yet.
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
MCP server for Qwen Image 3 AI image generation
OCR, transcription, file extraction, and image generation for AI agents via MCP.
Focused MCP server for OpenAI image/audio generation (v2.0.0). Wraps endpoints via HAPI CLI.
MCP server for building and testing AI agents with multi-model experimentation and insights.
Related MCP Servers
- AlicenseAqualityAmaintenanceA portable image-understanding MCP server that lets agents analyze local images, URLs, or base64 images via an OpenAI-compatible vision model.131072MIT
- AlicenseNot gradedqualityCmaintenanceAn MCP server that enables any LLM to describe images from file paths, URLs, or base64 data by forwarding them to a supported vision provider such as OpenAI, Anthropic, or local Ollama models.1,06010MIT
- FlicenseNot gradedqualityCmaintenanceMCP server that gives text-only models vision capabilities via free GLM vision models, supporting image description, OCR, chart/document analysis, and grounding with automatic model fallback.1-
- AlicenseNot gradedqualityBmaintenanceMCP server that gives text-only LLMs vision capabilities by using a free multimodal model to perceive images, audio, and video, returning text for the main model to reason with.632MIT
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/whyneedai/vision-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server