Meilisearch MCP Server - 轻量级搜索引擎自然语言管理

Meilisearch MCP Server - 轻量级搜索引擎自然语言管理

简介

Meilisearch MCP Server 是 Meilisearch 官方推出的 Model Context Protocol 服务器实现,为这款轻量级开源搜索引擎提供了自然语言管理和查询接口。Meilisearch 以其快速、易用和开发者友好而闻名,而这个 MCP Server 进一步降低了使用门槛,让用户无需编写复杂的 API 调用即可管理搜索索引、添加文档和执行高级搜索。该项目使用 Python 实现,提供了完整的索引管理、文档操作、搜索功能、设置配置、API Key 管理和任务监控等能力。它在 GitHub 上获得了 145 颗星,特别适合需要快速构建搜索功能的中小型应用。

核心特性

  • 索引完整管理 - 创建、列表、删除索引,获取详细的索引指标和统计信息
  • 灵活文档操作 - 分页检索、批量添加或更新文档,支持自定义主键
  • 高级搜索能力 - 跨索引执行全文搜索,支持复杂过滤条件和结果限制
  • 设置精细配置 - 查看和修改索引的搜索排名规则、分词器等高级设置
  • API Key 权限管理 - 创建、列表、删除 API 密钥,精细控制访问权限和索引范围
  • 任务监控 - 检索、取消、删除异步任务,实时了解索引操作进度
  • 健康检查 - 基本和综合健康验证,监控 Meilisearch 实例状态
  • 动态连接管理 - 运行时更新连接 URL 和 API 密钥,无需重启服务器

工具列表

连接管理工具

get-connection-settings

描述: 查看当前 Meilisearch 连接的详细信息,包括 URL 和认证状态

参数: 无需参数

update-connection-settings

描述: 动态更新 Meilisearch 连接 URL 或 API 密钥,无需重启服务器

参数:

  • url (string): 新的 Meilisearch 服务器 URL [可选]
  • apiKey (string): 新的 API 密钥 [可选]

索引管理工具

create-index

描述: 创建新的搜索索引,可以指定自定义主键字段

参数:

  • indexName (string): 索引名称,用于标识和访问索引 [必需]
  • primaryKey (string): 主键字段名,用于唯一标识文档 [可选]

list-indexes

描述: 列出 Meilisearch 实例中的所有可用索引及其基本信息

参数: 无需参数

delete-index

描述: 永久删除指定索引及其所有文档数据

参数:

  • indexName (string): 要删除的索引名称 [必需]

get-index-metrics

描述: 获取索引的详细性能数据和统计信息,如文档数量、索引大小等

参数:

  • indexName (string): 索引名称 [必需]

文档管理工具

get-documents

描述: 从索引中分页检索文档,支持偏移量和限制参数

参数:

  • indexName (string): 索引名称 [必需]
  • limit (number): 返回的文档数量限制 [可选]
  • offset (number): 跳过的文档数量,用于分页 [可选]

add-documents

描述: 在索引中批量添加或更新文档,已存在的文档会被更新

参数:

  • indexName (string): 目标索引名称 [必需]
  • documents (array): 要添加的文档数组,每个文档是一个 JSON 对象 [必需]

搜索工具

描述: 跨索引执行高级全文搜索,支持复杂过滤条件和结果排序

参数:

  • indexName (string): 要搜索的索引名称 [必需]
  • query (string): 搜索查询字符串 [必需]
  • filter (string): 过滤条件表达式,如 “price < 50 AND category = ‘electronics’” [可选]
  • limit (number): 返回结果数量限制 [可选]

设置管理工具

get-settings

描述: 查看指定索引的当前配置设置,包括排名规则、可搜索字段等

参数:

  • indexName (string): 索引名称 [必需]

update-settings

描述: 修改索引的配置设置,如搜索排名规则、同义词、停用词等

参数:

  • indexName (string): 索引名称 [必需]
  • settings (object): 新的设置对象,包含要更新的配置项 [必需]

API Key 管理工具

get-keys

描述: 列出所有 API 密钥及其权限和过期信息

参数: 无需参数

create-key

描述: 生成新的 API 密钥,指定允许的操作和可访问的索引

参数:

  • name (string): 密钥名称,便于识别 [必需]
  • actions (array): 允许的操作列表,如 [“search”, “documents.add”] [必需]
  • indexes (array): 可访问的索引列表,使用 [“*”] 表示所有索引 [必需]

delete-key

描述: 删除现有的 API 密钥,撤销其访问权限

参数:

  • key (string): 要删除的密钥字符串 [必需]

任务管理工具

get-task

描述: 检索特定任务的详细信息,包括状态、进度和结果

参数:

  • taskId (string): 任务 ID [必需]

get-tasks

描述: 列出所有任务,支持数量限制和过滤条件

参数:

  • limit (number): 返回的任务数量限制 [可选]

cancel-tasks

描述: 停止一个或多个待处理的任务

参数:

  • taskIds (array): 要取消的任务 ID 列表 [必需]

