OpenSearch MCP Server
# OpenSearch MCP Server
## Overview
This Repository Fork of [elastic-mcp-server](https://github.com/cr7258/elasticsearch-mcp-server) and Converted to [opensearch-mcp-server](https://github.com/seohyunjun/opensearch-mcp-server) MCP Server. It is a Model Context Protocol (MCP) server implementation that provides opensearch interaction. This server enables searching documents, analyzing indices, and managing cluster through a set of tools.
A Model Context Protocol (MCP) server implementation that provides opensearch interaction. This server enables searching documents, analyzing indices, and managing cluster through a set of tools.
## Features
### Index Operations
- `list_indices`: List all indices in the Opensearch cluster.
- `get_mapping`: Retrieve the mapping configuration for a specific index.
- `get_settings`: Get the settings configuration for a specific index.
### Document Operations
- `search_documents`: Search documents in an index using Opensearch Query DSL.
### Cluster Operations
- `get_cluster_health`: Get health status of the cluster.
- `get_cluster_stats`: Get statistical information about the cluster.
## Start Opensearch Cluster
Start the Opensearch cluster using Docker Compose:
```bash
docker-compose up -d
```
This will start a 3-node Opensearch cluster and Kibana. Default Opensearch username `opensearch`, password `test123`.
You can access Kibana from http://localhost:5601.
## Usage with Claude Desktop
### 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`.
you need to change `path/to/src/opensearch_mcp_server` to the path where you cloned the repository.
```json
{
"mcpServers": {
"opensearch": {
"command": "uv",
"args": [
"--directory",
"path/to/src/opensearch_mcp_server",
"run",
"opensearch-mcp-server"
],
"env": {
"OPENSEARCH_HOST": "https://localhost:9200",
"OPENSEARCH_USERNAME": "opensearch",
"OPENSEARCH_PASSWORD": "test123",
"DASHBOARDS_HOST": "https://localhost:5601"
}
}
}
}
```
- 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 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"
## License
This project is licensed under the Apache License Version 2.0 - see the [LICENSE](LICENSE) file for details.
TDQS
Scored across 14 tools
Every tool has a clearly distinct purpose targeting specific OpenSearch operations. There is no overlap between tools like get_cluster_health (health status), get_mapping (index structure), and search_documents (document queries). Each tool name precisely indicates its unique function within the OpenSearch domain.
All tools follow a consistent verb_noun naming pattern throughout. The pattern is predominantly 'get_' for retrieval operations and 'list_' for listing operations, with specific exceptions like 'generate_' and 'search_' that maintain the same structure. No mixing of conventions like camelCase or snake_case variations.
With 14 tools, this server is well-scoped for OpenSearch operations, covering monitoring, configuration, and data querying aspects. Each tool earns its place by addressing distinct needs like cluster health, index management, and document search, without being overly sparse or bloated.
The tool set provides strong coverage for monitoring, configuration retrieval, and search operations in OpenSearch. Minor gaps exist, such as the absence of tools for creating or updating resources (e.g., indices, policies), but agents can still perform core read and diagnostic workflows effectively.