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:asc"].

    • 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