# Elasticsearch模型上下文协议服务器
## 基本信息
- Slug: `cr7258-elasticsearch-mcp-server`
- Source: modelscope
- Publisher: @cr7258/elasticsearch-mcp-server
- Categories: search / databases
- Hosted: No
- License: Apache License 2.0
- Source URL: https://www.modelscope.cn/mcp/servers/@cr7258/elasticsearch-mcp-server
## 简介
通过允许用户通过模型上下文协议服务器和自然语言命令执行索引操作、文档搜索和集群管理，促进与 Elasticsearch 集群的交互。
## 安装提示

```bash
# For Elasticsearch docker-compose -f docker-compose-elasticsearch.yml up -d # For OpenSearch docker-compose -f docker-compose-opensearch.yml up -d
```

## MCP Server 详情

# Elasticsearch/OpenSearch MCP 服务器

[![smithery 徽章](https://smithery.ai/badge/elasticsearch-mcp-server)](https://smithery.ai/server/elasticsearch-mcp-server)

## 概览

这是一个模型上下文协议 (MCP) 服务器实现，提供了与 Elasticsearch 和 OpenSearch 的交互功能。该服务器通过一系列工具支持文档搜索、索引分析和集群管理。

<a href="https://glama.ai/mcp/servers/b3po3delex"><img width="380" height="200" src="https://glama.ai/mcp/servers/b3po3delex/badge" alt="Elasticsearch MCP 服务器" /></a>

## 演示

[https://github.com/user-attachments/assets/f7409e31-fac4-4321-9c94-b0ff2ea7ff15](https://github.com/user-attachments/assets/f7409e31-fac4-4321-9c94-b0ff2ea7ff15)

## 功能

### 索引操作

- `list_indices`: 列出所有索引。
- `get_index`: 返回一个或多个索引的信息（映射、设置、别名）。
- `create_index`: 创建一个新的索引。
- `delete_index`: 删除一个索引。

### 文档操作

- `search_documents`: 搜索文档。
- `index_document`: 在索引中创建或更新文档。
- `get_document`: 通过 ID 获取文档。
- `delete_document`: 通过 ID 删除文档。
- `delete_by_query`: 删除与提供的查询匹配的文档。

### 集群操作

- `get_cluster_health`: 返回关于集群健康状况的基本信息。
- `get_cluster_stats`: 返回集群统计数据的高级概览。

### 别名操作

- `list_aliases`: 列出所有别名。
- `get_alias`: 获取特定索引的别名信息。
- `put_alias`: 为特定索引创建或更新别名。
- `delete_alias`: 删除特定索引的别名。

## 配置环境变量

将 `.env.example` 文件复制为 `.env` 并相应地更新值。

## 启动 Elasticsearch/OpenSearch 集群

使用 Docker Compose 启动 Elasticsearch/OpenSearch 集群：

```bash
# For Elasticsearch
docker-compose -f docker-compose-elasticsearch.yml up -d

# For OpenSearch
docker-compose -f docker-compose-opensearch.yml up -d
```


默认的 Elasticsearch 用户名为 `elastic`，密码为 `test123`。默认的 OpenSearch 用户名为 `admin`，密码为 `admin`。

您可以从 [http://localhost:5601](http://localhost:5601) 访问 Kibana/OpenSearch 控制面板。

## 与 Claude Desktop 一起使用

### 选项 1：通过 Smithery 安装

要通过 [Smithery](https://smithery.ai/server/elasticsearch-mcp-server) 自动安装适用于 Claude Desktop 的 Elasticsearch 服务器：

```bash
npx -y @smithery/cli install elasticsearch-mcp-server --client claude
```


### 选项 2：使用 uvx

使用 `uvx` 将自动从 PyPI 安装包，无需在本地克隆仓库。将以下配置添加到 Claude Desktop 的配置文件 `claude_desktop_config.json` 中。

```json
// For Elasticsearch
{
  "mcpServers": {
    "elasticsearch-mcp-server": {
      "command": "uvx",
      "args": [
        "elasticsearch-mcp-server"
      ],
      "env": {
        "ELASTICSEARCH_HOST": "https://localhost:9200",
        "ELASTICSEARCH_USERNAME": "elastic",
        "ELASTICSEARCH_PASSWORD": "test123"
      }
    }
  }
}

// For OpenSearch
{
  "mcpServers": {
    "opensearch-mcp-server": {
      "command": "uvx",
      "args": [
        "opensearch-mcp-server"
      ],
      "env": {
        "OPENSEARCH_HOST": "https://localhost:9200",
        "OPENSEARCH_USERNAME": "admin",
        "OPENSEARCH_PASSWORD": "admin"
      }
    }
  }
}
```


### 选项 3：使用 uv 进行本地开发

使用 `uv` 需要在本地克隆仓库并指定源代码路径。将以下配置添加到 Claude Desktop 的配置文件 `claude_desktop_config.json` 中。

```json
// For Elasticsearch
{
  "mcpServers": {
    "elasticsearch-mcp-server": {
      "command": "uv",
      "args": [
        "--directory",
        "path/to/src/elasticsearch_mcp_server",
        "run",
        "elasticsearch-mcp-server"
      ],
      "env": {
        "ELASTICSEARCH_HOST": "https://localhost:9200",
        "ELASTICSEARCH_USERNAME": "elastic",
        "ELASTICSEARCH_PASSWORD": "test123"
      }
    }
  }
}

// For OpenSearch
{
  "mcpServers": {
    "opensearch-mcp-server": {
      "command": "uv",
      "args": [
        "--directory",
        "path/to/src/elasticsearch_mcp_server",
        "run",
        "opensearch-mcp-server"
      ],
      "env": {
        "OPENSEARCH_HOST": "https://localhost:9200",
        "OPENSEARCH_USERNAME": "admin",
        "OPENSEARCH_PASSWORD": "admin"
      }
    }
  }
}
```


- 在 macOS 上：`~/Library/Application Support/Claude/claude_desktop_config.json`
- 在 Windows 上：`%APPDATA%/Claude/claude_desktop_config.json`

重启 Claude Desktop 以加载新的 MCP 服务器。

现在，您可以使用自然语言命令通过Claude与您的Elasticsearch/OpenSearch集群进行交互，例如：
- "列出集群中的所有索引"
- "学生Bob多大了？"
- "显示集群的健康状态"

## 使用Anthropic MCP客户端

```python
uv run mcp_client/client.py src/server.py
```


## 许可证

本项目根据Apache许可证2.0版许可 - 详情请参阅[LICENSE](LICENSE)文件。

