visionMCP
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., "@visionMCP describe this image"
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.
visionMCP 👁️
The eyes of a bigger reasoning LLM.
visionMCP is a Model Context Protocol server that
gives any MCP-capable agent real vision. A text-only reasoning model can delegate
anything it cannot see to this server: describe a screenshot, answer a question about a
photo, OCR a document, or compare two images — the server does the seeing and hands back
text.
It works with all three major vision backends, chosen at runtime from a single
config.json:
Provider | API | Example models |
Ollama | OpenAI-compatible ( |
|
OpenAI | Chat Completions vision API |
|
Anthropic | Claude Messages vision API |
|
Features
🔍 Four vision tools for a reasoning LLM to call:
describe_image— full natural-language descriptionask_about_image— targeted Q&A about any imageextract_text— OCR / transcriptioncompare_images— side-by-side comparison
🖼️ Every source accepted: local file paths,
http(s)URLs, and base64data:URIs.📦 Zero image prep: oversized images are auto-downscaled and re-encoded as JPEG to fit provider payload limits.
🔌 Three transports:
stdio(default, for local MCP clients),http(Streamable HTTP for remote hosting), orsse(legacy Server-Sent Events).⚙️ One
config.jsoncontrols provider, API key, API URL, and model. Environment variables and CLI flags can override anything.🚀
uv-managed, installable, runnable, and hostable.
Related MCP server: vision-bridge-mcp
Quick start
1. Install
Requires uv and Python ≥ 3.10.
cd visionMCP
uv sync2. Configure
The shipped config.json already works with a local Ollama. Switch providers by
editing the file:
// config.json
{
"provider": "openai", // "ollama" | "openai" | "anthropic"
"api_key": "sk-...", // or leave "" and export OPENAI_API_KEY
"api_url": "", // "" = provider default
"model": "" // "" = provider default
}See docs/configuration.md for every option, and docs/providers.md for per-provider setup.
Security: keep real API keys out of git — copy
config.jsontoconfig.local.json(auto-ignored) or use environment variables. The server never logs your key.
3. Run
uv run vision-mcp # stdio transport (default)
uv run vision-mcp --transport http --host 0.0.0.0 --port 8100 # host remotely
uv run vision-mcp --show-config # print resolved config (key masked)Wiring into an MCP client
opencode (opencode.json)
{
"mcpServers": {
"visionMCP": {
"type": "stdio",
"command": "uv",
"args": ["run", "--directory", "/absolute/path/to/visionMCP", "vision-mcp"]
}
}
}Claude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"visionMCP": {
"command": "uv",
"args": ["run", "--directory", "/absolute/path/to/visionMCP", "vision-mcp"]
}
}
}Generic MCP client (stdio)
{
"mcpServers": {
"visionMCP": {
"command": "/path/to/visionMCP/.venv/bin/vision-mcp",
"args": ["--config", "/path/to/visionMCP/config.json"]
}
}
}The server never sends image content to the vision API beyond what the tool call provides. Image bytes are kept in memory and never written to disk.
Tools reference
Tool | Arguments | Returns |
|
| Full description in plain text |
|
| Focused answer |
|
| Transcribed / OCR'd text |
|
| Comparison in plain text |
| — | Provider, model, transport |
An image argument accepts any of:
/path/to/photo.png # local file
https://example.com/x.jpg # URL (downloaded at call time)
data:image/png;base64,iVBORw0KGgo... # base64 data URIHow it works
Everything funnels through one function in src/vision_mcp/pipeline.py:
image (path / URL / data URI) → base64 + mime → vision model → text
_read() _encode() API[provider] look()The server tools are thin wrappers: pipeline.look(cfg, [image], prompt).
Documentation
Configuration reference — every config option, env var, and precedence rules
Provider setup — Ollama, OpenAI, and Anthropic, step by step
Deployment — hosting over HTTP/SSE, Docker, hardening
Development
uv sync --group dev
uv run ruff check .
uv run pytestLicense
MIT
Available Tools
5 toolsask_about_imageC
Answer a specific question about an image.
Inputs: image (required), question (required). Returns: result
compare_imagesB
Compare two images. Optional question narrows the comparison.
Inputs: image_a (required), image_b (required), question. Returns: result
describe_imageA
Describe an image. image is a file path, URL, or data URI.
Inputs: image (required). Returns: result
extract_textB
Read all text in an image (OCR).
Inputs: image (required). Returns: result
server_statusA
Show the active provider, model, and transport.
Inputs: no named parameters. Returns: object
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 5 tools
Each tool targets a clearly distinct task: general description, specific Q&A, OCR, image comparison, and server status. An agent can easily select the right one based on the user's intent, with no meaningful overlap in scope.
Four tools follow a verb_noun pattern (describe_image, ask_about_image, extract_text, compare_images) in snake_case. However, server_status deviates as a noun_noun, and compare_images uses plural while others are singular, slightly breaking the pattern.
With only 5 tools, the server is well-scoped and each tool serves a necessary function. This is within the ideal range of 3-15 for a focused vision understanding server.
Core vision understanding workflows are covered: describing, asking questions, OCR, comparison, and status checks. Minor missing features like explicit object detection or metadata retrieval are easily approximated via ask_about_image, so no critical dead ends.
Maintenance
Related MCP Connectors
OCR, transcription, file extraction, and image generation for AI agents via MCP.
Persistent memory, knowledge graph, task management and more for AI agents via MCP.
Image infrastructure for agents. Upload, transform, and deliver images through MCP, CLI, or API.
Create images & video from any MCP agent — 17 models, spend limits, one URL.
Related MCP Servers
- AlicenseAqualityCmaintenanceGive MCP-compatible AI agents image analysis, metadata inspection, cropping, OCR, and image comparison through any OpenAI-compatible vision model.6MIT
- AlicenseAqualityDmaintenanceEnables non-multimodal models to see images by providing MCP tools for image understanding and OCR, backed by any OpenAI-compatible vision model.2MIT
- AlicenseNot gradedqualityCmaintenanceProvides vision capabilities to text-only LLMs via MCP, enabling image understanding, Q&A, OCR, and image processing through cloud multimodal APIs.MIT
- AlicenseBqualityDmaintenanceLets any MCP-compatible agent analyze, describe, OCR, compare, locate, upload, and manage images through DeepSeek's vision model.81MIT