by stevereiner
Provides an extensible platform for AI‑augmented document ingestion, hybrid (vector + full‑text + graph) retrieval, automatic knowledge‑graph construction, and conversational query answering, with front‑ends in React, Angular, and Vue and a FastAPI‑based backend.
Flexible GraphRag combines document processing (Docling or LlamaParse), LlamaIndex‑based indexing, and configurable hybrid search across multiple vector, full‑text, and graph databases. It auto‑creates knowledge‑graph schemas from ingested content, supports 13 data sources (file upload, cloud storage, enterprise repositories, web sources), and offers AI chat and Q&A interfaces.
env‑sample.txt to .env in the backend folder and fill in database credentials and LLM API keys.python start.py (or uv run start.py).npm install then npm run dev (React, Angular, or Vue).Q: Which databases do I need to run a minimal setup?
A: Only a vector store (e.g., Qdrant) and a full‑text engine (Elasticsearch or OpenSearch). Graph database is optional; you can disable it with GRAPH_DB=none.
Q: Can I switch LLM providers without reinstalling?
A: Yes. Update LLM_PROVIDER and the related API‑key variables in .env, then restart the backend.
Q: Do I have to use Docker? A: No. All components can run locally; Docker is provided for quick modular deployment of databases and the full stack.
Q: How do I change the document parser?
A: Set DOCUMENT_PARSER=docling (default) or DOCUMENT_PARSER=llamaparse in .env. For LlamaParse also provide LLAMAPARSE_API_KEY.
Q: My vector dimension changed after switching embedding models – what now?
A: Delete existing vector collections as described in docs/VECTOR-DIMENSIONS.md before re‑indexing.
Q: Is there a way to visualize the knowledge graph? A: Yes. Each supported graph DB includes a built‑in dashboard (Neo4j Browser, FalkorDB Browser, ArcadeDB Studio, etc.) accessible via the Docker ports.
Q: How do I integrate with Claude Desktop?
A: Install the MCP server (pipx install flexible-graphrag-mcp or uvx flexible-graphrag-mcp) and start it; Claude Desktop will detect the MCP endpoint automatically.
New! - KG Spaces Integration of Flexible GraphRAG in Alfresco ACA Client
Flexible GraphRAG is an open source platform supporting document processing (Docling or LlamaParse), knowledge graph auto-building, schemas, LlamaIndex LLMs, RAG and GraphRAG setup, hybrid search (fulltext, vector, graph), AI query, and AI chat capabilities. The backend uses Python, LlamaIndex, and FastAPI. Has Angular, React, and Vue TypeScript frontends. A MCP Server is also available. Currently supports 13 data sources, 10 vector databases, OpenSearch / Elasticsearch search, 8 graph databases, and Alfresco. These servers and their dashboards can be configured in a provided docker compose.
| Sources Tab | Processing Tab | Search Tab | Chat Tab |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
| Sources Tab | Processing Tab | Search Tab | Chat Tab |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
| Sources Tab | Processing Tab | Search Tab | Chat Tab |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
| Sources Tab | Processing Tab | Search Tab | Chat Tab |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
/flexible-graphrag)/flexible-graphrag-mcp)/flexible-graphrag-ui)/docker)Flexible GraphRAG supports 13 different data sources for ingesting documents into your knowledge base:
Each data source includes:
All data sources support two document parser options:
Docling (Default):
DOCUMENT_PARSER=doclingLlamaParse:
parse_page_without_llm - 1 credit/pageparse_page_with_llm - 3 credits/page (default)parse_page_with_agent - 10-90 credits/pageDOCUMENT_PARSER=llamaparse + LLAMAPARSE_API_KEY.pdf
.docx, .xlsx, .pptx and legacy formats (.doc, .xls, .ppt)
.html, .htm, .xhtml
.csv, .tsv, .json, .xml
.md, .markdown, .asciidoc, .adoc, .rtf, .txt, .epub
.png, .jpg, .jpeg, .gif, .bmp, .webp, .tiff, .tif
.wav, .mp3, .mp4, .m4a
Flexible GraphRAG uses three types of databases for its hybrid search capabilities. Each can be configured independently via environment variables.
Configuration: Set via SEARCH_DB and SEARCH_DB_CONFIG environment variables
BM25 (Built-in): Local file-based BM25 full-text search with TF-IDF ranking
SEARCH_DB=bm25
SEARCH_DB_CONFIG={"persist_dir": "./bm25_index"}
Elasticsearch: Enterprise search engine with advanced analyzers, faceted search, and real-time analytics
SEARCH_DB=elasticsearch
SEARCH_DB_CONFIG={"hosts": ["http://localhost:9200"], "index_name": "hybrid_search"}
OpenSearch: AWS-led open-source fork with native hybrid scoring (vector + BM25) and k-NN algorithms
SEARCH_DB=opensearch
SEARCH_DB_CONFIG={"hosts": ["http://localhost:9201"], "index_name": "hybrid_search"}
None: Disable full-text search (vector search only)
SEARCH_DB=none
Configuration: Set via VECTOR_DB and VECTOR_DB_CONFIG environment variables
CRITICAL: When switching between different embedding models (e.g., OpenAI ↔ Ollama), you MUST delete existing vector indexes due to dimension incompatibility:
See VECTOR-DIMENSIONS.md for detailed cleanup instructions for each database.
Neo4j: Can be used as vector database with separate vector configuration
VECTOR_DB=neo4j
VECTOR_DB_CONFIG={"uri": "bolt://localhost:7687", "username": "neo4j", "password": "your_password", "index_name": "hybrid_search_vector"}
Qdrant: Dedicated vector database with advanced filtering
VECTOR_DB=qdrant
VECTOR_DB_CONFIG={"host": "localhost", "port": 6333, "collection_name": "hybrid_search"}
Elasticsearch: Can be used as vector database with separate vector configuration
VECTOR_DB=elasticsearch
VECTOR_DB_CONFIG={"hosts": ["http://localhost:9200"], "index_name": "hybrid_search_vectors"}
OpenSearch: Can be used as vector database with separate vector configuration
VECTOR_DB=opensearch
VECTOR_DB_CONFIG={"hosts": ["http://localhost:9201"], "index_name": "hybrid_search_vectors"}
Chroma: Open-source vector database with dual deployment modes
VECTOR_DB=chroma
VECTOR_DB_CONFIG={"persist_directory": "./chroma_db", "collection_name": "hybrid_search"}
VECTOR_DB=chroma
VECTOR_DB_CONFIG={"host": "localhost", "port": 8001, "collection_name": "hybrid_search"}
Milvus: Cloud-native, scalable vector database for similarity search
VECTOR_DB=milvus
VECTOR_DB_CONFIG={"uri": "http://localhost:19530", "collection_name": "hybrid_search"}
Weaviate: Vector search engine with semantic capabilities and data enrichment
VECTOR_DB=weaviate
VECTOR_DB_CONFIG={"url": "http://localhost:8081", "index_name": "HybridSearch"}
Pinecone: Managed vector database service optimized for real-time applications
VECTOR_DB=pinecone
VECTOR_DB_CONFIG={"api_key": "your_api_key", "region": "us-east-1", "cloud": "aws", "index_name": "hybrid-search"}
PostgreSQL: Traditional database with pgvector extension for vector similarity search
VECTOR_DB=postgres
VECTOR_DB_CONFIG={"host": "localhost", "port": 5433, "database": "postgres", "username": "postgres", "password": "your_password"}
LanceDB: Modern, lightweight vector database designed for high-performance ML applications
VECTOR_DB=lancedb
VECTOR_DB_CONFIG={"uri": "./lancedb", "table_name": "hybrid_search"}
For faster document ingest processing (no graph extraction), and hybrid search with only full text + vector, configure:
VECTOR_DB=qdrant # Any vector store
SEARCH_DB=elasticsearch # Any search engine
GRAPH_DB=none
ENABLE_KNOWLEDGE_GRAPH=false
Configuration: Set via GRAPH_DB and GRAPH_DB_CONFIG environment variables
Neo4j Property Graph: Primary knowledge graph storage with Cypher querying
GRAPH_DB=neo4j
GRAPH_DB_CONFIG={"uri": "bolt://localhost:7687", "username": "neo4j", "password": "your_password"}
Kuzu: Embedded graph database built for query speed and scalability, optimized for handling complex analytical workloads on very large graph databases. Supports the property graph data model and the Cypher query language. (Note: Kuzu proper is no longer being developed. Will support LadybugDB fork when LlamaIndex support is available)
GRAPH_DB=kuzu
GRAPH_DB_CONFIG={"db_path": "./kuzu_db", "use_structured_schema": true, "use_vector_index": true}
FalkorDB: "A super fast Graph Database uses GraphBLAS under the hood for its sparse adjacency matrix graph representation. Our goal is to provide the best Knowledge Graph for LLM (GraphRAG)."
GRAPH_DB=falkordb
GRAPH_DB_CONFIG={"url": "falkor://localhost:6379", "database": "falkor"}
ArcadeDB: Multi-model database supporting graph, document, key-value, and search capabilities with SQL and Cypher query support
GRAPH_DB=arcadedb
GRAPH_DB_CONFIG={"host": "localhost", "port": 2480, "username": "root", "password": "password", "database": "flexible_graphrag", "query_language": "sql"}
MemGraph: Real-time graph database with native support for streaming data and advanced graph algorithms
GRAPH_DB=memgraph
GRAPH_DB_CONFIG={"url": "bolt://localhost:7687", "username": "", "password": ""}
NebulaGraph: Distributed graph database designed for large-scale data with horizontal scalability
GRAPH_DB=nebula
GRAPH_DB_CONFIG={"space": "flexible_graphrag", "host": "localhost", "port": 9669, "username": "root", "password": "nebula"}
Amazon Neptune: Fully managed graph database service supporting both property graph and RDF models
GRAPH_DB=neptune
GRAPH_DB_CONFIG={"host": "your-cluster.region.neptune.amazonaws.com", "port": 8182}
Amazon Neptune Analytics: Serverless graph analytics engine for large-scale graph analysis with openCypher support
GRAPH_DB=neptune_analytics
GRAPH_DB_CONFIG={"graph_identifier": "g-xxxxx", "region": "us-east-1"}
None: Disable knowledge graph extraction for RAG-only mode
GRAPH_DB=none
ENABLE_KNOWLEDGE_GRAPH=false
Configuration: Set via LLM_PROVIDER and provider-specific environment variables
OpenAI: GPT models with configurable endpoints
USE_OPENAI=true
LLM_PROVIDER=openai
OPENAI_API_KEY=your_api_key_here
OPENAI_MODEL=gpt-4o-mini
OPENAI_EMBEDDING_MODEL=text-embedding-3-small
Ollama: Local LLM deployment for privacy and control
USE_OPENAI=false
LLM_PROVIDER=ollama
OLLAMA_BASE_URL=http://localhost:11434
OLLAMA_MODEL=llama3.2:latest
OLLAMA_EMBEDDING_MODEL=all-minilm
Azure OpenAI: Enterprise OpenAI integration
LLM_PROVIDER=azure
AZURE_OPENAI_ENDPOINT=https://your-resource.openai.azure.com
AZURE_OPENAI_API_KEY=your_api_key_here
AZURE_OPENAI_DEPLOYMENT=your_deployment_name
AZURE_OPENAI_EMBEDDING_DEPLOYMENT=your_embedding_deployment
AZURE_OPENAI_API_VERSION=2024-02-15-preview
Anthropic Claude: Claude models for complex reasoning
LLM_PROVIDER=anthropic
ANTHROPIC_API_KEY=your_api_key_here
ANTHROPIC_MODEL=claude-3-sonnet-20240229
Google Gemini: Google's latest language models
LLM_PROVIDER=gemini
GOOGLE_API_KEY=your_api_key_here
GEMINI_MODEL=gemini-pro
General Performance with LlamaIndex: OpenAI vs Ollama
Based on testing with OpenAI GPT-4o-mini and Ollama models (llama3.1:8b, llama3.2:latest, gpt-oss:20b), OpenAI consistently outperforms Ollama models in LlamaIndex operations.
When using Ollama as your LLM provider, you must configure system-wide environment variables before starting the Ollama service. These settings optimize performance and enable parallel processing.
Key requirements:
.env file)OLLAMA_NUM_PARALLEL=4 is critical for parallel document processingSee docs/OLLAMA-CONFIGURATION.md for complete setup instructions, including:
pyproject.toml - 3.14 has LlamaIndex ChromaDB compatibility issues)Note: The docker/docker-compose.yaml file can provide all these databases via Docker containers.
Docker deployment offers multiple scenarios. Before deploying any scenario, set up your environment files:
Environment File Setup (Required for All Scenarios):
Backend Configuration (.env):
# Navigate to backend directory
cd flexible-graphrag
# Linux/macOS
cp env-sample.txt .env
# Windows Command Prompt
copy env-sample.txt .env
# Edit .env with your database credentials, API keys, and settings
# Then return to project root
cd ..
Docker Configuration (docker.env):
# Navigate to docker directory
cd docker
# Linux/macOS
cp docker-env-sample.txt docker.env
# Windows Command Prompt
copy docker-env-sample.txt docker.env
# Edit docker.env for Docker-specific overrides (network addresses, service names)
# Stay in docker directory for next steps
Configuration Setup:
# If not already in docker directory from previous step:
# cd docker
# Edit docker-compose.yaml to uncomment/comment services as needed
# Scenario A setup in docker-compose.yaml:
# Keep these services uncommented (default setup):
- includes/neo4j.yaml
- includes/qdrant.yaml
- includes/elasticsearch-dev.yaml
- includes/kibana-simple.yaml
# Keep these services commented out:
# - includes/app-stack.yaml # Must be commented out for Scenario A
# - includes/proxy.yaml # Must be commented out for Scenario A
# - All other services remain commented unless you want a different vector database,
# graph database, OpenSearch for search, or Alfresco included
Deploy Services:
# From the docker directory
docker-compose -f docker-compose.yaml -p flexible-graphrag up -d
Configuration Setup:
# If not already in docker directory from previous step:
# cd docker
# Edit docker-compose.yaml to uncomment/comment services as needed
# Scenario B setup in docker-compose.yaml:
# Keep these services uncommented:
- includes/neo4j.yaml
- includes/qdrant.yaml
- includes/elasticsearch-dev.yaml
- includes/kibana-simple.yaml
- includes/app-stack.yaml # Backend and UI in Docker
- includes/proxy.yaml # NGINX reverse proxy
# Keep other services commented out unless you want a different vector database,
# graph database, OpenSearch for search, or Alfresco included
Deploy Services:
# From the docker directory
docker-compose -f docker-compose.yaml -p flexible-graphrag up -d
Scenario B Service URLs:
Scenario C: Fully Standalone - Not using docker-compose at all
flexible-graphrag/.envScenario D: Backend/UIs in Docker, Databases External
docker/docker.env: Backend in Docker reads this file
neo4j:7687, qdrant:6333)host.docker.internal:PORTScenario E: Mixed Docker/Standalone
flexible-graphrag/.env: Use host.docker.internal:PORT for locally-running Docker databases, use actual hostnames/IPs for remote Docker or non-Docker databasesManaging Docker services:
# Navigate to docker directory (if not already there)
cd docker
# Create and start services (recreates if configuration changed)
docker-compose -f docker-compose.yaml -p flexible-graphrag up -d
# Stop services (keeps containers)
docker-compose -f docker-compose.yaml -p flexible-graphrag stop
# Start stopped services
docker-compose -f docker-compose.yaml -p flexible-graphrag start
# Stop and remove services
docker-compose -f docker-compose.yaml -p flexible-graphrag down
# View logs
docker-compose -f docker-compose.yaml -p flexible-graphrag logs -f
# Restart after configuration changes
docker-compose -f docker-compose.yaml -p flexible-graphrag down
# Edit docker-compose.yaml, docker.env, or includes/app-stack.yaml as needed
docker-compose -f docker-compose.yaml -p flexible-graphrag up -d
Configuration:
docker/docker-compose.yamlflexible-graphrag/.env with docker/docker.env for Docker-specific overrides (like using service names instead of localhost). No configuration needed in app-stack.yamlSee docker/README.md for detailed Docker configuration.
Note: Skip this entire section if using Scenario B (Full Stack in Docker).
Create environment file (cross-platform):
# Linux/macOS
cp flexible-graphrag/env-sample.txt flexible-graphrag/.env
# Windows Command Prompt
copy flexible-graphrag\env-sample.txt flexible-graphrag\.env
Edit .env with your database credentials and API keys.
Navigate to the backend directory:
cd flexible-graphrag
Install the package in editable mode using pyproject.toml (recommended):
# Option A: Manage your own virtual environment (default - managed = false in pyproject.toml)
uv venv venv-3.12 --python 3.12 # Python 3.12 (example with custom name)
uv venv venv-3.13 --python 3.13 # Python 3.13 (example with custom name)
# Activate it (replace venv-3.12 or venv-3.13 with your chosen name):
venv-3.12\Scripts\Activate # Windows (Command Prompt/PowerShell)
source venv-3.12/bin/activate # Linux/macOS
# Then install:
uv pip install -e .
# Option B: Let uv manage the virtual environment automatically
# (would need to change managed = false to managed = true in pyproject.toml [tool.uv] section)
uv pip install -e .
Alternative (not recommended): Legacy requirements.txt approach:
# Create venv manually
uv venv venv-3.13 --python 3.13
venv-3.13\Scripts\Activate # Windows
source venv-3.13/bin/activate # Linux/macOS
# Navigate to flexible-graphrar directory
cd flexible-graphrag
# Install from requirements.txt
uv pip install -r requirements.txt
Create a .env file by copying the sample and customizing:
# Copy sample environment file (use appropriate command for your platform)
cp env-sample.txt .env # Linux/macOS
copy env-sample.txt .env # Windows
Edit .env with your specific configuration. See docs/ENVIRONMENT-CONFIGURATION.md for detailed setup guide.
Note: The system requires Python 3.12 or 3.13 as specified in pyproject.toml (requires-python = ">=3.12,<3.14"). Python 3.12 and 3.13 are fully tested and working. Python 3.14 has LlamaIndex ChromaDB compatibility issues (chromadb and llama-index-vector-stores-chroma packages). Virtual environment management is controlled by managed = false in pyproject.toml [tool.uv] section (you control venv creation and naming).
python start.py
# or: uv run start.py
The backend will be available at http://localhost:8000.
Standalone backend and frontend URLs:
Choose one of the following frontend options to work with:
Navigate to the React frontend directory:
cd flexible-graphrag-ui/frontend-react
Install Node.js dependencies (first time only):
npm install
Start the development server (uses Vite):
npm run dev
The React frontend will be available at http://localhost:5174.
Navigate to the Angular frontend directory:
cd flexible-graphrag-ui/frontend-angular
Install Node.js dependencies (first time only):
npm install
Start the development server (uses Angular CLI):
npm start
The Angular frontend will be available at http://localhost:4200.
Navigate to the Vue frontend directory:
cd flexible-graphrag-ui/frontend-vue
Install Node.js dependencies (first time only):
npm install
Start the development server (uses Vite):
npm run dev
The Vue frontend will be available at http://localhost:3000.
The FastAPI backend provides the following REST API endpoints:
Base URL: http://localhost:8000/api/
| Endpoint | Method | Purpose |
|---|---|---|
/api/health |
GET | Health check - verify backend is running |
/api/ingest |
POST | Ingest documents from configured data sources |
/api/upload |
POST | Upload files for processing |
/api/search |
POST | Hybrid search for relevant document excerpts |
/api/query |
POST | AI-powered Q&A from document corpus |
/api/status |
GET | Get system status and configuration |
/api/processing-status/{id} |
GET | Check processing status for async operations |
/api/processing-events/{id} |
GET | Server-sent events stream for real-time progress |
/api/cancel-processing/{id} |
POST | Cancel ongoing processing operation |
/api/ingest-text |
POST | Ingest custom text content |
/api/test-sample |
POST | Test system with sample content |
/api/cleanup-uploads |
POST | Clean up uploaded files |
/api/info |
GET | Get system information and versions |
/api/graph |
GET | Get graph data for visualization (nodes and relationships) |
/api/python-info |
GET | Get Python environment diagnostics |
/ |
GET | Root endpoint (basic API info) |
Interactive API Documentation:
See docs/ARCHITECTURE.md for detailed API workflow and examples.
Note: This debugging setup is for standalone backend and frontends (Scenario A or C), not for Full Stack in Docker (Scenario B).
The project includes a sample-launch.json file with VS Code debugging configurations for all three frontend options and the backend. Copy this file to .vscode/launch.json to use these configurations.
Key debugging configurations include:
Each configuration sets up the appropriate ports, source maps, and debugging tools for a seamless development experience. You may need to adjust the ports and paths in the launch.json file to match your specific setup.
The system provides a tabbed interface for document processing and querying. Follow these steps in order:
Configure your data source and select files for processing. The system supports 13 data sources:
Detailed Configuration:
http://localhost:8080/alfresco)/Sites/example/documentLibrary)http://localhost:8080/alfresco/api/-default-/public/cmis/versions/1.1/atom)/Sites/example/documentLibrary)All Data Sources (13 available):
See the Data Sources section for complete details on all 13 sources.
Process your selected documents and monitor progress:
Perform searches on your processed documents:
Interactive conversational interface for document Q&A:
Between tests you can clean up data:
The MCP server provides 9 specialized tools for document intelligence workflows:
| Tool | Purpose | Usage |
|---|---|---|
get_system_status() |
System health and configuration | Verify setup and database connections |
ingest_documents(data_source, paths) |
Bulk document processing | Process files/folders from filesystem, CMIS, Alfresco |
ingest_text(content, source_name) |
Custom text analysis | Analyze specific text content |
search_documents(query, top_k) |
Hybrid document retrieval | Find relevant document excerpts |
query_documents(query, top_k) |
AI-powered Q&A | Generate answers from document corpus |
test_with_sample() |
System verification | Quick test with sample content |
check_processing_status(id) |
Async operation monitoring | Track long-running ingestion tasks |
get_python_info() |
Environment diagnostics | Debug Python environment issues |
health_check() |
Backend connectivity | Verify API server connection |
/flexible-graphrag: Python FastAPI backend with LlamaIndex
main.py: FastAPI REST API server (clean, no MCP)backend.py: Shared business logic core used by both API and MCPconfig.py: Configurable settings for data sources, databases, and LLM providershybrid_system.py: Main hybrid search system using LlamaIndexdocument_processor.py: Document processing with Docling integrationfactories.py: Factory classes for LLM and database creationsources/: Data source connectors (filesystem, CMIS, Alfresco, cloud storage, web sources)ingest/: Ingestion management and orchestrationpyproject.toml: Modern Python package definition with 409 dependencies (PEP 517/518)uv.toml: UV package manager configuration for virtual environment managementrequirements.txt: Legacy pip requirements file (backward compatibility)start.py: Startup script for uvicorninstall.py: Installation helper script/flexible-graphrag-mcp: Standalone MCP server
main.py: HTTP-based MCP server (calls REST API)pyproject.toml: MCP package definition with minimal dependenciesREADME.md: MCP server setup and installation instructions/flexible-graphrag-ui: Frontend applications
/frontend-react: React + TypeScript frontend (built with Vite)
/src: Source codevite.config.ts: Vite configurationtsconfig.json: TypeScript configurationpackage.json: Node.js dependencies and scripts/frontend-angular: Angular + TypeScript frontend (built with Angular CLI)
/src: Source codeangular.json: Angular configurationtsconfig.json: TypeScript configurationpackage.json: Node.js dependencies and scripts/frontend-vue: Vue + TypeScript frontend (built with Vite)
/src: Source codevite.config.ts: Vite configurationtsconfig.json: TypeScript configurationpackage.json: Node.js dependencies and scripts/docker: Docker infrastructure
docker-compose.yaml: Main compose file with modular includes/includes: Modular database and service configurations/nginx: Reverse proxy configurationREADME.md: Docker deployment documentation/docs: Documentation
ARCHITECTURE.md: Complete system architecture and component relationshipsDEPLOYMENT-CONFIGURATIONS.md: Standalone, hybrid, and full Docker deployment guidesENVIRONMENT-CONFIGURATION.md: Environment setup guide with database switchingVECTOR-DIMENSIONS.md: Vector database cleanup instructionsSCHEMA-EXAMPLES.md: Knowledge graph schema examplesPERFORMANCE.md: Performance benchmarks and optimization guidesDEFAULT-USERNAMES-PASSWORDS.md: Database credentials and dashboard accessPORT-MAPPINGS.md: Complete port reference for all services/scripts: Utility scripts
create_opensearch_pipeline.py: OpenSearch hybrid search pipeline setupsetup-opensearch-pipeline.sh/.bat: Cross-platform pipeline creation/tests: Test suite
test_bm25_*.py: BM25 configuration and integration testsconftest.py: Test configuration and fixturesrun_tests.py: Test runnerThis project is licensed under the terms of the Apache License 2.0. See the LICENSE file for details.
Please log in to share your review and rating for this MCP.
Explore related MCPs that share similar capabilities and solve comparable challenges
by exa-labs
Provides real-time web search capabilities to AI assistants via a Model Context Protocol server, enabling safe and controlled access to the Exa AI Search API.
by perplexityai
Enables Claude and other MCP‑compatible applications to perform real‑time web searches through the Perplexity (Sonar) API without leaving the MCP ecosystem.
by MicrosoftDocs
Provides semantic search and fetch capabilities for Microsoft official documentation, returning content in markdown format via a lightweight streamable HTTP transport for AI agents and development tools.
by elastic
Enables natural‑language interaction with Elasticsearch indices via the Model Context Protocol, exposing tools for listing indices, fetching mappings, performing searches, running ES|QL queries, and retrieving shard information.
by graphlit
Enables integration between MCP clients and the Graphlit platform, providing ingestion, extraction, retrieval, and RAG capabilities across a wide range of data sources and connectors.
by ihor-sokoliuk
Provides web search capabilities via the SearXNG API, exposing them through an MCP server for seamless integration with AI agents and tools.
by mamertofabian
Fast cross‑platform file searching leveraging the Everything SDK on Windows, Spotlight on macOS, and locate/plocate on Linux.
by spences10
Provides unified access to multiple search engines, AI response tools, and content processing services through a single Model Context Protocol server.
by cr7258
Provides Elasticsearch and OpenSearch interaction via Model Context Protocol, enabling document search, index management, cluster monitoring, and alias operations.