The named tools cover the routine — indices, documents, aliases, health — and the general request tool covers everything else, so an unusual endpoint does not send you back to a terminal. Every call takes an optional cluster name, which is what makes running more than one cluster practical.
A working connection to one or more OpenSearch clusters: index and document management, search, aliases, data streams, cluster health, text analysis, and a general request tool for anything without a dedicated tool.
- Indices listed, created and deleted, and described with their mappings, settings and aliases
- Documents created or updated, fetched by ID, deleted by ID, or removed in bulk by query
- Search against an index with a query body you supply
- Aliases listed, read for an index, created or updated, and deleted
- Data streams created, described and deleted, backing indices included
- Cluster health and a high-level statistics overview
- Text analysis, so you can see how a string is actually tokenised
- A general HTTP API request for any endpoint the named tools do not cover
- An optional cluster name on every call, falling back to the default cluster when omitted
Python with uv, and a .env file giving the cluster's address plus the username and password it should connect as. It runs over stdio for Claude Desktop, or on a port as an SSE endpoint for Cursor.
One command plus a key — uvx opensearch-mcp-server, then supply credentials
