# opensolr-mcp [Health: Active]

**Category:** 🧠 Knowledge & Memory  
**Repository:** https://github.com/phpcip/opensolr-mcp  
**GitHub Stars:** 0  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/opensolr-mcp

## Description
Managed Apache Solr for agents: hybrid BM25+kNN search, server-side embeddings, RAG answers

## Tools
Capabilities this server exposes over MCP:

- **opensolr_search** — Hybrid (keyword + semantic) or pure semantic search, with Solr filters
- **opensolr_search_by_image** — Search with a **photo** — Opensolr reads its visual labels, OCR text and any barcode/QR, then searches with those words (no image vector stored)
- **opensolr_ai_answer** — Grounded RAG answer: top hybrid hits become the LLM context — same pipeline as the hosted search UI
- **opensolr_add_documents** — Index plain text + metadata (embedded server-side)
- **opensolr_delete_documents** — Remove documents by id
- **opensolr_list_indexes** — Inspect the account's indexes
- **opensolr_create_index** — Provision a vector-enabled index (`us`, `de`, `fi`)
- **opensolr_vector_regions** — Live list of vector-enabled regions

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `uvx` (confidence: high):

```json
"mcpServers": {
  "opensolr-mcp": {
    "command": "uvx",
    "args": ["opensolr-mcp"],
    "env": {
      "OPENSOLR_EMAIL": "",
      "OPENSOLR_API_KEY": ""
    }
  }
}
```

**Requires environment variables:** `OPENSOLR_EMAIL`, `OPENSOLR_API_KEY` — the values above are empty placeholders; fill in real credentials before running (see the repository for what each one is for).

## Documentation

## What opensolr-mcp MCP server does

The opensolr-mcp MCP server connects AI agents to managed Apache Solr indexes hosted by Opensolr. It provides retrieval, document ingestion, deletion, index inspection, vector-enabled index creation, image-based search, and grounded answer generation through MCP tools.

Search can combine traditional BM25 keyword matching with semantic kNN retrieval, or use semantic or keyword-only modes. Solr filters and search operators support phrases, required terms, and exclusions. The keyword-only mode works with any Opensolr index and does not make an embedding call.

RAG responses use the highest-ranked hybrid search results as context for an answer. This follows the same retrieval pipeline used by Opensolr's hosted search interface.

## How it works

Document writes are sent to Opensolr's Data Ingestion API. Processing is asynchronous: documents are queued, then embeddings, sentiment, language, and other derived fields are generated on the service. New or updated documents generally become searchable within about a minute. Document identity is based on its `uri`; resubmitting the same URI updates the existing document.

The service can also extract text from supported files when metadata includes `rtf: true` and a PDF, DOCX, or XLSX URI. Image search does not create or store an image vector. Instead, Opensolr reads visual labels, OCR text, and barcode or QR data, converts the extracted information into search terms, and runs a normal search.

## Setup and configuration

Run the server over stdio with `uvx opensolr-mcp` or `pipx run opensolr-mcp`. Configure `OPENSOLR_EMAIL` and `OPENSOLR_API_KEY` in the MCP client's environment. The README documents this setup for Claude Desktop, Claude Code, Cursor, Windsurf, and other MCP clients.

Vector-enabled indexes can be provisioned in the `us`, `de`, or `fi` regions. The `opensolr_vector_regions` tool returns the current live region list. A free Opensolr account supplies a private API key for persistent use.

## Tools and capabilities

- `opensolr_search` performs hybrid, semantic, or keyword search with Solr filters and tuning options.
- `opensolr_search_by_image` searches from a photo using visual labels, OCR, or barcode and QR extraction.
- `opensolr_ai_answer` produces an answer grounded in retrieved documents.
- `opensolr_add_documents` submits text and metadata for server-side processing and embedding.
- `opensolr_delete_documents` removes documents by ID.
- `opensolr_list_indexes` and `opensolr_index_info` inspect available indexes.
- `opensolr_create_index` provisions a vector-enabled index.
- `opensolr_vector_regions` reports available vector regions.

## Limitations and notes

The opensolr-mcp MCP server depends on an Opensolr account and API key. Ingestion is not immediate because processing occurs asynchronously. Vector search requires a vector-enabled index, while lexical-only search can use non-vector indexes.

The README's public demo account is shared. Indexes and documents created there can be viewed, changed, or deleted by other users, and demo data is automatically removed after three days. Its per-index limits are 50 MB of disk and 200 MB of bandwidth, so it is intended for demonstrations, tutorials, and proofs of concept rather than application workloads.

Indexes also remain accessible through Apache Solr's native `/select` API. The server operates with Opensolr's Solr 9.x vector environments, currently listed for Chicago, Germany, and Finland.

_Full upstream README: https://allmcps.com/mcp/opensolr-mcp/readme_

