mcp-vision-analyze
Provides AI vision analysis using Google Gemini models, enabling image understanding, OCR, error diagnosis, chart analysis, and UI design evaluation.
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., "@mcp-vision-analyzeWhat's shown in this screenshot?"
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.
π MCP Vision Analyze
A lightweight Model Context Protocol (MCP) server for AI image vision analysis. Powered by OpenRouter (Google Gemini, Grok, and more).
Works with: Claude Desktop, Claude Code CLI, Antigravity, Cursor, Pi Agent, Windsurf, Cline, VS Code, and any MCP-compatible client.
β¨ Features
πΌοΈ Analyze images from local file paths or HTTP(S) URLs
π§ Powered by Google Gemini models via OpenRouter
π° Ultra cheap β ~$0.0001 per image (free tier available)
π Extract text from screenshots (OCR)
π Diagnose error messages in screenshots
π Analyze charts, diagrams, and UI designs
π No rate limits β production ready
π Secure β API keys stay local, never stored externally
Related MCP server: OpenRouter Image MCP Server
π¦ Pricing (OpenRouter)
Model | Input | Output | Best For |
| $0.10/M tokens | $0.40/M tokens | Default β cheapest |
| $0.25/M tokens | $1.50/M tokens | Better quality |
| $0.50/M tokens | $3.00/M tokens | Best reasoning |
| $0.38/M tokens | $1.88/M tokens | Latest model |
| $2.00/M tokens | $6.00/M tokens | Grok vision |
π‘ 1 image analysis β 1,300 input tokens + 150 output tokens β $0.0001 π‘ Free tier available β no credit card needed to start
π Quick Start
1. Get an API Key
Sign up at OpenRouter and get your API key from openrouter.ai/keys.
2. Install
# Option A: Use directly with npx (recommended)
npx mcp-vision-analyze
# Option B: Clone and install manually
git clone https://github.com/rezkycodes/mcp-vision-analyze.git
cd mcp-vision-analyze
npm install3. Configure Your MCP Client
Choose your client below. Set OPENROUTER_API_KEY in the env block.
Claude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"vision-analyze": {
"command": "npx",
"args": ["-y", "mcp-vision-analyze"],
"env": {
"OPENROUTER_API_KEY": "sk-or-v1-your-openrouter-key"
}
}
}
}Claude Code CLI
claude mcp add vision-analyze \
-e OPENROUTER_API_KEY=sk-or-v1-your-openrouter-key \
-- npx -y mcp-vision-analyze
# Or add to .mcp.json in your project rootOr add to .mcp.json in your project root:
{
"mcpServers": {
"vision-analyze": {
"command": "npx",
"args": ["-y", "mcp-vision-analyze"],
"env": {
"OPENROUTER_API_KEY": "sk-or-v1-your-openrouter-key"
}
}
}
}Antigravity
Add via Settings β MCP, or edit ~/.gemini/antigravity/mcp_config.json:
{
"mcpServers": {
"vision-analyze": {
"command": "npx",
"args": ["-y", "mcp-vision-analyze"],
"env": {
"OPENROUTER_API_KEY": "sk-or-v1-your-openrouter-key"
}
}
}
}Pi Agent (~/.pi/agent/mcp.json)
{
"vision-analyze": {
"transport": "stdio",
"command": "npx",
"args": ["-y", "mcp-vision-analyze"],
"env": {
"OPENROUTER_API_KEY": "sk-or-v1-your-openrouter-key"
},
"directTools": true
}
}Cursor (.cursor/mcp.json)
{
"mcpServers": {
"vision-analyze": {
"command": "npx",
"args": ["-y", "mcp-vision-analyze"],
"env": {
"OPENROUTER_API_KEY": "sk-or-v1-your-openrouter-key"
}
}
}
}VS Code (~/.config/Code/User/mcp.json)
{
"servers": {
"vision-analyze": {
"type": "stdio",
"command": "npx",
"args": ["-y", "mcp-vision-analyze"],
"env": {
"OPENROUTER_API_KEY": "sk-or-v1-your-openrouter-key"
}
}
}
}OpenCode (~/.config/opencode/opencode.json)
{
"mcp": {
"vision-analyze": {
"type": "local",
"command": ["node", "/path/to/index.js"],
"environment": {
"OPENROUTER_API_KEY": "sk-or-v1-your-openrouter-key"
},
"enabled": true
}
}
}π οΈ Usage
Once configured, the vision_analyze tool becomes available:
Basic β Analyze a Screenshot
{
"image_url": "/path/to/screenshot.png",
"prompt": "What is shown in this screenshot?"
}Extract Text (OCR)
{
"image_url": "/path/to/photo.png",
"prompt": "Extract all text from this image"
}Diagnose an Error
{
"image_url": "/path/to/error.png",
"prompt": "What error is shown and how to fix it?"
}Use a Different Model
{
"image_url": "/path/to/image.png",
"prompt": "Analyze this chart",
"model": "google/gemini-3-flash-preview"
}Use Grok Vision
{
"image_url": "/path/to/image.png",
"prompt": "Describe this image",
"model": "x-ai/grok-4.5"
}π Project Structure
mcp-vision-analyze/
βββ index.js # MCP server (OpenRouter only)
βββ package.json # npm metadata
βββ .env.example # Config template
βββ .env # Your API keys (git-ignored)
βββ .gitignore # Git ignore rules
βββ LICENSE # MIT
βββ README.md # This fileπ§ Environment Variables
Variable | Required | Default | Description |
| No |
| Provider (only |
| β Yes | β | OpenRouter API key |
| No |
| OpenRouter model |
π¦ Available Models
Model | Cost (input/output per M) | Quality |
| $0.10 / $0.40 | ββββ Best value |
| $0.25 / $1.50 | ββββ Great |
| $0.50 / $3.00 | βββββ Best |
| $0.38 / $1.88 | βββββ Latest |
| $2.00 / $6.00 | ββββ Grok |
π€ Supported Image Formats
JPEG / JPG
PNG
GIF
WebP
BMP (auto-converted)
SVG (auto-rasterized)
β FAQ
How much does it cost?
~$0.0001 per image analysis. Free tier available β no credit card needed.
Can I use Grok for vision?
Yes! Set model: "x-ai/grok-4.5". Grok is not free on OpenRouter.
Does it work offline?
No. Internet connection required for API calls.
Is my image data stored?
No. Images are processed in-memory and sent directly to OpenRouter. Nothing is stored on disk.
π License
MIT
π Credits
Inspired by the vision_analyze tool from Hermes Agent.
Available Tools
1 toolvision_analyzeA
Analyze an image using AI vision (Gemini via OpenRouter). Accepts local file paths or HTTP(S) URLs. Returns a detailed text analysis of the image content.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | OpenRouter model to use (default: google/gemini-2.5-flash-lite). Options: google/gemini-2.5-flash-lite, google/gemini-3-flash-preview, google/gemini-3.1-flash-lite | |
| prompt | Yes | What to analyze or ask about the image. E.g. 'Describe this screenshot', 'What error is shown?', 'Extract all text from this image' | |
| image_url | Yes | Image source: local file path (/path/to/image.png) or HTTP(S) URL (https://example.com/image.jpg) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the full burden. It discloses key behavioral aspects: external AI processing via OpenRouter, support for local paths and URLs, and text output. Still, it does not explicitly state that the tool is read-only, nor does it mention potential failure modes, network/privacy implications, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two clear sentences, front-loaded with the core purpose, followed by input and output details. No filler or redundancy; every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a straightforward image-analysis tool with 100% schema coverage and no output schema, the description provides adequate context: what it does, where it runs, accepted input forms, and return type. It lacks richer details like error handling or model defaults, but those are either in the schema or not critical for a simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already clearly documents all three parameters. The description adds minimal new meaning beyond restating that image_url can be a local path or URL and that output is text, which is already present in the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Analyze an image using AI vision'), identifies the subject (image), names the underlying provider (Gemini via OpenRouter), and clarifies accepted input types and output. It fully distinguishes the tool's purpose even without sibling tools present.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies when to use the toolβwhenever image analysis is neededβand gives examples in the schema. However, there is no explicit guidance on when not to use it or mention of alternative tools, though no siblings are listed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
The server has exactly one tool, so there is no possibility of confusing it with others. Its purpose is clearly stated and distinct.
The single tool follows a clean verb_noun pattern (vision_analyze), which is consistent and self-explanatory.
With only one tool, the server is extremely minimal and feels thin for broader workflows, though it is not trivial and adequately serves a focused purpose.
For a server dedicated solely to image analysis, the single tool fully covers the intended capability. There are no obvious missing operations within this narrow domain.
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
Analyze images and videos with Gemini to get fast, reliable visual insights. Handle content from Uβ¦
AI LLM with Gemini, MiniMax, Replicate, OpenRouter. Vision, search, code review. USDC on Base.
Analyze images from multiple angles to extract detailed insights or quick summaries. Describe visuβ¦
OCR, transcription, file extraction, and image generation for AI agents via MCP.
Related MCP Servers
- FlicenseCqualityDmaintenanceEnables image captioning and analysis through natural language by processing images from URLs or local files. Supports both OpenRouter's Gemini 2.5 Flash and local vision models for generating concise, descriptive captions.4
- AlicenseBqualityDmaintenanceEnables AI agents to analyze and understand images using OpenRouter's vision models. Supports screenshots, photos, diagrams, and web content with specialized tools for webpage and mobile app analysis.35711MIT
- AlicenseAqualityDmaintenanceEnables image analysis and understanding using Vision Language Models through OpenAI-compatible APIs. Supports analyzing images from URLs or local files with custom prompts.12MIT
- AlicenseBqualityDmaintenanceEnables vision capabilities for any AI model by routing image analysis requests through OpenRouter's vision models. It provides tools to analyze images from URLs, local file paths, or base64 data.210120MIT
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/rezkycodes/mcp-vision-analyze'
If you have feedback or need assistance with the MCP directory API, please join our Discord server