SeekStorm MCP Server
El servidor MCP de SeekStorm proporciona búsqueda léxica, vectorial e híbrida. Todo está integrado; no se requiere un servidor de búsqueda externo.
Documentación
Servidor de búsqueda SeekStorm MCP
El Servidor SeekStorm MCP expone la biblioteca de búsqueda SeekStorm como un servidor local de Protocolo de Contexto de Modelo.
Se ejecuta como un proceso hijo a través de MCP stdio, integra SeekStorm directamente y posee su índice local.
No se requiere ningún proceso seekstorm_server ni conexión de red.
El servidor admite recuperación léxica, vectorial e híbrida, además de indexación de documentos y gestión de índices.
- Admite esquemas y configuraciones de índice configurables, indexación/actualización/eliminación de documentos, recuperación e iteración, ingesta de JSON/NDJSON e indexación de PDF.
- Admite búsqueda léxica, vectorial e híbrida, incluidos filtros, facetas, ordenación y resaltado.
- Se agregaron pruebas unitarias, de integración stdio y de contrato MCP.
- El servidor MCP actualmente solo implementa el modo integrado; no se conecta a un servidor SeekStorm remoto.
Aprenda más sobre agentes de IA, RAG y MCP: qué significan y cómo encajan.
Inicio rápido
Compile desde la raíz del espacio de trabajo:
cargo build --release -p seekstorm_mcp_server
Agregue el servidor a una configuración de cliente MCP. Reemplace la ruta del ejecutable con la ubicación del binario compilado:
{
"mcpServers": {
"seekstorm": {
"command": "C:/path/to/seekstorm_mcp_server.exe",
"env": {
"SEEKSTORM_INDEX_PATH": "C:/Users/me/seekstorm-index"
}
}
}
}
El servidor abre el índice en SEEKSTORM_INDEX_PATH si existe. De lo contrario, crea un índice allí con un esquema predeterminado pequeño que contiene los campos de texto title, body y path. El índice se confirma cuando el proceso MCP finaliza.
También puede iniciarlo directamente desde el espacio de trabajo durante el desarrollo:
$env:SEEKSTORM_INDEX_PATH = "$PWD/seekstorm_index"
cargo run -p seekstorm_mcp_server
Los clientes MCP hablan el protocolo stdio; no envíe salida regular al stdout del servidor.
Configuración del índice
Para crear un índice con un esquema diferente o configuraciones vectoriales al inicio, establezca SEEKSTORM_INDEX_CONFIG en un archivo JSON que contenga un CreateIndexRequest de SeekStorm. La ruta del índice aún proviene 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"
}
La solicitud utiliza los mismos tipos de esquema y configuración de índice que la biblioteca/cliente REST de SeekStorm, incluidos sinónimos, corrección ortográfica, autocompletado de consultas, inferencia vectorial y agrupamiento. Para un proceso ya en ejecución, use la herramienta MCP create_index con un objeto index_path y un objeto config, o use open_index para cambiar a un índice local existente. Cambiar de índice confirma primero el índice activo actual.
Herramientas
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
Los documentos son objetos JSON arbitrarios cuyos campos deben coincidir con el esquema del índice activo. ingest_json transmite matrices JSON, NDJSON y documentos JSON concatenados. index_pdf_file extrae texto de un PDF local y requiere una biblioteca Pdfium disponible. get_file devuelve los bytes del archivo asociado como texto base64.
delete_documents_by_query usa length y offset para acotar y paginar los documentos coincidentes antes de la eliminación. Busque primero para verificar las coincidencias previstas.
Búsqueda
search acepta una consulta, length, offset y mode (Lexical, Vector o Hybrid). También admite tipos de consulta y reescritura de SeekStorm, búsqueda en tiempo real, selección de campos, filtros/facetas, ordenación, resaltado, configuraciones ANN y umbrales de similitud.
Para búsqueda vectorial o híbrida, proporcione query_vector (valores flotantes) o query_vector_i8 (valores de 8 bits con signo), a menos que el índice activo esté configurado con un modelo de inferencia interno. Los vectores explícitos deben coincidir con las dimensiones del índice. La búsqueda vectorial necesita campos indexados vectorialmente en el esquema; la búsqueda híbrida puede combinar campos léxicos y vectores. ann_mode acepta el AnnMode serializado de SeekStorm, por ejemplo "All" o { "Nprobe": 8 }.
Ejemplo de argumentos de herramienta de búsqueda léxica:
{
"query": "indexing pipeline",
"mode": "Lexical",
"length": 5,
"offset": 0,
"field_filter": ["title", "body"]
}
Ejemplo de argumentos de búsqueda vectorial para un índice vectorial de 3 dimensiones:
{
"query": "related documents",
"mode": "Vector",
"query_vector": [0.12, -0.03, 0.88],
"length": 5
}
Las definiciones de facetas, filtros de facetas, definiciones de ordenación, resaltados, reescritura de consultas y configuraciones de enumeración se pasan en sus formas JSON serializadas de SeekStorm. El esquema y la configuración del índice se fijan cuando se crea un índice; cambiarlos requiere crear un índice nuevo y reindexar los documentos.
Pruebas
Ejecute todas las pruebas unitarias del servidor, de integración stdio y de contrato MCP desde la raíz del espacio de trabajo:
cargo test -p seekstorm_mcp_server
