NRTSearch
Expone índices de búsqueda basados en Lucene a asistentes de IA a través del servidor MCP NRTSearch.
Documentación
Servidor MCP de NRTSearch
Servidor de Protocolo de Contexto de Modelo (MCP) listo para producción para Lucene/NRTSearch, con soporte de primera clase para asistentes de IA como GitHub Copilot y Claude.
Características
- Expone la búsqueda de NRTSearch/Lucene como un servidor MCP robusto para herramientas de IA
- Acepta cualquier consulta de Lucene (booleana, de frase, de rango, comodín, difusa, etc.)
- Registro estructurado, reintentos y soporte de resaltado
- Lógica de búsqueda puramente testeable con cobertura completa de pruebas
- Integración fácil con GitHub Copilot, Claude Desktop y otros clientes MCP
- Empaquetado y configuración modernos de Python (Pydantic, pyproject.toml)
Inicio Rápido
git clone https://github.com/tvergilio/nrtsearch-mcp-server.git
cd nrtsearch-mcp-server
./quickstart.sh
Esto:
- Instalará todas las dependencias (incluido el SDK de MCP)
- Iniciará el servidor en el puerto configurado
Uso
CLI / Manual
Después de la instalación, puede iniciar el servidor con cualquiera de las siguientes opciones:
# Using the Python module
python -m nrtsearch_mcp.server
# Or, if installed via pip/pipx, use the CLI entrypoint:
nrtsearch-mcp
Con GitHub Copilot (VS Code)
- Instale VS Code y GitHub Copilot
- Agregue
nrtsearch-mcpcomo Proveedor de Contexto de Modelo en la configuración de VS Code (consulte.vscode/settings.json) - Inicie el servidor (
./quickstart.shonrtsearch-mcp) - Use Copilot Chat para consultar sus índices de Lucene en lenguaje natural
Configuración
El servidor se configura mediante variables de entorno y/o un archivo de configuración JSON. Por defecto, busca:
- Variable de entorno
NRTSEARCH_MCP_CONFIG(ruta al archivo de configuración) ./config.jsonen el directorio actual~/nrtsearch-mcp-config.jsonen su directorio de inicio
Ejemplo de configuración:
{
"nrtsearch_connection": {
"host": "localhost",
"port": 8000,
"use_https": false
},
"log_level": "INFO"
}
Variables de entorno clave:
LOG_LEVEL(por defecto: INFO)NRTSEARCH_MCP_CONFIG(ruta de configuración opcional)
API: Herramienta de Búsqueda
La herramienta principal es nrtsearch/search:
Parámetros:
index(str): Nombre del índice (p. ej.,yelp_reviews_staging)queryText(str): Consulta completa de Lucene (p. ej.,text:(irish AND pub AND (texas OR tx)))topHits(int, por defecto 10): Número de resultados (1-100)retrieveFields(lista, opcional): Campos a devolver (por defecto:["text", "stars"])highlight(bool, opcional): Resaltar coincidencias
Devuelve:
- Lista de resultados:
{score, stars, text}
Ejemplos de Consultas Lucene:
text:(irish AND pub AND (texas OR tx))text:"great coffee"stars:[4 TO 5] AND text:(vegan AND brunch)
Pruebas
Ejecute todas las pruebas (unitarias, sin necesidad de servidor):
pytest -v
Las pruebas cubren:
- Resultados exitosos, vacíos y múltiples
- Manejo de errores (HTTP, red, malformados, campos faltantes)
- Lógica de reintentos
- Resaltado y campos personalizados
- Validación de entrada
Estructura del Proyecto
nrtsearch-mcp-server/
├── nrtsearch_mcp/
│ ├── server.py # Main MCP server and search logic
│ ├── settings.py # Pydantic config
│ └── ...
├── tests/ # Unit tests
├── quickstart.sh # One-step install & run
├── requirements.txt # Python dependencies
├── pyproject.toml # Packaging/metadata
└── ...
Licencia
Licencia Apache 2.0. Consulte LICENSE.