Retour aux études de casÉtudes de cas

Processeur d'image MCP

Un serveur MCP open-source qui donne aux assistants IA de véritables capacités de traitement d'images - télécharger, compresser, convertir en lot, renommer et lire le texte des images, le tout par conversation.

Processeur d'image MCP
6MCP tools
35+Input formats
100%Local OCR, no API key

Aperçu

Chaque projet de site web se termine par la même corvée : un dossier d'images surdimensionnées qui doivent être converties, compressées, renommées et référencées à nouveau dans tout le code. C'est un travail mécanique - exactement le genre de tâche qu'un assistant IA devrait gérer. Le problème : les assistants peuvent parler des images, mais ils ne peuvent pas les manipuler.

Image Processor MCP résout ce problème. C'est un serveur Model Context Protocol, publié sur npm, qui met à disposition six outils d'image de qualité professionnelle pour tout assistant compatible MCP (Claude Desktop, extensions VS Code, et autres). Une ligne `npx -y image-processor-mcp` dans un fichier de configuration, et votre assistant peut télécharger, compresser, convertir par lots, effectuer la reconnaissance optique de caractères (OCR) et maintenir votre base de code synchronisée avec les fichiers renommés.

Objectifs de conception

  • Priorité locale : l'OCR fonctionne à 100 % sur la machine via tesseract.js - le contenu de l'image ne quitte jamais votre disque, et aucune clé API n'est requise.

  • Sorties déterministes sur lesquelles un LLM peut compter : chaque outil renvoie des résultats structurés (tailles, ratios, étapes de qualité, chemins de rapport) plutôt que de la prose.

  • La sécurité avant la vitesse : les opérations par lots génèrent des rapports et des mappages ; la synchronisation des noms de fichiers est en simulation par défaut et refuse les fichiers de mappage obsolètes.

  • Formats du monde réel : plus de 35 formats d'entrée acceptés, 10 formats de sortie dont WebP, AVIF et JPEG XL.

L'ingénierie intéressante dans un serveur MCP n'est rarement le chemin heureux - c'est de faire en sorte que chaque cas limite renvoie quelque chose sur lequel un LLM peut agir plutôt que de halluciner autour.

Ce que cela fait

download_image

Récupérez une image depuis une URL ou recherchez sur Pexels par mot-clé - puis compressez-la et convertissez-la éventuellement dans le même appel.

compress_image

Convertir et compresser une seule image dans 10 formats de sortie, avec un ajustement de qualité récursif jusqu'à atteindre une taille de fichier cible en Ko.

compress_directory

Traiter par lots un répertoire entier de manière récursive - structure préservée, noms de fichiers normalisés, avec un rapport markdown auto-généré et un fichier de correspondances.

sync_filenames

Analysez votre base de code et réécrivez toutes les références aux images renommées - exécution à sec par défaut, avec un aperçu ligne par ligne avant toute modification.

extract_text

OCR via tesseract.js en plus de 100 langues, fonctionnant entièrement sur votre machine - pas d'API cloud, pas de clé, aucune donnée ne quittant votre disque.

get_acknowledgement

Outil auto-documenté qui renvoie la référence complète de configuration, afin que l'assistant puisse apprendre lui-même les valeurs par défaut.

Comment ça fonctionne

Processeur d'image MCP

L'installation se fait via une seule entrée de configuration. Tout client compatible MCP détecte le serveur via npx - pas d'installation globale, pas d'étape de compilation :

json
{
  "mcpServers": {
    "image-processor-mcp": {
      "command": "npx",
      "args": ["-y", "image-processor-mcp"],
      "env": { "IMAGE_SEARCH_API_KEY": "clé-pexels-optionnelle" }
    }
  }
}

Compression récursive à une taille cible

Le noyau de compression résout un problème pratique : « rendre cette image inférieure à 100 Ko sans la détruire ». Le pipeline Sharp applique le format et la qualité demandés, mesure le résultat et - en mode récursif - réduit la qualité étape par étape jusqu'à atteindre la taille cible ou qu'un seuil de qualité l'arrête. Les dimensions explicites sont prioritaires ; sinon, tout ce qui dépasse la dimension maximale est redimensionné proportionnellement. La compression sur place passe par un tampon afin qu'une opération d'écriture échouée ne puisse jamais corrompre l'original.

Traitement par lots avec reçus

compress_directory parcourt un arbre de dossiers, convertit chaque image tout en préservant la structure, et normalise les noms de fichiers en cours de route. Il écrit ensuite deux artefacts : un rapport en markdown de chaque fichier (tailles avant/après, pourcentages de réduction) et un fichier de correspondances JSON des anciens noms vers les nouveaux noms. Ce fichier de correspondances alimente sync_filenames, qui scanne votre projet et réécrit chaque référence dans le code - après avoir affiché un aperçu en mode simulation avec le contexte par ligne. Un fichier de correspondances sans son rapport correspondant est refusé immédiatement, donc les changements de noms obsolètes ne peuvent jamais être rejoués sur une base de code modifiée.

OCR qui respecte vos données

extract_text enveloppe tesseract.js avec l'infrastructure de production dont la bibliothèque a besoin : une file de travaux qui sérialise la reconnaissance, la réutilisation des travailleurs avec réinitialisation automatique lorsque la langue change, le recyclage des travailleurs tous les 500 travaux et la récupération après plantage. Les formats non pris en charge sont convertis automatiquement en PNG d'abord ; le prétraitement applique la nuance de gris et la rotation automatique pour une meilleure précision. La sortie revient sous forme de texte brut, de blocs positionnés, de hOCR ou de TSV - avec des scores de confiance.

Ce site est la preuve que l'outil fonctionne : chaque image générée dans le système de conception que vous regardez a été compressée via le même pipeline Sharp que ce package produit.

Construit avec

TypeScriptMCP SDKsharptesseract.jsPexels APINode.js

Ceci est la norme d'ingénierie que votre projet reçoit également.

Parlons

Vous voulez des outils comme celui-ci construits pour votre pile ?