
Elasticsearch-MCP-Server
一个模型上下文协议(MCP)服务器实现,可提供Elasticsearch和OpenSearch交互。
1
Github Watches
16
Github Forks
98
Github Stars
Elasticsearch/OpenSearch MCP Server
Overview
A Model Context Protocol (MCP) server implementation that provides Elasticsearch and OpenSearch interaction. This server enables searching documents, analyzing indices, and managing cluster through a set of tools.
Demo
https://github.com/user-attachments/assets/f7409e31-fac4-4321-9c94-b0ff2ea7ff15
Features
Index Operations
-
list_indices
: List all indices. -
get_index
: Returns information (mappings, settings, aliases) about one or more indices. -
create_index
: Create a new index. -
delete_index
: Delete an index.
Document Operations
-
search_documents
: Search for documents. -
index_document
: Creates or updates a document in the index. -
get_document
: Get a document by ID. -
delete_document
: Delete a document by ID. -
delete_by_query
: Deletes documents matching the provided query.
Cluster Operations
-
get_cluster_health
: Returns basic information about the health of the cluster. -
get_cluster_stats
: Returns high-level overview of cluster statistics.
Alias Operations
-
list_aliases
: List all aliases. -
get_alias
: Get alias information for a specific index. -
put_alias
: Create or update an alias for a specific index. -
delete_alias
: Delete an alias for a specific index.
Configure Environment Variables
Copy the .env.example
file to .env
and update the values accordingly.
Start Elasticsearch/OpenSearch Cluster
Start the Elasticsearch/OpenSearch cluster using Docker Compose:
# For Elasticsearch
docker-compose -f docker-compose-elasticsearch.yml up -d
# For OpenSearch
docker-compose -f docker-compose-opensearch.yml up -d
The default Elasticsearch username is elastic
and password is test123
. The default OpenSearch username is admin
and password is admin
.
You can access Kibana/OpenSearch Dashboards from http://localhost:5601.
Usage with Claude Desktop
Option 1: Installing via Smithery
To install Elasticsearch Server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install elasticsearch-mcp-server --client claude
Option 2: Using uvx
Using uvx
will automatically install the package from PyPI, no need to clone the repository locally. Add the following configuration to Claude Desktop's config file 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"
}
}
}
}
Option 3: Using uv with local development
Using uv
requires cloning the repository locally and specifying the path to the source code. Add the following configuration to Claude Desktop's config file 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"
}
}
}
}
- On macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- On Windows:
%APPDATA%/Claude/claude_desktop_config.json
Restart Claude Desktop to load the new MCP server.
Now you can interact with your Elasticsearch/OpenSearch cluster through Claude using natural language commands like:
- "List all indices in the cluster"
- "How old is the student Bob?"
- "Show me the cluster health status"
Usage with Anthropic MCP Client
uv run mcp_client/client.py src/server.py
License
This project is licensed under the Apache License Version 2.0 - see the LICENSE file for details.
相关推荐
Confidential guide on numerology and astrology, based of GG33 Public information
Take an adjectivised noun, and create images making it progressively more adjective!
Embark on a thrilling diplomatic quest across a galaxy on the brink of war. Navigate complex politics and alien cultures to forge peace and avert catastrophe in this immersive interstellar adventure.
Reviews

user_pk4aeU1L
As a dedicated user of the elasticsearch-mcp-server by cr7258, I can confidently say it has significantly optimized our data management processes. The seamless integration and powerful search capabilities make it a game-changer for any MCP application. Highly recommended for anyone needing a robust and efficient solution!