delete-tasks

描述: 删除已完成的任务记录

参数:

  • taskIds (array): 要删除的任务 ID 列表 [必需]

系统监控工具

health-check

描述: 执行基本的系统健康验证,检查 Meilisearch 是否正常运行

参数: 无需参数

get-health-status

描述: 获取综合的健康评估报告,包括更详细的系统状态信息

参数: 无需参数

get-version

描述: 获取当前 Meilisearch 实例的版本信息

参数: 无需参数

get-stats

描述: 获取数据库的全局统计信息,如总文档数、总索引数等

参数: 无需参数

get-system-info

描述: 获取系统级详细信息,如内存使用、CPU 信息等

参数: 无需参数

配置方式

基础配置

1
2
3
4
5
6
7
8
9
10
11
12
{
"mcpServers": {
"meilisearch": {
"command": "uvx",
"args": ["meilisearch-mcp"],
"env": {
"MEILISEARCH_URL": "http://localhost:7700",
"MEILISEARCH_API_KEY": "your-api-key"
}
}
}
}

环境变量说明

  • MEILISEARCH_URL: Meilisearch 服务器的完整 URL 地址
  • MEILISEARCH_API_KEY: 管理员 API 密钥或具有足够权限的密钥

使用示例

1
2
3
4
5
6
7
8
# 安装
pip install meilisearch-mcp

# 或使用 Docker
docker pull getmeili/meilisearch-mcp:latest

# 或从源码安装
uv pip install -e .

自然语言操作示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# 创建索引
"使用 'id' 作为主键创建名为 'products' 的新索引"

# 添加文档
"向索引添加一些产品"
"添加文档:[{'id': 1, 'name': 'Laptop', 'price': 999, 'category': 'electronics'}]"

# 搜索
"搜索价格低于 50 美元且类别中包含 'electronics' 的产品"
"在所有索引中搜索 'machine learning' 并按日期排序"

# 查看索引
"显示所有索引及其文档数量"
"获取 products 索引的性能指标"

# 管理设置
"显示 products 索引的当前设置"
"更新 products 索引的排名规则"

# API Key 管理
"创建一个只能搜索的 API 密钥"
"列出所有 API 密钥"

# 任务监控
"显示最近 10 个任务的状态"
"取消正在运行的索引任务"

Prompts 示例

Meilisearch MCP Server 提供了一些预设的自然语言提示示例:

  • “使用 ‘id’ 作为主键创建名为 ‘products’ 的新索引” - 演示索引创建
  • “向索引添加一些产品” - 演示文档添加
  • “搜索价格低于 50 美元且类别中包含 ‘electronics’ 的产品” - 演示复杂搜索
  • “在所有索引中搜索 ‘machine learning’ 并按日期排序” - 演示跨索引搜索

实际应用场景

  1. 电商产品搜索 - 构建快速响应的产品搜索功能,支持多条件过滤和排序

  2. 文档知识库 - 为企业文档和知识库提供强大的全文搜索能力

  3. 内容发现平台 - 实现博客、新闻或媒体内容的智能搜索和推荐

  4. 应用内搜索 - 为移动或 Web 应用添加即时搜索功能,提升用户体验

  5. 日志搜索 - 对应用日志进行索引和搜索,快速定位问题

  6. 地理位置搜索 - 结合地理坐标实现位置相关的搜索功能

  7. 多租户搜索 - 使用 API Key 隔离不同租户的搜索数据和权限

技术实现

Meilisearch MCP Server 使用 Python 实现,充分利用了 Python 丰富的生态系统:

  • Python 生态集成 - 使用成熟的 meilisearch-python SDK 与 Meilisearch 交互
  • 异步支持 - 支持异步操作,提高并发处理能力
  • 类型提示 - 完整的类型注解提高代码可维护性
  • 错误处理 - 优雅的错误处理和用户友好的错误消息
  • 配置灵活性 - 支持环境变量和运行时动态配置
  • MCP 协议完整实现 - 实现了 MCP 协议的所有核心功能
  • Docker 支持 - 官方 Docker 镜像简化部署流程
  • 通用客户端兼容 - 与任何支持 MCP 协议的客户端兼容

与 Elasticsearch 相比,Meilisearch 更加轻量级和易于使用,特别适合中小规模的搜索需求。它提供了开箱即用的相关性排序、拼写容错和同义词支持。

获取方式

  • GitHub: https://github.com/meilisearch/meilisearch-mcp
  • PyPI: meilisearch-mcp
  • Docker Hub: getmeili/meilisearch-mcp
  • 安装方式:
    • PyPI 安装: pip install meilisearch-mcp
    • Docker 运行: docker pull getmeili/meilisearch-mcp:latest
    • 源码安装: uv pip install -e .
  • 系统要求:
    • Python 3.8+
    • Meilisearch 实例(本地或云端)
    • 有效的 Meilisearch API Key

相关资源

© 2026 Generative AI Discovery All Rights Reserved.
Theme by hiero