Skip to main content
Glama

mcp-openvision-main

MCP OpenVision

CI PyPI-Version Python-Versionen Lizenz: MIT Kauf mir einen Kaffee Schmiedeabzeichen

Überblick

MCP OpenVision ist ein Model Context Protocol (MCP)-Server, der Bildanalysefunktionen auf Basis von OpenRouter-Vision-Modellen bereitstellt. Er ermöglicht KI-Assistenten die Bildanalyse über eine einfache Schnittstelle innerhalb des MCP-Ökosystems.

Related MCP server: MCP Read Images

Installation

Installation über Smithery

So installieren Sie mcp-openvision für Claude Desktop automatisch über Smithery :

npx -y @smithery/cli install @Nazruden/mcp-openvision --client claude

Verwenden von pip

pip install mcp-openvision

Verwendung von UV (empfohlen)

uv pip install mcp-openvision

Konfiguration

MCP OpenVision erfordert einen OpenRouter-API-Schlüssel und kann über Umgebungsvariablen konfiguriert werden:

  • OPENROUTER_API_KEY (erforderlich): Ihr OpenRouter-API-Schlüssel

  • OPENROUTER_DEFAULT_MODEL (optional): Das zu verwendende Vision-Modell

OpenRouter Vision-Modelle

MCP OpenVision funktioniert mit jedem OpenRouter-Modell, das Vision-Funktionen unterstützt. Das Standardmodell ist qwen/qwen2.5-vl-32b-instruct:free , Sie können jedoch jedes andere kompatible Modell angeben.

Zu den über OpenRouter verfügbaren beliebten Vision-Modellen gehören:

  • qwen/qwen2.5-vl-32b-instruct:free (Standard)

  • anthropic/claude-3-5-sonnet

  • anthropic/claude-3-opus

  • anthropic/claude-3-sonnet

  • openai/gpt-4o

Sie können benutzerdefinierte Modelle angeben, indem Sie die Umgebungsvariable OPENROUTER_DEFAULT_MODEL festlegen oder den model direkt an die Funktion image_analysis übergeben.

Verwendung

Testen mit MCP Inspector

Am einfachsten testen Sie MCP OpenVision mit dem MCP Inspector-Tool:

npx @modelcontextprotocol/inspector uvx mcp-openvision

Integration mit Claude Desktop oder Cursor

  1. Bearbeiten Sie Ihre MCP-Konfigurationsdatei:

    • Windows: %USERPROFILE%\.cursor\mcp.json

    • macOS: ~/.cursor/mcp.json oder ~/Library/Application Support/Claude/claude_desktop_config.json

  2. Fügen Sie die folgende Konfiguration hinzu:

{
  "mcpServers": {
    "openvision": {
      "command": "uvx",
      "args": ["mcp-openvision"],
      "env": {
        "OPENROUTER_API_KEY": "your_openrouter_api_key_here",
        "OPENROUTER_DEFAULT_MODEL": "anthropic/claude-3-sonnet"
      }
    }
  }
}

Lokale Ausführung für die Entwicklung

# Set the required API key
export OPENROUTER_API_KEY="your_api_key"

# Run the server module directly
python -m mcp_openvision

Merkmale

MCP OpenVision bietet das folgende Kerntool:

  • image_analysis : Analysieren Sie Bilder mit Bildmodellen und unterstützen Sie verschiedene Parameter:

    • image : Kann bereitgestellt werden als:

      • Base64-kodierte Bilddaten

      • Bild-URL (http/https)

      • Lokaler Dateipfad

    • query : Benutzeranleitung für die Bildanalyseaufgabe

    • system_prompt : Anweisungen, die die Rolle und das Verhalten des Modells definieren (optional)

    • model : Zu verwendendes Vision-Modell

    • temperature : Steuert die Zufälligkeit (0,0–1,0)

    • max_tokens : Maximale Antwortlänge

Erstellen effektiver Abfragen

