The RAG MCP Server is a Model Context Protocol server that combines knowledge graphs with Retrieval-Augmented Generation for intelligent code indexing, semantic search, and project management.
Core Capabilities:
Automated RAG Pipeline - Complete project analysis and injection into both knowledge graph (Phase 0) and RAG system with automatic LLM-powered intelligent analysis
Knowledge Graph Management - Create, read, update, and delete entities, relations, and observations with automatic knowledge enrichment during indexing
Semantic Code Search - Advanced semantic searches across indexed codebases with configurable similarity thresholds and project filtering
Incremental Updates - Re-index projects with configurable chunking and embeddings without full reprocessing
Project Management - List and view statistics for indexed projects
Advanced Features:
Intelligent LLM Analysis - Leverage Ollama for content summarization, keyword extraction, structure suggestion, entity detection, and complexity classification
Optimized Performance - Batch processing for LLM calls with intelligent caching (configurable TTL) for improved efficiency
Centralized Configuration - Unified configuration system (
rag-config.json) with validation, limits, and support for multiple embedding providers (fake, ollama, sentence-transformers) and LLM providersFlexible File Filtering - Exclude files from indexing using
.ragignorepatterns and customizable file patternsExtensible Architecture - Tool Registry system for automatic discovery, centralized management, and unified execution with backward compatibility
MCP Integration - Works with Model Context Protocol clients like Cline through standardized configuration
Supports Ollama as an embedding provider for semantic search and code indexing, allowing the use of models like nomic-embed-text for RAG functionality.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@RAG MCP Serversearch for authentication middleware in our user service project"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
RAG MCP Server
Un serveur MCP (Model Context Protocol) qui combine un graphe de connaissances avec des fonctionnalités RAG (Retrieval-Augmented Generation) pour l'indexation et la recherche sémantique de code.
🚀 Fonctionnalités
📋 MCP Server - Commandes simplifiées
🎯 Graphe de connaissances (Graph Tools) - 9 outils
Ces commandes sont intégrées en arrière-plan dans l'injection RAG pour enrichissement automatique des connaissances (Phase 0).
create_entities: Crée de nouvelles entitéscreate_relations: Crée des relations entre entitésadd_observations: Ajoute des observations aux entitésdelete_entities: Supprime des entitésdelete_observations: Supprime des observationsdelete_relations: Supprime des relationsread_graph: Lit tout le graphesearch_nodes: Recherche des nœudsopen_nodes: Ouvre des nœuds spécifiques
🔍 Recherche sémantique (RAG Tools) - 4 outils visibles + 1 masqué
Les paramètres LLM et autres configurations sont préconfigurés par défaut, aucune sélection manuelle nécessaire.
injection_rag(anciennementindex_project) : Analyse du projet complet + prépare et injecte les données automatiquement (Phase 0 → RAG) - Outil principalsearch_code: Recherche sémantique dans le codemanage_projects: Gère les projets indexésupdate_project: Réindexation incrémentale pour mise à jour des données
Outil masqué (rétrocompatibilité) :
index_project: Alias déprécié pourinjection_rag- masqué de la liste mais fonctionnel si appelé directement
🧠 Analyse LLM Intelligente (Intégration Ollama)
Le serveur inclut désormais une analyse LLM intelligente pour améliorer la préparation des données :
Analyse automatique : Utilisation d'Ollama pour analyser le contenu avant indexation
Tâches intelligentes : Résumé, extraction de mots-clés, suggestion de structure, détection d'entités, classification de complexité
Cache LLM : Système de cache pour éviter les appels redondants à Ollama
Configuration flexible : Support de multiples modèles LLM via configuration
Batch processing : Traitement par lots pour optimisation des performances
Fonctionnalités LLM :
✅ Analyse sémantique du contenu avant segmentation
✅ Cache intelligent avec TTL configurable
✅ Support de multiples modèles Ollama
✅ Traitement par lots pour optimisation
✅ Intégration transparente avec le pipeline RAG existant
🏗️ Architecture
Système ToolRegistry
Le serveur utilise un système centralisé ToolRegistry qui permet :
Enregistrement automatique : Découverte dynamique des outils via convention de nommage
Gestion centralisée : Tous les outils sont gérés dans un registre unique
Exécution unifiée : Interface cohérente pour l'exécution de tous les outils
Structure des Outils
Chaque outil est composé de deux parties :
Définition (
*Tool) : Schéma d'entrée et métadonnéesHandler (
*Handler) : Fonction d'exécution de l'outil
Enregistrement Automatique
Le système découvre automatiquement les outils dans :
src/tools/graph/: Outils de graphe de connaissancessrc/tools/rag/: Outils RAG
📦 Installation
🚀 Utilisation
Démarrage du serveur
Développement
🧪 Tests
Le projet inclut une suite complète de tests :
Tests LLM (Nouveau)
test-llm-config.js: Teste le chargement de la configuration LLM et le fonctionnement du servicetest-ollama-integration.js: Teste l'intégration réelle avec Ollama (nécessite Ollama en cours d'exécution)
Pour tester l'intégration Ollama :
🛠️ Structure du Projet
🔧 Configuration
Système de Configuration RAG Centralisée
Le serveur utilise désormais un système de configuration centralisée avec validation des limites :
Fichier de Configuration
config/rag-config.json: Configuration principale avec valeurs par défaut, limites et fournisseurssrc/config/rag-config.ts: Gestionnaire TypeScript pour charger et valider la configuration
Fonctionnalités de Configuration
Valeurs par défaut : Paramètres prédéfinis pour tous les outils
Limites de validation : Bornes min/max pour les paramètres numériques
Fournisseurs d'embeddings : Support pour
fake,ollama,sentence-transformersFournisseurs LLM : Support pour
ollamaavec modèles configurablesConfiguration de préparation : Analyse LLM intelligente avec cache
Modèles par défaut : Configuration par fournisseur
Environnements : Configuration différente pour développement/production
Configuration LLM (Nouveau)
Le serveur supporte désormais l'analyse LLM intelligente via Ollama :
Utilisation dans les Outils
Tous les outils RAG utilisent automatiquement la configuration :
injection_rag: Utilise les valeurs par défaut pour embedding_provider, embedding_model, chunk_size, chunk_overlapupdate_project: Même configuration que injection_ragsearch_code: Utilise les limites de recherche et seuils de similaritéai-segmenter: Utilise l'analyse LLM quand activée dans la configurationLes valeurs fournies par l'utilisateur sont validées par rapport aux limites
Simplification des Schémas d'Entrée
Les outils RAG ont été simplifiés pour une meilleure expérience utilisateur :
search_code: Paramètres simplifiés - seulqueryest requis, les autres paramètres (limit, threshold, embedding_provider, embedding_model) sont gérés par la configurationinjection_rag: Paramètres simplifiés -project_pathrequis, les paramètres embedding (embedding_provider, embedding_model, chunk_size, chunk_overlap) sont gérés par la configurationupdate_project: Paramètres simplifiés -project_pathrequis, les paramètres embedding sont gérés par la configuration
Cette simplification permet une utilisation plus intuitive tout en maintenant la flexibilité via la configuration centralisée.
Options d'Indexation RAG
Fournisseurs d'embeddings :
fake,ollama,sentence-transformersModèles :
nomic-embed-text,all-minilm, etc.Taille des chunks : Configurable (défaut: 1000 tokens, limites: 100-10000)
Chevauchement : Configurable (défaut: 200 tokens, limites: 0-1000)
Limites de recherche : 1-50 résultats (défaut: 10)
Seuil de similarité : 0.0-1.0 (défaut: 0)
Fichiers d'Ignorance
Le système supporte les fichiers .ragignore pour exclure des fichiers de l'indexation :
Syntaxe similaire à
.gitignorePatterns glob supportés
Priorité :
.ragignorelocal > templates prédéfinis
Configuration Cline MCP
Pour utiliser rag-mcp-server avec Cline, ajoutez cette configuration à cline_mcp_settings.json :
📊 Métriques
13 outils visibles (9 graph + 4 RAG) + 1 outil masqué pour rétrocompatibilité
9 outils Graph de connaissances
4 outils RAG visibles (dont
injection_ragcomme outil principal)1 outil RAG masqué (
index_project- alias déprécié)
Enregistrement automatique au démarrage
Rétrocompatibilité maintenue avec l'ancien système
Tests complets avec couverture de 87.5%
Configuration centralisée avec validation des limites
Tests d'intégration complets pour la configuration RAG
Tests de Configuration
Le projet inclut un script de test d'intégration complet :
Ce script valide :
✅ Chargement de la configuration
✅ Gestionnaire de configuration
✅ Outils utilisant la configuration
✅ Validation des limites
✅ Tests fonctionnels des outils
Tests LLM (Nouveau)
Les tests LLM vérifient l'intégration complète avec Ollama :
Tests LLM inclus :
✅ Chargement de la configuration LLM
✅ Configuration des fournisseurs LLM (Ollama)
✅ Configuration de préparation avec cache
✅ Service LLM avec vérification de disponibilité
✅ Cache LLM avec statistiques
✅ Intégration complète avec Ollama (appels réels)
Prérequis pour les tests Ollama :
Ollama doit être en cours d'exécution (
ollama serve)Modèle
llama3.1:latestou autre modèle configuré doit être disponible
🤝 Contribution
Fork le projet
Créer une branche (
git checkout -b feature/amazing-feature)Commit les changements (
git commit -m 'Add amazing feature')Push vers la branche (
git push origin feature/amazing-feature)Ouvrir une Pull Request
📄 Licence
Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus de détails.
🙏 Remerciements
Model Context Protocol pour le framework MCP
L'équipe de développement pour les contributions
La communauté open source pour les outils et bibliothèques utilisés
Dernière mise à jour : 28/12/2025
Version : 1.5.0
Statut : Production Ready avec Analyse LLM Intelligente 🧠🚀
Changelog v1.5.0
Nouveau : Analyse LLM intelligente avec intégration Ollama
Nouveau : Service LLM (
LlmService) pour appels à l'API OllamaNouveau : Cache LLM (
LlmCache) pour optimisation des performancesNouveau : Configuration LLM dans
rag-config.jsonavec fournisseurs et préparationNouveau : Tâches intelligentes : résumé, extraction de mots-clés, suggestion de structure, détection d'entités, classification de complexité
Nouveau : Intégration dans
ai-segmenter.tspour segmentation intelligenteNouveau : Intégration dans
indexer.tsavec cache LLMNouveau : Tests de configuration LLM (
test-llm-config.js)Nouveau : Tests d'intégration Ollama (
test-ollama-integration.js)Amélioration : Support de multiples modèles Ollama configurables
Amélioration : Batch processing pour optimisation des appels LLM
Amélioration : Cache intelligent avec TTL configurable
Amélioration : Documentation complète des fonctionnalités LLM
Changelog v1.4.0
Nouveau : Simplification des schémas d'entrée des outils RAG
Nouveau : Paramètres embedding (embedding_provider, embedding_model, chunk_size, chunk_overlap) gérés automatiquement par la configuration
Simplification :
search_code- seulqueryrequis, autres paramètres gérés par configurationSimplification :
injection_rag-project_pathrequis, paramètres embedding gérés par configurationSimplification :
update_project-project_pathrequis, paramètres embedding gérés par configurationAmélioration : Meilleure expérience utilisateur avec moins de paramètres requis
Amélioration : Tests complets validant la simplification
Amélioration : Documentation mise à jour avec détails sur la simplification
Changelog v1.3.0
Nouveau : Système de masquage des outils avec flag
hiddenNouveau :
index_projectmasqué de la liste des outils visibles (rétrocompatibilité maintenue)Nouveau : Filtrage automatique des outils masqués dans
ListToolsRequestSchemaNouveau : Tri des outils avec
injection_ragen premierAmélioration : Comptage RAG corrigé (13 outils visibles : 9 graph + 4 RAG)
Amélioration : Tests mis à jour pour vérifier la visibilité des outils
Amélioration : Documentation mise à jour avec métriques précises
Changelog v1.2.0
Nouveau : Outil
injection_rag- Pipeline automatisé Phase 0 → RAGNouveau : Intégration automatique Graph → RAG (enrichissement Phase 0)
Nouveau : Système de logs détaillés avec niveaux (INFO, DEBUG, ERROR)
Nouveau : Script wrapper
scripts/injection-rag.shpour usage CLINouveau : Test complet de pipeline
test-pipeline-complet.jsMigration :
index_projectdevient alias déprécié deinjection_ragAmélioration : Configuration LLM préconfigurée par défaut
Amélioration : Vérification automatique des permissions et sécurité
Amélioration : Documentation simplifiée et unifiée
Changelog v1.1.0
Nouveau : Système de configuration RAG centralisée
Nouveau : Gestionnaire de configuration TypeScript avec validation
Nouveau : Limites automatiques pour les paramètres numériques
Nouveau : Script de test d'intégration complet
Amélioration : Tous les outils RAG utilisent la configuration
Amélioration : Documentation mise à jour
Fix : Validation des valeurs hors limites