Skip to main content
Glama
README.md

# 🤖 MCP Agentic RAG com Qdrant e Bright Data

Este projeto implementa um servidor MCP (Model Context Protocol) com ferramentas inteligentes para:

- 🔍 Buscar respostas em uma base vetorial de perguntas frequentes sobre **machine learning**
- 🌐 Realizar pesquisas web usando proxy premium da **Bright Data**
- 💡 Usar agentes via **Claude Desktop** com prompts estruturados

---

## ⚙️ Tecnologias

- [🧠 LlamaIndex](https://github.com/jerryjliu/llama_index) com modelo `nomic-embed-text-v1.5`
- [📦 Qdrant](https://qdrant.tech/) como banco vetorial local (via Docker)
- [🌍 Bright Data](https://brightdata.com) para scraping com proxy
- [🧠 Claude Desktop](https://www.anthropic.com/index/claude) como cliente LLM
- [⚡ FastMCP](https://github.com/openai/mcp) como servidor MCP
- Python 3.11+

---

## 🧪 Configuração rápida

### 1. Clone o projeto e crie o ambiente

```bash
git clone https://seurepo.com/mcp_agentic_rag.git
cd mcp_agentic_rag
python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txt
```

### 2. Configure seu arquivo `.env`

Crie o arquivo `.env` com suas credenciais Bright Data:

```env
BRIGHT_DATA_USERNAME=brd-customer-usuario-zone-nomezona
BRIGHT_DATA_PASSWORD=sua_senha
```

---

### 3. Suba o Qdrant via Docker

```bash
docker run -p 6333:6333 -p 6334:6334 ^
-v ${PWD}/qdrant_storage:/qdrant/storage ^
qdrant/qdrant
```

---

### 4. Ingestão de FAQ no banco vetorial

```bash
python ingest_faq.py
```

Você verá mensagens como:
```
✅ Coleção 'ml_faq_collection' populada com sucesso no Qdrant.
```

---

### 5. Inicie o servidor MCP

```bash
python server.py
```

---

### 6. Configure o Claude Desktop

Adicione este conteúdo ao seu `config.json` em:
```
Claude Desktop > Settings > MCP Servers
```

```json
{
  "mcpServers": {
    "mcp-rag-app": {
      "command": "python",
      "args": ["C:\\Seu_Path\\mcp_agentic_rag\\server.py"],
      "host": "127.0.0.1",
      "port": 8080,
      "timeout": 30000
    }
  }
}
```

---

## 🚀 Como usar

### ✅ Prompt 1 – Buscar em base FAQ:

```yaml
Você é um assistente especializado em aprendizado de máquina.
Use a ferramenta "machine_learning_faq_retrieval_tool" para responder perguntas como:

"Como evitar overfitting em modelos de machine learning?"
```

### ✅ Prompt 2 – Pesquisa via Bright Data:

```yaml
Você é um assistente de conhecimento geral.
Use "bright_data_web_search_tool" para perguntas como:

"Qual o impacto atual da inteligência artificial no setor bancário brasileiro?"
```

---

## 🧰 Scripts úteis

- `ingest_faq.py` → Gera embeddings e popula Qdrant com FAQ
- `server.py` → Inicia o servidor MCP com as ferramentas
- `teste.py` → Faz busca manual na coleção FAQ para debug
- `prompt_1.yml`, `prompt_2.yml` → Exemplos para Claude Desktop
- `rag_code.py` → Lógica de vetorização e busca
- `.env` → Armazena credenciais do Bright Data
- `config.json` → Registro local de servidor MCP no Claude

---

## 📬 Informação - Este projeto foi adaptado do projeto mcp_agentic_rag
Para mais projetos de IA, veja o [Daily Dose of Data Science](https://join.dailydoseofds.com)

---

## 🤝 Contribuições

Contribuições são bem-vindas! Faça um fork, crie um branch, adicione melhorias e envie um PR 🚀