Give your AI agents managed hybrid search

One config entry, and Claude, Cursor, or any MCP-compatible agent can search, index, and answer from your Opensolr indexes — hybrid BM25 + kNN, embeddings computed server-side, RAG answers grounded in your own content.

The whole setup

Claude Desktop, Claude Code, Cursor, Windsurf — same shape everywhere: stdio transport, two environment variables.

{
  "mcpServers": {
    "opensolr": {
      "command": "uvx",
      "args": ["opensolr-mcp"],
      "env": {
        "OPENSOLR_EMAIL": "you@example.com",
        "OPENSOLR_API_KEY": "YOUR_OPENSOLR_API_KEY"
      }
    }
  }
}

Claude Code one-liner: claude mcp add opensolr -e OPENSOLR_EMAIL=... -e OPENSOLR_API_KEY=... -- uvx opensolr-mcp

Try it without an account

A public demo account, so the quickstart above runs before you decide anything.

export OPENSOLR_EMAIL=mcp@opensolr.com
export OPENSOLR_API_KEY=420b8b23e7b12dc8ab838932145a5065

The index mcp_demo_d1__dense is already loaded with 300 news articles, so search, filtering and grounded answers work the moment you connect. You also get the write path: create your own index on the account, ingest into it and query it. Deletion is not available on this shared key — no index here can be deleted or reconfigured by hand. Whatever you create is removed automatically after 3 days.

  • Anything you create there is deleted after 3 days. Automatically, without warning or export — indexes you created included.
  • The account is shared with everyone reading this page. Your index is visible to them and they can add documents to it, as you can to theirs. Nobody can delete or reconfigure an index here — that is switched off for this key — but never put anything real, private or client-owned in it.
  • The limits are per index, and deliberately small. 200 MB of bandwidth and 50 MB of disk per index. Bandwidth is the one you will hit first: it covers a demo, a tutorial and a proof of concept, and it will not carry an application.

When you want an index that is private, yours and still there next week, get your own key — free 15-day trial, no card — and change the two variables above. Nothing else in your code changes.

9 tools your agent gets

Plain text in, ranked results out — the agent never touches a vector.

ToolWhat it does
opensolr_searchHybrid (keyword + semantic) or pure semantic search, with Solr filters
opensolr_ai_answerGrounded RAG answer — the top hybrid hits become the LLM context, same pipeline as our hosted search UI
opensolr_add_documentsIndex plain text + metadata — embedded server-side automatically
opensolr_delete_documentsRemove documents by id or by a raw Solr query
opensolr_ingest_statusTrack an async ingestion job (documents become searchable in ~1 min)
opensolr_list_indexes / opensolr_index_infoInspect the account's indexes (credentials never returned)
opensolr_create_indexProvision a vector-enabled index (us, de, fi)
opensolr_vector_regionsLive list of vector-enabled regions

Why agents love it

The chat is the UI — there is nothing to build.

Zero integration work

No SDK, no glue code, no frontend. Add the config entry, and "index our FAQ, then find everything about refunds" just works — in conversation.

Hybrid by default

BM25 catches the exact word "refund"; kNN catches "giving customers their money back". Scores fuse per document via Opensolr's native {!hybrid} Solr parser.

Verified publisher

Listed in the official MCP Registry under the domain-verified com.opensolr namespace — the source Claude Desktop, Cursor, and MCP directories pull from — and in the Glama MCP directory, where the server is claimed and its 9 tools are enumerated.

Building in code instead? LangChain · LlamaIndex · Haystack · Laravel

Your Search Tuning follows you

Relevance is configured once, in your Control Panel — not re-implemented in every codebase.

  • Saved per index: everything you set in Index Settings → Search Tuning (semantic↔lexical balance, field weights, minimum match, search mode, vector candidate pool, content quality boost) is stored with your index.
  • Applies automatically here: every search and every RAG answer from this integration runs through the same tuned pipeline as your hosted search page — change a slider in the Control Panel and the very next query uses it. No redeploy, no code change.
  • Overridable per call: tuning={"search_mode": "keywords_required", "fw_title": 0.2, "mm": "strict"} beats the saved settings for that one request. Defaults match the platform exactly when you send nothing.
  • Fresh Results Bias: pass fresh_bias to rank newer documents higher — scores are multiplied by a recency curve on creation_date. It re-orders and never filters: the hit count is unchanged and undated documents keep their place. This is the same control visitors get as the Fresh toggle on the hosted search page. Not to be confused with freshness_boost, which is a hard date window in days and does remove results.

Tested on our own production index

Every release runs a live end-to-end suite against real Opensolr infrastructure — no mocks.

  • Full write path through the async Data Ingestion queue: queued → server-side embeddings & enrichment → searchable, with metadata and id round-trips verified. Metadata lands in typed Solr fields; the suffixes and what they enable are in the Vector Search Schema Reference.
  • Real-corpus retrieval against a replica of opensolr.com's own search index: pure-semantic hits with zero keyword overlap („how do I get my data back after a disaster” → backup docs), cross-lingual queries (Romanian → English content), all hybrid modes and the full alpha range.
  • PDF ingestion via rtf:true: server-side text extraction and content-type detection, then semantic retrieval from the extracted content.
  • Grounded RAG answers: one call runs hybrid retrieval and feeds the top hits to the LLM (configurable docs/words, custom instruction) — verified with a question answerable only from the ingested PDF.
  • Every tool exercised live: search modes (hybrid / semantic / lexical), ingestion with wait, job status, deletes by id and query, grounded RAG answers.

Your agent could be searching in two minutes

Free 15-day trial, no credit card — the included AI quota covers plenty of agent conversations.