almessadi.
Retour aux projets

Étude de cas projet

Serveur MCP Gemini Embedding 2_

Un serveur MCP local pour la récupération multimodale, conçu pour offrir aux outils d'IA une recherche privée sur le code, les documents, les images, l'audio et la vidéo sans transférer de données vers un stockage vectoriel hébergé.

Le Problème du Contexte Local

Les agents d'IA sont encore mauvais à une chose pratique dont les développeurs ont besoin chaque jour : travailler en toute sécurité contre un corpus local de code et de documents sans transférer tout ce corpus dans un système tiers hébergé.

J'ai construit ce serveur MCP pour rendre la récupération locale pratique. L'objectif était simple :

  • garder le corpus indexé sur la machine locale
  • supporter plus que du texte brut
  • fournir aux outils d'IA une interface de récupération stable

Architecture

Le serveur fonctionne localement en tant que processus Python et lie le modèle d'embedding de Gemini à une instance locale de ChromaDB à ~/.gemini_mcp_db. Cela signifie que le stockage vectoriel reste sur disque sous le contrôle du développeur au lieu de devenir une autre dépendance hébergée.

La partie intéressante est le chemin d'ingestion. Le système ne se contente pas de gérer des fichiers texte. Il peut traiter des images, de l'audio, de la vidéo et des PDF, en utilisant les capacités multimodales de Gemini pour préserver une plus grande partie du signal original qu'un pipeline d'extraction naïf basé uniquement sur du texte ne le ferait.

Le Réel Problème d'Ingénierie

Le RAG local semble facile jusqu'à ce qu'un agent commence à réindexer les mêmes répertoires encore et encore. C'est là que les coûts, la latence et l'épuisement de quota se manifestent.

Pour contrôler cela, j'ai ajouté :

  • une mise sur liste noire par mot-clé pour les répertoires non pertinents
  • une dé-duplication basée sur MD5 pour les fichiers inchangés
  • un modèle de stockage orienté local pour maintenir l'indexation prévisible

Ce projet compte pour moi, car il traite les outils d'IA comme une infrastructure. Le succès n'est pas une démonstration flashy. Le succès est de fournir aux agents locaux une couche de récupération qui est privée, pratique et difficile à abuser par accident.