copilot-rag
Provides GitHub Copilot with MCP tools for semantic code and documentation search over locally indexed reference projects, including search_code, find_similar_code, search_documentation, list_projects, and index_stats.
Click on "Deploy 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., "@copilot-ragFind how other projects implement data access so I can match existing patterns."
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.
CopilotRAG
Base RAG locale qui indexe le code de vos projets de référence et le rend interrogeable par GitHub Copilot via un serveur MCP. Objectif : lors d'un nouveau développement, Copilot retrouve les implémentations et conventions existantes et génère un code homogène.
flowchart LR
A[Projets de référence] -->|scan + chunk| B[Ingestion]
B -->|embeddings locaux<br>sentence-transformers| C[(ChromaDB<br>data/chroma)]
D[VS Code + Copilot Chat] <-->|MCP stdio| E[Serveur copilot-rag]
E -->|recherche sémantique| C100 % local : aucune clé API, aucune donnée ne quitte la machine.
Ingestion incrémentale : seuls les fichiers modifiés sont ré-indexés.
Respecte les
.gitignore+ patterns include/exclude par projet.
Installation
py -3 -m venv .venv
.\.venv\Scripts\python.exe -m pip install -e .[dev]Le premier run télécharge le modèle d'embeddings (~100 Mo) puis le met en cache.
Related MCP server: smart-coding-mcp
Configuration
Éditez config/projects.yaml et listez vos projets.
Deux sources possibles : un dossier local (path) ou l'URL d'un dépôt git
(git), cloné une fois dans data/repos puis mis à jour automatiquement à
chaque ingestion (clone shallow, git doit être sur le PATH) :
projects:
- name: mon-backend
path: D:/wks/MonBackend
include: ["**/*.cs", "**/*.sql", "**/*.md"] # optionnel
exclude: ["**/generated/**"] # optionnel
- name: mon-frontend
git: https://github.com/mon-org/mon-frontend.git
ref: main # optionnel : branche, tag ou commitL'ingestion est incrémentale aussi pour les dépôts git : après le
fetch, seuls les fichiers dont le hash a changé sont ré-indexés.
Ingestion
.\scripts\ingest.ps1 # tout indexer (incrémental)
.\scripts\ingest.ps1 -Project mon-backend
.\scripts\ingest.ps1 -Force # tout ré-indexerUtilisation dans Copilot
Le serveur MCP est déclaré dans .vscode/mcp.json : VS Code le démarre automatiquement dans ce workspace. Dans Copilot Chat (mode Agent), les outils disponibles sont :
Outil | Rôle |
| Recherche sémantique de code (filtres projet/langage) |
| Trouve du code similaire à un extrait |
| Recherche dans les README / docs indexés |
| Liste les projets indexés |
| Volumes par projet et par langage |
Exemples de prompts Copilot :
« Avant d'écrire ce service, cherche dans copilot-rag comment les autres projets implémentent l'accès aux données. »
« Utilise search_documentation pour retrouver nos conventions de logging. »
Rendre la base disponible dans tous les workspaces
Pour interroger la base depuis n'importe quel projet, ajoutez le serveur à la
configuration MCP utilisateur (Palette de commandes → MCP: Open User Configuration) :
{
"servers": {
"copilot-rag": {
"type": "stdio",
"command": "D:\\wks\\Labo\\CopilotRAG\\.venv\\Scripts\\python.exe",
"args": ["-m", "copilot_rag.server"],
"cwd": "D:\\wks\\Labo\\CopilotRAG"
}
}
}Obliger Copilot à exploiter la base dans un projet
Copiez le modèle templates/copilot-instructions.md
dans .github/copilot-instructions.md du projet consommateur : il impose à Copilot
de consulter la base RAG avant/après toute écriture de code et de s'aligner sur les
patterns des projets indexés.
Tests et vérifications
.\.venv\Scripts\python.exe -m pytest # tests unitaires
.\.venv\Scripts\python.exe scripts\smoke_test.py # test de bout en bout du serveur MCPDes configurations de débogage sont fournies (.vscode/launch.json) : RAG : Ingestion et RAG : Smoke test MCP.
Structure
config/projects.yaml # projets à indexer (dossier local ou URL git), modèle, chunking
src/copilot_rag/ # config, chunker, embeddings, store, gitsync, ingest, server
scripts/ # ingest.ps1, smoke_test.py
samples/demo-api/ # projet d'exemple indexé par défaut
data/chroma/ # base vectorielle (générée, git-ignorée)
data/repos/ # clones locaux des dépôts git (généré, git-ignoré)Références
SDK MCP Python : https://py.sdk.modelcontextprotocol.io/
Spécification MCP : https://modelcontextprotocol.io/
sentence-transformers : https://sbert.net/
ChromaDB : https://docs.trychroma.com/
This server cannot be deployed
Maintenance
Related MCP Connectors
Project memory, semantic code search, and grounded agent context.
Shared memory for coding agents. Stop re-explaining your codebase every session.
Give your AI agent a persistent map of your project's structure, dependencies, and bugs.
Search indexed code, trace dependencies, assess change impact, and recall repository memory.
Related MCP Servers
- AlicenseAqualityFmaintenanceProvides intelligent semantic code search using local AI embeddings, enabling natural language queries to find relevant code by meaning rather than exact keywords. Indexes codebases in the background with smart project detection and privacy-first local processing.612 npm199MIT
- AlicenseAqualityDmaintenanceEnables AI assistants to perform intelligent semantic code search across codebases using local AI embeddings for meaning-based retrieval.612 npmMIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to index and search local files, websites, GitHub repos, and packages with hybrid AI-powered retrieval, all locally through IDE chat.Apache 2.0
- AlicenseNot gradedqualityCmaintenanceEnables VS Code Copilot to understand and query codebases through semantic search, call graph analysis, and related file discovery, using a local SQLite index with graph and vector embeddings.3 npm1MIT