Config is the same across clients — only the file and path differ.
{
"mcpServers": {
"hybrid-search": {
"url": "http://localhost:7070/sse"
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
MCP Server for hybrid document search (Qdrant vector search + Tantivy BM25) with SSE transport.
Run this in your terminal to verify the server starts. Then let us know if it worked — your result helps other developers.
uvx 'markitdown' 2>&1 | head -1 && echo "✓ Server started successfully"
After testing, let us know if it worked:
Five weighted categories — click any category to see the underlying evidence.
No known CVEs.
Checked markitdown against OSV.dev.
Click any tool to inspect its schema.
Be the first to review
Have you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Others in search / ai-ml
Persistent memory using a knowledge graph
Dynamic problem-solving through sequential thought chains
Web and local search using Brave Search API
Production ready MCP server with real-time search, extract, map & crawl.
MCP Security Weekly
Get CVE alerts and security updates for Mcp Server Hybrid Search and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
MCP Server for hybrid document search (Qdrant vector search + Tantivy BM25) with SSE transport.
mcp-server-hybrid-search): SSE-based MCP server on port 7070 providing search and get toolsragctl): Document indexer that ingests md/txt/pdf/xlsx/docx files into Qdrant and Tantivy--features local-embed)markitdown (for PDF/Excel/Word support): pip install markitdowndocker compose up -d
cp .env.example .env
# Edit .env and set your OPENAI_API_KEY
# Default build (OpenAI embeddings, whitespace-based BM25 tokenizer)
cargo build --release
# With Japanese tokenizer for BM25 full-text search
cargo build --release --features ja
# With local embedding (no OpenAI API key needed)
cargo build --release --features local-embed
# Combine features as needed
cargo build --release --features "ja,local-embed"
Create the default source directory and data directories:
./target/release/ragctl init
This creates:
~/.local/share/mcp-hybrid-search/ — default document source directory~/.mcp-hybrid-search/tantivy/ — Tantivy index directoryCopy or symlink your documents into the default source directory:
cp ~/my-docs/*.md ~/.local/share/mcp-hybrid-search/
cp ~/reports/*.pdf ~/.local/share/mcp-hybrid-search/
cp ~/data/*.xlsx ~/.local/share/mcp-hybrid-search/
# Use default source directory (~/.local/share/mcp-hybrid-search)
./target/release/ragctl ingest
# Or specify source directories explicitly
./target/release/ragctl ingest \
--source /path/to/your/docs \
--source /path/to/more/docs
./target/release/mcp-server-hybrid-search
The server will listen on http://localhost:7070.
Note: When using
embedding_provider = "openai"(default), the server requiresOPENAI_API_KEYat runtime because each search query is converted to an embedding vector via the OpenAI API. Make sure the.envfile is present in the working directory, or set the environment variable before starting the server.
Add to your Claude Code MCP configuration:
{
"mcpServers": {
"hybrid-search": {
"url": "http://localhost:7070/sse"
}
}
}
ragctl init
Creates the default source directory (~/.local/share/mcp-hybrid-search/) and the Tantivy index directory. Run this once before first use.
# Default source directory
ragctl ingest
# Custom source directories
ragctl ingest \
--source /path/to/docs \
--source /path/to/converted \
--qdrant http://localhost:6334 \
--index-dir ~/.mcp-hybrid-search/tantivy \
--chunk-size 1000 \
--chunk-overlap 200
Supported file types:
.md, .txt.pdf, .xlsx, .xls, .docx, .pptx, .csv, .htmlragctl status
Export all indexed chunks (with embeddings) to a JSON file for sharing with other engineers:
ragctl export --output ./exported-data.json
The exported file contains all chunk payloads and their embedding vectors. Other engineers can import this without needing an OpenAI API key.
Import