vision-mcp
Vision MCP Server
Ein Model Context Protocol (MCP)-Server, der Agenten, die mit nicht-multimodalen Modellen verbunden sind, Bildverständnis verleiht (DeepSeek, ältere GPT-4, lokale kleine Modelle usw.): Der Agent übergibt ein Bild an das MCP-Tool, der Server ruft ein Vision-Modell auf und gibt Text zurück.
Unterstützt große Anbieter in China und den USA sowie jeden OpenAI-kompatiblen Endpunkt. Offizielle SDKs zuerst, Abstraktion vor Implementierung, nicht-invasive Anbietererweiterungen.
中文文档见 README.zh-CN.md
Funktionen
4 Tools:
analyze_image/describe_image/ocr_image/list_providers, alle geben reinen Markdown-Text zurück13 integrierte Anbieter: OpenAI / Anthropic / Google Gemini / Qwen (DashScope) / Zhipu / Doubao (Volcengine) / ERNIE (Qianfan) / StepFun / Ollama / Alibaba Bailian / SiliconFlow / OpenRouter / benutzerdefinierter OpenAI-kompatibler Endpunkt
Drei Bildeingaben: lokaler Pfad / http(s)-URL / base64 (data-URI oder rohes base64), automatisch erkannt
Dreistufige Fallback-Kette: offizielles SDK → OpenAI-kompatibler Endpunkt → natives fetch (siehe SPEC §1)
Zustandslos: Jeder Aufruf ist unabhängig; Bilder und Ergebnisse werden nie gecacht; Schlüssel werden nur aus Umgebungsvariablen gelesen
Related MCP server: vision-mcp
Schnellstart
Option A: npx (auf npm veröffentlicht, kein Repo nötig)
npx -y @inferai/vision-mcpOption B: lokaler Build
git clone <repo> && cd vision-mcp
pnpm install
pnpm build
node dist/index.jsMCP-Konfigurationsbeispiele (stdio)
Der Server spricht den stdio-Transport: Der MCP-Client startet den Prozess und tauscht JSON-RPC-Nachrichten über stdin/stdout aus. Konfigurieren Sie ihn dort, wo Ihr Client MCP-Server definiert:
Claude Code: projektweite
.mcp.jsonoder benutzerweite~/.claude.json(mcpServers-Schlüssel)Claude Desktop:
claude_desktop_config.jsonJeder MCP-Client (Cursor, selbstgebaute Agenten usw.): gleiche Struktur
npx-Version (verfügbar, nachdem das Paket veröffentlicht wurde):
{
"mcpServers": {
"vision-mcp": {
"command": "npx",
"args": ["-y", "@inferai/vision-mcp"],
"env": {
"OPENAI_API_KEY": "sk-...",
"DASHSCOPE_API_KEY": "sk-..."
}
}
}
}Lokale Entwicklung (Pfad anpassen; --env-file-if-exists=.env lädt .env nativ):
{
"mcpServers": {
"vision-mcp": {
"command": "node",
"args": ["--env-file-if-exists=.env", "/absolute/path/to/vision-mcp/dist/index.js"],
"env": {
"OPENAI_API_KEY": "sk-..."
}
}
}
}Mit Startargumenten (Anbieter-Standardwerte per argv überschreiben, siehe unten):
{
"mcpServers": {
"vision-mcp": {
"command": "npx",
"args": [
"-y",
"@inferai/vision-mcp",
"--default-provider=dashscope",
"--siliconflow-api-key=sk-...",
"--siliconflow-model=Qwen/Qwen2.5-VL-7B-Instruct"
],
"env": {
"DASHSCOPE_API_KEY": "sk-..."
}
}
}
}stdio-Hinweise:
stdout transportiert nur das MCP-Protokoll — der Server gibt dort nie Logs aus; Diagnosen gehen an stderr
der Client verwaltet den Prozesslebenszyklus (Start beim Start, Beenden beim Exit); kein Daemon nötig
der erste
npx-Lauf lädt das Paket herunter und kann einige Sekunden dauernUmgebungsvariablen können auch aus der Shell-Umgebung stammen, wenn der Client diese erbt (kein
env-Block nötig)
Debuggen mit MCP Inspector:
pnpm dlx @modelcontextprotocol/inspector node dist/index.js --xxx-api-key=xxx --xxx2-api-key=xxxVariablen setzen
env-Block in der MCP-Konfiguration (empfohlen, am zuverlässigsten plattformübergreifend) — schreiben Sie die Variablen in dasenv-Objekt oben.env-Datei (lokale Entwicklung) — kopieren Sie.env.examplenach.env, füllen Sie sie aus, dannnode --env-file-if-exists=.env dist/index.js(Node 22 nativ, kein dotenv nötig)Shell-Export —
export OPENAI_API_KEY=sk-xxxund dann ausführen
Anbieter ohne Schlüssel erscheinen in list_providers als nicht verfügbar und melden die fehlende Variable beim Aufruf.
Veröffentlichung (bevor npx funktioniert)
pnpm publish # or pnpm release (changeset flow)Umgebungsvariablen
API_KEY, BASE_URL und MODEL jedes Anbieters unterstützen Umgebungs-Overrides (Konvention: <PROVIDER_PREFIX>_API_KEY / <PROVIDER_PREFIX>_BASE_URL / <PROVIDER_PREFIX>_MODEL):
Anbieter | Umgebungsvariablen | Standardmodell |
OpenAI |
|
|
Anthropic |
|
|
Google Gemini |
|
|
Alibaba DashScope |
|
|
Zhipu |
|
|
Volcengine Doubao |
|
|
Baidu Qianfan |
|
|
StepFun |
|
|
Ollama (lokal) |
| — (kein integrierter Standard; Endpunkt und Modell müssen gesetzt werden) |
Alibaba Bailian |
|
|
SiliconFlow |
|
|
OpenRouter |
|
|
Benutzerdefiniert kompatibel |
| — |
?= optional (hat einen integrierten Standard);*= erforderlich.
Globale Konfiguration:
Umgebungsvariable | Standard | Beschreibung |
| erster verfügbarer | Standard-Anbieter |
| Anbieter-Standard | Standardmodell |
| Tabellenreihenfolge | Anbieter-Priorität (kommagetrennt, hohe zuerst, z. B. |
| 0 (aus) | Wiederholungsanzahl pro Anbieter vor dem Fallback |
| 0 (aus) | Maximale Anbieter-Fallbacks, bevor aufgegeben wird |
| 20 MB | Bildgrößenlimit |
| 60000 | Download- und Anfrage-Timeout (ms) |
Fallback-Kette
Wenn mehrere Anbieter verfügbar sind, durchlaufen Aufrufe die Prioritätskette: konfigurierter Standard → VISION_MCP_PROVIDER_PRIORITY-Liste → Tabellenreihenfolge (nicht verfügbare Anbieter werden übersprungen).
jeder Anbieter wird bei Anbieterfehlern (Upstream-Fehler, Timeouts) bis zu
VISION_MCP_MAX_RETRIES-mal erneut versuchtnachdem ein Anbieter seine Wiederholungen erschöpft hat, wird der nächste verfügbare Anbieter in der Kette versucht, bis zu
VISION_MCP_MAX_FALLBACKSFallbacksnur Anbieterfehler lösen Wiederholung/Fallback aus; Konfigurations- oder Bildfehler schlagen sofort fehl
ein explizit angefordertes
provider-Argument wird allein versucht (kein Fallback)wenn alles fehlschlägt, listet der Fehler jeden versuchten Anbieter und dessen letzten Fehler auf
Auch als argv verfügbar: --provider-priority=..., --max-retries=N, --max-fallbacks=N (überschreiben Umgebungsvariablen).
MCP-Startargumente (argv)
apiKey / baseUrl / model jedes Anbieters können über Startargumente überschrieben werden (höhere Priorität als Umgebungsvariablen), Format --<provider>-<field>:
node dist/index.js \
--openai-api-key=sk-xxx \
--openai-base-url=https://my-gateway.example.com/v1 \
--openai-model=gpt-4o-mini \
--dashscope-api-key=sk-xxx \
--default-provider=dashscopeGlobal:
--default-provider <name>/--default-model <name>Pro Anbieter:
--<provider>-api-key,--<provider>-base-url,--<provider>-model(Gleichheits- oder Leerzeichenform funktionieren beide)Jeder OpenAI-kompatible Drittanbieterdienst: in einer Zeile mit
--openai-compat-base-url+--openai-compat-api-key+--openai-compat-modelverbinden; oderbase-urleines beliebigen integrierten Anbieters auf einen Mirror/Proxy zeigen lassen
Priorität: Tool-Argumente provider/model > Startargumente (pro Anbieter > globaler Standard) > Umgebungsvariablen > integrierte Anbieter-Standardwerte.
Tools
Tool | Argumente | Beschreibung |
|
| Allgemeine Bildanalyse |
|
| Bildinhalt beschreiben (Standardanweisung) |
|
| OCR, Layout erhaltend |
| — | Anbieterliste und Konfigurationsstatus |
image akzeptiert: lokalen Pfad / http(s)://-URL / data:-URI / rohes base64, automatisch erkannt.
Sicherheitshinweis: URL-Downloads sind SSRF-geschützt — jeder Hop (einschließlich Weiterleitungen) wird validiert und URLs, die auf Loopback-, private oder Link-Local-Adressen auflösen, werden blockiert (ein Hinweis im Fehler erklärt warum).
Anbieterintegration (dreistufige Fallback-Kette)
provider | Integration | Hinweise |
| OpenAI-kompatibler Adapter (openai SDK) | Ein Adapter, konfigurierbare baseURL |
| Offizielles SDK @anthropic-ai/sdk | messages + Bild-Content-Block |
| Offizielles SDK @google/generative-ai | generateContent + inlineData |
| Natives fetch | Offizielles npm-Paket ohne Vision; direkte multimodale Generierungs-API |
| Natives fetch | Offizielles SDK akzeptiert nur String-Content; direkte v4-API |
| Natives fetch | Offizielle openapi ist eine Managementebene; direkte Ark-API |
| Natives fetch | Offizielles SDK ist nur für Strings; AK/SK → Token → v2-API |
Einen Anbieter hinzufügen: Für OpenAI-kompatible Endpunkte fügen Sie eine Zeile zu RULES in src/core/config.ts hinzu plus ein Mapping in der Factory-Tabelle in src/index.ts — kein neuer Code. Für Implementierungen mit offiziellem SDK oder nativem fetch: siehe SPEC §1.
Entwicklung
pnpm check # biome checks
pnpm test # rstest unit tests (injected mocks, no network)
pnpm build # rslib buildEchtaufruf-Smoke-Tests (werden nur gegen Anbieter ausgeführt, deren Schlüssel konfiguriert sind; andernfalls übersprungen):
OPENAI_API_KEY=sk-... pnpm exec rstest tests/e2eArchitektur
src/
├── index.ts # Entry: composition root, stdio startup
├── core/ # Abstraction: interfaces / image loading / config / registry
├── providers/ # Adapters: official SDK or compatible endpoints, protocol conversion only
└── server/tools.ts # MCP tool layer: zod validation + error mappingVollständige Spezifikation: SPEC.md.
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 Servers
- FlicenseNot gradedqualityBmaintenanceA versatile MCP server that adds vision capabilities (image analysis, OCR, image/video generation) to AI models lacking native vision, with support for multiple providers and automatic task routing.1
- AlicenseAqualityBmaintenanceMCP server that provides an analyze_image tool using OpenAI-compatible vision LLMs to describe images from file paths, URLs, or base64 data.1201MIT
- FlicenseAqualityBmaintenanceOpenAI-compatible vision MCP server with 14 provider presets that enables MCP clients to analyze images, including screenshots, text, and UI mockups, via a single analyze_image tool.2
- AlicenseNot gradedqualityCmaintenanceMCP server for analyzing images using multiple vision LLM providers (OpenCode, OpenAI, Anthropic, Google, and custom OpenAI-compatible endpoints). Provides tools to analyze single or multiple images, list providers, and test vision capabilities.MIT
Related MCP Connectors
OCR, transcription, file extraction, and image generation for AI agents via MCP.
Free public MCP for AI agents — 193 tools, 44 workflows. No API key.
Hosted MCP with 91 agent tools: X, domains, SEO, Maps, Trends, Search, YouTube, TikTok, and more.
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/aesoper101/vision-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server