Der query ist entscheidend für aussagekräftige Ergebnisse der Bildanalyse. Eine gut formulierte Abfrage liefert Kontext zu:

  1. Zweck : Warum Sie dieses Bild analysieren

  2. Schwerpunktbereiche : Bestimmte Elemente oder Details, auf die Sie achten sollten

  3. Erforderliche Informationen : Die Art der Informationen, die Sie extrahieren müssen

  4. Formateinstellungen : Wie die Ergebnisse strukturiert sein sollen

Beispiele für effektive Abfragen

Einfache Abfrage

Erweiterte Abfrage

"Beschreiben Sie dieses Bild"

„Identifizieren Sie alle Einzelhandelsprodukte, die in diesem Ladenregalbild sichtbar sind, und schätzen Sie ihre Preisspanne.“

"Was ist auf diesem Bild?"

„Analysieren Sie diesen medizinischen Scan auf Anomalien, konzentrieren Sie sich auf den hervorgehobenen Bereich und stellen Sie mögliche Diagnosen bereit.“

"Analysieren Sie dieses Diagramm"

„Extrahieren Sie die numerischen Daten aus diesem Balkendiagramm, das die Quartalsumsätze zeigt, und identifizieren Sie die wichtigsten Trends von 2022-2023.“

"Lies den Text"

„Transkribieren Sie den gesamten sichtbaren Text in dieser Restaurantkarte und behalten Sie dabei die Namen, Beschreibungen und Preise der Gerichte bei.“

Indem Sie den Kontext dazu angeben, warum Sie die Analyse benötigen und welche spezifischen Informationen Sie suchen, helfen Sie dem Modell, sich auf relevante Details zu konzentrieren und wertvollere Erkenntnisse zu gewinnen.

Beispielverwendung

# Analyze an image from a URL
result = await image_analysis(
    image="https://example.com/image.jpg",
    query="Describe this image in detail"
)

# Analyze an image from a local file with a focused query
result = await image_analysis(
    image="path/to/local/image.jpg",
    query="Identify all traffic signs in this street scene and explain their meanings for a driver education course"
)

# Analyze with a base64-encoded image and a specific analytical purpose
result = await image_analysis(
    image="SGVsbG8gV29ybGQ=...",  # base64 data
    query="Examine this product packaging design and highlight elements that could be improved for better visibility and brand recognition"
)

# Customize the system prompt for specialized analysis
result = await image_analysis(
    image="path/to/local/image.jpg",
    query="Analyze the composition and artistic techniques used in this painting, focusing on how they create emotional impact",
    system_prompt="You are an expert art historian with deep knowledge of painting techniques and art movements. Focus on formal analysis of composition, color, brushwork, and stylistic elements."
)

Bildeingabetypen

Das Tool image_analysis akzeptiert verschiedene Arten von Bildeingaben:

  1. Base64-codierte Zeichenfolgen

  2. Bild-URLs – müssen mit http:// oder https:// beginnen

  3. Dateipfade :

    • Absolute Pfade : vollständige Pfade, die mit / (Unix) oder Laufwerksbuchstaben (Windows) beginnen

    • Relative Pfade : Pfade relativ zum aktuellen Arbeitsverzeichnis

    • Relative Pfade mit project_root : Verwenden Sie den Parameter project_root , um ein Basisverzeichnis anzugeben

Verwenden relativer Pfade

Wenn Sie relative Dateipfade verwenden (wie „examples/image.jpg“), haben Sie zwei Möglichkeiten:

  1. Der Pfad muss relativ zum aktuellen Arbeitsverzeichnis sein, in dem der Server ausgeführt wird

  2. Oder Sie können einen project_root -Parameter angeben:

# Example with relative path and project_root
result = await image_analysis(
    image="examples/image.jpg",
    project_root="/path/to/your/project",
    query="What is in this image?"
)

Dies ist insbesondere bei Anwendungen nützlich, bei denen das aktuelle Arbeitsverzeichnis möglicherweise nicht vorhersehbar ist oder wenn Sie auf Dateien mithilfe von Pfaden relativ zu einem bestimmten Verzeichnis verweisen möchten.

Entwicklung

Einrichten der Entwicklungsumgebung

