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 对象 [必需]
搜索工具
search
描述: 跨索引执行高级全文搜索,支持复杂过滤条件和结果排序
参数:
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 | { |
环境变量说明
- MEILISEARCH_URL: Meilisearch 服务器的完整 URL 地址
- MEILISEARCH_API_KEY: 管理员 API 密钥或具有足够权限的密钥
使用示例
1 | # 安装 |
自然语言操作示例
1 | # 创建索引 |
Prompts 示例
Meilisearch MCP Server 提供了一些预设的自然语言提示示例:
- “使用 ‘id’ 作为主键创建名为 ‘products’ 的新索引” - 演示索引创建
- “向索引添加一些产品” - 演示文档添加
- “搜索价格低于 50 美元且类别中包含 ‘electronics’ 的产品” - 演示复杂搜索
- “在所有索引中搜索 ‘machine learning’ 并按日期排序” - 演示跨索引搜索
实际应用场景
电商产品搜索 - 构建快速响应的产品搜索功能,支持多条件过滤和排序
文档知识库 - 为企业文档和知识库提供强大的全文搜索能力
内容发现平台 - 实现博客、新闻或媒体内容的智能搜索和推荐
应用内搜索 - 为移动或 Web 应用添加即时搜索功能,提升用户体验
日志搜索 - 对应用日志进行索引和搜索,快速定位问题
地理位置搜索 - 结合地理坐标实现位置相关的搜索功能
多租户搜索 - 使用 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 .
- PyPI 安装:
- 系统要求:
- Python 3.8+
- Meilisearch 实例(本地或云端)
- 有效的 Meilisearch API Key
相关资源
- 官方文档: meilisearch.com/docs
- Discord 社区: discord.meilisearch.com
- 项目仓库: github.com/meilisearch/meilisearch-mcp
- Meilisearch Cloud: 免费试用托管的 Meilisearch 服务
- 学习资源: Meilisearch 官方博客和教程