neutrinos-mcp
neutrinos-mcp
Ein Retrieval-MCP-Server über den Neutrinos-Dokumentationskorpus (53 Publikationen, 3.117 Themen,
7.810 indizierte Chunks). Hybride BM25- und dichte Suche, RRF-Fusion, Cross-Encoder-Reranking,
kollabierte beinahe Duplikate über Versionen hinweg und bedingte Link-Graph-Erweiterung – entwickelt,
um die Frage zu beantworten: „Stimmt das für die Version, die der Benutzer tatsächlich verwendet?“,
was ein naives semantisches Such-Setup über Dokumente bei diesem Korpus in mehr als der Hälfte der
Fälle falsch beantwortet. Siehe implementation_plan.md für die vollständige Design-Begründung
(Architekturentscheidungen, Datenmodell, Evaluierungsmethodik).
Schnellstart
neutrinos-mcp ist ein öffentliches Repository, daher ist keine Authentifizierung erforderlich,
um es zu klonen, ein Release abzurufen oder einen der beiden Einzeiler unten auszuführen – nur git
und (optional) gh, um die vorgefertigte Datenbank schneller zu ziehen (siehe Distribution unten;
ohne gh lädt der Server sie stattdessen automatisch bei der ersten Verwendung, nur nicht während
der Installation).
macOS/Linux – eine Zeile:
curl -fsSL https://raw.githubusercontent.com/jitin-neutrinos/neutrinos-mcp/master/install.sh | bashWindows (PowerShell) – eine Zeile:
iex (irm https://raw.githubusercontent.com/jitin-neutrinos/neutrinos-mcp/master/install.ps1)Jeder lädt das Installationsskript selbst (nicht das gesamte Repository) und führt es direkt aus –
frühere Versionen dieser README ließen den Einzeiler zuerst ein eigenes git clone ausführen und
dann das Skript von innen aufrufen, was den eigenen Klon-Schritt des Skripts duplizierte und auf
einem Rechner mit einem veralteten ~/.neutrinos-mcp, das von einem unterbrochenen vorherigen Lauf
übrig geblieben war, bei diesem äußeren Klon fehlschlug, bevor das Skript überhaupt die Chance hatte,
das Durcheinander zu erkennen und zu bereinigen (git clone weigert sich, gegen ein nicht leeres
Ziel zu laufen). Nur das Skript zu holen und ihm die Verwaltung des Zielverzeichnisses selbst zu
überlassen, vermeidet diese Klasse von Fehlern vollständig.
Jedes Skript: prüft, ob dort bereits eine Installation existiert und wirklich vollständig ist (ein
.install_complete-Marker, der nur am Ende eines früheren erfolgreichen Laufs geschrieben wird) –
wenn ja, aktualisiert es an Ort und Stelle (git pull); wenn ein Verzeichnis existiert, aber nicht
als vollständig markiert ist (Überreste eines unterbrochenen Laufs, genau das, was den obigen Fehler
verursacht hat), wird es entfernt, bevor frisch geklont wird. Anschließend erstellt es eine venv,
installiert das Paket (python -m pip install -e . – niemals ein nacktes pip/pip.exe, da diese
ausführbare Datei auf einigen restriktiven Unternehmensrechnern von der Ausführungsrichtlinie
blockiert wird, während python.exe selbst weiterhin erlaubt ist), lädt die neueste vorgefertigte
data/neutrinos.db aus dem neuesten GitHub-Release über gh release download herunter, falls gh
installiert ist (andernfalls lädt der laufende Server sie stattdessen bei der ersten Verwendung –
siehe Distribution unten), registriert neutrinos-docs bei Claude Code im Benutzerbereich (für
jedes Projekt, nicht nur dieses) und fügt einen Eintrag in claude_desktop_config.json von Claude
Desktop ein (macOS/Linux/Windows-Pfade werden behandelt; mit einem kleinen Python-Skript
zusammengeführt, nicht überschrieben, da diese Datei üblicherweise bereits andere MCP-Server enthält).
Dies deckt auch Cowork ab – der Agentic-Work-Tab in der Claude-Desktop-App ist keine separate App
und hat keine eigene Konfiguration; die eigene SDK-Schicht von Desktop überbrückt Server, die in
seiner Konfiguration registriert sind, automatisch in die Sandbox-VM von Cowork. Ein Server, der
direkt in einer Cowork-Sitzung hinzugefügt wird, kann dagegen überhaupt keine Verbindung herstellen
(die VM ist vom Host isoliert), weshalb das Registrierungsziel speziell die Konfigurationsdatei von
Desktop ist. Wenn irgendetwas bis zur Paketinstallation fehlschlägt, wird alles, was der Lauf
erstellt hat, vor dem Beenden entfernt – ein fehlgeschlagener Versuch hinterlässt nie Überreste,
die den nächsten Lauf brechen; ein Fehler beim Abrufen der Datenbank oder bei einem der beiden
Registrierungsschritte tut das nicht, da eine funktionierende lokale Installation, die nur ihre
Datenbank noch nicht abgerufen hat oder noch manuelle Registrierung benötigt, nicht „fehlgeschlagen“
ist. Starten Sie Claude Code / Claude Desktop danach neu – ein Server, der registriert wird,
während eine Sitzung bereits läuft, wird erst übernommen, wenn der Client sich wieder verbindet.
Um aus dem Quellcode zu bauen, anstatt die vorgefertigte Release-Datenbank zu verwenden:
pip install -e ".[dev]"
# Build the index (four stages, run in order; full run crawls
# documentation.neutrinos.com and takes ~25 min)
python -m neutrinos_mcp.ingest.crawl # stage 1 -> raw/*.html (delta by default; --full to re-fetch everything)
python -m neutrinos_mcp.ingest.extract # stage 2 -> data/topics.jsonl
python -m neutrinos_mcp.ingest.chunk # stage 3 -> data/chunks.jsonl
python -m neutrinos_mcp.ingest.index # stage 4 -> data/neutrinos.db
# Query it
neutrinos-cli search "how do I bind a widget to a data model"
neutrinos-cli search "accessing data models" --product Studio --version 9
neutrinos-cli fetch studio-guide-9/data-binding --json
neutrinos-cli products
# Run the MCP server
neutrinos-mcpAuf einem restriktiven Windows-Rechner können zwei getrennte Dinge ein einfaches
pip install -e .-Setup blockieren, und sie benötigen unterschiedliche Workarounds:
pip.exeselbst weigerte sich zu laufen (Access is denied) – verwenden Siepython.exe -m pip install -e .anstelle eines nacktenpip install. Die Blockade betrifft diese spezifische Wrapper-ausführbare Datei; der Interpreter ist nicht betroffen.Selbst nach einer erfolgreichen Installation können die von pip generierten
.exe-Launcher fürneutrinos-mcp,neutrinos-cliundneutrinos-build(in.venv\Scripts\) beim tatsächlichen Ausführen auf den *identischen*Access is deniedstoßen – bestätigt auf dem eigenen Entwicklungsrechner dieses Projekts. Welche Richtlinie auch immerpip.exeblockiert, blockiert offenbar allgemein frisch generierte Konsolen-Skript-Launcher, nicht speziellpip.exemit Namen. Die Lösung ist in beiden Fällen dieselbe: Rufen Sie niemals die.exeauf, gehen Sie immer über den Interpreter –python.exe -m neutrinos_mcp.cli ...anstelle vonneutrinos-cli ..., und für den Server:claude mcp add neutrinos-docs --scope user ` -- "<repo>\.venv\Scripts\python.exe" -m neutrinos_mcp.serverDies funktioniert unabhängig davon, ob
pip install -e .erfolgreich war –config.pylöst jeden Pfad gegen den Quellcode-Checkout auf, nicht gegen site-packages. Wenn der Installationsschritt also vollständig fehlgeschlagen ist, fügen Sie-e PYTHONPATH="<repo>\src"zum obigen Befehl hinzu, und er verhält sich identisch.install.ps1macht dies bereits (siehe unten), das ist also nur relevant, wenn Sie von Hand registrieren.
Related MCP server: knowledge-server
Distribution und automatische Aktualisierung
.github/workflows/build-db.yml führt die vier Ingest-Stufen täglich gegen die Live-Site aus und
veröffentlicht data/neutrinos.db als GitHub-Release-Asset (raw/ wird zwischen den Läufen
zwischengespeichert, sodass dies tatsächlich inkrementell ist und nicht jeden Tag ein vollständiger
Neudurchlauf – siehe die Kommentare im Workflow). install.sh klont das Repository und zieht die
neueste Release-Datenbank über gh release download; wenn gh nicht verfügbar ist, lädt
neutrinos_mcp.server._check_for_db_updates_once sie stattdessen beim ersten Start des Servers.
Diese Prüfung läuft einmal pro Prozess in einem Hintergrundthread und niemals auf dem
Anforderungspfad – siehe Docstring, warum diese Unterscheidung wichtig ist (eine synchrone Version
davon hat einmal eine Live-MCP-Verbindung in einem langsamen Unternehmensnetzwerk abgerissen).
Layout
.github/workflows/build-db.yml daily ingest + GitHub release publish (see Distribution above)
install.sh macOS/Linux installer: clone, venv, pip install -e ., fetch release DB, register
config/ settings.toml (runtime config), publications.yaml (product/version registry)
src/neutrinos_mcp/
ingest/ crawl -> extract -> chunk -> embed -> build (data/neutrinos.db)
retrieval/ the ranking pipeline: scope -> BM25/dense -> RRF -> rerank -> collapse -> MMR -> expand
tools/ MCP tool JSON schemas + handlers (the contract; see plan §8.5)
kb.py the query API — server.py and cli.py both call this and nothing else touches SQL
server.py FastMCP entry point
cli.py terminal adapter over the same contract
eval/ golden-set generation, harness, ablation ladder, two-run regression report
tests/ schema contract tests, corpus-integrity tests (skip without a built index), unit tests
data/ neutrinos.db (built artifact), chroma_db (optional mirror), census.jsonTesten
pytest # unit + schema tests; integrity tests skip without an index
python -m eval.harness --tag baseline # full-stack retrieval quality on the golden set
python -m eval.ablate # §10.4 rung-by-rung ablation
python -m eval.report before.json after.json --gate # regression gate, exits 1 on a real regressionKonfiguration
Alles Einstellbare befindet sich in config/settings.toml, nicht im Code – Retrieval-Kandidatenzahlen,
die RRF-Konstante, MMR-Lambda, Reranker-Trunkierung/Threading, Veraltungsfenster, Token-Budgets.
Modellgewichte sind namentlich festgelegt und werden beim Serverstart gegen das Build-Manifest
verifiziert (AD-12): Das Ausliefern eines Index, der mit einem anderen Embedding-Modell erstellt
wurde, schlägt laut fehl, anstatt stillschweigend verschlechterte Ergebnisse zu liefern.
Was dies nicht ist
Keine allgemeine Websuche oder Code-Ausführungsoberfläche, kein LLM-extrahierter Entitätsgraph,
kein Autor – der Server liefert Belege mit stabilen Zitaten (ref-Tokens); das Verfassen der Antwort
ist Aufgabe des aufrufenden Agenten. Siehe Plan §1.4.
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to search and retrieve Microsoft AutoGen documentation across versions with smart search and fallback.181MIT
- AlicenseNot gradedqualityDmaintenanceEnables LLMs to search and retrieve information from large technical documentation (OpenAPI specs, markdown) via intelligent chunking and semantic search.MIT
- AlicenseNot gradedqualityCmaintenanceEnables querying Confluence or Kubernetes documentation through hybrid search and an agentic RAG pipeline, returning structured answers with citations.Apache 2.0
- FlicenseNot gradedqualityBmaintenanceEnables AI agents to search Nokia product documentation with hybrid BM25+vector search and return section-precise deep-link citations.
Related MCP Connectors
Apple Developer Documentation with Semantic Search, RAG, and AI reranking for MCP clients
Search your knowledge bases from any AI assistant using hybrid RAG.
Page-cited retrieval for embedded docs, datasheets, MISRA, CMSIS, and RTOS references.
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/jitin-neutrinos/neutrinos-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server