MCP ExplorerExplorer

Adk Mcp Rag

@khoi03on 9 months ago
7 MIT
FreeCommunity
AI Systems
#adk-python#agentic-ai#llms#mcp-server#rag-chatbot
A Retrieval-Augmented Generation (RAG) system that leverages Google's Agent Development Kit (ADK) and Qdrant vector database via MCP server.

Overview

What is Adk Mcp Rag

adk-mcp-rag is a Retrieval-Augmented Generation (RAG) system that integrates Google’s Agent Development Kit (ADK) with the Qdrant vector database via an MCP server to enhance knowledge retrieval and improve responses from Large Language Models (LLMs).

Use cases

Use cases include building intelligent chatbots that provide accurate answers, creating content generation tools that utilize existing knowledge bases, and developing educational platforms that offer personalized learning experiences through context-aware responses.

How to use

To use adk-mcp-rag, clone the repository, set up a virtual environment, install dependencies, and configure environment variables in a .env file. After setup, you can run the system to retrieve relevant context and generate answers based on that context.

Key features

Key features include advanced semantic search powered by Qdrant, integration with Google’s ADK for LLM capabilities, the use of MCP server for model context management, context augmentation for improved LLM responses, and comprehensive monitoring and logging of system performance.

Where to use

adk-mcp-rag can be used in various fields such as customer support, content generation, educational tools, and any application requiring enhanced information retrieval and natural language processing.

Content

MseeP.ai Security Assessment Badge

RAG Agent with Google ADK and Qdrant MCP server

A Retrieval-Augmented Generation (RAG) system that leverages Google’s Agent Development Kit (ADK) and Qdrant vector database via MCP server.

Table of Contents

Overview

This project implements a Retrieval-Augmented Generation (RAG) system that combines the power of Google’s Agent Development Kit (ADK) with Qdrant vector database (via MCP server) for efficient knowledge retrieval. The system enhances Large Language Model (LLM) responses by retrieving relevant context from a vector database before generating answers.

Architecture

architecture

Features

  • Advanced Retrieval: Semantic search powered by Qdrant vector database
  • Google ADK Integration: Leverages Google’s Agent Development Kit for LLM capabilities
  • MCP Server: Model Context Protocol server for Qdrant vector database
  • Context Augmentation: Enhances LLM responses with relevant retrieved information
  • Monitoring & Logging: Comprehensive tracking of system performance

Installation

Remember to install the uv first

# Clone the repository
git clone https://github.com/khoi03/adk-mcp-rag.git
cd adk-mcp-rag

# Create a virtual environment and install dependencies
uv sync

# Activate the virtual environment
# For macOS/Linux
source .venv/bin/activate
# For Windows
.venv\Scripts\activate

# Add required dependencies via requirement file (In case there are new libs)
uv add -r requirements.txt

Configuration

Environment Variables

Create a .env file in docker directory:

# Change directory into docker
cd docker

# Set up environment variables
cp .env.example .env
# Edit .env with your API keys and configuration

Example .env file:

# -------------------
# Google API keys
# -------------------
GOOGLE_API_KEY=YOUR_VALUE_HERE

# -------------------
# OPENAI API keys
# -------------------
OPENAI_API_KEY=YOUR_VALUE_HERE

# -------------------
# ANTHROPIC API keys
# -------------------
ANTHROPIC_API_KEY=YOUR_VALUE_HERE

# -------------------
# Network names
# -------------------
NETWORK_NAME=mcp-servers

# ----------------------------------
# Parameters for Qdrant MCP Server 
# ----------------------------------
QDRANT_CONTAINER_NAME=qdrant-mcp
QDRANT_URL=http://qdrant:6333
QRANT_MCP_SSE=http://localhost:8888/sse
# QDRANT_LOCAL_PATH=/qdrant/db
COLLECTION_NAME=default_collection
QDRANT_EMBEDDING_MODEL=sentence-transformers/all-MiniLM-L6-v2
QDRANT_SEARCH_LIMIT=3
FASTMCP_HOST=0.0.0.0
FASTMCP_PORT=8888

Build Qdrant and Qdrant MCP

Build Qdrant and Qdrant MCP server using Docker Compose after completing the configuration steps:

# Build and start services
docker compose -p qdrant-mcp up --build -d

# Check running services
docker compose ps

# View logs
docker compose logs -f

# Stop and remove services
docker compose -p qdrant-mcp down

You can also access qdrant web UI at http://localhost:6333/dashboard

Usage

Document Ingestion

Push all your needed files into the data directory and run:

python local_vector_store/prepare_corpus_and_data_locally.py

Note: Currently only processes .md and .pdf files. The system will:

  1. Extract text from the documents
  2. Split the text into manageable chunks
  3. Generate embeddings for each chunk
  4. Store the embeddings in the Qdrant vector database

Basic Usage

To test and run the system with default settings:

python main.py

Built-in ADK-UI

For tracing, testing, and debugging with a UI, run the built-in web interface provided by ADK:

adk web

Project Structure

adk-mcp-rag/
├── assets/                  # Images and static files
├── data/                    # Documents for ingestion
├── docker/                  # Docker configurations
│   ├── .env.example         # Example environment variables
│   ├── Dockerfile.qdrant    # Docker file for qdrant mcp
│   └── docker-compose.yml   # Docker Compose configuration
├── agents/                  # Main code
│   ├── config/prompts.yml   # Store prompts
│   ├── tools/               # Embedding generation
│       ├── mcp_tools.py     # Manage MCP Tools
│       └── prompts.py       # Manage Prompts
│   └── agent/               # Manage agents
├── .gitignore               # Git ignore file
├── main.py                  # Main entry point
├── README.md                # This file
└── requirements.txt         # Python dependencies

Tools

No tools

Comments

Recommend MCP Servers

View All MCP Servers