MCP Meilisearch 插件
识别出“mcp-meilisearch”并非一种自然语言的句子或单词,它看起来更像是一个技术术语、项目名称或者代码片段。在没有更多上下文的情况下,直接进行翻译或解释较为困难。 如果这是专有名词或特定技术名称(例如一个软件、插件或者工具的名字),通常保持原样不翻译。 **结果**:mcp-meilisearch(专有名词,无需翻译)
服务介绍
MCP Meilisearch API 服务器
这是一个全面的模型上下文协议(MCP)服务器实现,通过使用 StreamableHTTP 传输方式,在AI模型和Meilisearch搜索引擎之间提供了一个桥梁。该项目使Meilisearch强大的搜索功能能够无缝集成到AI工作流程中。
项目概述
本项目实现了一个MCP(模型上下文协议)服务器,为AI模型直接提供了访问Meilisearch功能的能力。该实现遵循客户端-服务器架构,包含以下关键组件:
- MCP 服务器:实现模型上下文协议以将Meilisearch API作为工具暴露出来
- Web 客户端:用于测试搜索功能的简单演示界面
- 命令行客户端:用于测试和开发的实用程序客户端
架构
┌──────────────┐ ┌──────────────┐ ┌───────────────┐
│ Web Client │ │ MCP Server │ │ Meilisearch │
│ (Browser) │ <--> │ (Node.js) │ <-> │ Instance │
└──────────────┘ └──────────────┘ └───────────────┘
^ ^
│ │
┌──────────────┐ ┌───────────────┐
│ Command Line │ │ Document Data │
│ Client │ │ Sources │
└──────────────┘ └───────────────┘
主要特性
- StreamableHTTP 传输:为MCP实现了StreamableHTTP传输,使得客户端与服务器之间可以实现实时通信
- 完整的Meilisearch API支持:将所有Meilisearch功能作为MCP工具暴露出来
- 基于类别的组织:工具按功能性类别组织
- 错误处理:对API请求进行了全面的错误处理
- Web客户端演示:简单的网页界面展示搜索能力
- 命令行客户端:用于测试和开发
可用工具类别
MCP服务器将Meilisearch API按照这些功能性类别进行组织并暴露出来:
- 系统工具:健康检查、版本信息、服务器统计
- 索引工具:管理索引(创建、更新、删除、列出)
- 文档工具:文档操作(添加、更新、删除、检索)
- 搜索工具:高级搜索能力,包括向量搜索
- 设置工具:索引配置管理
- 任务工具:异步任务管理
- 向量工具:向量搜索能力(实验性功能)
开始使用
前提条件
- Node.js v20 或更高版本
- 本地或远程运行的Meilisearch实例
- Meilisearch的API密钥(如果您的Meilisearch配置需要的话)
设置
- 克隆仓库
- 安装依赖项:
bash
npm install
- 在服务器目录下创建一个
.env文件,并填写您的Meilisearch配置:
MEILISEARCH_HOST=http://localhost:7700
MEILISEARCH_API_KEY=your_master_key_here
MEILISEARCH_TIMEOUT=5000
运行服务器
构建并启动服务器:
bash
npm run dev:cmd # 用于命令行测试
或者
npm run dev:web # 用于网页界面测试
访问Web界面
一旦运行起来,可以通过以下地址访问Web演示界面:
http://localhost:8000
开发
本项目使用了:
- TypeScript 以确保类型安全
- Lerna 用于工作区管理
- Express 作为Web服务器
- 模型上下文协议SDK用于AI集成
项目结构
server/:MCP服务器实现src/tools/:Meilisearch API工具的实现-src/utils/: 用于API通信和错误处理的实用函数src/server.ts: StreamableHTTP MCP服务器实现
client_web/: Web演示客户端client_cmd/: 用于测试的命令行客户端