Elasticsearch模型上下文协议服务器添加福利群:解决AI开发者的「MCP实战痛点」一个实现了模型上下文协议(MCP)的服务器,用于提供 Elasticsearch 和 OpenSearch 的交互。该服务器通过一系列工具支持文档搜索、索引分析和集群管理。
https://github.com/user-attachments/assets/f7409e31-fac4-4321-9c94-b0ff2ea7ff15
general_api_request:执行通用的 HTTP API 请求。对于任何没有专用工具的 Elasticsearch/OpenSearch API,可以使用此工具。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 并相应地更新值。
使用 Docker Compose 启动 Elasticsearch/OpenSearch 集群:
# 对于 Elasticsearch
docker-compose -f docker-compose-elasticsearch.yml up -d
# 对于 OpenSearch
docker-compose -f docker-compose-opensearch.yml up -d

默认的 Elasticsearch 用户名是 elastic,密码是 test123。默认的 OpenSearch 用户名是 admin,密码是 admin。
你可以通过 http://localhost:5601 访问 Kibana/OpenSearch 仪表盘。
通过 Smithery 自动为 Claude Desktop 安装 Elasticsearch 服务器:
npx -y @smithery/cli install elasticsearch-mcp-server --client claude
使用 uvx 会自动从 PyPI 安装包,无需在本地克隆仓库。将以下配置添加到 Claude Desktop 的配置文件 claude_desktop_config.json 中。
// 对于 Elasticsearch
{
"mcpServers": {
"elasticsearch-mcp-server": {
"command": "uvx",
"args": [
"elasticsearch-mcp-server"
],
"env": {
"ELASTICSEARCH_HOSTS": "https://localhost:9200",
"ELASTICSEARCH_USERNAME": "elastic",
"ELASTICSEARCH_PASSWORD": "test123"
}
}
}
}
// 对于 OpenSearch
{
"mcpServers": {
"opensearch-mcp-server": {
"command": "uvx",
"args": [
"opensearch-mcp-server"
],
"env": {
"OPENSEARCH_HOSTS": "https://localhost:9200",
"OPENSEARCH_USERNAME": "admin",
"OPENSEARCH_PASSWORD": "admin"
}
}
}
}

使用 uv 需要在本地克隆仓库并指定源代码路径。将以下配置添加到 Claude Desktop 的配置文件 claude_desktop_config.json 中。
// 对于 Elasticsearch
{
"mcpServers": {
"elasticsearch-mcp-server": {
"command": "uv",
"args": [
"--directory",
"path/to/src/elasticsearch_mcp_server",
"run",
"elasticsearch-mcp-server"
],
"env": {
"ELASTICSEARCH_HOSTS": "https://localhost:9200",
"ELASTICSEARCH_USERNAME": "elastic",
"ELASTICSEARCH_PASSWORD": "test123"
}
}
}
}
// 对于 OpenSearch
{
"mcpServers": {
"opensearch-mcp-server": {
"command": "uv",
"args": [
"--directory",
"path/to/src/elasticsearch_mcp_server",
"run",
"opensearch-mcp-server"
],
"env": {
"OPENSEARCH_HOSTS": "https://localhost:9200",
"OPENSEARCH_USERNAME": "admin",
"OPENSEARCH_PASSWORD": "admin"
}
}
}
}

~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%/Claude/claude_desktop_config.json重启 Claude Desktop 以加载新的 MCP 服务器。
现在你可以通过 Claude 使用自然语言命令与 Elasticsearch/OpenSearch 集群进行交互,例如:
uv run mcp_client/client.py src/server.py
本项目根据 Apache 许可证 2.0 版本授权 - 详情请参阅 LICENSE 文件。