Skip to main content
Glama

mcp-meilisearch

by falcosan

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:

# Using npm npm install mcp-meilisearch # Using yarn yarn add mcp-meilisearch # Using pnpm pnpm add mcp-meilisearch

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 IA

  • llmModel : 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.

Ejemplo de configuración del servidor

await mcpMeilisearchServer({ meilisearchHost: "http://localhost:7700", aiProviderName: "openrouter", aiProviderApiKey: "your_openrouter_api_key", llmModel: "anthropic/claude-3-opus", // Make sure to use a model that supports function calling });

Uso de MCPClient

El paquete exporta la clase MCPClient para la integración del lado del cliente:

import { MCPClient } from "mcp-meilisearch/client"; const client = new MCPClient("mcp-meilisearch-client"); await client.connectToServer("http://localhost:4995/mcp"); const result = await client.callTool("global-search", { q: "search kiosco antonio", }); // Use AI inference to choose the most appropriate tool const result = await client.callToolWithAI("Find articles about cucumber"); console.log(`Tool used: ${result.toolUsed}`); console.log(`Reasoning: ${result.reasoning}`); console.log(`Results: ${JSON.stringify(result.data)}`);

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ón

    • specificTools : String[] (opcional) - Restringe la selección de herramientas a esta lista de nombres de herramientas

    • justReasoning : Boolean (opcional): cuando se establece en true , devuelve solo el razonamiento de la IA sin ejecutar la herramienta seleccionada

Iniciando el servidor

Puede iniciar el servidor mediante programación:

import mcpMeilisearchServer from "mcp-meilisearch"; await mcpMeilisearchServer({ meilisearchHost: "http://localhost:7700", meilisearchApiKey: "your_meilisearch_api_key", aiProviderName: "openai", aiProviderApiKey: "your_ai_provider_api_key", llmModel: "gpt-4", });

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

  1. Herramientas del sistema : comprobaciones de estado, información de versión, estadísticas del servidor.

  2. Herramientas de índice : Administrar índices (crear, actualizar, eliminar, listar).

  3. Herramientas de documentos : agregue, actualice, elimine y recupere documentos.

  4. Herramientas de búsqueda : Búsqueda avanzada, incluida búsqueda vectorial.

  5. Herramientas de configuración : configure los ajustes del índice.

  6. Herramientas de tareas : Administrar tareas asincrónicas.

  7. 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 herramienta search .

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).

Related MCP Servers

View all related MCP servers

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/falcosan/mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server