Servidor API de MCP Meilisearch
Una implementación de servidor de Protocolo de Contexto de Modelo (MCP) que proporciona un puente entre los modelos de IA y el motor de búsqueda Meilisearch.
Descripción general
Servidor MCP : expone las API de Meilisearch como herramientas utilizando el Protocolo de contexto de modelo.
Demostración de cliente web : una interfaz de demostración que muestra las funcionalidades de búsqueda.
Inferencia de IA : selección inteligente de herramientas basada en consultas del usuario.
Características principales
Múltiples opciones de transporte : admite transportes STDIO y StreamableHTTP.
Soporte de API de Meilisearch : acceso completo a las funcionalidades de Meilisearch.
Demostración del cliente web : Interfaz actualizada que muestra capacidades y funciones de búsqueda.
Inferencia de IA : aprovecha los LLM de proveedores como OpenAIo HuggingFace para determinar y utilizar de forma inteligente la herramienta más adecuada para las consultas de los usuarios.
Empezando
Prerrequisitos
Node.js v20 o superior.
Una instancia de Meilisearch en ejecución (local o remota).
Clave API para Meilisearch (si es necesario).
Clave API del proveedor de IA (si se utiliza inferencia de IA).
Instalación
Instalar el paquete:
Opciones
Opciones de conexión de Meilisearch
meilisearchHost
: URL de la instancia de Meilisearch (predeterminado: " http://localhost:7700 ")meilisearchApiKey
: clave API para autenticarse con Meilisearch (predeterminado: "")
Opciones del servidor MCP
transport
: Tipo de transporte para el servidor MCP ("http" | "stdio") (predeterminado: "http")httpPort
: puerto HTTP para el servidor MCP (predeterminado: 4995)mcpEndpoint
: ruta del punto final de MCP (predeterminado: "/mcp")
Opciones de sesión
sessionTimeout
: Tiempo de espera de la sesión en milisegundos (predeterminado: 3600000)sessionCleanupInterval
: intervalo de limpieza de sesión en milisegundos (predeterminado: 60000)
Opciones de inferencia de IA
aiProviderName
: Nombre del proveedor de IA ("openai" | "huggingface" | "openrouter" | "ollama") (Predeterminado: "openai")aiProviderApiKey
: clave API del proveedor de IA para la inferencia de IAllmModel
: Modelo de IA a utilizar (predeterminado: "gpt-3.5-turbo")
Tenga en cuenta que no todos los modelos admiten la llamada a funciones, necesaria para una inferencia de IA adecuada en este paquete. Asegúrese de seleccionar un modelo que admita el parámetro de herramientas.
Proveedor | Modelos compatibles |
OpenAI | |
OpenRouter | |
Cara abrazada | |
Ollama |
Ejemplo de configuración del servidor
Uso de MCPClient
El paquete exporta la clase MCPClient para la integración del lado del cliente:
Métodos de cliente de inferencia de IA
callToolWithAI(query, options)
Procesa una consulta del usuario a través de IA para determinar y ejecutar la herramienta más adecuada.
Parámetros:
query
: Cadena: la consulta o solicitud del usuario que se procesaráoptions
: Objeto (Opcional) - Opciones de configuraciónspecificTools
: String[] (opcional) - Restringe la selección de herramientas a esta lista de nombres de herramientasjustReasoning
: Boolean (opcional): cuando se establece entrue
, devuelve solo el razonamiento de la IA sin ejecutar la herramienta seleccionada
Iniciando el servidor
Puede iniciar el servidor mediante programación:
Herramientas
El servidor MCP expone diversas herramientas que permiten interactuar con las funcionalidades de Meilisearch. Cada herramienta corresponde a un punto final específico de la API de Meilisearch, lo que permite realizar operaciones como búsquedas, indexación y gestión de documentos.
Categorías de herramientas
Herramientas del sistema : comprobaciones de estado, información de versión, estadísticas del servidor.
Herramientas de índice : Administrar índices (crear, actualizar, eliminar, listar).
Herramientas de documentos : agregue, actualice, elimine y recupere documentos.
Herramientas de búsqueda : Búsqueda avanzada, incluida búsqueda vectorial.
Herramientas de configuración : configure los ajustes del índice.
Herramientas de tareas : Administrar tareas asincrónicas.
Herramientas vectoriales : capacidades de búsqueda vectorial experimental.
Herramientas del sistema
salud
Descripción : Comprueba si el servidor Meilisearch está en buen estado.
versión
Descripción : Obtenga la información de la versión del servidor Meilisearch.
información
Descripción : Obtenga la información del sistema del servidor Meilisearch.
estadísticas
Descripción : Obtenga estadísticas sobre todos los índices o un índice específico.
Parámetros :
indexUid
(cadena, opcional): identificador único del índice.
obtener tareas
Descripción : Obtenga información sobre las tareas con filtrado opcional.
Parámetros :
limit
(número, opcional): número máximo de tareas a devolver.from
(número, opcional): uid de la tarea desde el cual comenzar la búsqueda.status
(cadena, opcional): Estado de las tareas a devolver.type
(cadena, opcional): tipo de tareas a devolver.indexUids
(string[], opcional): UID de los índices en los que se realizaron tareas.
eliminar tareas
Descripción : Eliminar tareas según los filtros proporcionados.
Parámetros :
statuses
(cadena[], opcional): estados de las tareas a eliminar.types
(cadena[], opcional): tipos de tareas a eliminar.indexUids
(string[], opcional): UID de los índices en los que se realizaron las tareas a eliminar.uids
(número[], opcional): UID de las tareas a eliminar.canceledBy
(number[], opcional): UID de las tareas que cancelaron las tareas a eliminar.beforeUid
(número, opcional): elimina las tareas cuyo uid sea anterior a este valor.beforeStartedAt
(cadena, opcional): elimina las tareas que comenzaron a procesarse antes de esta fecha (formato ISO 8601).beforeFinishedAt
(cadena, opcional): elimina las tareas que finalizaron su procesamiento antes de esta fecha (formato ISO 8601).
Herramientas de índice
índices de lista
Descripción : enumera todos los índices en la instancia de Meilisearch.
Parámetros :
limit
(número, opcional): número máximo de índices a devolver.offset
(número, opcional): Número de índices a omitir.
obtener índice
Descripción : Obtenga información sobre un índice específico de Meilisearch.
Parámetros :
indexUid
(cadena, obligatoria): identificador único del índice.
crear-índice
Descripción : Crea un nuevo índice de Meilisearch.
Parámetros :
indexUid
(cadena, obligatoria): identificador único para el nuevo índice.primaryKey
(cadena, opcional): clave principal para el índice.
índice de actualización
Descripción : Actualiza un índice de Meilisearch (actualmente solo admite la actualización de la clave principal).
Parámetros :
indexUid
(cadena, obligatoria): identificador único del índice.primaryKey
(cadena, obligatoria): nueva clave principal para el índice.
eliminar índice
Descripción : Eliminar un índice de Meilisearch.
Parámetros :
indexUid
(cadena, obligatoria): identificador único del índice a eliminar.
índices de swap
Descripción : Intercambia dos o más índices en Meilisearch.
Parámetros :
indexes
(cadena, obligatoria): matriz JSON de pares de índices para intercambiar, por ejemplo, [["movies", "movies_new"]].
Herramientas de documentos
obtener documentos
Descripción : Obtenga documentos de un índice de Meilisearch.
Parámetros :
indexUid
(cadena, obligatoria): identificador único del índice.limit
(número, opcional): número máximo de documentos a devolver (predeterminado: 20).offset
(número, opcional): Número de documentos a omitir (predeterminado: 0).fields
(string[], opcional): Campos a devolver en los documentos.filter
(cadena, opcional): consulta de filtro a aplicar.
obtener documento
Descripción : Obtenga un documento por su ID de un índice de Meilisearch.
Parámetros :
indexUid
(cadena, obligatoria): identificador único del índice.documentId
(cadena, obligatoria): ID del documento a recuperar.fields
(cadena[], opcional): Campos a devolver en el documento.
agregar documentos
Descripción : Agrega documentos a un índice de Meilisearch.
Parámetros :
indexUid
(cadena, obligatoria): identificador único del índice.documents
(cadena, obligatoria): matriz JSON de documentos para agregar.primaryKey
(cadena, opcional): clave principal para los documentos.
actualizar documentos
Descripción : Actualizar documentos en un índice de Meilisearch.
Parámetros :
indexUid
(cadena, obligatoria): identificador único del índice.documents
(cadena, obligatoria): matriz JSON de documentos para actualizar.primaryKey
(cadena, opcional): clave principal para los documentos.
eliminar documento
Descripción : Eliminar un documento por su ID de un índice de Meilisearch.
Parámetros :
indexUid
(cadena, obligatoria): identificador único del índice.documentId
(cadena, obligatoria): ID del documento a eliminar.
eliminar documentos
Descripción : Elimina varios documentos por sus ID de un índice de Meilisearch.
Parámetros :
indexUid
(cadena, obligatoria): identificador único del índice.documentIds
(cadena, obligatoria): matriz JSON de ID de documentos que se eliminarán.
eliminar-todos-los-documentos
Descripción : Eliminar todos los documentos en un índice de Meilisearch.
Parámetros :
indexUid
(cadena, obligatoria): identificador único del índice.
Herramientas de búsqueda
buscar
Descripción : Busca documentos en un índice de Meilisearch.
Parámetros :
indexUid
(cadena, obligatoria): identificador único del índice.q
(cadena, obligatoria): consulta de búsqueda.limit
(número, opcional): número máximo de resultados a devolver (predeterminado: 20).offset
(número, opcional): Número de resultados a omitir (predeterminado: 0).filter
(cadena, opcional): consulta de filtro a aplicar.sort
(string[], opcional): atributos para ordenar, por ejemplo ["price:asc"].facets
(cadena[], opcional): Facetas a devolver.attributesToRetrieve
(cadena[], opcional): atributos para incluir en los resultados.attributesToCrop
(cadena[], opcional): atributos a recortar.cropLength
(número, opcional): longitud a la que se recortarán los atributos recortados.attributesToHighlight
(string[], opcional): Atributos a resaltar.highlightPreTag
(cadena, opcional): etiqueta para insertar antes del texto resaltado.highlightPostTag
(cadena, opcional): etiqueta para insertar después del texto resaltado.showMatchesPosition
(booleano, opcional): si se deben incluir las posiciones de los partidos en los resultados.matchingStrategy
(cadena, opcional): Estrategia de coincidencia: 'todos' o 'último'.
búsqueda múltiple
Descripción : Realizar múltiples búsquedas en una sola solicitud.
Parámetros :
queries
(cadena, obligatoria): matriz JSON de consultas de búsqueda, cada una de las cuales contiene los mismos parámetros que la herramientasearch
.
búsqueda global
Descripción : Busque un término en todos los índices de Meilisearch disponibles y devuelva resultados combinados.
Parámetros :
q
(cadena, obligatoria): consulta de búsqueda.limit
(número, opcional): número máximo de resultados a devolver por índice (predeterminado: 20).attributesToRetrieve
(cadena[], opcional): atributos para incluir en los resultados.
búsqueda por facetas
Descripción : Busque valores de facetas que coincidan con criterios específicos.
Parámetros :
indexUid
(cadena, obligatoria): identificador único del índice.facetName
(cadena, obligatoria): nombre de la faceta a buscar.facetQuery
(cadena, opcional): consulta para comparar con los valores de la faceta.filter
(cadena, opcional): filtro para aplicar a la búsqueda base.
Herramientas de configuración
obtener configuraciones
Descripción : Obtenga todas las configuraciones para un índice de Meilisearch.
Parámetros :
indexUid
(cadena, obligatoria): identificador único del índice.
actualizar-configuración
Descripción : Actualizar la configuración de un índice de Meilisearch.
Parámetros :
indexUid
(cadena, obligatoria): identificador único del índice.settings
(cadena, obligatoria): objeto JSON que contiene la configuración para actualizar.
restablecer configuración
Descripción : Restablece todas las configuraciones de un índice de Meilisearch a sus valores predeterminados.
Parámetros :
indexUid
(cadena, obligatoria): identificador único del índice.
Obtener herramientas de configuración
Las siguientes herramientas recuperan configuraciones específicas para un índice de Meilisearch:
obtener atributos mostrados
obtener atributos de búsqueda
obtener atributos filtrables
obtener atributos ordenables
reglas de clasificación
palabras clave
obtener sinónimos
obtener tolerancia a errores tipográficos
obtener paginación
facetado
obtener diccionario
obtener precisión de proximidad
obtener tokens separadores
obtener tokens no separadores
diccionario de palabras
Todas estas herramientas tienen el mismo parámetro:
indexUid
(cadena, obligatoria): identificador único del índice.
Herramientas de configuración de actualización
Las siguientes herramientas actualizan configuraciones específicas para un índice de Meilisearch:
actualizar atributos mostrados
indexUid
(cadena, obligatoria): identificador único del índice.displayedAttributes
(cadena, obligatoria): matriz JSON de atributos para mostrar, por ejemplo, ["título", "descripción"].
actualizar atributos de búsqueda
indexUid
(cadena, obligatoria): identificador único del índice.searchableAttributes
(cadena, obligatoria): matriz JSON de atributos que se pueden buscar, por ejemplo, ["título", "descripción"].
actualizar atributos filtrables
indexUid
(cadena, obligatoria): identificador único del índice.filterableAttributes
(cadena, obligatorio): matriz JSON de atributos que se pueden usar como filtros, por ejemplo, ["género", "director"].
actualizar atributos ordenables
indexUid
(cadena, obligatoria): identificador único del índice.sortableAttributes
(cadena, obligatoria): matriz JSON de atributos que se pueden usar para ordenar, por ejemplo, ["precio", "fecha"].
actualizar-reglas-de-clasificación
indexUid
(cadena, obligatoria): identificador único del índice.rankingRules
(cadena, obligatoria): matriz JSON de reglas de clasificación, por ejemplo, ["error tipográfico", "palabras", "proximidad", "atributo", "ordenación", "exactitud"].
actualizar palabras vacías
indexUid
(cadena, obligatoria): identificador único del índice.stopWords
(cadena, obligatoria): matriz JSON de palabras que se ignorarán en las consultas de búsqueda, por ejemplo, ["el", "un", "un"].
actualizar-sinónimos
indexUid
(cadena, obligatoria): identificador único del índice.synonyms
(cadena, obligatorio): objeto JSON que asigna palabras a sus sinónimos, por ejemplo {"movie": ["film"]}.
actualización de tolerancia a errores tipográficos
indexUid
(cadena, obligatoria): identificador único del índice.typoTolerance
(cadena, obligatoria): objeto JSON con configuración de tolerancia a errores tipográficos, por ejemplo, {"enabled": true, "minWordSizeForTypos": {"oneTypo": 5, "twoTypos": 9}}.
actualización-paginación
indexUid
(cadena, obligatoria): identificador único del índice.pagination
(cadena, obligatoria): objeto JSON con configuración de paginación, por ejemplo {"maxTotalHits": 1000}.
actualización de facetas
indexUid
(cadena, obligatoria): identificador único del índice.faceting
(cadena, obligatorio): objeto JSON con configuración de facetado, p. ej. {"maxValuesPerFacet": 100}.
actualizar diccionario
indexUid
(cadena, obligatoria): identificador único del índice.dictionary
(cadena, obligatorio): matriz JSON de palabras que se considerarán como una sola palabra, por ejemplo, ["San Francisco", "Nueva York"].
actualizar-proximidad-precisión
indexUid
(cadena, obligatoria): identificador único del índice.proximityPrecision
(cadena, obligatoria): cadena con valor de precisión de proximidad, puede ser 'byWord' o 'byAttribute'.
tokens separadores de actualización
indexUid
(cadena, obligatoria): identificador único del índice.separatorTokens
(cadena, obligatoria): matriz JSON de tokens que deben considerarse como separadores de palabras, por ejemplo, ["-", "_"].
actualizar tokens no separadores
indexUid
(cadena, obligatoria): identificador único del índice.nonSeparatorTokens
(cadena, obligatoria): matriz JSON de tokens que no deben considerarse como separadores de palabras, por ejemplo, ["@", "."].
actualizar diccionario de palabras
indexUid
(cadena, obligatoria): identificador único del índice.wordDictionary
(cadena, obligatoria): matriz JSON de palabras personalizadas para agregar al diccionario, por ejemplo, ["cbuilder", "meilisearch"].
Herramientas para restablecer configuraciones
Las siguientes herramientas restablecen configuraciones específicas para un índice de Meilisearch a sus valores predeterminados:
restablecer atributos mostrados
restablecer atributos de búsqueda
restablecer atributos filtrables
atributos ordenables restablecidos
restablecer reglas de clasificación
restablecer palabras vacías
restablecer sinónimos
restablecer la tolerancia a errores tipográficos
restablecer paginación
restablecimiento de facetas
reiniciar diccionario
restablecer proximidad-precisión
tokens separadores de reinicio
restablecer tokens no separadores
restablecer diccionario de palabras
Todas estas herramientas de reinicio tienen el mismo parámetro:
indexUid
(cadena, obligatoria): identificador único del índice.
Herramientas de tareas
lista de tareas
Descripción : Lista de tareas con filtrado opcional.
Parámetros :
limit
(número, opcional): número máximo de tareas a devolver.from
(número, opcional): uid de la tarea desde el cual comenzar la búsqueda.statuses
(cadena[], opcional): estados de las tareas a devolver.types
(cadena[], opcional): tipos de tareas a devolver.indexUids
(string[], opcional): UID de los índices en los que se realizaron tareas.uids
(número[], opcional): UID de tareas específicas para devolver.
obtener tarea
Descripción : Obtener información sobre una tarea específica.
Parámetros :
taskUid
(número, obligatorio): Identificador único de la tarea.
cancelar tareas
Descripción : Cancelar tareas según los filtros proporcionados.
Parámetros :
statuses
(cadena[], opcional): estados de las tareas a cancelar.types
(cadena[], opcional): Tipos de tareas a cancelar.indexUids
(string[], opcional): UID de los índices en los que se realizaron tareas a cancelar.uids
(número[], opcional): UID de las tareas a cancelar.
esperar la tarea
Descripción : Esperar a que se complete una tarea específica.
Parámetros :
taskUid
(número, obligatorio): identificador único de la tarea a esperar.timeoutMs
(número, opcional): tiempo máximo de espera en milisegundos (predeterminado: 5000).intervalMs
(número, opcional): intervalo de sondeo en milisegundos (predeterminado: 500).
Herramientas vectoriales
habilitar la búsqueda vectorial
Descripción : Habilite la función experimental de búsqueda vectorial en Meilisearch.
obtener características experimentales
Descripción : Obtenga el estado de las funciones experimentales en Meilisearch.
actualización de incrustadores
Descripción : Configurar incrustadores para la búsqueda vectorial.
Parámetros :
indexUid
(cadena, obligatoria): identificador único del índice.embedders
(cadena, obligatorio): objeto JSON que contiene configuraciones de embedder.
obtener incrustadores
Descripción : Obtenga la configuración de incrustadores para un índice.
Parámetros :
indexUid
(cadena, obligatoria): identificador único del índice.
reiniciadores-incrustadores
Descripción : Restablecer la configuración de incrustadores para un índice.
Parámetros :
indexUid
(cadena, obligatoria): identificador único del índice.
búsqueda vectorial
Descripción : Realiza una búsqueda vectorial en un índice de Meilisearch.
Parámetros :
indexUid
(cadena, obligatoria): identificador único del índice.vector
(cadena, obligatoria): matriz JSON que representa el vector a buscar.limit
(número, opcional): número máximo de resultados a devolver (predeterminado: 20).offset
(número, opcional): Número de resultados a omitir (predeterminado: 0).filter
(cadena, opcional): filtro a aplicar (por ejemplo, 'género = terror Y año > 2020').embedder
(cadena, opcional): nombre del embedder a utilizar (si se omite, se debe proporcionar un 'vector').attributes
(cadena[], opcional): atributos a incluir en la búsqueda vectorial.query
(cadena, opcional): consulta de texto a buscar (si se usa 'embedder' en lugar de 'vector').hybrid
(booleano, opcional): si se debe realizar una búsqueda híbrida (combinando búsqueda vectorial y de texto).hybridRatio
(número, opcional): relación entre la búsqueda vectorial y la búsqueda de texto en la búsqueda híbrida (0-1, valor predeterminado: 0,5).
This server cannot be installed
mcp-meilisearch
Related MCP Servers
- MIT License
- Apache 2.0
- MIT License