Skip to main content

MCP-RAG: Model Context Protocol with RAG 🚀

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
  1. Create and activate a virtual environment:
uv sync
source .venv/bin/activate  # On Windows, use `.venv\Scripts\activate`

⚙️ Configuration

  1. Copy the example environment file:
cp .env.example .env
  1. 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

Metadata

Release files for iflow-mcp_mcp-rag 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for iflow-mcp_mcp-rag 0.1.0
File Size Uploaded
iflow_mcp_mcp_rag-0.1.0.tar.gz 392.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for iflow-mcp_mcp-rag 0.1.0
File Interpreter ABI Platform
iflow_mcp_mcp_rag-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 397.9 kB

Release files / iflow_mcp_mcp_rag-0.1.0.tar.gz

Download URL iflow_mcp_mcp_rag-0.1.0.tar.gz
Size 392.7 kB
Tags Source
SHA-256 checksum
How to use checksums
6f7b5cf0af3e78216d8e0825e904eb0d0a4d4617f901a3f9b627006cd3342069
BLAKE2b-256 checksum
How to use checksums
1d690a9c70d1fbedeb664f6a6e8b59b96263c250d9e9ab35d84914aaaa419a54
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.10 {"installer":{"name":"uv","version":"0.9.10"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / iflow_mcp_mcp_rag-0.1.0-py3-none-any.whl

Download URL iflow_mcp_mcp_rag-0.1.0-py3-none-any.whl
Size 5.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
00497a41d3f9826b349ac05f8fc6c86176c830532a5f01f00dff1af125e7dbb4
BLAKE2b-256 checksum
How to use checksums
5eb1282fcecb9cc6d0fd53ebb130102fc7c1b2a43742e59e83351747bfb03cb8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.10 {"installer":{"name":"uv","version":"0.9.10"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page