Elasticsearch MCP Server
Elasticsearch MCP 服务器
基于 Model Context Protocol (MCP) 的 Elasticsearch 工具服务器,提供索引查询、映射获取、搜索等功能。
其他语言版本: 🇺🇸 English | 🇫🇷 Français | 🇩🇪 Deutsch | 🇯🇵 日本語
项目目录结构
.
├── 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 服务器提供以下工具:
list_indices - 显示 ES 集群的所有索引
get_mappings - 返回指定索引的字段映射信息
search - 在指定索引中执行搜索查询,支持高亮显示
get_cluster_health - 获取 ES 集群的健康状态信息
get_cluster_stats - 获取 ES 集群的运行状态统计信息
安装
# 从PyPI安装
pip install es-mcp-server
# 或从源码安装
pip install .
# 安装开发依赖
pip install ".[dev]"配置
服务器通过环境变量或命令行参数进行配置:
环境变量 | 说明 | 默认值 |
ES_HOST | ES 主机地址 | localhost |
ES_PORT | ES 端口 | 9200 |
ES_USERNAME | ES 用户名 | 无 |
ES_PASSWORD | ES 密码 | 无 |
ES_API_KEY | ES API 密钥 | 无 |
ES_USE_SSL | 是否使用 SSL | false |
ES_VERIFY_CERTS | 是否验证证书 | true |
ES_VERSION | ES 版本 (7 或 8) | 8 |
启动服务器
stdio 模式 (与 Claude Desktop 等客户端集成)
# 使用默认配置
uvx es-mcp-server
# 自定义 ES 连接
uvx es-mcp-server --host 192.168.0.13 --port 9200 --es-version 8SSE 模式 (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根据需求文档 生成出来的(提示词:基于本文件生成项目所有程序)。
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/macgaf/es_mcp_server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server