Skip to main content
Glama
Akes102

mcp-business-bot

by Akes102
README.md
# šŸ¤– Business Knowledge AI Bot with RAG & MCP

An AI-powered enterprise knowledge assistant that answers company-specific questions using Retrieval-Augmented Generation (RAG), ChromaDB, LangChain, OpenAI, and the Model Context Protocol (MCP).

The assistant retrieves relevant information from internal company documents before generating accurate, context-aware responses.

---

## šŸ“– Project Overview

This project demonstrates how a business can use AI to provide employees with instant access to company knowledge without requiring manual document searches.

Instead of relying solely on an LLM's general knowledge, the assistant searches a private knowledge base built from company documentation and uses the retrieved information to generate reliable answers.

The project is designed as a portfolio example of an enterprise AI assistant.

---

## šŸš€ Features

- šŸ“„ PDF document ingestion
- šŸ” Semantic search using vector embeddings
- 🧠 Retrieval-Augmented Generation (RAG)
- šŸ’¬ Natural language question answering
- šŸ—‚ļø ChromaDB vector database
- šŸ¤– OpenAI GPT integration
- šŸ”Œ Model Context Protocol (MCP) server
- 🌐 Gradio web interface
- ⚔ Fast semantic document retrieval

---

## šŸ—ļø System Architecture

```
                 Company Documents
                         │
                         ā–¼
                 PDF Document Loader
                         │
                         ā–¼
                  Text Chunking
                         │
                         ā–¼
          Sentence Transformers Embeddings
                         │
                         ā–¼
                  Chroma Vector Database
                         │
                         ā–¼
                Semantic Similarity Search
                         │
                         ā–¼
                  Retrieved Context
                         │
                         ā–¼
                 OpenAI GPT-4.1-mini
                         │
                         ā–¼
                     MCP Server
                         │
                         ā–¼
                   Gradio Web UI
```

---

## šŸ› ļø Technology Stack

| Technology | Purpose |
|------------|---------|
| Python 3.14 | Programming Language |
| LangChain | RAG Framework |
| OpenAI | Large Language Model |
| ChromaDB | Vector Database |
| Sentence Transformers | Text Embeddings |
| HuggingFace | Embedding Models |
| MCP SDK | Model Context Protocol |
| Gradio | Web Interface |
| PyPDF | PDF Processing |

---

## šŸ“‚ Project Structure

```
mcp-business-bot/
│
ā”œā”€ā”€ app.py
ā”œā”€ā”€ config.py
ā”œā”€ā”€ ingest.py
ā”œā”€ā”€ rag.py
ā”œā”€ā”€ mcp_server.py
ā”œā”€ā”€ prompts.py
ā”œā”€ā”€ requirements.txt
ā”œā”€ā”€ README.md
│
ā”œā”€ā”€ assets/
│   └── screenshot.png
│
ā”œā”€ā”€ knowledge/
│   ā”œā”€ā”€ company_handbook.pdf
│   ā”œā”€ā”€ TechSolutions_Company_Policies.pdf
│   ā”œā”€ā”€ TechSolutions_Internal_Procedures.pdf
│   ā”œā”€ā”€ TechSolutions_Product_Information.pdf
│   ā”œā”€ā”€ TechSolutions_Technical_Documentation.pdf
│   └── mcp_architecture.md
│
└── chroma_db/
```

---

## šŸ“š Knowledge Base

The assistant indexes multiple business documents, including:

- Company Handbook
- Company Policies
- Internal Procedures
- Product Information
- Technical Documentation
- MCP Architecture

These documents are converted into semantic embeddings and stored in ChromaDB for efficient retrieval.

---

## āš™ļø Installation

Clone the repository:

```bash
git clone https://github.com/Akes102/mcp-business-bot.git

cd mcp-business-bot
```

Create a virtual environment:

```bash
python -m venv .venv
```

Activate the environment.

Windows:

```bash
.venv\Scripts\activate
```

Install dependencies:

```bash
pip install -r requirements.txt
```

Create a `.env` file:

```text
OPENAI_API_KEY=your_api_key_here
```

---

## šŸ“„ Build the Knowledge Base

After adding PDF documents to the `knowledge` folder:

```bash
python ingest.py
```

The ingestion process:

- Loads PDFs
- Splits text into chunks
- Generates embeddings
- Stores vectors in ChromaDB

---

## ā–¶ļø Run the Application

Start the Gradio interface:

```bash
python app.py
```

Open your browser:

```
http://127.0.0.1:7860
```

---

## šŸ’¬ Example Questions

Try asking:

- What cybersecurity policies does TechSolutions have?
- Explain the employee onboarding process.
- What products does TechSolutions provide?
- What is the company's password policy?
- How are IT incidents escalated?
- Explain the MCP architecture used in this project.

---

## šŸ”„ How RAG Works

1. User submits a question.
2. The question is converted into an embedding.
3. ChromaDB searches for similar document chunks.
4. Relevant context is retrieved.
5. The retrieved context is sent to the OpenAI model.
6. The AI generates an accurate response based on company documentation.

This process helps reduce hallucinations by grounding responses in the indexed documents.

---

## šŸ”Œ Model Context Protocol (MCP)

This project includes an MCP server that exposes the RAG functionality through the Model Context Protocol.

Using MCP allows compatible AI clients to access the enterprise knowledge base in a standardized way.

---

## šŸ“ø Demo

### Application

Replace with your own screenshot:

```
assets/screenshot.png
```

---

## šŸ“ˆ Future Improvements

- User authentication
- Multi-user support
- Role-based access control
- Conversation history
- Source citations
- Streaming responses
- Docker deployment
- Cloud deployment
- Multi-document collections
- Admin dashboard

---

## šŸŽÆ Learning Outcomes

This project demonstrates practical experience with:

- Retrieval-Augmented Generation (RAG)
- Enterprise AI Assistants
- LangChain
- ChromaDB
- OpenAI API
- Vector Embeddings
- MCP
- Gradio
- Semantic Search
- Prompt Engineering
-------
---

## šŸ“„ License

This project is intended for educational and portfolio purposes.