Agentic RAG Assistant
Agentic RAG Assistant с FastAPI + MCP
Ассистент для внутренней документации, объединяющий четыре вещи, которые рекрутеры сейчас проверяют у кандидатов:
Agentic AI — цикл использования инструментов, где LLM сама решает: искать ли в базе знаний, выполнить ли расчёт или ответить напрямую.
FastAPI — чистый REST-бэкенд (
/ingest,/query,/agent/chat) с автоматически сгенерированной Swagger-документацией.RAG — документы разбиваются на чанки, индексируются и извлекаются по семантической релевантности перед тем, как LLM даёт ответ.
MCP (Model Context Protocol) — те же инструменты (RAG-поиск + бизнес-логика) доступны как MCP-сервер, чтобы любой MCP-совместимый клиент (Claude Desktop, Claude Code и т.д.) мог использовать их напрямую, а не только через этот API.
Архитектура
┌────────────────────┐
│ FastAPI Service │
│ (app/main.py) │
└─────────┬───────────┘
│
┌─────────▼───────────┐
│ Agent Loop │◄──── Groq API (tool use)
│ (app/agent.py) │
└─────────┬───────────┘
│ calls
┌─────────────┼──────────────┐
▼ ▼
┌────────────────┐ ┌──────────────────┐
│ RAG Engine │ │ Business Tools │
│ (app/rag.py) │ │ (app/tools.py) │
└────────────────┘ └──────────────────┘
▲ ▲
└─────────────┬───────────────┘
│ same tools, exposed via
┌──────────▼───────────┐
│ MCP Server │
│ (app/mcp_server.py) │
└────────────────────────┘Установка
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
cp .env.example .env # add your GROQ_API_KEYЗапуск API
uvicorn app.main:app --reload --port 8000Откройте http://localhost:8000/docs для интерактивной Swagger-документации.
Попробуйте
# Pure retrieval, no LLM call
curl -X POST http://localhost:8000/query \
-H "Content-Type: application/json" \
-d '{"query": "how many days of leave do I get?"}'
# Full agentic chat — LLM decides which tool(s) to call
curl -X POST http://localhost:8000/agent/chat \
-H "Content-Type: application/json" \
-d '{"message": "I joined in March and have taken 4 days off. How much leave do I have left, and what is the WFH policy?"}'Второй вызов демонстрирует многоинструментальное рассуждение: модель вызывает rag_search для политики удалённой работы И calculate_leave_balance для расчёта — в одном диалоге.
Запуск как MCP-сервер
python -m app.mcp_serverУкажите любой MCP-хост на этот скрипт через stdio (например, добавьте его в claude_desktop_config.json в Claude Desktop как кастомный MCP-сервер), и он откроет rag_search, get_current_datetime и calculate_leave_balance как вызываемые инструменты.
Что рассказать о проекте на собеседовании
Почему TF-IDF вместо эмбеддингов по умолчанию: демо остаётся запускаемым без API-ключей и без внешних загрузок; класс
VectorStoreнаписан так, что замена на FAISS/Chroma + настоящие эмбеддинги — это точечное изменение, а не переписывание.Почему инструменты живут в одном файле (
tools.py) и подключаются дважды (agent.pyиmcp_server.py): единый источник правды, без дублирования логики между HTTP-путём и MCP-путём.Цикл агента — это ручная реализация паттерна использования инструментов (а не чёрный ящик-фреймворк), поэтому можно объяснить каждый шаг: модель запрашивает инструмент → сервер выполняет его → результат возвращается → модель продолжает или отвечает.
Возможные расширения (хорошие ответы на «что бы вы улучшили»)
Заменить TF-IDF на настоящие эмбеддинги (OpenAI/Voyage/локальные sentence-transformers) + постоянную векторную БД.
Добавить память диалога между ходами (сейчас каждый вызов
/agent/chatне сохраняет состояние).Добавить стриминг ответов через Server-Sent Events.
Добавить аутентификацию (API-ключ или JWT) перед публичным развёртыванием.
Контейнеризировать с Docker + docker-compose для запуска одной командой.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Agentic search over your Dewey document collections from any MCP-compatible client.
Agent-native MCP server over the public saagarpatel.dev corpus. Read-only, stateless.
MCP server exposing the Backtest360 engine API as tools for AI agents.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/snehaharurkar/agentic-rag-mcp-assistant'
If you have feedback or need assistance with the MCP directory API, please join our Discord server