mcp rag

Local 2025-09-01 01:03:56 0

A server that implements Retrieval-Augmented Generation using GroundX and OpenAI, enabling semantic search and document retrieval with Modern Context Processing for enhanced context handling.


A powerful and efficient RAG (Retrieval-Augmented Generation) implementation using GroundX and OpenAI, built with Modern Context Processing (MCP).

? Features

  • Advanced RAG Implementation: Utilizes GroundX for high-accuracy document retrieval
  • Model Context Protocol: Seamless integration with MCP for enhanced context handling
  • Type-Safe: Built with Pydantic for robust type checking and validation
  • Flexible Configuration: Easy-to-customize settings through environment variables
  • Document Ingestion: Support for PDF document ingestion and processing
  • Intelligent Search: Semantic search capabilities with scoring

?️ Prerequisites

  • Python 3.12 or higher
  • OpenAI API key
  • GroundX API key
  • MCP CLI tools

? Installation

  1. Clone the repository:

    git clone <repository-url>
    cd mcp-rag

  2. Create and activate a virtual environment:

    uv sync
    source .venv/bin/activate  # On Windows, use `.venvScriptsactivate`

⚙️ Configuration

  1. Copy the example environment file:

    cp .env.example .env

  2. Configure your environment variables in .env:

    GROUNDX_API_KEY="your-groundx-api-key"
    OPENAI_API_KEY="your-openai-api-key"
    BUCKET_ID="your-bucket-id"

? Usage

Starting the Server

Run the inspect server using:

mcp dev server.py

Document Ingestion

To ingest new documents:

from server import ingest_documents

result = ingest_documents("path/to/your/document.pdf")
print(result)

Performing Searches

Basic search query:

from server import process_search_query

response = process_search_query("your search query here")
print(f"Query: {response.query}")
print(f"Score: {response.score}")
print(f"Result: {response.result}")

With custom configuration:

from server import process_search_query, SearchConfig

config = SearchConfig(
    completion_model="gpt-4",
    bucket_id="custom-bucket-id"
)
response = process_search_query("your query", config)

? Dependencies

  • groundx (≥2.3.0): Core RAG functionality
  • openai (≥1.75.0): OpenAI API integration
  • mcp[cli] (≥1.6.0): Modern Context Processing tools
  • ipykernel (≥6.29.5): Jupyter notebook support

? Security

  • Never commit your .env file containing API keys
  • Use environment variables for all sensitive information
  • Regularly rotate your API keys
  • Monitor API usage for any unauthorized access

? Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m Add some amazing feature)
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request