Meilisearch MCP 服务器是一个模型上下文协议服务器,它使任何兼容MCP的客户端(包括Claude、OpenAI代理和其他LLM)能够与Meilisearch进行交互。这个基于标准I/O的服务器允许AI助手通过自然对话管理搜索索引、执行搜索并处理数据。
为什么使用这个?
只需三步即可启动!
# 使用pip
pip install meilisearch-mcp
# 或者使用uvx(推荐)
uvx -n meilisearch-mcp
在您的claude_desktop_config.json中添加以下内容:
{
"mcpServers": {
"meilisearch": {
"command": "uvx",
"args": ["-n", "meilisearch-mcp"]
}
}
}
# 使用Docker(推荐)
docker run -d -p 7700:7700 getmeili/meilisearch:v1.6
# 或者使用Homebrew
brew install meilisearch
meilisearch
就这样!现在您可以询问您的AI助手来搜索和管理您的Meilisearch数据了! 🎉
您:创建一个名为“产品”的新索引,以“id”作为主键
AI:我将为您创建该索引... ✓ 索引“产品”已成功创建!
您:向索引中添加一些产品
AI:我将添加这些产品... ✓ 已向“产品”索引添加了5个文档
您:搜索价格低于$50且类别中有“电子产品”的产品
AI:我将搜索这些产品... 找到了12个匹配的产品!
您:跨我的所有索引搜索“机器学习”,按日期排序
AI:正在跨所有索引搜索... 从3个索引中找到了47个结果:
- '博客文章':23篇关于ML的文章
- '文档':15篇技术指南
- '教程':9篇动手教程
pip install meilisearch-mcp
# 克隆仓库
git clone https://github.com/meilisearch/meilisearch-mcp.git
cd meilisearch-mcp
# 创建虚拟环境并安装
uv venv
source .venv/bin/activate # 在Windows上:.venv\Scripts\activate
uv pip install -e .
非常适合容器化环境,如n8n工作流!
# 拉取最新镜像
docker pull getmeili/meilisearch-mcp:latest
# 或特定版本
docker pull getmeili/meilisearch-mcp:0.5.0
# 运行容器
docker run -it \
-e MEILI_HTTP_ADDR=http://your-meilisearch:7700 \
-e MEILI_MASTER_KEY=your-master-key \
getmeili/meilisearch-mcp:latest
# 构建自己的镜像
docker build -t meilisearch-mcp .
docker run -it \
-e MEILI_HTTP_ADDR=http://your-meilisearch:7700 \
-e MEILI_MASTER_KEY=your-master-key \
meilisearch-mcp
对于n8n工作流,可以直接在设置中使用Docker镜像:
meilisearch-mcp:
image: getmeili/meilisearch-mcp:latest
environment:
- MEILI_HTTP_ADDR=http://meilisearch:7700
- MEILI_MASTER_KEY=masterKey
⚠️ 注意:虽然可以在聊天中直接添加和更新主机和API密钥以方便使用,但这种方法主要是为了开发用途(例如,实时连接到多个实例)。它不遵循最佳MCP安全实践,在没有适当防护的情况下不应在生产环境中使用。
</details> <details> <summary><b>📊 监控与健康</b></summary>配置默认连接设置:
MEILI_HTTP_ADDR=http://localhost:7700 # 默认Meilisearch URL
MEILI_MASTER_KEY=your_master_key # 可选:默认API密钥
启动Meilisearch:
docker run -d -p 7700:7700 getmeili/meilisearch:v1.6
安装开发依赖项:
uv pip install -r requirements-dev.txt
运行测试:
python -m pytest tests/ -v
格式化代码:
black src/ tests/
npx @modelcontextprotocol/inspector python -m src.meilisearch_mcp
我们很乐意听到您的声音!以下是获取帮助和联系的方式:
我们欢迎贡献!这里是开始的方法:
git checkout -b feature/amazing-feature)black格式化代码git commit -m '添加精彩功能')git push origin feature/amazing-feature)详见贡献指南以获取更多详情。
此项目使用自动版本管理和发布。当main分支上的pyproject.toml中的版本号发生变化时,包会自动发布到PyPI。
详见发布流程部分以获取详细说明。
本项目根据MIT许可证发布 - 详情见LICENSE文件。
get-connection-settings:查看当前Meilisearch连接URL和API密钥状态update-connection-settings:更新URL和/或API密钥以连接到不同的实例create-index:创建新的索引,可选主键list-indexes:列出所有可用索引delete-index:删除现有索引及其所有文档get-index-metrics:获取特定索引的详细指标get-documents:从索引中分页检索文档add-documents:向索引中添加或更新文档search:灵活地跨单个或多个索引进行搜索,带有过滤和排序选项get-settings:查看索引的当前设置update-settings:更新索引设置(排名、分面等)get-keys:列出所有API密钥create-key:创建具有特定权限的新API密钥delete-key:删除现有API密钥get-task:获取特定任务的信息get-tasks:列出任务,可选过滤cancel-tasks:取消待处理或排队的任务delete-tasks:删除已完成的任务health-check:基本健康检查get-health-status:全面健康状态get-version:获取Meilisearch版本信息get-stats:获取数据库统计信息get-system-info:获取系统级别信息启动Meilisearch服务器:
# 使用Docker(推荐用于开发)
docker run -d -p 7700:7700 getmeili/meilisearch:v1.6
# 或使用brew(macOS)
brew install meilisearch
meilisearch
# 或从https://github.com/meilisearch/meilisearch/releases下载
安装开发工具:
# 安装uv用于Python包管理
pip install uv
# 安装Node.js用于MCP Inspector测试
# 访问https://nodejs.org/或使用您的包管理器
此项目包括全面的集成测试,验证MCP工具的功能:
# 运行所有测试
python -m pytest tests/ -v
# 运行特定测试文件
python -m pytest tests/test_mcp_client.py -v
# 运行带有覆盖率报告的测试
python -m pytest --cov=src tests/
# 运行测试的监视模式(需要pytest-watch)
pytest-watch tests/
重要:测试需要在http://localhost:7700上运行的Meilisearch实例。
# 使用Black格式化代码
black src/ tests/
# 运行类型检查(如果配置了mypy)
mypy src/
# 使用flake8检查代码(如果配置了flake8)
flake8 src/ tests/
main创建功能分支# 创建功能分支
git checkout -b feature/your-feature-name
# 进行更改,先写测试
# 编辑文件...
# 运行测试以确保一切正常
python -m pytest tests/ -v
# 格式化代码
black src/ tests/
# 提交和推送
git add .
git commit -m "添加功能描述"
git push origin feature/your-feature-name
此项目使用自动版本管理和发布到PyPI。发布流程设计为简单且自动化。
自动发布:当main分支上的pyproject.toml中的版本号发生变化时,GitHub Action会自动:
版本检测:工作流比较pyproject.toml中的当前版本与前一提交以检测变化
PyPI发布:使用PyPA官方发布的动作,使用可信发布(无需手动API密钥)
要创建新版本,请遵循以下步骤:
遵循语义化版本控制(MAJOR.MINOR.PATCH):