Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

4 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

OpenROD - Open RAG on Demand

OpenROD is an open-source MCP (Model Context Protocol) server that enables shared memory and context between multiple AI clients like Claude Desktop and Cursor. By leveraging a vector database and tagging system, OpenROD creates a unified knowledge layer that persists across different AI applications.

πŸš€ Features

  • Cross-Client Memory Sharing: Share context and knowledge between Claude Desktop, Cursor, and other MCP-compatible clients
  • Vector Database Storage: Efficient storage and retrieval using vector embeddings for semantic search
  • Tagging System: Organize and categorize memories with flexible tagging
  • Web UI: User-friendly interface for manual memory management
  • MCP Integration: Seamless integration with the Model Context Protocol ecosystem
  • Docker Deployment: Easy deployment using Docker Compose
  • Local-First: Runs entirely on your local machine for privacy and control

πŸ—οΈ Architecture

OpenROD operates as a bridge between your AI clients and a persistent knowledge base:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   Claude        β”‚    β”‚              β”‚    β”‚     Cursor      β”‚
β”‚   Desktop       │◄──►│   OpenROD    │◄──►│                 β”‚
β”‚                 β”‚    β”‚  MCP Server  β”‚    β”‚                 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β”‚              β”‚    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                       β”‚              β”‚
                       β”‚   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                       β”‚   β”‚ Vector Database    β”‚
                       β”‚   β”‚ (Tagged Memories)  β”‚
                       β”‚   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                       β”‚             β”‚
                       β”‚   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                       β”‚   β”‚     Web UI         β”‚
                       β”‚   β”‚ (Memory Management)β”‚
                       β””β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ“‹ Prerequisites

  • Docker and Docker Compose
  • Compatible MCP clients (Claude Desktop, Cursor, etc.)
  • Minimum 4GB RAM recommended
  • 2GB available disk space

πŸ› οΈ Installation

  1. Clone the repository

    git clone https://github.com/Open-ROD/openrod.git
    cd openrod
  2. Configure environment variables

    cp .env.example .env
    # Edit .env with your preferred settings
  3. Start the services

    docker-compose up -d
  4. Verify installation

βš™οΈ Configuration

MCP Client Setup

Claude Desktop

Add to your Claude Desktop configuration file:

{
  "mcpServers": {
    "openrod": {
      "command": "node",
      "args": ["path/to/openrod/mcp-client.js"],
      "env": {
        "OPENROD_URL": "http://localhost:3000"
      }
    }
  }
}

Cursor

Configure in your Cursor settings:

{
  "mcp.servers": [
    {
      "name": "openrod",
      "url": "http://localhost:3000"
    }
  ]
}

Environment Variables

Variable Description Default
OPENROD_PORT MCP server port 3000
WEB_UI_PORT Web interface port 8080
VECTOR_DB_PATH Database storage path ./data/vectordb
MAX_MEMORY_SIZE Maximum memory size (MB) 1024
DEFAULT_TAGS Default tags for memories general

πŸ“– Usage

Adding Memories via Web UI

  1. Navigate to http://localhost:8080
  2. Click "Add Memory"
  3. Enter your content and tags
  4. Save to make it available across all connected clients

Adding Memories via MCP

From any connected MCP client, use the memory functions:

# Add a new memory
store_memory("Important project details", ["project", "planning"])

# Search memories
search_memories("project planning")

# List all tags
list_tags()

Memory Management

  • Tagging: Use descriptive tags to organize memories (work, personal, research, etc.)
  • Search: Semantic search finds relevant memories even with different wording
  • Updates: Memories can be updated or deleted through the web UI
  • Backup: Regular backups are automatically created in ./backups/

πŸ”§ API Reference

MCP Functions

Function Description Parameters
store_memory Store new memory content: string, tags: string[]
search_memories Search existing memories query: string, limit?: number
get_memory Get specific memory id: string
update_memory Update existing memory id: string, content: string, tags: string[]
delete_memory Delete memory id: string
list_tags List all available tags None

REST API

Endpoint Method Description
/health GET Server health status
/memories GET List all memories
/memories POST Create new memory
/memories/:id GET Get specific memory
/memories/:id PUT Update memory
/memories/:id DELETE Delete memory
/search POST Search memories
/tags GET List all tags

🐳 Docker Services

The Docker Compose setup includes:

  • openrod-server: Main MCP server application
  • openrod-ui: Web interface for memory management
  • vector-db: Vector database for memory storage
  • nginx: Reverse proxy for routing

πŸ”’ Security & Privacy

  • Local-First: All data stays on your machine
  • No External Calls: No data sent to external services
  • Encrypted Storage: Vector database uses encryption at rest
  • Access Control: Web UI can be protected with authentication

πŸ› οΈ Development

Building from Source

# Clone and setup
git clone https://github.com/Open-ROD/openrod.git
cd openrod

# Install dependencies
npm install

# Development mode
npm run dev

# Build for production
npm run build

Running Tests

# Unit tests
npm test

# Integration tests
npm run test:integration

# E2E tests
npm run test:e2e

🀝 Contributing

We welcome contributions! Please see our Contributing Guide for details.

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests if applicable
  5. Submit a pull request

πŸ“„ License

This project is licensed under the Apache 2.0 License - see the LICENSE file for details.

πŸ™‹ Support

πŸ—ΊοΈ Roadmap

  • Plugin system for custom memory processors
  • Multi-user support with role-based access
  • Integration with external knowledge bases
  • Mobile app for memory management
  • Advanced analytics and insights
  • Cloud deployment options

✨ Acknowledgments

  • Built on the Model Context Protocol
  • Vector database powered by QDrant
  • Web UI built with Angular
  • Community contributors and testers

Made with ❀️ by the OpenROD community

About

OpenROD GitHub Organization Repository

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors