Skip to main content
Glama

mcp-meilisearch

by falcosan

MCP Meilisearch API-сервер

Реализация сервера Model Context Protocol (MCP), которая обеспечивает мост между моделями ИИ и поисковой системой Meilisearch.

Обзор

  • Сервер MCP : предоставляет API Meilisearch в качестве инструментов, использующих протокол контекста модели.
  • Демонстрация веб-клиента : демонстрационный интерфейс, демонстрирующий функции поиска.
  • Вывод ИИ : интеллектуальный выбор инструментов на основе запросов пользователя.

Основные характеристики

  • Несколько вариантов транспорта : поддерживает транспорты STDIO и StreamableHTTP.
  • Поддержка API Meilisearch : полный доступ к функциям Meilisearch.
  • Демонстрация веб-клиента : обновленный интерфейс, демонстрирующий возможности и функции поиска.
  • Вывод ИИ : использует LLM от таких поставщиков, как OpenAIo HuggingFace, для разумного определения и использования наиболее подходящего инструмента для пользовательских запросов.

Начиная

Предпосылки

  • Node.js v20 или выше.
  • Работающий экземпляр Meilisearch (локальный или удаленный).
  • API-ключ для Meilisearch (при необходимости).
  • API-ключ поставщика ИИ (если используется вывод ИИ).

Установка

Установите пакет:

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

Параметры

Параметры подключения Meilisearch
  • meilisearchHost : URL-адрес экземпляра Meilisearch (по умолчанию: « http://localhost:7700 »)
  • meilisearchApiKey : API-ключ для аутентификации с помощью Meilisearch (по умолчанию: "")
Параметры сервера MCP
  • transport : Тип транспорта для сервера MCP ("http" | "stdio") (по умолчанию: "http")
  • httpPort : HTTP-порт для сервера MCP (по умолчанию: 4995)
  • mcpEndpoint : путь к конечной точке MCP (по умолчанию: "/mcp")
Параметры сеанса
  • sessionTimeout : время ожидания сеанса в миллисекундах (по умолчанию: 3600000)
  • sessionCleanupInterval : интервал очистки сеанса в миллисекундах (по умолчанию: 60000)
Параметры вывода ИИ
  • aiProviderName : Имя поставщика ИИ ("openai" | "huggingface" | "openrouter" | "ollama") (по умолчанию: "openai")
  • aiProviderApiKey : API-ключ поставщика ИИ для вывода ИИ
  • llmModel : модель ИИ для использования (по умолчанию: «gpt-3.5-turbo»)

Обратите внимание, что не все модели поддерживают вызов функций, который требуется для правильного вывода ИИ в этом пакете. Обязательно выберите модель, которая поддерживает параметр tools.

Пример настройки сервера
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 });

Использование MCPClient

