mcpRAG
# Below are useful info to host this Agentic RAG app using MCP
## Step 1: Start the Qdrant container
Start the QDrant container
```
docker run -p 6333:6333 -p 6334:6334 -v qdrant_storage:/qdrant/storage:z qdrant/qdrant
```
## Step 2: Set up Bright data account.
Open a free account in [brightdata](https://brightdata.com/) and setup a user-email and password. You will need this inside the `server2.py`.
## Step 3: Start the MCP server.
Clone the repo and open it in cursor IDE. Then go to settings > Cursor settings > MCP Servers. Click on 'Add new MCP server' and add the following code (assuming you have no other server running) to mcp.json.
__To know the location of 'uv'__
- For Mac / Linux: Use `which uv` or `where uv`
- For windows: It is usually present in `%USERPROFILE%/.local/bin/uv`, where `%USERPROFILE%` resolves to something like `c:\Users\username`.
```json
{
"mcpServers": {
"mcpRAG": {
"command": "path/to/uv",
"args": [
"--directory",
"absolute/path/to/projectdir",
"run",
"server2.py"
]
}
}
}
```
It should show the status in green and display the tools: `f1_faq_search_tool` and `bright_data_web_search_tool`.
You can now open the chat in cursor (Ctrl + L) and ask questions.
---
## How to test your RAG app with MCP
### Prerequisites
1. **Qdrant** – Start the container (Step 1 above).
2. **F1 FAQ collection** – Create it once by running the notebook `rag2.ipynb` (run the cell that creates `f1_faq_collection` and stores embeddings), or run the test script below.
3. **MCP server** – Add the server in Cursor settings (Step 3 above) and ensure it shows **green** status with tools `faq_retrieval_tool` and `bright_data_web_search_tool`.
### Test 1: In Cursor chat (recommended)
1. Open Cursor chat: **Ctrl + L** (or Cmd + L on Mac).
2. Ask an F1 question, e.g.:
- *"Who governs F1 racing?"*
- *"What is the halo device?"*
- *"How many points for winning an F1 race?"*
3. The AI will use `faq_retrieval_tool` to get context from your RAG and answer. For non‑F1 topics it may use `bright_data_web_search_tool` (requires Bright Data credentials in `.env`).
### Test 2: Local script (no Cursor)
From the project directory run:
```bash
uv run test_rag_mcp.py
```
This creates `f1_faq_collection` if needed, then runs a sample FAQ query and prints the retrieved context so you can verify the RAG pipeline without opening Cursor.
TDQS
Scored across 2 tools
The two tools have clearly distinct purposes: one retrieves from a specific FAQ collection, the other performs general web searches. There is no functional overlap, and each tool's description directs usage to its intended context.
Both tools use the same naming pattern: a descriptive source/domain prefix combined with the action and the suffix '_tool', all in snake_case. This is consistent and predictable.
With only 2 tools, the server feels thin for a general RAG use case. The count is borderline—not excessive, but the minimal surface may leave agents wanting more specialized retrieval options.
The server only provides retrieval operations, with no tools for managing or updating the FAQ collection or ingesting new documents. This is a significant gap for a complete RAG workflow, potentially causing agent failures when asked to perform any write or update operation.