hybrid-rag-project
Hybrid-RAG-Projekt
Ein generalisiertes Retrieval-Augmented-Generation-System (RAG) mit Hybrid-Suchfunktionen, das mit beliebigen Dokumenten funktioniert, die Sie bereitstellen. Kombiniert semantische (dichte Vektor-)Suche und Stichwortsuche (sparse BM25) für optimale Dokumentabfrage, mit einer MCP-Server-API für einfache Integration.
🎯 Hauptfunktionen: Multi-Format-Unterstützung • Lokales LLM • Claude-Desktop-Integration • Strukturierte Datenabfragen • Dokumenttyp-bewusstes Retrieval
🚀 Schnellstart (kein MCP erforderlich!)
Sie benötigen weder Claude Desktop noch MCP, um dieses Projekt zu nutzen! Führen Sie einfach aus:
# 1. Make sure Ollama is running
ollama serve
# 2. Activate virtual environment
source .venv/bin/activate
# 3. Start conversational demo (recommended)
python scripts/demos/conversational.py
# Or use the shortcut
./scripts/bin/ask.shDas war's! Stellen Sie Fragen zu den 43.835 Dokument-Chunks im Beispieldatensatz.
📖 Siehe Schnellstart-Anleitung für vollständige Nutzungsanweisungen. 📚 Durchsuchen Sie die gesamte Dokumentation im Ordner docs/ oder beginnen Sie mit docs/README.md.
Related MCP server: Hybrid RAG Project MCP Server
Überblick
Dieses Projekt implementiert ein Hybrid-RAG-System, das Folgendes kombiniert:
Semantische Suche: Dichte Vektor-Embeddings zum Verständnis von Bedeutung und Kontext
Stichwortsuche: BM25-Sparse-Retrieval für exakte Stichwortübereinstimmungen
Hybrid-Fusion: Reciprocal Rank Fusion (RRF) zur Kombination der Ergebnisse beider Methoden
MCP-Server: Sowohl REST-API als auch Model Context Protocol-Server für Claude-Integration
Multi-Format-Unterstützung: Automatisches Laden von Dokumenten aus verschiedenen Dateiformaten
Der hybride Ansatz gewährleistet eine bessere Retrieval-Genauigkeit, indem er die Stärken beider Suchmethoden nutzt.
Funktionen
Vektorbasierte semantische Suche mit Chroma- und Ollama-Embeddings
BM25-Stichwortsuche für exakte Begriffübereinstimmungen
Ensemble-Retriever mit Reciprocal Rank Fusion (RRF)
Integration mit lokalem Ollama-LLM zur Antwortgenerierung
Unterstützung mehrerer Dokumentformate (TXT, PDF, MD, DOCX, CSV)
Automatisches Laden von Dokumenten aus dem Datenverzeichnis
RESTful-API-Server mit
/ingest- und/query-EndpunktenModel Context Protocol (MCP)-Server für Claude Desktop/API-Integration
Konfigurationsgesteuerte Architektur (keine hartcodierten Werte)
Persistenter Vektorspeicher für schnellere nachfolgende Abfragen
Architektur
User Documents → data/ directory
↓
Document Loader
↓
Query → Hybrid Retriever → [Vector Retriever + BM25 Retriever]
→ RRF Fusion
→ Retrieved Context
→ LLM (Ollama)
→ Final AnswerVoraussetzungen
Python 3.9+
Ollama installiert und lokal ausgeführt
Erforderliche Ollama-Modelle:
llama3.1:latest(oder ein anderes LLM-Modell)nomic-embed-text(oder ein anderes Embedding-Modell)
Ollama installieren
Besuchen Sie ollama.ai, um Ollama für Ihre Plattform herunterzuladen und zu installieren.
Nach der Installation ziehen Sie die erforderlichen Modelle:
ollama pull llama3.1:latest
ollama pull nomic-embed-textÜberprüfen Sie, ob Ollama läuft:
curl http://localhost:11434/api/tagsInstallation
Klonen Sie das Repository:
git clone <your-repo-url>
cd hybrid-rag-projectErstellen Sie eine virtuelle Umgebung:
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activateInstallieren Sie die Abhängigkeiten:
pip install -r requirements.txtProjektstruktur
hybrid-rag-project/
├── src/
│ └── hybrid_rag/ # Core application package
│ ├── __init__.py # Package initialization
│ ├── document_loader.py # Document loading utility
│ ├── structured_query.py# CSV query engine
│ └── utils.py # Logging and utility functions
├── scripts/
│ ├── run_demo.py # Main demonstration script
│ ├── mcp_server.py # REST API server
│ └── mcp_server_claude.py # MCP server for Claude integration
├── config/
│ ├── config.yaml # Configuration file
│ └── claude_desktop_config.json # Sample Claude Desktop MCP config
├── docs/
│ ├── INSTALLATION.md # Detailed installation guide
│ ├── STRUCTURED_QUERIES.md # CSV query documentation
│ ├── ASYNC_INGESTION.md # Async ingestion guide
│ └── SHUTDOWN.md # Shutdown handling guide
├── data/ # Sample data files (13 files included)
│ ├── *.csv # 7 CSV files (structured data)
│ ├── *.md # 5 Markdown files (unstructured)
│ └── *.txt # 1 Text file (technical specs)
├── chroma_db/ # Vector store (auto-created)
├── tests/ # Unit tests
│ └── extract_fields_tests.py
├── setup.py # Package setup file
├── requirements.txt # Python dependencies
├── TESTING_RESULTS.md # Comprehensive test results
├── CONTRIBUTING.md # Contribution guidelines
├── CHANGELOG.md # Version history
├── LICENSE # MIT License
└── README.md # This fileBeispieldaten (UCSC-Erweiterungsprojekt)
Dieses Repository enthält 13 Beispieldatendateien zu Demonstrations- und Testzwecken. Diese Dateien repräsentieren ein realistisches Geschäftsszenario für TechVision Electronics und sollen die Fähigkeiten des Systems über mehrere Dokumenttypen hinweg demonstrieren.
📊 Enthaltene Beispieldateien
Strukturierte Daten (CSV) - 7 Dateien:
product_catalog.csv- Produktinventar mit Spezifikationen (5.000 Zeilen)inventory_levels.csv- Lagerbestände und Lagerdaten (10.000 Zeilen)sales_orders_november.csv- Monatliche Verkaufstransaktionen (8.000 Zeilen)warranty_claims_q4.csv- Kundengarantieansprüche (3.000 Zeilen)production_schedule_dec2024.csv- Fertigungsplan (4.000 Zeilen)supplier_pricing.csv- Lieferantenpreisinformationen (6.000 Zeilen)shipping_manifests.csv- Versand- und Logistikdaten (5.000 Zeilen)
Unstrukturierte Daten (Markdown) - 5 Dateien:
customer_feedback_q4_2024.md- Kundenbewertungen und Feedback (600 Chunks)market_analysis_2024.md- Marktforschung und Trends (400 Chunks)quality_control_report_nov2024.md- Qualitätskontrollbefunde und Probleme (501 Chunks)return_policy_procedures.md- Richtliniendokumentation (300 Chunks)support_tickets_summary.md- Technische Support-Zusammenfassung (700 Chunks)
Textdaten - 1 Datei:
product_specifications.txt- Technische Spezifikationen (334 Chunks)
Gesamtdatensatz:
41.000 CSV-Zeilen (in 41.000 Dokumente aufgeteilt, 10 Zeilen pro Chunk)
2.835 Text-/Markdown-Chunks (aufgeteilt bei 1000 Zeichen mit 200 Zeichen Überlappung)
43.835 insgesamt durchsuchbare Dokument-Chunks
🎯 Zweck
Diese Beispieldateien sind enthalten, um:
Die Hybrid-Suchfähigkeiten des Systems zu demonstrieren
Sowohl semantisches (Vektor-) als auch lexikalisches (Stichwort-) Retrieval zu testen
Die dokumenttyp-bewusste Retrieval-Architektur zu validieren
Sofort funktionierende Beispiele ohne zusätzliche Einrichtung bereitzustellen
Die Synthese von Abfragen über mehrere Dokumente hinweg zu präsentieren
📖 Testergebnisse
Umfassende Testergebnisse sind in TESTING_RESULTS.md dokumentiert und zeigen:
✅ 100% Retrieval-Erfolgsquote über alle Dokumenttypen hinweg
✅ 17 Testabfragen mit detaillierten Ergebnissen
✅ Leistungsmetriken und vergleichende Analyse
✅ Semantischer vs. lexikalischer vs. hybrider Suchvergleich
💡 Verwendung der Beispieldaten
Schnellstart:
# 1. Run setup
./setup.sh
# 2. The sample data is already in data/ - ready to use!
# 3. Run the demo
python scripts/run_demo.py
# 4. Or use Claude Desktop
# Configure MCP server and query: "What are the prices in the product catalog?"Für den Produktionseinsatz: Um stattdessen Ihre eigenen Daten zu verwenden:
Entfernen oder sichern Sie die Beispieldateien aus
data/Fügen Sie Ihre eigenen Dokumente hinzu (TXT, PDF, MD, DOCX, CSV)
Führen Sie die Aufnahme erneut aus
Kommentieren Sie optional die Datenausschlüsse in
.gitignoreaus
## Configuration
All settings are managed in `config/config.yaml`:
```yaml
# Ollama Configuration
ollama:
base_url: "http://localhost:11434"
embedding_model: "nomic-embed-text"
llm_model: "llama3.1:latest"
# Data Configuration
data:
directory: "./data"
supported_formats:
- "txt"
- "pdf"
- "md"
- "docx"
- "csv"
# Retrieval Configuration
retrieval:
vector_search_k: 2
keyword_search_k: 2
# MCP Server Configuration
mcp_server:
host: "0.0.0.0"
port: 8000
# Vector Store Configuration
vector_store:
persist_directory: "./chroma_db"Ändern Sie diese Datei, um:
Andere Ollama-Modelle zu verwenden
Den Speicherort des Datenverzeichnisses zu ändern
Retrieval-Parameter (k-Werte) anzupassen
Server-Host/Port zu konfigurieren
Den Speicherort des Vektorspeichers zu ändern
Verwendung
Option 1: Befehlszeilenskript
Fügen Sie Ihre Dokumente zum Verzeichnis
data/hinzu:
cp /path/to/your/documents/*.pdf data/
cp /path/to/your/documents/*.txt data/Führen Sie das Skript aus:
python scripts/run_demo.pyDas Skript wird:
Alle unterstützten Dokumente aus dem Verzeichnis
data/ladenOllama-Embeddings und LLM initialisieren
Vektor- und BM25-Retriever erstellen
Die Hybrid-RAG-Kette aufbauen
Beispielabfragen ausführen und Ergebnisse anzeigen
Option 2: REST-API-Server
Starten Sie den REST-API-Server:
python scripts/mcp_server.pyDer Server startet auf http://localhost:8000
Zum Stoppen des Servers: Drücken Sie Ctrl+C für einen sauberen Shutdown
Dokumente aufnehmen (zuerst ausführen):
curl -X POST http://localhost:8000/ingestAntwort:
{
"status": "success",
"message": "Documents ingested successfully",
"documents_loaded": 15
}Dokumente abfragen:
curl -X POST http://localhost:8000/query \
-H "Content-Type: application/json" \
-d '{"query": "What is the main topic of these documents?"}'Antwort:
{
"answer": "Based on the documents...",
"context": [
{
"content": "Document text...",
"source": "example.pdf",
"type": ".pdf"
}
]
}Serverstatus überprüfen:
curl http://localhost:8000/statusAPI-Endpunkte
Endpunkt | Methode | Beschreibung |
| GET | Health-Check |
| POST | Dokumente aus dem Verzeichnis data/ laden |
| POST | Dokumente mit Hybrid-Suche abfragen |
| GET | Systemstatus und Konfiguration abrufen |
Option 3: Claude Desktop/API über MCP
Der MCP-Server (Model Context Protocol) ermöglicht es Claude, direkt Ihr lokales RAG-System abzufragen.
Einrichtung für Claude Desktop
Fügen Sie zuerst Dokumente zu Ihrem Datenverzeichnis hinzu:
cp /path/to/your/documents/*.pdf data/Bearbeiten Sie die Datei
config/claude_desktop_config.json, um den korrekten absoluten Pfad zu verwenden:
{
"mcpServers": {
"hybrid-rag": {
"command": "python",
"args": [
"/absolute/path/to/hybrid-rag-project/scripts/mcp_server_claude.py"
],
"env": {
"PYTHONPATH": "/absolute/path/to/hybrid-rag-project"
}
}
}
}Fügen Sie diese Konfiguration zu Claude Desktop hinzu:
Auf macOS:
# Copy the configuration mkdir -p ~/Library/Application\ Support/Claude # Edit the file and add your MCP server configuration nano ~/Library/Application\ Support/Claude/claude_desktop_config.jsonAuf Windows:
%APPDATA%\Claude\claude_desktop_config.jsonAuf Linux:
~/.config/Claude/claude_desktop_config.jsonStarten Sie Claude Desktop neu
In Claude Desktop sehen Sie nun die verfügbaren MCP-Tools. Sie können Claude bitten:
"Verwenden Sie das Tool ingest_documents, um meine Dokumente zu laden"
"Fragen Sie meine Dokumente zu [Ihrer Frage] ab"
"Überprüfen Sie den Status des RAG-Systems"
Verfügbare MCP-Tools
Claude hat Zugriff auf diese Tools:
Dokumentaufnahme und -suche:
ingest_documents: Startet das Laden und Indizieren von Dokumenten asynchron aus dem Verzeichnis data/get_ingestion_status: Überwacht den Fortschritt der Dokumentaufnahme (Prozentsatz, aktuelle Datei, Phase)query_documents: Fragt die Dokumente mit Hybrid-Suche ab (semantisch + Stichwort)get_status: Überprüft den Status des RAG-Systems
Strukturierte Datenabfragen (für CSV-Dateien):
list_datasets: Listet alle verfügbaren CSV-Datensätze mit Spalten und Zeilenanzahl aufcount_by_field: Zählt Zeilen, bei denen ein Feld einem Wert entspricht (z. B. "zähle Personen namens Michael")filter_dataset: Ruft alle Zeilen ab, die Feldkriterien entsprechen (z. B. "alle Personen von Firma X")get_dataset_stats: Ruft Statistiken zu einem Datensatz ab (Zeilen, Spalten, Speichernutzung)
Asynchrone Aufnahme mit Fortschrittsverfolgung
Der Aufnahmeprozess läuft jetzt asynchron mit Echtzeit-Fortschrittsaktualisierungen:
Nicht blockierend: Die Aufnahme läuft im Hintergrund
Fortschrittsverfolgung: Sie sehen den Prozentsatz (0-100%)
Datei-Ebene-Updates: Sie wissen, welche Datei gerade verarbeitet wird
Phaseninformationen: Laden von Dateien (0-80%) → Indexaufbau (80-100%) → Abgeschlossen
Statusüberwachung: Überprüfen Sie den Fortschritt jederzeit mit
get_ingestion_status
Beispielverwendung mit Claude
You: "Please start ingesting my documents"
Claude: [Uses ingest_documents tool]
"Ingestion started. Use get_ingestion_status to monitor progress."
You: "Check the ingestion status"
Claude: [Uses get_ingestion_status tool]
"Ingestion Status: In Progress
Progress: 45%
Stage: loading_files
Files Processed: 9/20
Current File: document.pdf
Documents Loaded: 15"
You: "Check status again"
Claude: [Uses get_ingestion_status tool]
"Ingestion Status: Completed ✅
Progress: 100%
Total Files Processed: 20
Total Documents Loaded: 35
You can now use query_documents to search the documents."
You: "What are the main topics in my documents?"
Claude: [Uses query_documents tool with your question]
"Based on the documents, the main topics are..."Strukturierte Datenabfragen
Für CSV-Dateien verwenden Sie strukturierte Abfragetools für exakte Zählungen und Filterung:
You: "List available datasets"
Claude: [Uses list_datasets tool]
"Available Datasets:
📊 contacts
Rows: 24,697
Columns (7): First Name, Last Name, URL, Email Address, Company, Position, Connected On"
You: "Count how many people are named Michael in the contacts dataset"
Claude: [Uses count_by_field tool with dataset="contacts", field="First Name", value="Michael"]
"Count Result:
Dataset: contacts
Field: First Name
Value: Michael
Count: 226 out of 24,697 total rows (0.92%)"
You: "Show me all the Michaels"
Claude: [Uses filter_dataset tool]
"Filter Results:
Found: 226 rows
Showing: 100 rows (truncated to 100)
[1] First Name: Michael | Last Name: Randel | Company: Randel Consulting Associates ..."Wann welcher Ansatz verwendet werden sollte:
Strukturierte Abfragen (
count_by_field,filter_dataset): Für exakte Zählungen, Filterung und strukturierte DatenSemantische Suche (
query_documents): Für konzeptionelle Fragen, Inhaltsverständnis, Zusammenfassungen
Unterstützte Dateiformate
Das System lädt und verarbeitet automatisch diese Formate:
.txt- Reine Textdateien.pdf- PDF-Dokumente.md- Markdown-Dateien.docx- Microsoft Word-Dokumente.csv- CSV-Dateien
Legen Sie einfach unterstützte Dateien in das Verzeichnis data/!
So funktioniert es
Dokumentladen
Die Klasse DocumentLoaderUtility:
Durchsucht das Verzeichnis
data/rekursivIdentifiziert unterstützte Dateiformate
Verwendet geeignete Loader für jedes Format
Fügt Metadaten (Quelldatei, Dateityp) zu jedem Dokument hinzu
Gibt eine Liste von
Document-Objekten zurück, die für die Indizierung bereit sind
Hybrid-Retrieval
Der EnsembleRetriever verwendet Reciprocal Rank Fusion (RRF), um:
Top-k-Ergebnisse aus der Vektorsuche (semantisch) abzurufen
Top-k-Ergebnisse aus der BM25-Suche (Stichwort) abzurufen
Reziproke Rangfolge-Scores jedem Ergebnis zuzuweisen
Scores zu einer einheitlichen Rangfolge zu kombinieren
Die insgesamt relevantesten Dokumente zurückzugeben
Dieser Ansatz behandelt:
Semantische Abfragen ("Wie beantrage ich Freizeit?")
Stichwortabfragen ("PTO-Formular HR-42")
Komplexe Abfragen, die von beiden Methoden profitieren
Anpassung
Verwendung verschiedener Modelle
Bearbeiten Sie config/config.yaml, um Modelle zu ändern:
ollama:
embedding_model: "your-embedding-model"
llm_model: "your-llm-model"Anpassen der Retrieval-Parameter
Ändern Sie die k-Werte in config/config.yaml:
retrieval:
vector_search_k: 5 # Return top 5 from semantic search
keyword_search_k: 5 # Return top 5 from keyword searchHinzufügen weiterer Dateiformat-Unterstützung
Bearbeiten Sie src/hybrid_rag/document_loader.py, um weitere Loader hinzuzufügen:
self.supported_loaders = {
'.txt': TextLoader,
'.pdf': PyPDFLoader,
'.json': JSONLoader, # Add this
# ... more formats
}Anpassen des Prompts
Bearbeiten Sie die Prompt-Vorlage in scripts/run_demo.py oder scripts/mcp_server.py:
prompt = ChatPromptTemplate.from_template("""
Your custom prompt here...
<context>
{context}
</context>
Question: {input}
""")Entwicklungsworkflow
Dokumente hinzufügen zum Verzeichnis
data/Konfiguration ändern in
config/config.yamlnach BedarfMit der Befehlszeile testen:
python scripts/run_demo.pyMCP-Server bereitstellen:
python scripts/mcp_server.pyÜber die API in Ihre Anwendungen integrieren
Fehlerbehebung
"Fehler beim Verbinden mit Ollama"
Stellen Sie sicher, dass Ollama installiert ist und läuft
Überprüfen Sie, ob der Ollama-Dienst unter der konfigurierten URL erreichbar ist
Verifizieren Sie, dass die Modelle heruntergeladen sind:
ollama list
"Keine Dokumente im Datenverzeichnis gefunden"
Fügen Sie Dateien zum Verzeichnis
data/hinzuStellen Sie sicher, dass die Dateien unterstützte Erweiterungen haben (.txt, .pdf, .md, .docx, .csv)
Überprüfen Sie, ob der Pfad zum Datenverzeichnis in
config/config.yamlkorrekt ist
"ModuleNotFoundError"
Stellen Sie sicher, dass die virtuelle Umgebung aktiviert ist:
source .venv/bin/activateInstallieren Sie die Abhängigkeiten neu:
pip install -r requirements.txt
Schlechte Retrieval-Ergebnisse
Fügen Sie relevantere Dokumente zum Verzeichnis
data/hinzuPassen Sie die
k-Werte inconfig/config.yamlanProbieren Sie verschiedene Embedding-Modelle aus
Stellen Sie sicher, dass die Abfragebegriffe mit dem Dokumentinhalt übereinstimmen
API-Fehler
Stellen Sie sicher, dass Sie
/ingestvor/queryaufrufenÜberprüfen Sie die Server-Logs auf detaillierte Fehlermeldungen
Stellen Sie sicher, dass Ollama läuft und erreichbar ist
Überprüfen Sie, dass die Dokumente erfolgreich geladen wurden
Beispiel: Vollständiger Ablauf
# 1. Activate environment
source .venv/bin/activate
# 2. Add your documents
cp ~/my-docs/*.pdf data/
# 3. Start MCP server
python scripts/mcp_server.py &
# 4. Ingest documents
curl -X POST http://localhost:8000/ingest
# 5. Query your documents
curl -X POST http://localhost:8000/query \
-H "Content-Type: application/json" \
-d '{"query": "Summarize the key points"}'
# 6. Check status
curl http://localhost:8000/statusAbhängigkeiten
Kernbibliotheken:
langchain: Framework für LLM-Anwendungenlangchain-community: Community-Integrationenlangchain-ollama: Ollama-Integrationchromadb: Vektordatenbank für Embeddingsrank-bm25: BM25-Implementierung für die Stichwortsuchefastapi: Web-Framework für die APIuvicorn: ASGI-Serverpyyaml: YAML-Konfigurationsparsing
Dokumentenlader:
pypdf: PDF-Verarbeitungpython-docx: Word-Dokumentverarbeitungunstructured: Markdown und andere Formate
Leistungstipps
Persistenz des Vektorstores: Das Vektorstore wird nach der Indexierung auf der Festplatte (
chroma_db/) gespeichert, wodurch nachfolgende Abfragen schneller werden.Stapelverarbeitung: Verwenden Sie beim Hinzufügen vieler Dokumente den
/ingest-Endpunkt einmal, anstatt ihn mehrfach aufzurufen.Abrufparameter: Niedrigere
k-Werte (z. B. 2–3) sind schneller und für kleine Dokumentsätze oft ausreichend.Modellauswahl: Kleinere Embedding-Modelle sind schneller, können aber an Genauigkeit einbüßen.
Lizenz
Dieses Projekt wird ohne Gewähr für Bildungs- und Demonstrationszwecke bereitgestellt.
Mitwirken
Sie können gerne Issues einreichen, das Repository forken und Pull Requests für Verbesserungen erstellen.
Ressourcen
Änderungshistorie
Version 2.0.0
System zur Verarbeitung beliebiger Dokumente verallgemeinert
data/-Verzeichnis für die Dokumentenindexierung hinzugefügtDocumentLoaderUtilityfür die Unterstützung mehrerer Formate erstelltProjektstruktur gemäß Python-Best Practices neu organisiert (src-Layout)
Gesamte Konfiguration in das
config/-Verzeichnis verschobenGesamte Dokumentation in das
docs/-Verzeichnis verschobenOrdentliche Python-Paketstruktur mit
setup.pyerstelltSkripte in das
scripts/-Verzeichnis organisiertAlle Importpfade und die Dokumentation aktualisiert
Version 1.0.0
Erste Implementierung mit Beispieldokumenten für die Personalabteilung
Grundlegende hybride Suche mit Vektor- und BM25-Retrievern
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables Claude Desktop to search and query personal document collections (PDF, Word, Markdown, text) using semantic search and conversational AI with full context preservation across exchanges.MIT
- AlicenseNot gradedqualityDmaintenanceEnables Claude to perform hybrid search across local documents by combining semantic vector retrieval and BM25 keyword matching for optimal context recovery. It supports multiple file formats including PDF, CSV, and Markdown, leveraging local Ollama models for private and efficient document querying.4MIT
- AlicenseNot gradedqualityDmaintenanceEnables intelligent file search with Git-like staging and indexing, offering semantic and hybrid search for documents, and integrates with Claude Desktop via MCP.5MIT
- AlicenseNot gradedqualityBmaintenanceEnables querying enterprise documents (DOCX, PDF, PPTX) using natural language, with hybrid search and MCP integration for Claude Desktop and other agents.MIT
Related MCP Connectors
Search your knowledge bases from any AI assistant using hybrid RAG.
Connect your team's living knowledge base — docs, data, issues, CRM — to Claude and ChatGPT.
OCR, transcription, file extraction, and image generation for AI agents via MCP.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ce23b006-byte/hybrid-rag-project'
If you have feedback or need assistance with the MCP directory API, please join our Discord server