plain-sight
Version: 1.0.0
Eine KI beschreibt, was sie sieht. Generativer Bildbeschreiber — MCP-Server + CLI, das Florence-2 (MIT) für Fließtextbeschreibungen, OCR und LoRA-Datensatz-Beschriftungsdateien kapselt. Läuft lokal, standardmäßig deterministisch.
Das Geschwisterprojekt von ai-eyes-mcp:
ai-eyes-mcp | plain-sight | |
Aufgabe | bewertet Bilder | beschreibt Bilder |
Modell | SigLIP2 (diskriminativ) | Florence-2 (generativ) |
Ausgabe | kalibrierte Bewertungen | Fließtext / OCR / Beschriftungsdateien |
Fehlerbild | kann nicht erzählen | kann Details erfinden |
Einsatz, wenn | „Enthält dieses Bild X?“ | „Was ist auf diesem Bild?“ |
Ehrlichkeitsvertrag
Beschreibungen sind generativ: flüssig, meist genau und in der Lage, Details
zu erfinden. plain-sight macht die Ausgabe reproduzierbar (deterministisches Decoding –
das gleiche Bild ergibt die gleiche Beschriftung), nicht garantiert korrekt. Wenn du
eine spezifische Aussage über ein Bild überprüfen willst, verwende image_verify von
ai-eyes-mcp – es misst, es erzählt nicht. Die zwei Tools basieren bewusst auf
verschiedenen Modellfamilien, damit das eine das andere überprüfen kann.
Related MCP server: fm-mcp-comfyui-bridge
Tools (MCP)
Tool | Was es tut |
| Ein Bild → Fließtextbeschreibung (3 Granularitätsstufen) |
| N Bilder → |
| OCR — sichtbaren Text aus einem Bild extrahieren |
| Health Check: Modell, Gerät, geladener Zustand |
| Mitgelieferte Referenzbilder beschreiben, Ausgabe grob prüfen |
Schnellstart
pip install -e .
plain-sight-mcp # starts the STDIO MCP serverOder als Modul ausführen: python -m plain_sight
CLI
# One image, full paragraph
plain-sight describe hero.png
# One short sentence
plain-sight describe hero.png --detail low
# OCR
plain-sight ocr screenshot.png
# The dataset lane: caption a directory into .txt sidecars with a trigger token
plain-sight batch ./dataset --prefix "mcpt_style, " --detail high
# Re-runs are idempotent — existing sidecars are skipped unless you --overwrite
plain-sight batch ./dataset --prefix "mcpt_style, " --overwriteClaude Code Konfiguration
{
"mcpServers": {
"plain-sight": {
"command": "plain-sight-mcp",
"env": {
"PLAIN_SIGHT_MODEL_DIR": "/path/to/model/cache"
}
}
}
}Der Beschriftungsvertrag (Datensatz-Spur)
Gebaut für LoRA-Trainingsdatensätze (style-dataset-lab und Verwandte):
Exakte Basisnamenspaarung:
img_0042.png→img_0042.txt. Kein Zähler-Suffix — im Gegensatz zum SaveText-Knoten von ComfyUI, der_00001anhängt.Reine Verkettung: die Begleitdatei enthält
prefix + caption + suffixohne eingefügtes Trennzeichen. Du willst"mcpt_style, <caption>"? Setze das Komma-Leerzeichen in den Präfix.Idempotente Wiederholungen: Vorhandene Begleitdateien werden übersprungen (kosten nichts), außer mit
--overwrite/overwrite=true.Deterministisch:
do_sample=false+ Beam-Suche – erneutes Beschriften eines unveränderten Bildes erzeugt denselben Text, also bedeuten Unterschiede etwas.
Detailebenen
Die native Aufgabenleiter von Florence-2:
Ebene | Task-Token | Ausgabe |
|
| ein kurzer Satz |
|
| ein paar Sätze |
|
| ein ganzer Absatz |
high ist ein Absatz, kein Aufsatz – Florence-2 ist ein kompaktes (0,77B) Modell.
Seine Stärke ist Durchsatz und Lizenz, nicht kunstkritische Tiefe. Wenn eine
Beschreibung abgeschnitten aussieht, erhöhe max_new_tokens (Standard 1024, max. 4096).
Konfiguration
Umgebungsvariable | Standard | Zweck |
|
| HuggingFace-Modell |
| HF-Standard-Cache | Modell-Cache-Verzeichnis |
|
|
|
|
|
|
|
| Standard-Erzeugungslimit |
|
| Beam-Breite (deterministisches Decoding) |
|
|
|
| nicht gesetzt | Wenn wahr, Modell beim Serverstart lade |
Logging: nur in stderr (stdout ist der MCP-Protokollkanal), Loggername
plain_sight.
Erster Aufruf: Das Modell lädt träge – der erste describe/OCR-Aufruf lädt
Florence-2 (~10–20 s auf GPU; der allererste Aufruf lädt ~1,5 GB herunter).
Folgeaufrufe
dauern auf einer modernen GPU bei Setzung high ca. 1–2 s pro Bild.
Lizenzpositionierung
Dieses Werkzeug: MIT.
Das Modell: auf
florence-community/Florence-2-largefestgepinnt – die offizielle native Native-Transformers-Konvertierung von Microsofts Florence-2-Release. MIT (Hub-Lizenz-Tag am 19.08.2026 verifiziert). Kommerzielle Nutzung problemlos.Warum nicht
microsoft/Florence-2-large? Gleiche Gewichte, gleiche MIT-Lizenz, aber die Original-Repos liefern vor-native Konfigurationen, die nur über Python-Code von vertrauenswürdigen Quellen funktionieren. Dieses Werkzeug lehnt das grundsätzlich ab. Die Community-Konvertierung lädt mit den eingebauten Florence-2-Klassen von transformers.Bewusst nicht angeboten: der Florence-2-Feintuning-Zoo (MiaoshouAI PromptGen, CogFlorence, SD3/Flux-Captioner, Castollux). Die Lizenzen sind unverifiziert; sie bleiben draußen.
PLAIN_SIGHT_MODEL_IDauf eines davon umzusetzen ist möglich, aber die Lizenzfrage in dem Fall geht auf dich über.Kein Remote-Code: Die Engine nutzt ausschließlich die native Florence-2-Unterstützung von transformers –
trust_remote_codewird niemals verwendet, sodass niemals vom Hub abgerufener Python-Code ausgeführt wird. Das erforderttransformers >= 4.51.
Sicherheit und Vertrauen
Dieses Werkzeug arbeitet nur lokal.
Berührte Daten: lokale Bilddateien (nur gelesen); der HuggingFace-Modell-Cache (einmal bei Erstdownload geschrieben);
.txt-Beschriftungsdateien – die einzigen Dateien, die es schreibt, nur wo der Aufrufer verlangt (viaout_diroder nebem Bild), und vorhandene Seiten Dateien werden nur bei explizitem--overwriteersetzt.Kein Netzwerk-Ausgang im Lauf beim Lauf – das Model wird einmal beim ersten ein heruntergeladen, alle Inferenzen sind dann lokal.
Keine Remote-Codeausführung – nur native transformers-Klassen;
trust_remote_codewird nie übergeben, sodass kein Hub-Python ausgeführt wird.Keine Geheimnisbehandlung, keine Telemetrie – nichts wird gelesen or gesendet.
Nur strukturierte Fehler – rohe Stack-Traces erreichen niemals MCP-Clients oder CLI-Benutzer. CLI-Exit-Codes: 0 ok · 1 Benutzerfehler · 2 Laufzeitfehler · 3 teilweise Erfolg.
Vollständige Richtlinie: SECURITY.md. Aktiv gepflegt; dort aufgeführte Versionen sind unterstützt.
Anforderungen
Python >= 3.10
transformers >= 4.51(heimisches Florence-2)CUDA-GPU empfohlen (~2 GB VRAM bei FP16); CPU-Fallback funktioniert (langsamer)
Modell lädt bei der ersten Nutzung ~1,5 GB herunter
Entwicklung
# Install in editable mode with dev dependencies
pip install -e ".[dev]"
# CI-safe tests (no model, no GPU)
pytest tests/test_edge_cases.py -v
# Dogfood tests (real model + GPU)
pytest tests/test_dogfood.py -v
# Full verify: imports, edge tests, build
bash verify.shArchitektur
engine.py Standalone Florence-2 wrapper — no MCP dependency.
Lazy-loads the model; validation runs BEFORE the load.
Importable directly: from plain_sight.engine import Florence2Engine
sidecars.py The training-data contract, pure stdlib: basename pairing,
bare concatenation, directory expansion. Testable without torch.
server.py FastMCP wrapper exposing engine methods as MCP tools.
Thin layer: validation, error shaping, tool metadata.
cli.py argparse CLI over the same engine (describe / ocr / batch /
status / selftest). Structured errors, meaningful exit codes.Die Architektur ist bewusst von
ai-eyes-mcp übernommen –
gleiche Engine/Server-Trennung, gleiche Fehlerformung, gleiches Selftest-Muster.
Eine Cloud-Variante desselben Vertrags läuft auf Comfy Cloud als
caption-florence2-v1-Workflow (ein Bild pro Auftrag, Metadaten-Rider; dieses
Tool ist der Massenspur).
Lizenz
MIT
Erstellt von [MCP Tool Shop] (https://mcp-tool-shop.github.io/)
This server cannot be installed
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
- 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.7149MIT
- AlicenseAqualityDmaintenanceMCP server that provides image generation, captioning, and tagging via ComfyUI API, configurable for agent tools.43MIT
- FlicenseNot gradedqualityCmaintenanceMCP server for local image generation using FLUX.2 via Hugging Face diffusers, designed to run on a Windows GPU and be called remotely by Claude Cowork over Tailscale.
- AlicenseNot gradedqualityCmaintenanceA local MCP server that gives LLMs eyes for images by performing object detection (YOLOv8) and text recognition (EasyOCR), outputting descriptive statements about objects and text positions without any API key or cloud dependency.MIT
Related MCP Connectors
MCP server for Flux AI image generation
MCP server for Grok Imagine AI video generation
MCP server for Hailuo (MiniMax) AI video generation
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/mcp-tool-shop-org/plain-sight'
If you have feedback or need assistance with the MCP directory API, please join our Discord server