codebase-rag-mcp
Codebase RAG MCP
Ein lokaler, API-Key-freier MCP-Server für Codebasis-Retrieval. Er scannt angegebene Repositories, chunked nach Code-Fenstern und führt ein hybrides Ranking mittels BM25, Symbolnamen, Dateipfaden und exakter Übereinstimmung durch. Er kann direkt an Codex angebunden werden und bietet auch standardmäßige search/fetch-Tools für ChatGPT-Wissensabruf-Szenarien.
Funktionen
Bevorzugt
git ls-files, beachtet verschachtelte.gitignore-Dateien des Repositories; für Nicht-Git-Verzeichnisse wird das Dateisystem gescannt.Unterstützt gängige Text-Code-Formate wie TypeScript, JavaScript, Python, Go, Rust, Java, C/C++, C#, Ruby, Shell, SQL, Markdown, Vue, Svelte.
Automatische Aufteilung von camelCase, snake_case und Pfadbestandteilen; unterstützt gängige chinesische Code-Abfrageerweiterungen, z. B. „用户登录认证“.
Gibt exakte Dateipfade, Zeilennummern, Code-Ausschnitte mit Zeilennummern, Übereinstimmungsgrund und stabile IDs für fortgesetztes Lesen zurück.
Pfad-Lesen ist auf das konfigurierte Repository-Stammverzeichnis beschränkt; standardmäßig werden symbolische Links, Binärdateien, Schlüssel, Umgebungsvariablendateien, komprimierter Code und große Dateien übersprungen.
Unterstützt gleichzeitig lokales
stdiound zustandsloses Streamable HTTP/mcp.
Schnellstart
Erfordert Node.js 20 oder höher.
Projekt von GitHub holen:
git clone https://github.com/sudoriaa/codebase-rag-mcp.git
cd codebase-rag-mcpAbhängigkeiten installieren und bauen:
npm install
npm run build
node dist/cli.js --root C:/path/to/your-repositoryDer letzte Befehl startet den stdio MCP-Server, der auf eine Verbindung eines MCP-Clients wartet. Es ist daher normal, dass das Terminal weiterläuft.
Anbindung an Codex
Folgendes in die benutzerspezifische %USERPROFILE%/.codex/config.toml oder in die .codex/config.toml eines vertrauenswürdigen Repositories einfügen:
[mcp_servers.codebase-rag]
command = "C:/Program Files/nodejs/node.exe"
args = [
"C:/absolute/path/codebase-rag-mcp/dist/cli.js",
"--root",
"C:/absolute/path/your-repository"
]
cwd = "C:/absolute/path/codebase-rag-mcp"
startup_timeout_sec = 60
tool_timeout_sec = 120Für Windows TOML-Pfade wird / empfohlen. command enthält nur die ausführbare Datei, andere Parameter werden in args eingetragen. Die von Desktop-Anwendungen geerbte PATH-Variable kann sich von der in PowerShell unterscheiden; daher empfiehlt sich bei längerer Nutzung die Angabe des absoluten Pfads zu node.exe.
Alternativ kann die Registrierung auch über die CLI erfolgen:
codex mcp add codebase-rag -- "C:\Program Files\nodejs\node.exe" "C:\absolute\path\codebase-rag-mcp\dist\cli.js" --root "C:\absolute\path\your-repository"
codex mcp get codebase-rag --jsonNach der Konfiguration die Codex-Desktop-Anwendung oder IDE-Erweiterung neu starten. Eine Beispielkonfiguration findet sich in examples/codex-config.toml.
HTTP MCP starten
node dist/cli.js --root C:/path/to/your-repository --transport http --host 127.0.0.1 --port 3000Endpunkte:
MCP:
http://127.0.0.1:3000/mcpHealth-Check:
http://127.0.0.1:3000/healthQuelldateien referenzieren:
http://127.0.0.1:3000/source/:documentId
Standardmäßig wird nur auf dem lokalen Rechner gelauscht. Bei Bereitstellung auf anderen Rechnern sollten auf der Reverse-Proxy-Ebene TLS, Authentifizierung und Zugriffskontrolle hinzugefügt werden. Mit --public-base-url wird die für das Modell erreichbare kanonische Adresse gesetzt.
Wenn direkt auf 0.0.0.0 oder einer anderen nicht-lokalen Adresse gelauscht wird, erfordert der Dienst ein Bearer Token:
$env:CODEBASE_MCP_TOKEN = "replace-with-a-long-random-token"
node dist/cli.js --root C:/path/to/your-repository --transport http --host 0.0.0.0 --port 3000Der Client muss dann für /mcp und /health den Header Authorization: Bearer <token> senden. Die vom Dienst zurückgegebenen Referenzadressen werden automatisch mit einer HMAC-Signatur versehen, sodass Benutzer die entsprechenden /source-Links direkt öffnen können; der manuelle Zugriff auf unsignierte /source-Adressen erfordert weiterhin das Bearer Token. Bei Veröffentlichung über einen lokalen Reverse-Proxy kann der Dienst weiterhin auf 127.0.0.1 lauschen, während der Proxy die externe Authentifizierung übernimmt.
MCP-Tools
Tool | Zweck |
| Standardsuche nach Dokumenten, gibt |
| Ruft die vollständige Datei anhand der von |
| Hybridsuche nach Code-Ausschnitten, filterbar nach Pfad, Sprache, Symboltyp und Testdateien |
| Ruft den Kontext anhand einer Chunk-ID ab, maximal 200 Zeilen erweiterbar |
| Findet Definitionen von Klassen, Funktionen, Methoden, Schnittstellen, Typen und Aufzählungen |
| Gibt die Imports und die Symbolübersicht einer Datei zurück |
| Zeigt Index-Statistiken und Überspringungsgründe an |
| Scannt nach Dateiänderungen neu und baut den In-Memory-Index neu auf |
Empfohlene Aufrufreihenfolge:
Mit
search_codenach Implementierungen und zugehörigen Ausschnitten suchen.Mit
get_code_contextdie hochbewerteten Ausschnitte erweitern.Bei präziser Positionsbestimmung
find_symbolverwenden.fetchnur dann einsetzen, wenn die vollständige Datei tatsächlich benötigt wird.
Suchmethode
Der Index läuft vollständig im Arbeitsspeicher des lokalen Rechners:
Codedateien werden in maximal 120 Zeilen lange Abschnitte mit 20 Zeilen Überlappung aufgeteilt.
Aus gängigen Sprachdeklarationen werden Symbole wie class, interface, type, enum, function, method extrahiert.
Der Textkörper wird mittels BM25 abgerufen, Symbole und Pfade werden separat sortiert.
Mittels reciprocal-rank fusion werden die Bewertungen von Textkörper, Symbolen, Pfaden und exakten Übereinstimmungen zusammengeführt.
Standardmäßig werden pro Datei maximal zwei Ausschnitte zurückgegeben, um zu vermeiden, dass wiederholter Vorlagencode die Ergebnisse dominiert.
Diese Version verwendet keine externe Vektordatenbank und lädt auch keinen Quellcode hoch. Für eine groß angelegte, sprachübergreifende semantische Suche über mehrere Repositories hinweg kann vor oder nach dem vorhandenen CodebaseIndex.search ein Embedding-Retrieval oder ein Reranker hinzugefügt werden; der MCP-Tool-Vertrag muss dabei nicht geändert werden.
Konfiguration
--root PATH
--transport stdio|http
--host HOST
--port PORT
--public-base-url URL
--max-file-bytes N
--max-files NDie entsprechenden Umgebungsvariablen lauten:
CODEBASE_ROOT
CODEBASE_TRANSPORT
CODEBASE_HOST
CODEBASE_PORT
CODEBASE_PUBLIC_BASE_URL
CODEBASE_MCP_TOKEN
CODEBASE_MAX_FILE_BYTES
CODEBASE_MAX_FILESDas Standardlimit für eine einzelne Datei beträgt 1 MiB, die maximale Anzahl an Dateien liegt bei 20.000.
Entwicklung und Validierung
npm run build
npm testDie Tests decken den Indexaufbau, .gitignore, chinesische Abfrageerweiterung, Symbol- und Pfadfilter, Pfadüberschreitungen, standardmäßige search/fetch, In-Memory-MCP, echte stdio-Subprozesse und Streamable HTTP ab.
Der MCP Inspector kann auch direkt den HTTP-Dienst überprüfen:
npx @modelcontextprotocol/inspectorAnschließend Streamable HTTP auswählen und http://127.0.0.1:3000/mcp eintragen.
Die Implementierung folgt dem OpenAI Official MCP Server Guide sowie den standardmäßigen search/fetch-Datenformen.
Aktuelle Grenzen
Der Index wird nach einem Prozessneustart neu aufgebaut; es gibt keinen persistenten Cache.
Git-Repositories beachten die Git-Ignore-Regeln vollständig; Nicht-Git-Verzeichnisse lesen derzeit die
.gitignoredes Stammverzeichnisses.Die Symbolextraktion verwendet eine einfache Deklarationsanalyse, die nicht mit einem vollständigen Compiler-AST gleichzusetzen ist.
Nach Dateiänderungen muss
refresh_indexaufgerufen werden; die aktuelle Version verfügt über keine Dateiüberwachung.
Lizenz
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
An MCP server that gives your AI access to the source code and docs of all public github repos
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Driflyte MCP server which lets AI assistants query topic-specific knowledge from web and GitHub.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/sudoriaa/codebase-rag-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server