MCPcopy
hub / github.com/langflow-ai/openrag

github.com/langflow-ai/openrag @v0.5.1 sqlite

repository ↗ · DeepWiki ↗ · release v0.5.1 ↗
2,817 symbols 10,499 edges 470 files 1,525 documented · 54%
README

OpenRAG

Intelligent Agent-powered document search

Langflow OpenSearch Docling

YouTube Channel GitHub stars GitHub forks

Documentation Ask DeepWiki


OpenRAG is a comprehensive Retrieval-Augmented Generation platform that enables intelligent document search and AI-powered conversations.

Users can upload, process, and query documents through a chat interface backed by large language models and semantic search capabilities. The system utilizes Langflow for document ingestion, retrieval workflows, and intelligent nudges, providing a seamless RAG experience.

Check out the documentation or get started with the quickstart.

Built with FastAPI and Next.js. Powered by OpenSearch, Langflow, and Docling.


OpenRAG Demo

✨ Highlight Features

  • Pre-packaged & ready to run - All core tools are hooked up and ready to go, just install and run
  • Agentic RAG workflows - Advanced orchestration with re-ranking and multi-agent coordination
  • Document ingestion - Handles messy, real-world data with intelligent parsing
  • Drag-and-drop workflow builder - Visual interface powered by Langflow for rapid iteration
  • Modular enterprise add-ons - Extend functionality when you need it
  • Enterprise search at any scale - Powered by OpenSearch for production-grade performance

🔄 How OpenRAG Works

OpenRAG follows a streamlined workflow to transform your documents into intelligent, searchable knowledge:

OpenRAG Workflow Diagram

🚀 Install OpenRAG

To get started with OpenRAG, see the installation guides in the OpenRAG documentation:

✨ Quick Start Workflow

Use uv run openrag to start

1. Launch OpenRAG

Add files or folders as knowledge

2. Add Knowledge

Start Chatting with your knowledge

3. Start Chatting

📦 SDKs

Integrate OpenRAG into your applications with our official SDKs:

Python SDK

pip install openrag-sdk

Quick Example:

import asyncio
from openrag_sdk import OpenRAGClient


async def main():
    async with OpenRAGClient() as client:
        response = await client.chat.create(message="What is RAG?")
        print(response.response)


if __name__ == "__main__":
    asyncio.run(main())

📖 Full Python SDK Documentation

TypeScript/JavaScript SDK

npm install openrag-sdk

Quick Example:

import { OpenRAGClient } from "openrag-sdk";

const client = new OpenRAGClient();
const response = await client.chat.create({ message: "What is RAG?" });
console.log(response.response);

📖 Full TypeScript/JavaScript SDK Documentation

🔌 Model Context Protocol (MCP)

Connect AI assistants like Cursor and Claude Desktop to your OpenRAG knowledge base:

pip install openrag-mcp

Quick Example (Cursor/Claude Desktop config):

{
  "mcpServers": {
    "openrag": {
      "command": "uvx",
      "args": ["openrag-mcp"],
      "env": {
        "OPENRAG_URL": "http://localhost:3000",
        "OPENRAG_API_KEY": "your_api_key_here"
      }
    }
  }
}

The MCP server provides tools for RAG-enhanced chat, semantic search, and settings management.

📖 Full MCP Documentation

🛠️ Development

For developers who want to contribute to OpenRAG or set up a development environment, see CONTRIBUTING.md.

🛟 Troubleshooting

For assistance with OpenRAG, see Troubleshoot OpenRAG and visit the Discussions page.

To report a bug or submit a feature request, visit the Issues page.

Extension points exported contracts — how you extend this code

PickerOptions (Interface)
* OneDrive File Picker v8 Handler for Personal OneDrive * * Uses Microsoft's File Picker v8 which communicates via pos
frontend/components/cloud-picker/onedrive-v8-handler.ts
LoadingState (Interface)
(no doc)
frontend/stores/loadingStore.ts
KnowledgeSourceOption (Interface)
(no doc)
frontend/lib/knowledge-table-state.ts
ModelSelectorProps (Interface)
(no doc)
frontend/app/onboarding/_components/model-selector.tsx
MockTaskFileEntry (Interface)
(no doc)
frontend/tests/core/tasks-unified-panel.spec.ts
TaskFile (Interface)
(no doc)
frontend/contexts/task-context.tsx
UseChatStreamingOptions (Interface)
(no doc)
frontend/hooks/useChatStreaming.ts
RequestOptions (Interface)
(no doc)
sdks/typescript/src/client.ts

Core symbols most depended-on inside this repo

get
called by 1399
sdks/typescript/src/chat.ts
cn
called by 194
frontend/lib/utils.ts
get_logger
called by 75
src/utils/logging_config.py
send_event
called by 75
src/utils/telemetry/client.py
notify
called by 73
src/tui/main.py
say
called by 60
src/tui/utils/startup_checks.py
sleep
called by 57
sdks/typescript/src/documents.ts
delete
called by 45
sdks/typescript/src/chat.ts

Shape

Function 1,243
Method 1,050
Class 261
Interface 238
Struct 24
Route 1

Languages

Python64%
TypeScript31%
Go5%

Modules by API surface

src/tui/screens/monitor.py53 symbols
sdks/typescript/src/types.ts49 symbols
src/api/settings.py47 symbols
src/tui/managers/container_manager.py42 symbols
src/tui/screens/config.py38 symbols
src/services/flows_service.py38 symbols
src/main.py38 symbols
kubernetes/operator/internal/controller/openrag_controller.go38 symbols
kubernetes/operator/api/v1alpha1/zz_generated.deepcopy.go38 symbols
src/connectors/onedrive/connector.py33 symbols
src/connectors/sharepoint/connector.py32 symbols
src/connectors/google_drive/connector.py32 symbols

Dependencies from manifests, versioned

github.com/beorn7/perksv1.0.1 · 1×
github.com/cespare/xxhash/v2v2.3.0 · 1×
github.com/davecgh/go-spewv1.1.1 · 1×
github.com/evanphx/json-patch/v5v5.9.11 · 1×
github.com/fsnotify/fsnotifyv1.7.0 · 1×
github.com/fxamacker/cbor/v2v2.7.0 · 1×
github.com/go-logr/logrv1.4.2 · 1×
github.com/go-logr/zaprv1.3.0 · 1×
github.com/go-openapi/jsonpointerv0.21.0 · 1×
github.com/go-openapi/jsonreferencev0.20.2 · 1×
github.com/go-openapi/swagv0.23.0 · 1×

For agents

$ claude mcp add openrag \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact