Elasticsearch/OpenSearch MCP 服务器
概述
一个模型上下文协议 (MCP) 服务器实现,提供 Elasticsearch 和 OpenSearch 交互。该服务器支持通过一组工具搜索文档、分析索引和管理集群。
Related MCP server: OpenSearch MCP Server
演示
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并相应地更新值。
启动 Elasticsearch/OpenSearch 集群
使用 Docker Compose 启动 Elasticsearch/OpenSearch 集群:
# For Elasticsearch
docker-compose -f docker-compose-elasticsearch.yml up -d
# For OpenSearch
docker-compose -f docker-compose-opensearch.yml up -dElasticsearch 默认用户名为elastic ,密码为test123 。OpenSearch 默认用户名为admin ,密码为admin 。
您可以从http://localhost:5601访问 Kibana/OpenSearch 仪表板。
与 Claude Desktop 一起使用
选项 1:通过 Smithery 安装
要通过Smithery自动为 Claude Desktop 安装 Elasticsearch Server:
npx -y @smithery/cli install elasticsearch-mcp-server --client claude选项 2:使用 uvx
使用uvx将自动从 PyPI 安装软件包,无需将仓库克隆到本地。将以下配置添加到 Claude Desktop 的配置文件claude_desktop_config.json中。
// For Elasticsearch
{
"mcpServers": {
"elasticsearch-mcp-server": {
"command": "uvx",
"args": [
"elasticsearch-mcp-server"
],
"env": {
"ELASTICSEARCH_HOSTS": "https://localhost:9200",
"ELASTICSEARCH_USERNAME": "elastic",
"ELASTICSEARCH_PASSWORD": "test123"
}
}
}
}
// For OpenSearch
{
"mcpServers": {
"opensearch-mcp-server": {
"command": "uvx",
"args": [
"opensearch-mcp-server"
],
"env": {
"OPENSEARCH_HOSTS": "https://localhost:9200",
"OPENSEARCH_USERNAME": "admin",
"OPENSEARCH_PASSWORD": "admin"
}
}
}
}选项 3:使用 uv 进行本地开发
使用uv需要在本地克隆仓库并指定源代码路径。在 Claude Desktop 的配置文件claude_desktop_config.json中添加以下配置。
// For 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"
}
}
}
}
// For 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"
}
}
}
}在 macOS 上:
~/Library/Application Support/Claude/claude_desktop_config.json在 Windows 上:
%APPDATA%/Claude/claude_desktop_config.json
重新启动 Claude Desktop 以加载新的 MCP 服务器。
现在,您可以使用自然语言命令通过 Claude 与您的 Elasticsearch/OpenSearch 集群进行交互,例如:
“列出集群中的所有索引”
“学生鲍勃多大了?”
“显示集群健康状态”
与 Anthropic MCP 客户端一起使用
uv run mcp_client/client.py src/server.py执照
该项目根据 Apache 许可证版本 2.0 获得许可 - 有关详细信息,请参阅LICENSE文件。