项目简介
Elasticsearch MCP Server 是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在让 MCP 客户端(如 Claude Desktop, Cursor)能够直接与 Elasticsearch 集群进行交互。它通过提供一系列工具,使得用户可以使用自然语言查询、分析和管理 Elasticsearch 中的数据。
主要功能点
- 索引管理:
- 'list_indices': 列出 Elasticsearch 集群中的索引,支持通过正则表达式进行过滤。
- 'create_index': 创建新的 Elasticsearch 索引,可以自定义索引设置和映射。
- 'create_mapping': 为 Elasticsearch 索引创建或更新字段映射,定义字段类型。
- 数据查询与分析:
- 'search': 执行 Elasticsearch 搜索,支持完整的 Query DSL 语法,并高亮显示关键词。
- 'get_mappings': 获取指定 Elasticsearch 索引的字段映射信息。
- 集群监控:
- 'elasticsearch_health': 获取 Elasticsearch 集群的健康状态,可以选择包含索引级别的详细信息。
- 数据导入:
- 'bulk_import': 批量导入数据到 Elasticsearch 索引中。
安装步骤
本服务器可以通过 npm 包(即将发布)或本地开发方式安装和使用。
方法一:使用 npm 包 (推荐,即将发布)
-
配置 MCP 客户端
打开您的 MCP 客户端(例如 Claude Desktop 或 Cursor),进入 MCP 服务器配置页面(通常在设置或开发者选项中)。点击“编辑配置”并添加一个新的 MCP 服务器配置,内容如下:
{ "mcpServers": { "elasticsearch-mcp": { "command": "npx", "args": [ "-y", "@awesome-ai/elasticsearch-mcp" ], "env": { "HOST": "your-elasticsearch-host", // 替换为您的 Elasticsearch 地址,例如:http://localhost:9200 "API_KEY": "your-api-key" // 替换为您的 Elasticsearch API 密钥 (可选,也可以使用用户名和密码) } } } } -
开始对话
在 MCP 客户端中开始新的对话,服务器应该会自动连接。现在您可以开始使用自然语言与 Elasticsearch 数据进行交互了。
方法二:本地开发
-
安装 Node.js 依赖
确保您已安装 Node.js 和 npm。克隆仓库到本地后,在项目根目录下运行:
npm install -
构建项目
npm run build -
配置 MCP 客户端
打开您的 MCP 客户端,添加新的 MCP 服务器配置,内容如下:
{ "mcpServers": { "elasticsearch-mcp": { "command": "node", "args": [ "/path/to/your/project/dist/index.js" // 替换为您的项目 dist/index.js 文件的实际路径 ], "env": { "HOST": "your-elasticsearch-host", // 替换为您的 Elasticsearch 地址,例如:http://localhost:9200 "API_KEY": "your-api-key" // 替换为您的 Elasticsearch API 密钥 (可选,也可以使用用户名和密码) } } } }
服务器配置
MCP 客户端需要配置 MCP 服务器的启动命令 (command) 及其参数 (args) 才能建立连接。以下是 'elasticsearch-mcp' 服务器的客户端配置信息:
{ "mcpServers": { "elasticsearch-mcp": { // 服务器名称,可自定义 "command": "npx", // 启动命令,如果使用本地开发,则为 "node" "args": [ // 命令参数 "-y", "@awesome-ai/elasticsearch-mcp" // npm 包名称,如果使用本地开发,则为项目 dist/index.js 文件的路径 ], "env": { // 环境变量 "HOST": "your-elasticsearch-host", // (必填) Elasticsearch 集群的 URL 地址,例如:http://localhost:9200 "API_KEY": "your-api-key", // (可选) Elasticsearch API 密钥,用于身份验证,与用户名/密码二选一 "USERNAME": "your-username", // (可选) Elasticsearch 用户名,用于基本身份验证,与 API 密钥二选一,需要同时配置 PASSWORD "PASSWORD": "your-password", // (可选) Elasticsearch 密码,用于基本身份验证,与 API 密钥二选一,需要同时配置 USERNAME "CA_CERT": "path/to/your/ca.crt" // (可选) 自定义 CA 证书路径,用于 Elasticsearch SSL/TLS 连接 } } } }
注意:
- 必须提供 Elasticsearch 集群的 'HOST' 地址。
- 身份验证方式:可以使用 'API_KEY' 或 'USERNAME' 和 'PASSWORD',两者选其一。
- 如果 Elasticsearch 集群使用了 SSL/TLS,并且需要自定义 CA 证书,请配置 'CA_CERT' 环境变量。
基本使用方法
配置完成后,在 MCP 客户端中,您可以使用自然语言提出关于 Elasticsearch 数据的各种问题和指令。例如:
- "我的 Elasticsearch 集群里有哪些索引?"
- "展示 'products' 索引的字段映射。"
- "查找上个月订单金额超过 500 美元的所有订单。"
- "哪些产品收到了最多的 5 星评价?"
- "我的 Elasticsearch 集群健康状态如何?"
- "创建一个名为 'users' 的新索引,包含 3 个分片和 1 个副本。"
- "向 'products' 索引添加一个名为 'tags' 的 keyword 类型字段。"
- "批量导入这些客户记录到 'customers' 索引。"
更多示例和高级用法,请参考项目文档和 MCP 客户端的使用说明。
信息
分类
数据库与文件