MCP server providing OCR capabilities to LLMs via Google Cloud Vision API - Read scanned PDFs, handwritten text, and images
Project description
mcp-server-google-vision
Serveur MCP Model Context Protocol permettant aux LLMs comme Claude de lire des documents scannés, du texte manuscrit et des images avec l'API Google Cloud Vision.
Description
Ce projet implémente un serveur MCP qui donne des capacités de vision avancées aux modèles de langage. Développé par Kohen Avocats, un cabinet d'avocats parisien, cet outil est utilisé quotidiennement pour traiter des documents juridiques complexes : pièces scannées, courriers manuscrits, PDF mal orientés, etc.
Le problème résolu
Les LLMs comme Claude excellent dans l'analyse de texte, mais ne peuvent pas nativement :
- Lire des PDF scannés (images sans couche texte)
- Déchiffrer l'écriture manuscrite
- Traiter des documents mal orientés ou inversés
- Extraire du texte de photos de documents
Ce serveur MCP comble cette lacune en fournissant une interface standardisée vers Google Cloud Vision, permettant aux LLMs de "voir" et lire n'importe quel document.
Cas d'usage
- Cabinets d'avocats : Lecture de pièces scannées, correspondances manuscrites, documents anciens
- Alimentation de RAG : Extraction de texte pour indexation dans des bases vectorielles
- Traitement documentaire : OCR de masse avec gestion automatique des PDFs multi-pages
- Accessibilité : Transcription de documents pour personnes malvoyantes
Fonctionnalités clés
- OCR haute précision : Reconnaissance de texte imprimé et manuscrit
- Support multi-pages : Traitement parallèle des PDFs jusqu'à 2000 pages
- Détection d'orientation : Lecture correcte même si le document est à l'envers
- 9 features Vision API : text, document, labels, faces, objects, logos, landmarks, web, safe_search
- Retry intelligent : Backoff exponentiel avec jitter pour une fiabilité maximale
- Unicode robuste : Gestion des noms de fichiers avec accents et caractères spéciaux
Prérequis
- Python 3.11+
- Une clé API Google Cloud Vision (obtenir ici)
- Un LLM compatible MCP (Claude Desktop, etc.)
Installation
1. Créer et activer un environnement virtuel
python -m venv venv
source venv/bin/activate # Sur Windows: venv\Scripts\activate
Ou avec uv :
uv venv .venv
source .venv/bin/activate
2. Installer le package
Via pip :
pip install git+https://github.com/kohen-avocats/mcp-server-google-vision.git
Via uv :
uv pip install git+https://github.com/kohen-avocats/mcp-server-google-vision.git
3. Configurer la clé API
Créez un fichier .env :
GOOGLE_API_KEY=votre_clé_api_google
Ou exportez la variable :
export GOOGLE_API_KEY="votre_clé_api_google"
Configuration avec Claude Desktop
Modifiez le fichier de configuration de Claude Desktop (Paramètres > Développeur > Modifier la configuration) :
{
"mcpServers": {
"google-vision": {
"command": "/chemin/vers/venv/bin/python",
"args": ["/chemin/vers/mcp-server-google-vision/src/server.py"],
"env": {
"GOOGLE_API_KEY": "votre_clé_api"
}
}
}
}
Outils disponibles
1. analyze_image
Analyse une image avec les capacités de Google Cloud Vision.
Paramètres :
image_path: Chemin absolu vers l'imagefeatures: Liste des analyses (défaut : ["text", "labels"])text: Détection de texte simpledocument: OCR avancé pour documentslabels: Classification d'objetsfaces: Détection de visagesobjects: Localisation d'objetslogos: Détection de logoslandmarks: Reconnaissance de monumentsweb: Recherche d'images similairessafe_search: Détection de contenu sensible
response_format: "json" ou "markdown"
Exemple d'utilisation :
Lis le texte manuscrit sur cette image : /Users/avocat/courrier.jpg
2. analyze_pdf
Extrait le texte d'un PDF scanné avec traitement parallèle optimisé.
Paramètres :
pdf_path: Chemin absolu vers le PDFextract_text_only: Si True, extraction de texte uniquement (défaut : True)response_format: "json" ou "markdown"
Caractéristiques :
- Support jusqu'à 2000 pages
- Traitement parallèle par lots de 5 pages
- Sauvegarde automatique si texte > 5000 caractères
- Taille maximale : 20 MB
Exemple d'utilisation :
Extrais le texte de ce document scanné : /Users/avocat/pieces/assignation.pdf
Exemples de prompts
Lecture de document manuscrit
J'ai reçu un courrier manuscrit. Peux-tu le lire et me faire un résumé ?
[Le LLM utilise analyze_image avec features=["document"]]
Extraction pour RAG
Extrais le texte de tous les PDFs dans ce dossier pour alimenter notre base documentaire.
[Le LLM utilise analyze_pdf en boucle et retourne le texte structuré]
Analyse complète d'image
Analyse cette photo : identifie le texte, les objets et les logos visibles.
[Le LLM utilise analyze_image avec features=["text", "labels", "objects", "logos"]]
Architecture technique
mcp-server-google-vision/
├── src/
│ └── server.py # Serveur MCP principal
├── pyproject.toml # Configuration du package
├── README.md # Documentation
└── LICENSE # Licence MIT
Points techniques notables
- Session HTTP réutilisable : Pool de 20 connexions pour performances optimales
- Retry avec backoff exponentiel : Délai initial 1s, max 60s, multiplicateur 2x
- Gestion Unicode : Support des caractères spéciaux français (accents, apostrophes typographiques)
- Traitement parallèle :
asyncio.gatherpour les PDFs multi-pages
Limitations
- Taille maximale des PDFs : 20 MB
- Requêtes limitées par les quotas Google Cloud Vision
- Connexion internet requise
Contribution
Les contributions sont les bienvenues ! N'hésitez pas à :
- Ouvrir une issue pour signaler un bug
- Proposer une pull request pour une amélioration
- Partager vos cas d'usage
Auteur
Développé par Maître Hassan KOHEN, avocat pénaliste à Paris, fondateur de Kohen Avocats.
Ce serveur MCP est né d'un besoin concret : permettre à Claude d'analyser les pièces d'un dossier juridique, y compris les documents scannés et manuscrits. Il est aujourd'hui utilisé quotidiennement au cabinet pour :
- La lecture de pièces adverses scannées
- L'analyse de correspondances manuscrites
- L'alimentation d'un RAG juridique interne
Liens utiles
- Kohen Avocats - Cabinet d'avocats Paris
- Maître Hassan KOHEN, avocat pénaliste à Paris
- Model Context Protocol
- Google Cloud Vision API
- MCP Python SDK
Licence
Ce projet est open source et peut être librement utilisé, modifié et redistribué sous licence MIT.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mcp_server_google_vision-1.0.0.tar.gz.
File metadata
- Download URL: mcp_server_google_vision-1.0.0.tar.gz
- Upload date:
- Size: 12.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
60a03ef38a6511668bde1a37f7dac36a76b23f18168a6abfb89f2c3fb2d56a73
|
|
| MD5 |
99bafbc76228f73487c048e10c5821d5
|
|
| BLAKE2b-256 |
74a7698c0b39ee9f2a31d510f585166ed60830d991b725d2912a8e7682c83478
|
File details
Details for the file mcp_server_google_vision-1.0.0-py3-none-any.whl.
File metadata
- Download URL: mcp_server_google_vision-1.0.0-py3-none-any.whl
- Upload date:
- Size: 13.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
97610932f7c8f0f11d113e61f8a6fd93bcf71e49ba277f90f89aa4cf7e7d3a98
|
|
| MD5 |
d76d7140e900e8cb389d73f34cd85833
|
|
| BLAKE2b-256 |
c69e9a50168c7e6354da91d1d925b86c9e05064a29e94a9f4160094a9829b1cc
|