Пакет экспортирует класс MCPClient для интеграции на стороне клиента:

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)}`);
Методы клиента вывода ИИ
callToolWithAI(query, options)

Обрабатывает запрос пользователя с помощью ИИ, чтобы определить и применить наиболее подходящий инструмент.

Параметры:

  • query : Строка — запрос или запрос пользователя, который необходимо обработать.
  • options : Объект (необязательно) - Параметры конфигурации
    • specificTools : String[] (Необязательно) — Ограничивает выбор инструментов этим списком названий инструментов
    • justReasoning : Boolean (необязательно) — если установлено значение true , возвращает только рассуждения ИИ без выполнения выбранного инструмента.

Запуск сервера

Вы можете запустить сервер программно:

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", });

Инструменты

Сервер MCP предоставляет различные инструменты, которые позволяют вам взаимодействовать с функциональными возможностями Meilisearch. Каждый инструмент соответствует определенной конечной точке API Meilisearch, позволяя вам выполнять такие операции, как поиск, индексирование и управление документами.

Категории инструментов

  1. Системные инструменты : проверки работоспособности, информация о версии, статистика сервера.
  2. Инструменты индексирования : управление индексами (создание, обновление, удаление, составление списка).
  3. Инструменты для работы с документами : добавление, обновление, удаление и извлечение документов.
  4. Инструменты поиска : расширенный поиск, включая векторный поиск.
  5. Инструменты настроек : настройка параметров индекса.
  6. Инструменты задач : управление асинхронными задачами.
  7. Векторные инструменты : экспериментальные возможности поиска векторов.

Системные инструменты

здоровье
  • Описание : Проверьте работоспособность сервера Meilisearch.
версия
  • Описание : Получить информацию о версии сервера Meilisearch.
информация
  • Описание : Получить системную информацию сервера Meilisearch.
статистика
  • Описание : Получение статистики по всем индексам или по конкретному индексу.
  • Параметры :
    • indexUid (строка, необязательно): уникальный идентификатор индекса.
получить-задачи
  • Описание : Получение информации о задачах с дополнительной фильтрацией.
  • Параметры :
    • limit (число, необязательно): максимальное количество возвращаемых задач.
    • from (число, необязательно): UID задачи, с которой следует начать извлечение.
    • status (строка, необязательно): Статус задач для возврата.
    • type (строка, необязательно): Тип возвращаемых задач.
    • indexUids (string[], необязательно): UID индексов, по которым выполнялись задачи.
удалить-задачи
  • Описание : Удаление задач на основе предоставленных фильтров.
  • Параметры :
    • statuses (string[], необязательно): статусы задач для удаления.
    • types (string[], необязательно): типы задач для удаления.
    • indexUids (string[], необязательно): UID индексов, по которым были выполнены задачи по удалению.
    • uids (число[], необязательно): UID задач для удаления.
    • canceledBy (number[], необязательно): UID задач, которые отменили задачи для удаления.
    • beforeUid (число, необязательно): удалить задачи, uid которых предшествует этому значению.
    • beforeStartedAt (строка, необязательно): удалить задачи, обработка которых началась до этой даты (формат ISO 8601).
    • beforeFinishedAt (строка, необязательно): удалить задачи, обработка которых была завершена до указанной даты (формат ISO 8601).

Индекс Инструменты

списки-индексы
  • Описание : Список всех индексов в экземпляре Meilisearch.
  • Параметры :
    • limit (число, необязательно): максимальное количество возвращаемых индексов.
    • offset (число, необязательно): количество индексов, которые следует пропустить.
получить-индекс
  • Описание : Получить информацию о конкретном индексе Meilisearch.
  • Параметры :
    • indexUid (строка, обязательно): уникальный идентификатор индекса.
создать-индекс
  • Описание : Создать новый индекс Meilisearch.
  • Параметры :
    • indexUid (строка, обязательно): уникальный идентификатор нового индекса.
    • primaryKey (строка, необязательно): Первичный ключ для индекса.
обновление-индекса
  • Описание : Обновление индекса Meilisearch (в настоящее время поддерживается только обновление первичного ключа).
  • Параметры :
    • indexUid (строка, обязательно): уникальный идентификатор индекса.
    • primaryKey (строка, обязательно): новый первичный ключ для индекса.
удалить-индекс
  • Описание : Удаление индекса Meilisearch.
  • Параметры :
    • indexUid (строка, обязательно): уникальный идентификатор индекса для удаления.
своп-индексы
  • Описание : Поменять местами два или более индексов в Meilisearch.
  • Параметры :
    • indexes (строка, обязательно): JSON-массив пар индексов для обмена, например [["movies", "movies_new"]].

Инструменты для работы с документами

получить-документы
  • Описание : Получение документов из индекса Meilisearch.
  • Параметры :
    • indexUid (строка, обязательно): уникальный идентификатор индекса.
    • limit (число, необязательно): максимальное количество возвращаемых документов (по умолчанию: 20).
    • offset (число, необязательно): количество пропускаемых документов (по умолчанию: 0).
    • fields (string[], необязательно): поля, возвращаемые в документах.
    • filter (строка, необязательно): Фильтр запроса для применения.
получить-документ
  • Описание : Получить документ по его идентификатору из индекса Meilisearch.
  • Параметры :
    • indexUid (строка, обязательно): уникальный идентификатор индекса.
    • documentId (строка, обязательно): идентификатор документа, который необходимо получить.
    • fields (string[], необязательно): поля, возвращаемые в документе.
добавить-документы
  • Описание : Добавление документов в индекс Meilisearch.
  • Параметры :
    • indexUid (строка, обязательно): уникальный идентификатор индекса.
    • documents (строка, обязательно): JSON-массив документов для добавления.
    • primaryKey (строка, необязательно): Первичный ключ для документов.
обновление-документов
  • Описание : Обновление документов в индексе Meilisearch.
  • Параметры :
    • indexUid (строка, обязательно): уникальный идентификатор индекса.
    • documents (строка, обязательно): JSON-массив документов для обновления.
    • primaryKey (строка, необязательно): Первичный ключ для документов.
удалить-документ
  • Описание : Удаление документа по его идентификатору из индекса Meilisearch.
  • Параметры :
    • indexUid (строка, обязательно): уникальный идентификатор индекса.
    • documentId (строка, обязательно): идентификатор документа для удаления.
удалить-документы
  • Описание : Удаление нескольких документов по их идентификаторам из индекса Meilisearch.
  • Параметры :
    • indexUid (строка, обязательно): уникальный идентификатор индекса.
    • documentIds (строка, обязательно): JSON-массив идентификаторов документов для удаления.
удалить все документы
  • Описание : Удалить все документы в индексе Meilisearch.
  • Параметры :
    • indexUid (строка, обязательно): уникальный идентификатор индекса.

Инструменты поиска

поиск
  • Описание : Поиск документов в индексе Meilisearch.
  • Параметры :
    • indexUid (строка, обязательно): уникальный идентификатор индекса.
    • q (строка, обязательно): Поисковый запрос.
    • limit (число, необязательно): максимальное количество возвращаемых результатов (по умолчанию: 20).
    • offset (число, необязательно): количество результатов, которые следует пропустить (по умолчанию: 0).
    • filter (строка, необязательно): Фильтр запроса для применения.
    • sort (string[], необязательно): Атрибуты для сортировки, например ["price"].
    • facets (string[], необязательно): возвращаемые грани.
    • attributesToRetrieve (string[], необязательно): атрибуты для включения в результаты.
    • attributesToCrop (string[], необязательно): Атрибуты для обрезки.
    • cropLength (число, необязательно): длина, по которой следует обрезать обрезанные атрибуты.
    • attributesToHighlight (string[], необязательно): Атрибуты для выделения.
    • highlightPreTag (строка, необязательно): тег для вставки перед выделенным текстом.
    • highlightPostTag (строка, необязательно): тег для вставки после выделенного текста.
    • showMatchesPosition (логическое значение, необязательное): включать ли позиции совпадений в результаты.
    • matchingStrategy (строка, необязательно): Стратегия сопоставления: «все» или «последний».
многопоисковый
  • Описание : Выполнение нескольких поисков в одном запросе.
  • Параметры :
    • queries (строка, обязательно): массив поисковых запросов JSON, каждый из которых содержит те же параметры, что и инструмент search .
глобальный поиск
  • Описание : Поиск термина по всем доступным индексам Meilisearch и возврат объединенных результатов.
  • Параметры :
    • q (строка, обязательно): Поисковый запрос.
    • limit (число, необязательно): максимальное количество результатов, возвращаемых для каждого индекса (по умолчанию: 20).
    • attributesToRetrieve (string[], необязательно): атрибуты для включения в результаты.
фасетный поиск
  • Описание : Поиск значений фасетов, соответствующих определенным критериям.
  • Параметры :
    • indexUid (строка, обязательно): уникальный идентификатор индекса.
    • facetName (строка, обязательно): Имя фасета для поиска.
    • facetQuery (строка, необязательно): Запрос для сопоставления со значениями фасета.
    • filter (строка, необязательно): Фильтр для применения к базовому поиску.

Настройки Инструменты

получить-настройки
  • Описание : Получить все настройки для индекса Meilisearch.
  • Параметры :
    • indexUid (строка, обязательно): уникальный идентификатор индекса.
обновить настройки
  • Описание : Обновление настроек индекса Meilisearch.
  • Параметры :
    • indexUid (строка, обязательно): уникальный идентификатор индекса.
    • settings (строка, обязательно): объект JSON, содержащий настройки для обновления.
сброс настроек
  • Описание : Сброс всех настроек индекса Meilisearch до значений по умолчанию.
  • Параметры :
    • indexUid (строка, обязательно): уникальный идентификатор индекса.
Получить настройки инструментов

Следующие инструменты извлекают определенные настройки для индекса Meilisearch:

  • получить-отображаемые-атрибуты
  • получить-поисковые-атрибуты
  • получить-фильтруемые-атрибуты
  • получить-сортируемые-атрибуты
  • получить-ранжирование-правила
  • получить-стоп-слова
  • получить-синонимы
  • получить-типо-толерантность
  • получить-пагинацию
  • получить-гранение
  • получить-словарь
  • получить-близость-точность
  • получить-разделители-токены
  • получить-не-разделительные-токены
  • получить-слово-словарь

Все эти инструменты имеют одинаковые параметры:

  • indexUid (строка, обязательно): уникальный идентификатор индекса.
Инструменты настроек обновления

Следующие инструменты обновляют определенные настройки индекса Meilisearch:

  • обновить-отображаемые-атрибуты
    • indexUid (строка, обязательно): уникальный идентификатор индекса.
    • displayedAttributes (строка, обязательно): массив атрибутов JSON для отображения, например ["title", "description"].
  • обновить-поисковые-атрибуты
    • indexUid (строка, обязательно): уникальный идентификатор индекса.
    • searchableAttributes (строка, обязательно): массив атрибутов JSON, по которым можно выполнять поиск, например ["title", "description"].
  • обновление-фильтруемых-атрибутов
    • indexUid (строка, обязательно): уникальный идентификатор индекса.
    • filterableAttributes (строка, обязательно): массив атрибутов JSON, которые можно использовать в качестве фильтров, например ["жанр", "режиссер"].
  • обновление-сортируемых-атрибутов
    • indexUid (строка, обязательно): уникальный идентификатор индекса.
    • sortableAttributes (строка, обязательно): массив атрибутов JSON, которые можно использовать для сортировки, например ["цена", "дата"].
  • правила обновления-рейтинга
    • indexUid (строка, обязательно): уникальный идентификатор индекса.
    • rankingRules (строка, обязательно): массив правил ранжирования JSON, например ["опечатка", "слова", "близость", "атрибут", "сортировка", "точность"].
  • обновление-стоп-слов
    • indexUid (строка, обязательно): уникальный идентификатор индекса.
    • stopWords (строка, обязательно): JSON-массив слов, которые следует игнорировать в поисковых запросах, например ["the", "a", "an"].
  • обновление-синонимы
    • indexUid (строка, обязательно): уникальный идентификатор индекса.
    • synonyms (строка, обязательно): объект JSON, сопоставляющий слова с их синонимами, например {"movie": ["film"]}.
  • обновление-типо-толерантность
    • indexUid (строка, обязательно): уникальный идентификатор индекса.
    • typoTolerance (строка, обязательно): объект JSON с конфигурацией допуска опечаток, например {"enabled": true, "minWordSizeForTypos": {"oneTypo": 5, "twoTypos": 9}}.
  • обновление-пагинация
    • indexUid (строка, обязательно): уникальный идентификатор индекса.
    • pagination (строка, обязательно): объект JSON с конфигурацией пагинации, например {"maxTotalHits": 1000}.
  • обновление-фасетирование
    • indexUid (строка, обязательно): уникальный идентификатор индекса.
    • faceting (строка, обязательно): объект JSON с конфигурацией фасетирования, например {"maxValuesPerFacet": 100}.
  • обновление-словаря
    • indexUid (строка, обязательно): уникальный идентификатор индекса.
    • dictionary (строка, обязательно): массив слов JSON, которые следует рассматривать как одно слово, например ["Сан-Франциско", "Нью-Йорк"].
  • обновление-близость-точность
    • indexUid (строка, обязательно): уникальный идентификатор индекса.
    • proximityPrecision (строка, обязательно): строка со значением точности близости, может быть «byWord» или «byAttribute».
  • обновление-разделителей-токенов
    • indexUid (строка, обязательно): уникальный идентификатор индекса.
    • separatorTokens (строка, обязательно): массив токенов JSON, которые следует рассматривать как разделители слов, например ["-", "_"].
  • обновление-не-разделительных-токенов
    • indexUid (строка, обязательно): уникальный идентификатор индекса.
    • nonSeparatorTokens (строка, обязательно): массив токенов JSON, которые не следует рассматривать как разделители слов, например ["@", "."].
  • обновить-словарь-слов
    • indexUid (строка, обязательно): уникальный идентификатор индекса.
    • wordDictionary (строка, обязательно): JSON-массив пользовательских слов для добавления в словарь, например ["cbuilder", "meilisearch"].
Сброс настроек Инструменты

Следующие инструменты сбрасывают определенные настройки индекса Meilisearch до значений по умолчанию:

  • сброс отображаемых атрибутов
  • сброс-поисковых-атрибутов
  • сбросить-фильтруемые-атрибуты
  • сбросить-сортируемые-атрибуты
  • сброс-правил-ранжирования
  • сброс-стоп-слов
  • сброс-синонимы
  • сброс-типо-толерантности
  • сброс-пагинации
  • сброс-гранение
  • сброс-словаря
  • сброс-близость-точность
  • сброс-разделителей-токенов
  • сброс-не-разделительных-токенов
  • сброс-словарного-словаря

Все эти инструменты сброса имеют один и тот же параметр:

  • indexUid (строка, обязательно): уникальный идентификатор индекса.

Инструменты для задач

список-задач
  • Описание : Список задач с возможностью фильтрации.
  • Параметры :
    • limit (число, необязательно): максимальное количество возвращаемых задач.
    • from (число, необязательно): UID задачи, с которой следует начать извлечение.
    • statuses (string[], необязательно): Статусы задач для возврата.
    • types (string[], необязательно): типы возвращаемых задач.
    • indexUids (string[], необязательно): UID индексов, по которым выполнялись задачи.
    • uids (число[], необязательно): UID конкретных задач, которые необходимо вернуть.
получить-задачу
  • Описание : Получить информацию о конкретной задаче.
  • Параметры :
    • taskUid (число, обязательно): уникальный идентификатор задачи.
отменить-задачи
  • Описание : Отмена задач на основе предоставленных фильтров.
  • Параметры :
    • statuses (string[], необязательно): статусы задач для отмены.
    • types (string[], необязательно): типы задач для отмены.
    • indexUids (string[], необязательно): UID индексов, по которым были выполнены отменяемые задачи.
    • uids (число[], необязательно): UID задач, которые нужно отменить.
ожидание-задачи
  • Описание : Дождитесь завершения определенной задачи.
  • Параметры :
    • taskUid (число, обязательно): уникальный идентификатор задачи, которую необходимо дождаться.
    • timeoutMs (число, необязательно): максимальное время ожидания в миллисекундах (по умолчанию: 5000).
    • intervalMs (число, необязательно): интервал опроса в миллисекундах (по умолчанию: 500).

Векторные инструменты

включить-векторный-поиск
  • Описание : Включить экспериментальную функцию поиска векторов в Meilisearch.
получить-экспериментальные-функции
  • Описание : Получите статус экспериментальных функций в Meilisearch.
обновление-внедрители
  • Описание : Настройка встраиваемых устройств для векторного поиска.
  • Параметры :
    • indexUid (строка, обязательно): уникальный идентификатор индекса.
    • embedders (строка, обязательно): объект JSON, содержащий конфигурации embedder.
получить-внедрители
  • Описание : Получить конфигурацию встраиваемых устройств для индекса.
  • Параметры :
    • indexUid (строка, обязательно): уникальный идентификатор индекса.
сброс-внедрители
  • Описание : Сброс конфигурации встраиваемых устройств для индекса.
  • Параметры :
    • indexUid (строка, обязательно): уникальный идентификатор индекса.
вектор-поиск
  • Описание : Выполнение векторного поиска в индексе Meilisearch.
  • Параметры :
    • indexUid (строка, обязательно): уникальный идентификатор индекса.
    • vector (строка, обязательно): массив JSON, представляющий вектор для поиска.
    • limit (число, необязательно): максимальное количество возвращаемых результатов (по умолчанию: 20).
    • offset (число, необязательно): количество результатов, которые следует пропустить (по умолчанию: 0).
    • filter (строка, необязательно): Фильтр для применения (например, «жанр = ужасы И год > 2020»).
    • embedder (строка, необязательно): Имя используемого embedder (если не указано, необходимо указать «вектор»).
    • attributes (string[], необязательно): Атрибуты для включения в векторный поиск.
    • query (строка, необязательно): Текстовый запрос для поиска (если используется «embedder» вместо «vector»).
    • hybrid (логический, необязательный): следует ли выполнять гибридный поиск (объединяющий векторный и текстовый поиск).
    • hybridRatio (число, необязательно): соотношение векторного и текстового поиска в гибридном поиске (0-1, по умолчанию: 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