Skip to main content

This is a local rag-mcp solution with chromadb using langchain and docling

Project description

RAG MCP: Document Processing Server

A Retrieval-Augmented Generation (RAG) server built on the Model Context Protocol (MCP) for intelligent document processing and question answering.

Overview

RAG MCP is a tool that allows you to index various document formats and perform semantic searches against them. It uses advanced embedding techniques and vector databases to make your documents searchable through natural language queries.

Features

  • Document Indexing: Support for various document formats (PDF, DOCX, XLSX, PPTX, Markdown, AsciiDoc, HTML, XHTML, CSV)
  • Semantic Search: Query your documents using natural language
  • High Performance: Optimized for various hardware configurations with automatic device selection (CUDA, MPS, CPU)
  • Persistent Storage: Vector embeddings are stored locally for future use

Requirements

  • Python 3.11+
  • Environment with access to your documents

Installation

1. Install UV

First, you need to install UV, a Python package installer and resolver:

On macOS/Linux:

curl -sSf https://astral.sh/uv/install.sh | sh

On Windows:

powershell -c "irm https://astral.sh/uv/install.ps1 | iex"

2. Run RAG MCP

Once UV is installed, you can run RAG MCP directly using:

uvx rag-mcp

This will start the MCP server and make it available for document processing.

IDE Integration

VS Code Integration

To integrate with Visual Studio Code, create a mcp.json file with the following content:

{
    "servers": {
        "rag-mcp-server": {
            "type": "stdio",
            "command": "uvx",
            "args": [
                "rag-mcp"
            ],
            "env": {
                "PERSIST_DIRECTORY": "/path/to/your/persist/directory"
            }
        }
    }
}

Replace /path/to/your/persist/directory with the directory where you want to store your vector database.

Cursor Integration

To integrate with Cursor, go to Cursor Settings > MCP and paste this configuration:

{
    "mcpServers": {
      "rag-mcp": {
        "command": "uvx",
        "args": ["rag-mcp"],
        "env": {
          "PERSIST_DIRECTORY": "/path/to/your/persist/directory"
        }
      }
    }
  }

Usage

Supported Embedding Models

The system supports the following embedding model.

  1. HuggingFace BGE Embeddings (default): High-quality embeddings that work offline
    • Uses BAAI/bge-m3 model

How It Works

  1. Document Loading: Uses DoclingLoader to parse various document formats
  2. Text Splitting: Documents are split into manageable chunks using RecursiveCharacterTextSplitter
  3. Embedding Generation: Text chunks are converted to vector embeddings
  4. Storage: Embeddings are stored in a Chroma vector database
  5. Retrieval: When queried, the system finds semantically similar content to answer questions

Advanced Configuration

You can customize chunk size, overlap, and other parameters by modifying the code in document_server.py.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

[Specify your license here]

Acknowledgments

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rag_mcp-0.1.2.tar.gz (5.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rag_mcp-0.1.2-py3-none-any.whl (5.5 kB view details)

Uploaded Python 3

File details

Details for the file rag_mcp-0.1.2.tar.gz.

File metadata

  • Download URL: rag_mcp-0.1.2.tar.gz
  • Upload date:
  • Size: 5.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.5.4

File hashes

Hashes for rag_mcp-0.1.2.tar.gz
Algorithm Hash digest
SHA256 c9741040e4576b8bcdfa0d2db6718b82c5a8f931aebe0ee52dbb9435ead55265
MD5 57b4d6bbe107e1f2cc230dccf6f47ec7
BLAKE2b-256 9238f19c23b75b8144d5099bbfd8b08aebd3bb4d7703616458dc74a2ebebd2bf

See more details on using hashes here.

File details

Details for the file rag_mcp-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: rag_mcp-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 5.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.5.4

File hashes

Hashes for rag_mcp-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 1b3ec33a73e17e6876940c9d9583f8aa83f0f231a34113e5b830c5cddef92305
MD5 b7354b8f0a4fd32b0b6b7e2e8b9e7f78
BLAKE2b-256 0dbd55a4989470552a5947ac9bdf3fb681595ad5af35d2c4ec9b5e0ecdeba277

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page