Qu'est-ce que Graphiti MCP Server ?
Graphiti MCP Server est une couche de gestion open-source pour construire, exécuter et isoler des backends de graphiques de connaissances à travers plusieurs projets, utilisant une base de données Neo4j unifiée. Il étend le serveur Graphiti MCP de base en permettant plusieurs serveurs MCP spécifiques à un projet, chacun avec sa propre configuration, espace de noms de groupe, règles d'extraction d'entités et modèle LLM, tout en partageant une infrastructure commune. Son CLI automatisé génère des fichiers de configuration Docker Compose et IDE, garantissant une configuration mult-projets facile et une intégration fluide avec les outils et éditeurs de développement AI populaires qui prennent en charge MCP.
Comment Configurer
- Cloner le dépôt :
git clone https://github.com/rawr-ai/mcp-graphiti.git && cd mcp-graphiti
- Configurer l'environnement :
Copiez.env.example
en.env
, puis fournissez un mot de passe sécurisé pour Neo4j et la clé OpenAI.
Remarque : Le serveur refuse de démarrer avec le mot de passe par défaut, sauf en mode développement explicite (GRAPHITI_ENV=dev
). - Installer le CLI :
Installez globalement viapipx install . --include-deps
(utilisateurs), ou configurez un environnement virtuel local (contributeurs). - Configurer les projets :
Éditez ou créezmcp-projects.yaml
à la racine du dépôt. Définissez les entrées du projet avec leurs répertoires racines et les paramètres spécifiques au projet. - (Optionnel) Gérer l'intégration IDE :
Le CLI génère automatiquement.cursor/mcp.json
pour chaque projet et cartographie de port, assurant que votre éditeur peut automatiquement découvrir les points de terminaison MCP.
Comment Utiliser
- Générer Docker Compose et configuration MCP :
À partir de la racine du dépôt, exécutezgraphiti compose
pour analysermcp-projects.yaml
et générerdocker-compose.yml
ainsi que des configurations d'éditeur. - Lancer tous les services :
Exécutezgraphiti up -d
pour démarrer Neo4j et un serveur MCP par projet (sur les ports 8000, 8001, ...). - Initialiser de nouveaux projets :
Dans la racine de votre dépôt de projet, exécutezgraphiti init [votre-projet]
pour générer les configurations et les YAML d'extraction d'entités. - Recharger ou mettre à jour un projet en cours :
Après avoir modifié les définitions d'entités ou les paramètres du modèle, exécutezgraphiti reload mcp-[projet]
pour appliquer les changements sans affecter les autres projets. - Accéder aux points de terminaison :
- Statut MCP :
http://localhost:800X/status
- Point de terminaison SSE pour agents :
http://localhost:800X/sse
- Navigateur Neo4j :
http://localhost:7474
- Statut MCP :
- Maintenir/l'isolation des projets :
Chaque serveur est groupé viagroup_id
, maintenant les données et les contextes de LLM séparés et résistants aux crashs.
Caractéristiques Clés
- Support multi-projets : Lancez et isolez plusieurs serveurs MCP (un par projet) partageant une seule instance de Neo4j pour une efficacité de coût et de maintenance.
- Graphes de connaissances temporels : Construit et versionne automatiquement des graphes d'entités/relation au fil du temps, permettant aux agents d'accéder à des données historiques et versionnées.
- Flux de travail CLI automatisés : Scanne les configurations de projet, génère toutes les configurations compose/IDE et prend en charge le rechargement à chaud avec peu de friction.
- Isolement des crashs et dépendances : Chaque projet obtient son propre conteneur et
group_id
—les prompts défectueux ou les erreurs de configuration sont contenus. - Extraction échangeable à chaud : Rechargez les YAML d'entités ou les modèles LLM par projet sans affecter les autres ou nécessiter des redémarrages complets.
- Découverte automatique des éditeurs et agents : Les points de terminaison MCP sont ajoutés automatiquement à
.cursor/mcp.json
afin que des outils comme VS Code, Cursor, LangGraph, Autogen ou Claude Desktop puissent immédiatement accéder aux outils du projet. - Sécurité de niveau production : Contrôles stricts des mots de passe pour Neo4j ; les actions destructrices nécessitent une confirmation explicite basée sur l'environnement.
Cas d'Utilisation
- Systèmes multi-agents pour entreprises : Supportez en toute sécurité plusieurs équipes ou agents IA collaborant sur des graphes de connaissances isolés mais co-hébergés (par exemple, connaissance produit, bots de support, audits de conformité).
- Outils de recherche alimentés par LLM : Permettez aux chercheurs d’ingérer en continu de la littérature ou des ressources dans des graphes de connaissances versionnés et interrogeables—par sujet ou par subvention.
- Assistants IDE pluggables : Fournissez une intelligence projet contextuelle toujours synchronisée aux assistants de codage IA, sans risquer de fuites de données ou de collisions de projet.
- Suivi des expériences : Maintenez des graphes séparés et horodatés pour chaque expérience ML/RAG, avec annulation et audit de chaque modification.
- Parallélisation dev/test : Testez en toute sécurité de nouveaux modèles d’extraction d’entités et une logique mise à jour en parallèle, sans temps d’arrêt ni risque pour les graphes de connaissances en production.
FAQ
Q : Puis-je exécuter un seul serveur MCP (projet unique) ?
R : Oui. Supprimez tous les autres projets de mcp-projects.yaml
ou définissez MCP_SINGLE_SERVER=true
dans votre environnement, puis relancez graphiti compose
. Toutes les requêtes passeront par un seul conteneur et port.
Q : Comment l'isolation des projets est-elle garantie—ports ou autre chose ?
R : Les deux. Chaque serveur MCP s'exécute sur un port unique, mais l’isolation au niveau des données est garantie par un paramètre group_id
requis dans chaque lecture/écriture, donc les requêtes et graphes ne franchissent jamais les frontières.
Q : Puis-je ajouter un proxy inversé ou une passerelle API ?
R : Absolument. Vous pouvez router tout le trafic des agents à travers un point de terminaison unique, injectant group_id
comme une revendication ou en-tête, et faire en sorte que le serveur racine se répartisse si nécessaire.
Q : Que se passe-t-il si j'ai besoin de changer une règle d'extraction d'entités ou de remplacer des modèles LLM ?
R : Il suffit de mettre à jour le YAML ou la configuration pertinents dans votre dossier de projet, puis exécutez graphiti reload mcp-[projet]
; aucun redémarrage ou temps d'arrêt pour d'autres projets n'est nécessaire.
Q : Comment puis-je supprimer complètement le graphique Neo4j ?
R : Définissez NEO4J_DESTROY_ENTIRE_GRAPH=true
dans votre .env
, puis exécutez graphiti up
—cela supprimera irréversiblement TOUTES les données de projet. Utilisez uniquement si vous en êtes certain.