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)

  1. Instale VS Code y GitHub Copilot
  2. Agregue nrtsearch-mcp como Proveedor de Contexto de Modelo en la configuración de VS Code (consulte .vscode/settings.json)
  3. Inicie el servidor (./quickstart.sh o nrtsearch-mcp)
  4. 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.json en el directorio actual
  • ~/nrtsearch-mcp-config.json en 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.