es_mcp_server

es_mcp_server

0

The Elasticsearch MCP Server is a tool server designed to interface with Elasticsearch using the Model Context Protocol (MCP). It offers functionalities such as index queries and search capabilities, supporting Elasticsearch versions 7 and 8. This server is suitable for integration with clients like Claude Desktop through various transport modes.

Elasticsearch MCP 服务器

基于 Model Context Protocol (MCP) 的 Elasticsearch 工具服务器,提供索引查询、映射获取、搜索等功能。

其他语言版本: | | |

项目目录结构

.
├── es_mcp_server/         # 服务器代码
│   ├── __init__.py        # 包初始化
│   ├── server.py          # 服务器主程序
│   ├── config.py          # 配置管理
│   ├── client.py          # ES客户端工厂
│   └── tools.py           # ES MCP工具实现
├── es_mcp_client/         # 客户端代码
│   ├── __init__.py        # 包初始化
│   └── client.py          # 客户端测试程序
├── test/                  # 单元测试
│   ├── __init__.py        # 测试包初始化
│   └── test_server.py     # 服务器单元测试
├── claude_config_examples/ # Claude配置示例
│   ├── elasticsearch_stdio_config.json # stdio模式配置
│   └── elasticsearch_sse_config.json   # sse模式配置
├── .vscode/               # VSCode配置
│   └── launch.json        # 调试配置
├── docs/                  # 文档
│   └── requires.md        # 需求文档
├── pyproject.toml         # 项目配置文件
├── README.md              # 中文说明文档
├── README.en.md           # 英文说明文档
├── README.fr.md           # 法语说明文档
├── README.de.md           # 德语说明文档
├── README.jp.md           # 日语说明文档
├── .gitignore             # Git忽略文件
└── LICENSE                # MIT许可证

服务器功能和使用说明

Elasticsearch MCP 服务器提供以下工具:

  1. list_indices - 显示 ES 集群的所有索引
  2. get_mappings - 返回指定索引的字段映射信息
  3. search - 在指定索引中执行搜索查询,支持高亮显示
  4. get_cluster_health - 获取 ES 集群的健康状态信息
  5. get_cluster_stats - 获取 ES 集群的运行状态统计信息

安装

# 从PyPI安装
pip install es-mcp-server

# 或从源码安装
pip install .

# 安装开发依赖
pip install ".[dev]"

配置

服务器通过环境变量或命令行参数进行配置:

环境变量说明默认值
ES_HOSTES 主机地址localhost
ES_PORTES 端口9200
ES_USERNAMEES 用户名
ES_PASSWORDES 密码
ES_API_KEYES API 密钥
ES_USE_SSL是否使用 SSLfalse
ES_VERIFY_CERTS是否验证证书true
ES_VERSIONES 版本 (7 或 8)8

启动服务器

stdio 模式 (与 Claude Desktop 等客户端集成)
# 使用默认配置
uvx es-mcp-server

# 自定义 ES 连接
uvx es-mcp-server --host 192.168.0.13 --port 9200 --es-version 8
SSE 模式 (Web 服务器模式)
# 启动 SSE 服务器
uvx es-mcp-server --transport sse --host 192.168.0.13 --port 9200

客户端使用说明

项目包含一个用于验证服务器功能的客户端程序。

启动客户端

# 连接到默认 SSE 服务器 (http://localhost:8000/sse)
uvx es-mcp-client

# 自定义 SSE 服务器地址
uvx es-mcp-client --url http://example.com:8000/sse

对接其他工具

与 Claude Desktop 集成

Claude Desktop 可以通过 MCP 协议使用本服务,以便访问 Elasticsearch 数据。

stdio 模式配置

在 Claude Desktop 中添加以下配置:

{
  "mcpServers": {
    "elasticsearch-mcp-server": {
      "command": "uvx",
      "args": ["es-mcp-server"],
      "env": {
        "ES_HOST": "your-es-host",
        "ES_PORT": "9200",
        "ES_VERSION": "8"
      }
    }
  }
}
SSE 模式配置

如果您已经启动了 SSE 模式的服务器,可以使用以下配置:

{
  "mcpServers": {
    "elasticsearch-mcp-server": {
      "url": "http://localhost:8000/sse"
    }
  }
}

单元测试

运行单元测试以验证功能:

pytest

开发调试

本项目包含 VSCode 调试配置,打开 VSCode 后可直接使用调试功能启动服务器或客户端。

注意事项

  • 本项目同时支持 Elasticsearch 7 和 8 版本的 API
  • 服务器默认使用 stdio 传输模式,适合与 Claude Desktop 等客户端集成
  • SSE 模式适合作为独立服务启动

许可证


本项目的大部分代码、文档、配置示例都是用cursor的claude-3.7-sonnet根据 生成出来的(提示词:基于本文件生成项目所有程序)。