返回市场
搜索引擎MCP服务器

搜索引擎MCP服务器

作者:macgaf2 星标更新:2025-06-03

项目介绍

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 用户名None
ES_PASSWORDES 密码None
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模式适合作为独立服务启动

许可证

MIT 许可证


本项目中的大部分代码、文档和配置示例基于cursor的claude-3.7-sonnet需求文档生成(提示:根据此文件生成项目的全部程序)。