# Clone the repository
git clone https://github.com/modelcontextprotocol/mcp-openvision.git
cd mcp-openvision

# Install development dependencies
pip install -e ".[dev]"

Codeformatierung

Dieses Projekt verwendet Black zur automatischen Codeformatierung. Die Formatierung wird durch GitHub Actions erzwungen:

  • Der gesamte Code, der in das Repository übertragen wird, wird automatisch mit Black formatiert

  • Für Pull Requests von Repository-Mitarbeitern formatiert Black den Code und committet ihn direkt in den PR-Zweig.

  • Für Pull Requests von Forks erstellt Black einen neuen PR mit dem formatierten Code, der in den ursprünglichen PR integriert werden kann.

Sie können Black auch lokal ausführen, um Ihren Code vor dem Commit zu formatieren:

# Format all Python code in the src and tests directories
black src tests

Tests ausführen

pytest

Freigabeprozess

Dieses Projekt verwendet einen automatisierten Freigabeprozess:

  1. Aktualisieren Sie die Version in pyproject.toml gemäß den Prinzipien der semantischen Versionierung

    • Sie können das Hilfsskript verwenden: python scripts/bump_version.py [major|minor|patch]

  2. Aktualisieren Sie die CHANGELOG.md mit Details zur neuen Version

    • Das Skript erstellt außerdem einen Vorlageneintrag in CHANGELOG.md, den Sie ausfüllen können

  3. Übernehmen und übertragen Sie diese Änderungen in den main

  4. Der GitHub Actions-Workflow wird:

    • Erkennen der Versionsänderung

    • Automatisch eine neue GitHub-Version erstellen

    • Lösen Sie den Veröffentlichungsworkflow aus, der auf PyPI veröffentlicht

Diese Automatisierung trägt dazu bei, einen konsistenten Veröffentlichungsprozess aufrechtzuerhalten und stellt sicher, dass jede Veröffentlichung ordnungsgemäß versioniert und dokumentiert ist.

Unterstützung

Wenn Sie dieses Projekt hilfreich finden, denken Sie darüber nach, mir einen Kaffee zu spendieren, um die laufende Entwicklung und Wartung zu unterstützen.

Lizenz

Dieses Projekt ist unter der MIT-Lizenz lizenziert – Einzelheiten finden Sie in der Datei LICENSE .

Available Tools

1 tool
image_analysisA
Analyze an image using OpenRouter's vision capabilities.

This tool allows you to send an image to OpenRouter's vision models for analysis.
You provide a query to guide the analysis and can optionally customize the system prompt
for more control over the model's behavior.

Args:
    image: The image as a base64-encoded string, URL, or local file path
    query: Text prompt to guide the image analysis. For best results, provide context
           about why you're analyzing the image and what specific information you need.
           Including details about your purpose and required focus areas leads to more
           relevant and useful responses.
    system_prompt: Instructions for the model defining its role and behavior
    model: The vision model to use (defaults to the value set by OPENROUTER_DEFAULT_MODEL)
    max_tokens: Maximum number of tokens in the response (100-4000)
    temperature: Temperature parameter for generation (0.0-1.0)
    top_p: Optional nucleus sampling parameter (0.0-1.0)
    presence_penalty: Optional penalty for new tokens based on presence in text so far (0.0-2.0)
    frequency_penalty: Optional penalty for new tokens based on frequency in text so far (0.0-2.0)
    project_root: Optional root directory to resolve relative image paths against

Returns:
    The analysis result as text

Examples:
    Basic usage with a file path:
        image_analysis(image="path/to/image.jpg", query="Describe this image in detail")

    Basic usage with an image URL:
        image_analysis(image="https://example.com/image.jpg", query="Describe this image in detail")

    Basic usage with a relative path and project root:
        image_analysis(image="examples/image.jpg", project_root="/path/to/project", query="Describe this image in detail")

    Usage with a detailed contextual query:
        image_analysis(
            image="path/to/image.jpg",
            query="Analyze this product packaging design for a fitness supplement. Identify all nutritional claims,
                  certifications, and health icons. Assess the visual hierarchy and how the key selling points
                  are communicated. This is for a competitive analysis project."
        )

    Usage with custom system prompt:
        image_analysis(
            image="path/to/image.jpg",
            query="What objects can you see in this image?",
            system_prompt="You are an expert at identifying objects in images. Focus on listing all visible objects."
        )
