mcpField
E
Elasticsearch MCP Server

Elasticsearch MCP Server

本地服务
github.com/sajitsasi数据库362 周前更新

关于 Elasticsearch MCP Server

Elasticsearch MCP Server 是用于访问 Elasticsearch 集群的 Python 服务,提供搜索和索引检查工具,并通过资源呈现索引及映射详情。

主要功能

  1. 01列出集群索引
  2. 02查看索引映射
  3. 03使用查询 DSL 搜索
  4. 04使用查询字符串搜索
  5. 05查看索引统计信息

适用场景

  1. 01通过查询 DSL 查找文档
  2. 02使用简单查询字符串搜索
  3. 03检查索引映射和字段类型
  4. 04查看索引大小和文档数量

MCP 相关

它向 MCP 客户端提供 Elasticsearch 搜索和索引检查工具,以及索引列表、索引详情和映射资源。集群凭据通过环境变量配置。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Elasticsearch MCP 服务

本项目实现了一个适用于 Elasticsearch 的 MCP(Model Context Protocol)服务,提供用于与 Elasticsearch 集群交互的工具和资源。

许可证:MIT

功能

工具
  • list_indices:列出 Elasticsearch 集群中的所有索引
  • get_mappings:获取指定索引的映射
  • search:使用提供的查询 DSL 执行 Elasticsearch 搜索
  • search_with_query_string:使用简单查询字符串执行搜索
  • get_index_stats:获取指定索引的统计信息
资源
  • elasticsearch://indices:列出所有 Elasticsearch 索引
  • elasticsearch://index/{index_name}:获取指定索引的详细信息
  • elasticsearch://mapping/{index_name}:获取指定索引的映射信息

前置条件

  • Python 3.7+
  • Elasticsearch Python 客户端
  • MCP SDK
  • Elasticsearch 集群凭据(Cloud ID 和 API Key)

设置

  1. 克隆代码库:

    git clone https://github.com/yourusername/elasticsearch-mcp-server.git
    cd elasticsearch-mcp-server
    
  2. 安装所需依赖:

    pip install -r requirements.txt
    
  3. 设置环境变量:

    • 复制示例环境文件:cp .env.example .env
    • 编辑 .env 文件并添加 Elasticsearch 凭据

    或直接在 shell 中设置:

    export ES_CLOUD_ID=your_elasticsearch_cloud_id
    export ES_API_KEY=your_elasticsearch_api_key
    

为 Claude 配置 MCP 服务

configure_mcp_server.py 脚本可帮助你在 Claude 的 MCP 设置文件中配置 Elasticsearch MCP 服务。这样,Claude 就可以通过 MCP 服务连接到你的 Elasticsearch 集群。

python configure_mcp_server.py your_cloud_id your_api_key

此脚本会:

  1. 将 Elasticsearch Cloud ID 和 API Key 作为命令行参数
  2. 定位或创建 Claude MCP 设置文件
  3. 添加或更新 Elasticsearch MCP 服务配置
  4. 设置服务连接到 Elasticsearch 集群所需的环境变量

运行此脚本后,重启 VS Code 以应用更改。随后,Claude 就能够使用 Elasticsearch MCP 服务与 Elasticsearch 集群交互。

测试 MCP 资源

选项 1:使用测试脚本

我们提供了一个测试脚本,它会启动 MCP 服务并提供测试说明:

# Make the script executable if needed
chmod +x test_es_mcp.sh

# Run the test script
ES_CLOUD_ID=your_cloud_id ES_API_KEY=your_api_key ./test_es_mcp.sh

脚本会:

  1. 在后台启动 MCP 服务
  2. 提供测试资源的说明
  3. 保持服务运行,直到你按下 Ctrl+C
选项 2:手动测试
  1. 启动 MCP 服务:

    ES_CLOUD_ID=your_cloud_id ES_API_KEY=your_api_key python es_mcp_server.py
    
  2. 在 Claude 中,使用 access_mcp_resource 工具访问资源:

    a. 列出所有索引:

    <access_mcp_resource>
    <server_name>elasticsearch-mcp-server</server_name>
    <uri>elasticsearch://indices</uri>
    </access_mcp_resource>
    

    b. 获取指定索引的信息:

    <access_mcp_resource>
    <server_name>elasticsearch-mcp-server</server_name>
    <uri>elasticsearch://index/your_index_name</uri>
    </access_mcp_resource>
    

    c. 获取指定索引的映射:

    <access_mcp_resource>
    <server_name>elasticsearch-mcp-server</server_name>
    <uri>elasticsearch://mapping/your_index_name</uri>
    </access_mcp_resource>
    
选项 3:使用 Python 测试脚本

我们还提供了一个 Python 测试脚本,演示如何访问这些资源:

ES_CLOUD_ID=your_cloud_id ES_API_KEY=your_api_key python test_es_resources.py

资源详情

elasticsearch://indices

返回 Elasticsearch 集群中所有索引的 JSON 数组,包括:

  • 索引名称
  • 健康状态
  • 状态
  • 文档数
  • 大小
elasticsearch://index/{index_name}

返回指定索引的详细信息,包括:

  • 索引名称
  • 设置
  • 统计信息(文档数、字节和 MB 为单位的大小)
elasticsearch://mapping/{index_name}

返回指定索引的映射信息,包括:

  • 完整的映射定义
  • 字段数
  • 字段类型分布

错误处理

所有资源都包含适当的错误处理和验证:

  • 如果索引不存在,资源会返回相应的错误消息
  • 如果连接 Elasticsearch 时出现问题,资源会返回错误消息
  • 所有异常都会被捕获,并以易读的错误消息形式返回

贡献

欢迎贡献!你可以通过以下方式参与:

  1. Fork 此仓库
  2. 创建功能分支:git checkout -b feature/your-feature-name
  3. 提交更改:git commit -am 'Add some feature'
  4. 将分支推送到远程:git push origin feature/your-feature-name
  5. 提交拉取请求

许可证

本项目采用 MIT License 许可,详情请参阅 LICENSE 文件。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。