# OpenSearch (slim) > OpenSearch is an open-source search and analytics engine with vector, text and hybrid search, run by its owner. Agents reach it through a REST API, official clients, an OpenSearch MCP Server and an MCP endpoint inside the cluster. - Full: https://www.anchorterminal.com/tools/opensearch.md (~7,400 tokens) · this version ~1,930 tokens · JSON https://www.anchorterminal.com/tools/opensearch.json · canonical https://www.anchorterminal.com/tools/opensearch - Index: https://www.anchorterminal.com/llms.txt · API: https://www.anchorterminal.com/api/v1/index.json · Updated: 2026-10-09 **B · 68/100 · rank #233 of 950 · #6 in Retrieval & vector search · not agent-ready · confidence medium** Assessment: OpenSearch 3.9.0 runs vector, text and hybrid search under Apache-2.0, with an OpenAPI 3.1 description of its REST API and API keys limited by permission and index pattern. The owner runs the cluster, no status page or SLA comes with the software, and no tool in the MCP server sets a read-only or destructive annotation. ## Facts - Kind: HTTP API · vendor: OpenSearch Software Foundation · category: Retrieval & vector search · legal entity: OpenSearch Software Foundation, a project of The Linux Foundation · provenance 45/100 - Local only (HTTP, stdio): oci `opensearchproject/opensearch`, pypi `opensearch-mcp-server-py`, pypi `opensearch-py` - Auth: OAuth or key · pricing: Free · x402: no · licence: Apache-2.0 for the engine, the plugins, the clients, the API specification and the MCP server - Probe metrics: not measured yet (probes haven't run) - Surface graded: The REST API of a self-hosted OpenSearch 3.9.0 cluster, with `opensearch-mcp-server-py` 0.12.0 and the in-cluster MCP endpoint as second surfaces. The foundation runs no hosted service. Amazon OpenSearch Service and other vendors' hosting are not graded here - Search modes: Approximate and exact k-NN on `knn_vector` fields with the Lucene and Faiss engines (`nmslib` is deprecated), BM25 text search, hybrid search through a search pipeline, neural sparse search and semantic search with a model, per the docs - Filters: Efficient k-NN filtering applied during the search on Lucene HNSW and Faiss HNSW or IVF, post-filtering with a Boolean clause or `post_filter`, and a scoring script filter for exact search - Update delay: A document is searchable after the next index refresh, which `index.refresh_interval` controls. Not measured by us - Setup: Docker image `opensearchproject/opensearch`, tarball, RPM or Debian package with a bundled JDK. The demo security setup needs `OPENSEARCH_INITIAL_ADMIN_PASSWORD`. A vector index needs a mapping with a `knn_vector` field - Auth: Security plugin with basic auth, client certificates, JWT, OpenID Connect and SAML. API keys since 3.7, sent as `Authorization: ApiKey `, with cluster and index permissions - Limits: No fixed request quota. Concurrency limits per action (off by default, HTTP 429 once enforced), search backpressure and shard indexing backpressure are the operator's settings. `from` plus `size` paging has a result window limit - MCP server (external): `opensearch-mcp-server-py` 0.12.0, Python 3.10 or later per `pyproject.toml`, stdio and Streamable HTTP. Nine core tools by default, further categories (`search_relevance`, `skills`, `observability`, `agentic_memory`) off until enabled - MCP server (in cluster): `/_plugins/_ml/mcp` over stateless Streamable HTTP, with APIs to register, update, list and remove tools. Introduced 3.0, Streamable HTTP since 3.3 - API description: OpenAPI 3.1 in opensearch-project/opensearch-api-specification, published as one file at https://api-spec.opensearch.org/opensearch-openapi.yaml. About 717 operations counted in the source on 9 October 2026 - Clients: Official clients for Python, JavaScript, Java, Go, Ruby, PHP, .NET and Rust, per the docs - Releases: Minor versions about every eight weeks on a published schedule. 3.10.0 is planned for 3 to 17 November 2026. The 2.19 line is in maintenance until 4.0 is released - Cost: Free software. The owner pays for the machines. Long-term support is sold by three vendors the foundation certifies, with no prices on opensearch.org - Scores: Reliability 77, Performance pending, Schema & documentation 77, Agent ergonomics 80, Security & auth 70, Payments & pricing 60, Task success pending, Maintenance & community 84, Transparency & trust 57 · negative events -5 · total over the 7 assessed categories - Why: Reliability, Read with the local-software lines, because the foundation runs no hosted service and the owner runs the cluster. · Schema & documentation, OpenAPI 3.1 for the REST API in opensearch-project/opensearch-api-specification, published as one file. · Agent ergonomics, Responses are sized with `size`, `_source` and `filter_path`. · Security & auth, API keys since 3.7 carry cluster and index permissions, expire within 90 days at most and are revoked on all nodes at once. · Payments & pricing, Read with the self-hosted rule. · Maintenance & community, OpenSearch 3.9.0 was tagged on 22 September 2026, 17 days before the check (30). · Transparency & trust, Apache-2.0 across the engine, plugins, clients and MCP server, in public repositories under a foundation hosted by The Linux Foundation (30)… - Sources: 21, open questions: 11, both in the full twin - Capabilities: db.vector, db.hybrid, db.fulltext, db.filters - JSON: https://www.anchorterminal.com/api/v1/tools/opensearch.json - Verify (for the vendor): the badge `https://www.anchorterminal.com/badges/opensearch.svg` or a link to https://www.anchorterminal.com/tools/opensearch from a page on opensearch.org or one of its subdomains, or the README of github.com/opensearch-project/OpenSearch, then `POST https://www.anchorterminal.com/api/v1/verify` `{"slug", "url"}` or `verify_listing` at /mcp; re-checked weekly, no effect on the grade. Snippets in the full twin. ## Before you call it 1. Create the index with `index.knn` set to true and a `knn_vector` field of the right dimension before indexing vectors 2. Put the `filter` clause inside the `knn` query for filtering during the search. A filter outside it runs afterwards and can return fewer than `k` hits 3. Ask a security administrator for an API key and send it as `Authorization: ApiKey `. The token is shown once and lasts 90 days at most 4. Use `size`, `_source` and `filter_path` to keep responses small, and `search_after` with a point in time for deep paging 5. Set `OPENSEARCH_SETTINGS_ALLOW_WRITE=false` on the MCP server unless writes are needed. `GenericOpenSearchApiTool` can call any endpoint ## Connect ```bash docker run -d -p 9200:9200 -p 9600:9600 -e "discovery.type=single-node" -e "OPENSEARCH_INITIAL_ADMIN_PASSWORD=" opensearchproject/opensearch:latest ``` ```bash curl https://localhost:9200 -ku admin:"" ``` Full config and headless snippets are in the full page. Through letme (picks today, calling later): https://letme.dev/opensearch ## Similar tools | Tool | Grade | Score | Shared capabilities | Slim | | --- | --- | --- | --- | --- | | Meilisearch | A | 78.6 | db.vector, db.hybrid, db.fulltext, db.filters | https://www.anchorterminal.com/tools/meilisearch.min.md | | Pinecone API + MCP | BB | 76.2 | db.vector, db.hybrid, db.fulltext, db.filters | https://www.anchorterminal.com/tools/pinecone.min.md | | Supabase API + MCP | BB | 75.6 | db.vector, db.hybrid, db.fulltext, db.filters | https://www.anchorterminal.com/tools/supabase-mcp.min.md | | Qdrant API + MCP | BB | 75.3 | db.vector, db.hybrid, db.fulltext, db.filters | https://www.anchorterminal.com/tools/qdrant.min.md | | Typesense API + MCP | BB | 70.7 | db.vector, db.hybrid, db.fulltext, db.filters | https://www.anchorterminal.com/tools/typesense.min.md | ## Panel reviews (0, desk reviews from public material, no calls made)