---
title: "OpenSearch MCP Server: review, setup & limitations · Undominated.ai"
canonical: https://undominated.ai/mcp-servers/opensearch/
description: "Lets an assistant list indices, read mappings, run searches and call any OpenSearch API through one generic tool, against one or several clusters. The Python implementation supports stdio and a streaming transport (SSE and Streamable HTTP) at the pinned revision."
---

# OpenSearch MCP Server: review, setup & limitations · Undominated.ai

> Lets an assistant list indices, read mappings, run searches and call any OpenSearch API through one generic tool, against one or several clusters. The Python implementation supports stdio and a streaming transport (SSE and Streamable HTTP) at the pinned revision.

[← Explore all mcp servers](/mcp-servers/)

SEARCH AND ANALYTICS / OpenSearch

# OpenSearch MCP Server

Lets an assistant list indices, read mappings, run searches and call any OpenSearch API through one generic tool, against one or several clusters. The Python implementation supports stdio and a streaming transport (SSE and Streamable HTTP) at the pinned revision.

 [See setup guidance ↓](#setup)[Original source ↗](https://github.com/opensearch-project/opensearch-mcp-server-py)

SOURCE REVIEW

 Reviewed 2026-10-13
 Evidence 5 linked sources
 Publisher OpenSearch
 Licence [Apache-2.0 ↗](https://github.com/opensearch-project/opensearch-mcp-server-py/blob/65479140d837cc2b4d0966bf5cceb9cd1cbb6d6e/LICENSE.txt)
 Revision 65479140d837
 [Read what was—and wasn’t—checked ↓](#review)

“opensearch-mcp-server-py is a Model Context Protocol (MCP) server for OpenSearch that enables AI assistants to interact with OpenSearch clusters.”

 [OpenSearch · upstream description ↗](https://github.com/opensearch-project/opensearch-mcp-server-py/blob/65479140d837cc2b4d0966bf5cceb9cd1cbb6d6e/README.md) Our analysis follows below.

01 / THE REASONING

## Why this made the selection.

 - The README lists the nine core tools enabled by default; its additional tools stay off until enabled through the User Guide's tool filter, and the agentic_memory, observability, search_relevance and skills categories stay off until enabled with OPENSEARCH_ENABLED_CATEGORIES.
- USER_GUIDE.md documents OPENSEARCH_SETTINGS_ALLOW_WRITE to turn write operations off, per-category write exceptions, and six authentication methods in a stated priority order.

### A good fit for

 - Exploring index mappings and running searches against an OpenSearch cluster.
- Debugging why a query returns unexpected results on a known index.

### Weigh up before choosing

 - Writes are allowed by default: USER_GUIDE.md lists OPENSEARCH_SETTINGS_ALLOW_WRITE with default "true". GenericOpenSearchApiTool, a core tool, can call any OpenSearch API endpoint with custom paths, methods and bodies.
- In single mode every tool accepts per-call connection parameters (opensearch_url and credentials), so an agent can point a call at another cluster; OPENSEARCH_SSRF_GUARD=true restricts caller-supplied URLs to public HTTPS addresses.
- USER_GUIDE.md says the older SSE server is now part of the streaming server and will be deprecated.
- Needs network access to a reachable OpenSearch endpoint; cluster credentials must be managed outside the client configuration.

02 / THE REVIEW RECORD

## What we actually inspected.

Source review has boundaries. A clear record is more useful than a “safe” badge.

### Material inspected

 - README.md at 65479140d837cc2b4d0966bf5cceb9cd1cbb6d6e: description, pip install, zero-config uvx block, tool categories, per-call connection parameters.
- USER_GUIDE.md at the same commit: transports, modes, authentication priority, write settings, tool categories.
- pyproject.toml at the same commit: opensearch-mcp-server-py, Python 3.10 or later, Apache-2.0.
- LICENSE.txt at the same commit: Apache-2.0 terms.
- pyproject.toml at cd287e82 (default-branch HEAD on 2026-10-13): name, version 0.12.0, licence.

### Our findings

 - Core tools enabled by default: ListIndexTool, IndexMappingTool, SearchIndexTool, GetShardsTool, ClusterHealthTool, CountTool, ExplainTool, MsearchTool and GenericOpenSearchApiTool.
- All three transports are described in the publisher sources for the pinned revision: stdio, and a streaming server that serves SSE and Streamable HTTP.
- Authentication priority per USER_GUIDE.md: no authentication (only if OPENSEARCH_NO_AUTH is set), a bearer token or AWS credentials from request headers (header auth enabled), IAM role, basic authentication, then AWS profile or ambient credentials. The README also names OpenSearch mTLS.
- allow_write_categories only takes effect when allow_write is false, and then enables writes for the listed categories alone.
- The previous upstreamDescription ("Run OpenSearch queries and inspect indices through documented MCP tools.") does not appear in the README; it is replaced by the README's first sentence. The previous install command (uvx opensearch-mcp-server-py) is not a README line; install.command is now the README's pip line. configExample is the README's zero-config block.
- Health on 2026-10-13: repository not archived, GitHub reports Apache-2.0, and at HEAD cd287e82 pyproject.toml still names opensearch-mcp-server-py under Apache-2.0.

### Not established by this review

 - Server startup, cluster connection and query execution were not tested.
- The write setting, the SSRF guard and multi mode were not exercised.

The review applies to the material and revision named here. A newer upstream release can change its behavior.

03 / PUT IT TO WORK

## Connect a server deliberately.

[Upstream setup instructions ↗](https://github.com/opensearch-project/opensearch-mcp-server-py/blob/65479140d837cc2b4d0966bf5cceb9cd1cbb6d6e/README.md)

DOCUMENTED COMMAND

 pip install opensearch-mcp-server-py Copy command ↗

Copying does not execute this command. It may retrieve a newer version than the reviewed source.

 - Install from PyPI as above, or let the client launch it with uvx as the README's zero-config block shows.
- Set OPENSEARCH_URL and credentials, or leave them unset and let the agent pass connection parameters per call.
- Set OPENSEARCH_SETTINGS_ALLOW_WRITE=false unless the assistant should change the cluster.

### Before you start

 - Python 3.10 or later with pip, or uv for uvx.
- A reachable OpenSearch cluster with valid credentials.

### Documented configuration example

Use the client and authentication context described in the setup guidance. Configuration formats vary between hosts.

 {
 "mcpServers": {
 "opensearch": {
 "command": "uvx",
 "args": [
 "opensearch-mcp-server-py"
 ]
 }
 }
} Copy configuration ↗

### Compatibility

MCP clients supporting stdio with uv or pip available, or the streaming transport (SSE / Streamable HTTP) for remote modes; the README names Claude Desktop and LangChain. · A reachable OpenSearch cluster; Python 3.10 or later per pyproject.toml.

### Implementation

Python

### Transports

stdio · SSE · Streamable HTTP

### OpenSearch cluster credentials

 - Authenticates by basic auth, IAM role, AWS credentials, header-passed bearer token or AWS credentials, or mTLS; no authentication only when explicitly set.
- Reads indices, mappings, shards, cluster health and documents allowed by the credentials.
- With writes allowed (the default), GenericOpenSearchApiTool can call any API method the credentials permit.
- Accepts per-call cluster URLs and credentials from the agent in single mode.

### Cost model

Apache-2.0 server source. Cluster hosting and data-transfer costs are separate; none was reviewed.

04 / FOLLOW THE EVIDENCE

## The source trail.

Our notes are separate from the original resource. Check upstream before adopting a new version.

 - [OpenSearch MCP server readme ↗](https://github.com/opensearch-project/opensearch-mcp-server-py/blob/65479140d837cc2b4d0966bf5cceb9cd1cbb6d6e/README.md) Checked 2026-10-13 https://github.com/opensearch-project/opensearch-mcp-server-py/blob/65479140d837cc2b4d0966bf5cceb9cd1cbb6d6e/README.md Supports: upstreamDescription, summary, install, configExample, tools, transports, limitations
- [User guide ↗](https://github.com/opensearch-project/opensearch-mcp-server-py/blob/65479140d837cc2b4d0966bf5cceb9cd1cbb6d6e/USER_GUIDE.md) Checked 2026-10-13 https://github.com/opensearch-project/opensearch-mcp-server-py/blob/65479140d837cc2b4d0966bf5cceb9cd1cbb6d6e/USER_GUIDE.md Supports: transports, authentication, write settings, access, limitations
- [Package manifest ↗](https://github.com/opensearch-project/opensearch-mcp-server-py/blob/65479140d837cc2b4d0966bf5cceb9cd1cbb6d6e/pyproject.toml) Checked 2026-10-13 https://github.com/opensearch-project/opensearch-mcp-server-py/blob/65479140d837cc2b4d0966bf5cceb9cd1cbb6d6e/pyproject.toml Supports: language, package name, license
- [Repository licence ↗](https://github.com/opensearch-project/opensearch-mcp-server-py/blob/65479140d837cc2b4d0966bf5cceb9cd1cbb6d6e/LICENSE.txt) Checked 2026-10-13 https://github.com/opensearch-project/opensearch-mcp-server-py/blob/65479140d837cc2b4d0966bf5cceb9cd1cbb6d6e/LICENSE.txt Supports: license
- [Package manifest at HEAD ↗](https://github.com/opensearch-project/opensearch-mcp-server-py/blob/cd287e82b3c761d74dd15d7c25ca4f919e87d12b/pyproject.toml) Checked 2026-10-13 https://github.com/opensearch-project/opensearch-mcp-server-py/blob/cd287e82b3c761d74dd15d7c25ca4f919e87d12b/pyproject.toml Supports: package name and licence unchanged at HEAD

KEEP COMPARING

## Other approaches to consider.

Related by category or shared topics. These are alternatives to inspect, not a measured quality order.

 [### Algolia MCP Server ↗ Algolia's managed MCP offerings: Public MCP exposes application-scoped search and recommendations on selected indices for customer-facing agents; Productivity MCP gives user-scoped, read-only exploration and analytics; DevEx MCP serves version-matched API client snippets to coding agents without touching data.](/mcp-servers/algolia/)[### Plausible MCP ↗ Queries Plausible traffic and conversions. Query tools are marked read-only in the README.](/mcp-servers/plausible-mcp/)[### Typesense Cloud MCP Server ↗ Typesense's hosted MCP server for Typesense Cloud: agents create and configure clusters, build collections, import data, tune search and read metrics over Streamable HTTP with OAuth, with consent-screen permissions capped at the user's RBAC role.](/mcp-servers/typesense/)

 [AI Tools ↗](/tools/)[Skills ↗](/skills/)[Agents ↗](/agents/)[MCP Servers ↗](/mcp-servers/)[Workflows ↗](/workflows/)

## Continue your investigation

 - [Inspect resource evidence](/tools/)
- [Choose a host](/agents/)
- [Inspect reusable workflows](/skills/)
- [Use Undominated data](/api/)
