neutrinos-mcp
neutrinos-mcp
Un servidor MCP de recuperación sobre el corpus de documentación de Neutrinos (53 publicaciones, 3,117 temas,
7,810 fragmentos indexados). Recuperación híbrida BM25 + densa, fusión RRF, reordenamiento con cross-encoder,
colapso de casi-duplicados entre versiones y expansión condicional del grafo de enlaces — diseñado para responder
"¿es esto cierto para la versión que el usuario realmente está usando?", algo que una configuración ingenua de
búsqueda semántica sobre documentos falla en este corpus más de la mitad de las veces. Consulte implementation_plan.md para
la justificación completa del diseño (decisiones de arquitectura, modelo de datos, metodología de evaluación).
Inicio rápido
neutrinos-mcp es un repositorio público, por lo que no se necesita autenticación para clonarlo, descargar una versión,
o ejecutar cualquiera de los comandos de una línea a continuación — solo git y (opcionalmente) gh para descargar la base de datos
precompilada más rápido (consulte Distribución a continuación; sin gh, el servidor la descarga automáticamente en el primer uso
en su lugar, solo que no durante la instalación).
macOS/Linux — una línea:
curl -fsSL https://raw.githubusercontent.com/jitin-neutrinos/neutrinos-mcp/master/install.sh | bashWindows (PowerShell) — una línea:
iex (irm https://raw.githubusercontent.com/jitin-neutrinos/neutrinos-mcp/master/install.ps1)Cada uno descarga el script del instalador en sí (no todo el repositorio) y lo ejecuta directamente — versiones
anteriores de este README hacían que el comando de una línea hiciera su propio git clone primero y luego invocara el
script desde dentro, lo que duplicaba el paso de clonación del propio script y, en una máquina con un
~/.neutrinos-mcp obsoleto dejado por una ejecución anterior interrumpida, fallaba en esa clonación externa antes
de que el script tuviera la oportunidad de detectar y limpiar el desastre (git clone se niega a ejecutarse por completo
contra un destino no vacío). Descargar solo el script y dejar que gestione el directorio de destino
por sí mismo evita esa clase de error por completo.
Cada script: comprueba si ya existe una instalación allí y si está genuinamente completa (un
marcador .install_complete escrito solo al final de una ejecución anterior exitosa) — si es así, actualiza
en su lugar (git pull); si existe un directorio pero no está marcado como completo (restos de una
ejecución interrumpida, exactamente lo que causó el error anterior), se elimina antes de clonar de nuevo. Luego
crea un venv, instala el paquete (python -m pip install -e . — nunca un pip/pip.exe desnudo,
ya que ese ejecutable específico es bloqueado por la política de ejecución en algunas máquinas corporativas
restringidas mientras que python.exe en sí sigue permitido), descarga la última base de datos precompilada
data/neutrinos.db de la versión más reciente de GitHub mediante gh release download si gh está instalado
(de lo contrario, el servidor en ejecución la descarga en el primer uso en su lugar — consulte Distribución a continuación), registra
neutrinos-docs con Claude Code a nivel de usuario (todos los proyectos, no solo este), y fusiona
una entrada en claude_desktop_config.json de Claude Desktop (rutas de macOS/Linux/Windows manejadas;
fusionado con un pequeño script de Python, no sobrescrito, ya que ese archivo comúnmente ya tiene otros servidores
MCP). Esto también cubre Cowork — la pestaña de trabajo agéntico en la aplicación de Claude Desktop no es
una aplicación separada y no tiene configuración propia; la capa SDK de Desktop en sí puentea los servidores registrados en
su configuración hacia la VM sandbox de Cowork automáticamente. Un servidor agregado directamente dentro de una sesión
de Cowork, por el contrario, no puede conectarse en absoluto (la VM está aislada del host), por lo que el objetivo
de registro es específicamente el archivo de configuración de Desktop. Si algo hasta la instalación del paquete falla, todo lo que la ejecución creó se elimina antes de salir — un intento fallido nunca
deja restos que rompan el siguiente; un fallo en la descarga de la base de datos o en cualquiera de los pasos de registro
no lo hace, ya que una instalación local funcional que aún no ha descargado su base de datos, o que aún necesita
registro manual, no está "fallida". Reinicie Claude Code / Claude Desktop después — un servidor
registrado mientras una sesión ya está en ejecución no se recoge hasta que el cliente se reconecta.
Para compilar desde el código fuente en lugar de usar la base de datos de la versión precompilada:
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-mcpEn una máquina Windows restringida, dos cosas separadas pueden bloquear una configuración simple de pip install -e .,
y necesitan soluciones diferentes:
pip.exeen sí se niega a ejecutarse (Access is denied) — usepython.exe -m pip install -e .en lugar de unpip installdesnudo. El bloqueo está en ese ejecutable contenedor específico; el intérprete no se ve afectado.Incluso después de una instalación exitosa, los lanzadores
.exeque pip genera paraneutrinos-mcp,neutrinos-cliyneutrinos-build(en.venv\Scripts\) pueden encontrar el *idéntico*Access is deniedal ejecutarse — confirmado en la propia máquina de desarrollo de este proyecto. Cualquier política que bloqueepip.exeevidentemente bloquea los lanzadores de scripts de consola recién generados en general, no solo apip.exepor nombre específicamente. La solución es la misma en ambos casos: nunca invoque el.exe, siempre pase por el intérprete —python.exe -m neutrinos_mcp.cli ...en lugar deneutrinos-cli ..., y para el servidor:claude mcp add neutrinos-docs --scope user ` -- "<repo>\.venv\Scripts\python.exe" -m neutrinos_mcp.serverEsto funciona tanto si
pip install -e .tuvo éxito como si no —config.pyresuelve cada ruta contra el checkout del código fuente, no contra site-packages, por lo que si el paso de instalación falló por completo, agregue-e PYTHONPATH="<repo>\src"al comando anterior y se comporta de manera idéntica.install.ps1ya hace esto (consulte a continuación), por lo que esto solo importa si está registrando manualmente.
Related MCP server: knowledge-server
Distribución y actualización automática
.github/workflows/build-db.yml ejecuta las cuatro etapas de ingesta diariamente contra el sitio en vivo y
publica data/neutrinos.db como un activo de versión de GitHub (raw/ se almacena en caché entre ejecuciones, por lo que
esto es realmente incremental, no un rastreo completo cada día — consulte los comentarios del flujo de trabajo).
install.sh clona el repositorio y descarga la última base de datos de versión mediante gh release download; si gh
no está disponible, neutrinos_mcp.server._check_for_db_updates_once la descarga la primera vez que el
servidor se inicia en su lugar. Esa verificación se ejecuta una vez por proceso, en un hilo en segundo plano, y nunca en
la ruta de solicitud — consulte su docstring para saber por qué esa distinción importa (una versión síncrona
una vez derribó una conexión MCP en vivo en una red corporativa lenta).
Diseño
.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.jsonPruebas
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 regressionConfiguración
Todo lo ajustable vive en config/settings.toml, no en código — recuentos de candidatos de recuperación,
la constante RRF, lambda MMR, truncamiento/threading del reordenador, ventanas de obsolescencia, presupuestos de tokens.
Los pesos del modelo están fijados por nombre y verificados contra el manifiesto de compilación al inicio del servidor
(AD-12): servir un índice construido con un modelo de incrustación diferente falla de manera ruidosa en lugar de
devolver resultados silenciosamente degradados.
Qué no es esto
No es una superficie general de búsqueda web o ejecución de código, no es un grafo de entidades extraído por LLM, no es un
escritor — el servidor devuelve evidencia con citas estables (tokens ref); componer la respuesta
es tarea del agente que llama. Consulte el 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