mcp-vision
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-visionTake a screenshot and describe what you see"
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
MCP server for vision capabilities - screenshot and camera analysis using Ollama vision models.
Features
Screenshot Analysis: Capture and analyze screenshots with AI
Camera Capture: Take photos from webcam and analyze them
Image Analysis: Analyze existing image files
Streaming Output: Real-time streaming of AI analysis
Multiple Models: Support for various vision models (llava, bakllava, etc.)
Related MCP server: ollama-vision-mcp
Installation
cd /Users/bard/Code/mcp-vision
npm installPrerequisites
Ollama must be running with a vision model installed:
ollama pull llavamacOS (for screenshot functionality)
Camera access (for webcam features)
Tools
vision_screenshot
Take a screenshot and analyze it with AI.
{
prompt: "What application is open?", // optional
model: "llava", // optional
region: { // optional
x: 100,
y: 100,
width: 500,
height: 400
}
}vision_camera
Capture from camera and analyze.
{
prompt: "What do you see?", // optional
model: "llava", // optional
device: "FaceTime HD Camera" // optional
}vision_analyze_image
Analyze an existing image file.
{
path: "/path/to/image.jpg",
prompt: "Describe this image", // optional
model: "llava" // optional
}vision_list_cameras
List available camera devices.
Usage with Claude Desktop
Add to your Claude Desktop configuration:
{
"mcpServers": {
"vision": {
"command": "node",
"args": ["/Users/bard/Code/mcp-vision/src/index.js"]
}
}
}Integration with ELVIS
This tool can be integrated with ELVIS for enhanced visual context:
Use
vision_screenshotto capture current screen statePass the analysis to
elvis_delegatefor context-aware task processingELVIS can use visual information to better understand and complete tasks
Example Workflow
// 1. Analyze what's on screen
vision_screenshot({ prompt: "What code is visible?" })
// 2. Use with ELVIS
elvis_delegate({
task: "Fix the syntax error shown",
context: "Based on the screenshot analysis"
})Streaming Output
The tool streams AI responses in real-time, providing immediate feedback as the model analyzes images. This is shown in the MCP server logs and can be used for progress tracking.
Available Tools
4 toolshelpA
Get comprehensive documentation for all vision functions
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It states the tool 'gets comprehensive documentation', which implies a read-only, informational behavior. However, it does not disclose additional details such as the format of the documentation or any potential side effects. The description is minimally transparent but not contradictory.
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?
The description is a single concise sentence that is front-loaded with the main action. Every word earns its place, and there is no unnecessary information. This is exemplary conciseness.
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 simple help tool with no parameters and no output schema, the description is fairly complete. It clearly states what the tool does and implies the scope (vision functions). However, it could be slightly enhanced by explicitly mentioning that it covers the sibling tools, but the context signals already provide those siblings, so the description is adequate.
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?
The tool has 0 parameters, so the schema is trivially complete. The baseline for 0-parameter tools is 4, and the description does not need to add parameter information. It simply focuses on the tool's purpose.
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 clearly states the tool's function: 'Get comprehensive documentation for all vision functions'. It uses a specific verb ('Get') and a clear resource ('documentation for all vision functions'), distinguishing it from sibling tools that perform vision actions rather than providing help.
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 implies the tool is for obtaining help about vision functions, but it doesn't explicitly state when to use it or mention any alternatives. For example, it doesn't say 'use this when you need details about vision_screenshot'. Usage is inferred from the name and description rather than explicitly guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vision_analyze_imageB
Analyze an image file with Ollama vision model
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Path to the image file | |
| model | No | Vision model to use | llava |
| prompt | No | What to analyze | Describe this image |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description bears the full burden of disclosing behavioral traits. It only states the action without revealing what the tool returns, whether it requires a local Ollama service, or any potential side effects. This leaves significant ambiguity for the agent.
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?
The description is a single, focused sentence that immediately conveys the tool's purpose without any redundant information. It is perfectly concise and well-structured.
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?
The tool has no output schema, yet the description does not explain what the analysis returns. It also omits prerequisites like the need for a running Ollama instance. Given the moderate complexity and lack of output documentation, the description is incomplete.
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?
The input schema already provides comprehensive descriptions for all three parameters (path, model, prompt), resulting in 100% schema coverage. The tool description adds no additional parameter context beyond what the schema states, but the schema itself sufficiently explains each parameter.
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 clearly states the tool's function: 'Analyze an image file with Ollama vision model'. It names the action (analyze), the resource (image file), and the specific model type, making it distinct from sibling tools like vision_screenshot or vision_camera which capture images.
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 implies usage for analyzing existing image files but does not explicitly state when to use this tool versus the capture-focused siblings. There are no exclusions or alternative tool recommendations, leaving the guidance at an implied level.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vision_cameraC
Take a photo with camera and analyze it
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | Vision model to use | llava |
| prompt | No | What to analyze in the camera image | Describe what you see in this image |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description lacks any behavioral detail such as requiring camera permission, opening a live view, or returning a textual analysis. With no annotations, the description does not cover the full burden of behavioral disclosure.
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?
The description is a single sentence with no extraneous words, quickly conveying the core action. It is somewhat vague but structurally strong.
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 tool with no annotations and no output schema, the description is underspecified. It doesn't explain the analysis outcome, possible model differences, or any prerequisites.
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 descriptions cover both parameters completely (model and prompt), so the description need not add param details. It doesn't add any, but the baseline of 3 is appropriate.
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 uses the verb 'take' and clearly identifies the camera as the resource, distinguishing it from screenshot-based capture. However, 'analyze it' is vague and doesn't specify the type of analysis.
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?
No guidance is provided on when to use this tool versus the siblings (vision_screenshot, vision_analyze_image). The description only states what it does, leaving the agent to infer use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vision_screenshotB
Take a screenshot and analyze it with Ollama vision model
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | Vision model to use | llava |
| prompt | No | What to analyze or look for in the screenshot | Describe what you see on the screen |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the burden of disclosure. It states the action ('screenshot') and the analysis, but it fails to disclose important behavioral traits such as that the screenshot captures potentially sensitive screen content, may require system permissions, and that data is sent to an external Ollama model. There is no mention of side effects or reversibility.
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?
The description is a single, concise sentence that directly states the tool's purpose. It avoids unnecessary details and is easy to skim. However, it may be under-specified for a tool with external dependencies, but no wordiness is present.
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 simple tool with 2 optional parameters and no output schema, the description provides a reasonable high-level overview. However, given the lack of annotations, it does not explain behavior like screen capture permissions or model usage, and it does not clearly differentiate from vision_analyze_image. It is acceptable but not thorough.
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?
The schema covers 100% of parameters with descriptions ('model' and 'prompt'), and the description does not add extra semantic context. Since the schema already documents what each parameter does, the description adds no additional meaning beyond stating the overall task. Baseline 3 is appropriate given high schema coverage and no gaps to compensate for.
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 uses a specific verb+resource structure: 'Take a screenshot and analyze it with Ollama vision model.' This clearly distinguishes it from sibling tools like vision_camera (likely camera input) and vision_analyze_image (likely analyzing provided images). The scope is explicit: capture the current screen and process it.
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 implies usage context: 'Take a screenshot' indicates it is for analyzing the current screen. However, it provides no explicit guidance on when to use this tool versus alternatives (e.g., when an image already exists), nor does it mention any exclusions or prerequisites. Sibling tool names suggest alternatives, but no direction is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool targets a distinct input source: screenshot captures the screen, camera captures from a physical camera, and analyze_image works with existing files. The help tool is clearly auxiliary and separate from the vision functions.
Three tools share a 'vision_' prefix, but the structure varies: 'screenshot' and 'camera' are single nouns used as verbs, while 'analyze_image' follows verb_noun. The 'help' tool breaks the prefix pattern entirely, making the naming inconsistent.
With four tools, the server is well-scoped for its purpose. It covers the three primary vision input methods (screen, camera, file) plus documentation, with no redundancy or unnecessary bloat.
The core vision analysis workflows are covered: capturing and analyzing from screen or camera, and analyzing existing images. However, there are minor gaps such as no way to capture an image without analysis, no model management, and no URL-based image input, though these are not critical for the server's stated purpose.
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
MCP server for Grok Imagine AI video generation
MCP server for Google Veo AI video generation
MCP server for Wan AI video generation
Related MCP Servers
- 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
- FlicenseAqualityCmaintenanceMCP server enabling LLM clients without vision capability to process images by delegating to local Ollama vision models. Supports describing images, OCR, asking questions, and processing clipboard images.4
- AlicenseNot gradedqualityAmaintenanceLocal vision-capable MCP server that lets AI agents describe screenshots, UI, charts, and photos via vision and OCR tools, with support for multiple providers and automatic fallback.6MIT
- AlicenseNot gradedqualityBmaintenanceMCP server for local Ollama vision analysis, enabling text-only agents like Claude Code to inspect images via a single tool. Processes images locally with Ollama, keeping image bytes on the machine and returning text reports.2MIT
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/MikeyBeez/mcp-vision'
If you have feedback or need assistance with the MCP directory API, please join our Discord server