SeekStorm MCP Server
O servidor MCP SeekStorm oferece busca lexical, vetorial e híbrida. Tudo é incorporado; nenhum servidor de busca externo é necessário.
Documentação
Servidor de busca SeekStorm MCP
O SeekStorm MCP Server expõe a biblioteca de busca SeekStorm como um servidor local Model Context Protocol.
Ele é executado como um processo filho via MCP stdio, incorpora o SeekStorm diretamente e possui seu próprio índice local.
Nenhum processo seekstorm_server ou conexão de rede é necessário.
O servidor suporta recuperação lexical, vetorial e híbrida, além de indexação de documentos e gerenciamento de índices.
- Suporta esquemas configuráveis e configurações de índice, indexação/atualização/exclusão de documentos, recuperação e iteração, ingestão de JSON/NDJSON e indexação de PDF.
- Suporta busca lexical, vetorial e híbrida, incluindo filtros, facetas, ordenação e realce.
- Adicionados testes de unidade, integração stdio e testes de contrato MCP.
- O servidor MCP atualmente implementa apenas o modo incorporado; ele não se conecta a um servidor SeekStorm remoto.
Saiba mais sobre agentes de IA, RAG e MCP — o que significam e como se encaixam.
Início rápido
Compile a partir da raiz do workspace:
cargo build --release -p seekstorm_mcp_server
Adicione o servidor a uma configuração de cliente MCP. Substitua o caminho do executável pela localização do binário compilado:
{
"mcpServers": {
"seekstorm": {
"command": "C:/path/to/seekstorm_mcp_server.exe",
"env": {
"SEEKSTORM_INDEX_PATH": "C:/Users/me/seekstorm-index"
}
}
}
}
O servidor abre o índice em SEEKSTORM_INDEX_PATH se ele existir. Caso contrário, ele cria um índice nesse local com um esquema padrão pequeno contendo os campos de texto title, body e path. O índice é confirmado quando o processo MCP é encerrado.
Você também pode iniciá-lo diretamente a partir do workspace durante o desenvolvimento:
$env:SEEKSTORM_INDEX_PATH = "$PWD/seekstorm_index"
cargo run -p seekstorm_mcp_server
Os clientes MCP falam o protocolo stdio; não envie saída regular para o stdout do servidor.
Configuração do Índice
Para criar um índice com um esquema diferente ou configurações vetoriais na inicialização, defina SEEKSTORM_INDEX_CONFIG para um arquivo JSON contendo um CreateIndexRequest do SeekStorm. O caminho do índice ainda vem de SEEKSTORM_INDEX_PATH.
{
"index_name": "project_docs",
"schema": [
{ "field": "title", "field_type": "Text", "store": true, "index_lexical": true, "boost": 5 },
{ "field": "body", "field_type": "Text", "store": true, "index_lexical": true, "longest": true },
{ "field": "url", "field_type": "Text", "store": true, "index_lexical": false }
],
"similarity": "Bm25f",
"tokenizer": "UnicodeAlphanumericFolded"
}
A solicitação usa os mesmos tipos de esquema e configuração de índice que o cliente de biblioteca/REST do SeekStorm, incluindo sinônimos, correção ortográfica, conclusão de consulta, inferência vetorial e agrupamento. Para um processo já em execução, use a ferramenta MCP create_index com um objeto index_path e um objeto config, ou use open_index para alternar para um índice local existente. Alternar índices confirma primeiro o índice atualmente ativo.
Ferramentas
create_index,open_index,get_index_info,clear_index,commitindex_document,index_documents,update_document,update_documentssearch,get_document,document_iteratordelete_document,delete_documents,delete_documents_by_queryingest_json,index_pdf_file,get_file
Os documentos são objetos JSON arbitrários cujos campos devem corresponder ao esquema do índice ativo. ingest_json transmite arrays JSON, NDJSON e documentos JSON concatenados. index_pdf_file extrai texto de um PDF local e requer uma biblioteca Pdfium disponível. get_file retorna os bytes do arquivo associado como texto base64.
delete_documents_by_query usa length e offset para limitar e paginar pelos documentos correspondentes antes da exclusão. Pesquise primeiro para verificar as correspondências pretendidas.
Busca
search aceita uma consulta, length, offset e mode (Lexical, Vector ou Hybrid). Ele também suporta tipos de consulta e reescrita do SeekStorm, busca em tempo real, seleção de campos, filtros/facetas, ordenação, realce, configurações de ANN e limites de similaridade.
Para busca vetorial ou híbrida, forneça query_vector (valores float) ou query_vector_i8 (valores inteiros de 8 bits com sinal), a menos que o índice ativo esteja configurado com um modelo de inferência interno. Vetores explícitos devem corresponder às dimensões do índice. A busca vetorial precisa de campos indexados por vetor no esquema; a busca híbrida pode combinar campos lexicais e vetores. ann_mode aceita o AnnMode serializado do SeekStorm, por exemplo "All" ou { "Nprobe": 8 }.
Exemplo de argumentos da ferramenta de busca lexical:
{
"query": "indexing pipeline",
"mode": "Lexical",
"length": 5,
"offset": 0,
"field_filter": ["title", "body"]
}
Exemplo de argumentos de busca vetorial para um índice vetorial tridimensional:
{
"query": "related documents",
"mode": "Vector",
"query_vector": [0.12, -0.03, 0.88],
"length": 5
}
Definições de facetas, filtros de facetas, definições de ordenação, realces, reescrita de consultas e configurações de enumeração são passados em suas formas JSON serializadas do SeekStorm. O esquema e as configurações do índice são fixados quando um índice é criado; alterá-los requer criar um novo índice e reindexar os documentos.
Testes
Execute todos os testes de unidade do servidor, integração stdio e testes de contrato MCP a partir da raiz do workspace:
cargo test -p seekstorm_mcp_server
