Es_mcp_server

Es_mcp_server

🚀 Elasticsearch MCP 服务器

本项目实现了一个用于 Elasticsearch 的 MCP(模型上下文协议)服务器,提供了一系列工具和资源,方便与 Elasticsearch 集群进行交互,助力用户高效管理和操作 Elasticsearch 数据。

MIT 许可证

🚀 快速开始

先决条件

  • 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
    

配置 MCP 服务器以供 Claude 使用

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 即可通过 MCP 服务器与您的 Elasticsearch 集群进行交互。

✨ 主要特性

工具

  • 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}:可获取特定索引的映射信息。

📦 安装指南

克隆仓库

git clone https://github.com/yourusername/elasticsearch-mcp-server.git
cd elasticsearch-mcp-server

安装依赖

pip install -r requirements.txt

配置环境变量

可通过复制示例环境文件并编辑,或者直接在 shell 中设置的方式来配置环境变量。

🔧 技术细节

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

  • 若索引不存在,资源将返回适当的错误消息。
  • 若连接到 Elasticsearch 时出现问题,资源将返回错误消息。
  • 所有异常都会被捕获并作为可读的错误消息返回。

🤝 贡献

欢迎大家为项目贡献力量,贡献方式如下:

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

📂 GitHub 仓库

此项目已准备好上传到 GitHub,仓库包含以下文件:

  • .gitignore 文件:用于排除敏感信息和日志。
  • .env.example 文件:指导用户设置环境变量。
  • requirements.txt 文件:列出项目依赖项。
  • LICENSE 文件:包含 MIT 许可。
  • 文档完整的 README.md

📄 许可证

此项目在 MIT 许可证下发布,更多详细信息请参阅 LICENSE 文件。

  • 0 关注
  • 0 收藏,24 浏览
  • system 提出于 2025-09-22 18:21

相似服务问题

相关AI产品