ParametersJSON Schema
NameRequiredDescriptionDefault
imageYes
queryNoDescribe this image in detail
system_promptNoYou are an expert vision analyzer with exceptional attention to detail. Your purpose is to provide accurate, comprehensive descriptions of images that help AI agents understand visual content they cannot directly perceive. Focus on describing all relevant elements in the image - objects, people, text, colors, spatial relationships, actions, and context. Be precise but concise, organizing information from most to least important. Avoid making assumptions beyond what's visible and clearly indicate any uncertainty. When text appears in images, transcribe it verbatim within quotes. Respond only with factual descriptions without subjective judgments or creative embellishments. Your descriptions should enable an agent to make informed decisions based solely on your analysis.
modelNo
max_tokensNo
temperatureNo
top_pNo
presence_penaltyNo
frequency_penaltyNo
project_rootNo

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden. It explains the core behavior (image analysis via OpenRouter's vision models) and mentions customization options, but doesn't disclose important behavioral traits like rate limits, authentication requirements, error conditions, or what happens with invalid inputs. The examples help but don't cover edge cases.

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 well-structured with clear sections (overview, args, returns, examples) and front-loads the core purpose. While comprehensive, some sentences could be more concise, particularly in the parameter explanations where some details are repeated across multiple examples.

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?

Given the tool's complexity (10 parameters, no annotations, no output schema), the description provides substantial context through detailed parameter explanations and multiple examples. However, it lacks information about return format details beyond 'text' and doesn't cover error handling or operational constraints that would be important for a vision analysis tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description provides extensive parameter documentation beyond the schema, which has 0% description coverage. It explains each parameter's purpose, format requirements (base64, URL, file path), ranges (max_tokens 100-4000), defaults, and provides detailed guidance for the query parameter. This fully compensates for the schema's lack of descriptions.

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 clearly states the tool 'analyzes an image using OpenRouter's vision capabilities' and specifies it's for sending images to vision models for analysis. It provides a specific verb ('analyze') and resource ('image'), but since there are no sibling tools, it doesn't need to differentiate from alternatives.

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 provides implied usage through examples showing different scenarios (basic usage, detailed contextual queries, custom system prompts). However, it lacks explicit guidance on when to use this tool versus alternatives or any prerequisites for successful invocation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A3.7/5.0
Disambiguation5/5

With only one tool, there is no possibility of ambiguity or overlap between tools. The single tool 'image_analysis' has a clearly defined purpose that cannot be confused with any other tool in this server.

Naming Consistency5/5

The single tool follows a clear verb_noun pattern ('image_analysis'), and with only one tool, there is no inconsistency to evaluate. The naming is straightforward and descriptive.

Tool Count2/5

A single tool is too few for a server named 'MCP OpenVision' that implies broader vision capabilities. While the tool is well-described, the server feels thin and limited in scope, lacking complementary tools like image generation, comparison, or batch processing that would make it more complete.

Completeness2/5

The server is severely incomplete for a vision domain. It only provides image analysis, missing essential operations like image generation, editing, transformation, or multi-image processing. Agents will hit dead ends when needing to perform common vision tasks beyond analysis.

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
    D
    maintenance
    A powerful server that integrates the Moondream vision model to enable advanced image analysis, including captioning, object detection, and visual question answering, through the Model Context Protocol, compatible with AI assistants like Claude and Cline.
    19
    Apache 2.0
  • A
    license
    A
    quality
    D
    maintenance
    MCP OpenVision is a Model Context Protocol (MCP) server that provides image analysis capabilities powered by OpenRouter vision models. It enables AI assistants to analyze images via a simple interface within the MCP ecosystem.
    1
    16
    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/mikeysrecipes/mcp-openvision'

If you have feedback or need assistance with the MCP directory API, please join our Discord server