Supports Ollama as an embedding provider for semantic search and code indexing, allowing the use of models like nomic-embed-text for RAG functionality.
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
Outils Graph (Graphe de Connaissances)
create_entities: Créer de nouvelles entités dans le graphecreate_relations: Créer des relations entre entitésadd_observations: Ajouter des observations aux entités existantesdelete_entities: Supprimer des entités et leurs relationsdelete_observations: Supprimer des observations spécifiquesdelete_relations: Supprimer des relationsread_graph: Lire l'ensemble du graphesearch_nodes: Rechercher des nœuds par requête sémantiqueopen_nodes: Ouvrir des nœuds spécifiques par nom
Outils RAG (Recherche et Indexation)
index_project: Indexer un projet complet pour la recherche sémantiquesearch_code: Recherche sémantique dans le code indexémanage_projects: Gérer et lister les projets indexésupdate_project: Mettre à jour l'indexation d'un projet
🏗️ 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 :
🛠️ 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-transformersModèles par défaut : Configuration par fournisseur
Environnements : Configuration différente pour développement/production
Utilisation dans les Outils
Tous les outils RAG utilisent automatiquement la configuration :
index_project: Utilise les valeurs par défaut pour chunk_size, embedding_provider, etc.update_project: Même configuration que index_projectsearch_code: Utilise les limites de recherche et seuils de similaritéLes valeurs fournies par l'utilisateur sont validées par rapport aux limites
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 disponibles (9 graph + 4 RAG)
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
🤝 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.1.0
Statut : Production Ready avec Configuration Centralisé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