NRTSearch

Expõe índices de busca baseados em Lucene para assistentes de IA através do servidor MCP NRTSearch.

Documentação

Servidor MCP NRTSearch

Servidor Model Context Protocol (MCP) pronto para produção para Lucene/NRTSearch, com suporte de primeira classe para assistentes de IA como GitHub Copilot e Claude.


Recursos

  • Expõe a busca Lucene/NRTSearch como um servidor MCP robusto para ferramentas de IA
  • Aceita qualquer consulta Lucene (booleana, frase, intervalo, curinga, difusa, etc.)
  • Logging estruturado, tentativas e suporte a destaque
  • Lógica de busca puramente testável com cobertura completa de testes
  • Integração fácil com GitHub Copilot, Claude Desktop e outros clientes MCP
  • Empacotamento e configuração modernos em Python (Pydantic, pyproject.toml)

Início Rápido

git clone https://github.com/tvergilio/nrtsearch-mcp-server.git
cd nrtsearch-mcp-server
./quickstart.sh

Isso irá:

  • Instalar todas as dependências (incluindo o SDK MCP)
  • Iniciar o servidor na porta configurada

Uso

CLI / Manual

Após a instalação, você pode iniciar o servidor com:


# Using the Python module
python -m nrtsearch_mcp.server

# Or, if installed via pip/pipx, use the CLI entrypoint:
nrtsearch-mcp

Com GitHub Copilot (VS Code)

  1. Instale o VS Code e o GitHub Copilot
  2. Adicione nrtsearch-mcp como um Provedor de Contexto de Modelo nas configurações do VS Code (veja .vscode/settings.json)
  3. Inicie o servidor (./quickstart.sh ou nrtsearch-mcp)
  4. Use o Copilot Chat para consultar seus índices Lucene em linguagem natural

Configuração

O servidor é configurado por meio de variáveis de ambiente e/ou um arquivo de configuração JSON. Por padrão, ele procura por:

  • Variável de ambiente NRTSEARCH_MCP_CONFIG (caminho para a configuração)
  • ./config.json no diretório atual
  • ~/nrtsearch-mcp-config.json no diretório inicial do usuário

Exemplo de configuração:

{
  "nrtsearch_connection": {
    "host": "localhost",
    "port": 8000,
    "use_https": false
  },
  "log_level": "INFO"
}

Principais variáveis de ambiente:

  • LOG_LEVEL (padrão: INFO)
  • NRTSEARCH_MCP_CONFIG (caminho de configuração opcional)

API: Ferramenta de Busca

A ferramenta principal é nrtsearch/search:

Parâmetros:

  • index (str): Nome do índice (ex.: yelp_reviews_staging)
  • queryText (str): Consulta Lucene completa (ex.: text:(irish AND pub AND (texas OR tx)))
  • topHits (int, padrão 10): Número de resultados (1-100)
  • retrieveFields (lista, opcional): Campos a retornar (padrão: ["text", "stars"])
  • highlight (booleano, opcional): Destacar correspondências

Retorna:

  • Lista de resultados: {score, stars, text}

Exemplos de Consulta Lucene:

  • text:(irish AND pub AND (texas OR tx))
  • text:"great coffee"
  • stars:[4 TO 5] AND text:(vegan AND brunch)

Testes

Execute todos os testes (unitários, sem necessidade de servidor):

pytest -v

Os testes cobrem:

  • Sucesso, resultados vazios e múltiplos resultados
  • Tratamento de erros (HTTP, rede, malformados, campos ausentes)
  • Lógica de tentativas
  • Destaque e campos personalizados
  • Validação de entrada

Estrutura do Projeto

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
└── ...

Licença

Licença Apache 2.0. Veja LICENSE.