Skip to main content
Glama

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 install

Prerequisites

  • Ollama must be running with a vision model installed:

    ollama pull llava
  • macOS (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:

  1. Use vision_screenshot to capture current screen state

  2. Pass the analysis to elvis_delegate for context-aware task processing

  3. ELVIS 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 tools
helpA

Get comprehensive documentation for all vision functions

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to the image file
modelNoVision model to usellava
promptNoWhat to analyzeDescribe this image

TDQS

B3.4/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
modelNoVision model to usellava
promptNoWhat to analyze in the camera imageDescribe what you see in this image

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
modelNoVision model to usellava
promptNoWhat to analyze or look for in the screenshotDescribe what you see on the screen

TDQS

B3.4/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

A3.5/5.0
Disambiguation5/5

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.

Naming Consistency3/5

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.

Tool Count5/5

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.

Completeness4/5

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

ActivityInactive
ResponsivenessSyncing

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

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    An 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,060
    10
    MIT
  • F
    license
    A
    quality
    C
    maintenance
    MCP 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
  • A
    license
    Not graded
    quality
    A
    maintenance
    Local 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.
    6
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    MCP 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.
    2
    MIT

Latest Blog Posts

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