mcp_server_image_selector
Enables interactive selection of image regions from images and PDFs, with OCR support and automated export of selected regions as separate files.
README
MCP Server Image Selector
Dieses Projekt stellt einen MCP-kompatiblen Server bereit, mit dem sich interaktiv Bildausschnitte aus Bildern (z.B. JPEG, PNG) und PDF-Dateien auswählen und als separate Dateien exportieren lassen.
Übersicht
Der MCP Server Image Selector ermöglicht es, mehrere Bilder in einer Session zu bearbeiten und gezielt Bereiche als separate Dateien zu exportieren. Perfekt für Workflows, bei denen aus verschiedenen Dokumenten oder Scans bestimmte Bereiche extrahiert werden müssen.
Features
- Interaktive GUI zur Auswahl von Bild- und Textregionen
- Auto-Load: Ohne Bildpfad werden automatisch die ersten 4 Bilder aus dem Bildverzeichnis geladen
- Multi-Bild-Unterstützung: Mehrere Bilder in einer GUI-Sitzung bearbeiten
- Unterstützung für verschiedene Bildformate (JPEG, PNG, BMP, GIF)
- PDF-Unterstützung: Automatische Extraktion von eingebetteten Bildern oder Rendering der ersten Seite
- Bild-Rotation: Bilder können um 90°, -90° oder 180° gedreht werden
- OCR-Integration: Automatische Texterkennung mit Tesseract für Text-Bereiche (optional)
- Automatische Textzusammenfassung: Alle erkannten Texte werden alphabetisch konkateniert und als
full_recipe_textzurückgegeben - Export der ausgewählten Regionen als Bild- und/oder Textdateien
- Automatische Benennung und Ablage der Exportdateien im tmp-Verzeichnis
- Integration in MCP-Workflows
Voraussetzungen
- Python 3.8+
- Virtuelle Umgebung empfohlen (
python -m venv venv) - Abhängigkeiten aus
pyproject.tomlinstallieren (z.B. mitpip install -e .)
Optionale OCR-Unterstützung
Für automatische Texterkennung in Text-Bereichen ist Tesseract OCR optional verfügbar. Die Software funktioniert auch ohne OCR - in diesem Fall wird ein Hinweis in den Text-Dateien ausgegeben.
Installation (optional)
-
Tesseract OCR installieren:
- Windows: Tesseract Installer herunterladen und installieren
- Bei Installation unbedingt die deutschen Sprachpakete mit auswählen!
- Linux:
sudo apt-get install tesseract-ocr tesseract-ocr-deu tesseract-ocr-eng - macOS:
brew install tesseract tesseract-lang
- Windows: Tesseract Installer herunterladen und installieren
-
Python-Package installieren:
# Mit optional dependencies aus pyproject.toml: pip install -e ".[ocr]" # Oder direkt: pip install pytesseract -
Sprachpakete prüfen: Die OCR-Funktion nutzt standardmäßig Deutsch + Englisch (
deu+eng). Ohne diese Sprachpakete funktioniert die OCR nicht korrekt.Verfügbare Sprachen prüfen:
tesseract --list-langs
OCR-Funktionalität
- Wird automatisch bei Text-Bereichen (Modus "Text") angewendet
- Erkennt deutschen und englischen Text
- Schreibt erkannten Text in die
.txt-Dateien - Ohne Tesseract: Platzhalter-Text mit Installationshinweis wird eingefügt
Starten des Servers
MCP-Server-Modus (Default)
-
Virtuelle Umgebung aktivieren:
- Windows:
venv\Scripts\activate - Linux/Mac:
source venv/bin/activate
- Windows:
-
Server starten:
# MCP-Server-Modus (default) python src/mcp_server_image_selector/server.py -
Server starten (mit venv automatisch):
# MCP-Server-Modus (default) `....mcp_server_image_selector\venv\Scripts\mcp-server-image-selector.exe`
Standalone-Modus (nur GUI, ohne MCP)
# Ohne Bildpfad - lädt automatisch die ersten 4 Bilddateien aus dem Bildverzeichnis
python -m mcp_server_image_selector.server --standalone
# Mit Bildpfad
python -m mcp_server_image_selector.server --standalone pfad/zum/bild.jpg
# Alternative: Beispiel-Script verwenden
python example_standalone.py
Benutzung
Grundfunktionen
- Bild öffnen: Ohne Bildpfad werden automatisch die ersten 4 Bilder aus dem Bildverzeichnis geladen. Optional kann ein expliziter Bildpfad angegeben werden.
- Weitere Bilder hinzufügen: Über den Button "+ Bild hinzufügen" können weitere Bilder zur Session hinzugefügt werden
- Standardverzeichnis:
working_dir/Eingang(falls vorhanden)
- Standardverzeichnis:
- Zwischen Bildern wechseln: Klick auf ein Bild in der Bildliste wechselt zum entsprechenden Bild
- Regionen auswählen:
- Modus wählen: "Foto" oder "Text"
- Mit der Maus einen Bereich aufziehen
- "Auswahl speichern" klicken
- Bild rotieren: Buttons zum Drehen um 90° links, 90° rechts oder 180°
- Export: "Fertig & Exportieren" exportiert alle Regionen von allen Bildern
Details
- Bei PDF-Dateien wird automatisch das erste eingebettete Bild extrahiert oder die erste Seite als Bild gerendert
- Jedes Bild kann unabhängig bearbeitet werden (eigene Regionen, Rotation)
- Die Bildliste zeigt den aktuellen Status:
▶ dateiname.jpg [3 Bereiche] - Alle exportierten Dateien werden im
tmp-Verzeichnis des Working Directory abgelegt - Dateinamen enthalten den Bildnamen, Timestamp und Region-Nummer für eindeutige Identifikation
Beispiel-Workflow
- MCP-Tool aufrufen:
select_image_regions()(ohne Parameter) oderselect_image_regions("dokument1.jpg")(mit Bild) - GUI öffnet sich - bei Auto-Load mit den ersten 4 Bildern aus dem Bildverzeichnis
- Bereiche auswählen und speichern (Modus "Foto" oder "Text")
- Optional: "+ Bild hinzufügen" für weitere Bilder
- "Fertig & Exportieren" klicken
- Alle Bereiche werden exportiert, Text-Bereiche per OCR erkannt
- Die Antwort enthält eine Zusammenfassung sowie
full_recipe_textmit allen erkannten Texten
Ergebnis im tmp-Verzeichnis:
dokument1_20250122_143022_region01_foto.png
dokument1_20250122_143022_region02_text.png
dokument1_20250122_143022_region02_text.txt
dokument2_20250122_143022_region01_foto.png
Beispiel-Antwort (Auszug):
✓ Erfolgreich 3 Bereiche von 2 Bild(ern) exportiert:
...
--- full_recipe_text ---
Textbereich 1
...
Textbereich 2
...
MCP Tools
Der Server stellt folgende MCP-Tools bereit:
select_image_regions
Öffnet die GUI zur interaktiven Auswahl von Bildausschnitten.
Parameter:
image_path(string, optional): Pfad zum Bild oder PDF (relativ zum Working Directory oder absolut). Ohne Angabe werden automatisch die ersten 4 Bilder aus dem Bildverzeichnis geladen.
Funktionalität:
- Ohne
image_path: Lädt automatisch die ersten 4 Bilder aus dem Bildverzeichnis (IMAGE_SUBDIRECTORY) - Mit
image_path: Startet mit dem angegebenen Bild - Ermöglicht das Hinzufügen weiterer Bilder während der Session
- Exportiert alle Regionen von allen bearbeiteten Bildern
- Alle
_text.txt-Dateien werden alphabetisch konkateniert und alsfull_recipe_textin der Antwort zurückgegeben - Gibt eine Zusammenfassung der exportierten Dateien zurück
list_exported_regions
Listet alle exportierten Bildausschnitte aus dem tmp-Verzeichnis auf.
get_working_directory
Zeigt das aktuelle Working Directory an.
Projektstruktur
Das Projekt ist modular aufgebaut für bessere Wartbarkeit:
src/mcp_server_image_selector/
├── server.py # MCP-Server und Tool-Definitionen
├── gui.py # GUI-Komponente (ImageSelectorGUI)
├── utils.py # Utility-Funktionen (Verzeichnisse, Koordinaten)
├── pdf_utils.py # PDF-Verarbeitung und Bildextraktion
└── export.py # Export-Funktionen inkl. OCR
tests/
├── test_export.py # Export-Funktionalität
├── test_export_errors.py # Export-Fehlerbehandlung
├── test_gui.py # GUI-spezifische Tests
├── test_pdf.py # PDF-Verarbeitung
├── test_rotation.py # Bild-Rotation
├── test_server.py # Server/GUI-Initialisierung
└── test_utils.py # Utility-Funktionen
Konfiguration
MCP-Integration
Die Datei claude_desktop_config.json enthält die Konfiguration für die Integration in MCP-Umgebungen.
Umgebungsvariablen
IMAGE_SELECTOR_WORKING_DIR: Optionales Working Directory (Standard: aktuelles Verzeichnis)IMAGE_SUBDIRECTORY: Optionales Unterverzeichnis für Bilder relativ zum Working Directory (Standard: Working Directory selbst)
Entwicklung
Tests ausführen
Alle Tests mit pytest:
# Aktiviere virtuelle Umgebung
venv\Scripts\activate # Windows
source venv/bin/activate # Linux/Mac
# Installiere Dev-Dependencies
pip install -e ".[dev]"
# Führe Tests aus
pytest -q # Kurze Ausgabe
pytest -v # Verbose
pytest -xvs # Stop bei erstem Fehler, verbose
Test-Organisation
- 28 Tests decken alle Hauptfunktionen ab
- Tests sind nach Modulen organisiert
- Verwendet pytest mit fixtures für Isolation
- Monkeypatch für Umgebungsvariablen
CI/CD
Ein GitHub Actions Workflow (.github/workflows/ci.yml) führt Tests automatisch bei Push/PR auf main aus.
Lizenz
MIT License
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。