R2R FastMCP Server
# R2R FastMCP Server
MCP-сервер для интеграции R2R (Retrieval-Augmented Generation) с Claude Desktop.
**Доступные реализации:**
- `server.py` — Кастомный MCP сервер с 5 специализированными инструментами (search, rag, advanced_search, graph_search, advanced_rag)
- `r2r_openapi_server.py` — Автогенерация из OpenAPI спецификации R2R (полный доступ ко всем R2R API эндпоинтам)
## Быстрый старт
```bash
# Установка зависимостей через uv
make install
# Настройка окружения
cp .env.example .env
# Отредактируй .env с твоими настройками
# Проверка кода
make lint
# Запуск сервера
make run
```
> **Примечание:** Проект использует `uv` для управления зависимостями. Убедись, что uv установлен: `curl -LsSf https://astral.sh/uv/install.sh | sh`
## Установка в Claude Desktop
**Кастомный сервер (5 инструментов):**
```bash
# Если возникает ошибка с typer, сначала обнови зависимости:
# pip install --upgrade 'mcp[cli]'
mcp install server.py -v R2R_BASE_URL=http://localhost:7272
```
**OpenAPI сервер (полный R2R API):**
```bash
# Локальная разработка (stdio)
python r2r_openapi_server.py
# Production деплой (HTTP)
uvicorn r2r_openapi_server:app --host 0.0.0.0 --port 8000
# Claude Desktop установка
mcp install r2r_openapi_server.py -v R2R_BASE_URL=http://localhost:7272
```
## Доступные инструменты
- `search` — поиск по базе знаний R2R (vector, graph, web, document)
- `rag` — RAG-запрос с генерацией ответа
## Тестирование с GUI
Для визуального тестирования инструментов используй **MCP Inspector**:
```bash
# Запуск Inspector с веб-интерфейсом
make run-inspector
```
Откроется браузер на `http://localhost:5173` с GUI для:
- Просмотра всех 114 инструментов из R2R API
- Вызова инструментов с параметрами
- Просмотра результатов и логов в реальном времени
## Команды разработки
```bash
# Установка и управление
make help # Список всех команд
make install # Установка зависимостей
# Проверка кода
make lint # Проверка кода (format + typecheck)
make fix # Автоматическое исправление
# Запуск серверов
make run # Запуск custom MCP server (server.py)
make run-openapi # Запуск OpenAPI MCP server (stdio режим)
make run-http # Запуск OpenAPI MCP server (HTTP режим на :8000)
make run-gemini # Запуск Gemini интеграции (интерактивный)
make run-inspector # Запуск MCP Inspector (GUI для тестирования)
# Утилиты
make clean # Очистка кэша
```
## Требования
- Python 3.12+
- uv 0.6+ ([инструкция по установке](https://docs.astral.sh/uv/getting-started/installation/))
- R2R instance (запущенный сервер)
## Документация
Полная документация находится в [CLAUDE.md](./CLAUDE.md)
TDQS
Scored across 2 tools
The two tools have significant functional overlap and ambiguous boundaries. Both 'rag' and 'search' perform retrieval from the knowledge base with nearly identical search parameters and presets, differing mainly in that 'rag' includes LLM generation while 'search' returns raw results. This overlap could easily cause misselection, as agents might struggle to choose between them for retrieval-focused tasks.
Tool names follow a perfectly consistent pattern with simple, descriptive verbs ('rag' and 'search') in lowercase. Both names clearly indicate their primary function without mixing conventions, making them predictable and easy to understand within the server's scope.
With only 2 tools, the server feels severely under-scoped for a RAG/knowledge base system. While the tools are feature-rich individually, the set lacks basic operations like knowledge base management (e.g., add/remove documents), configuration updates, or status checks. This minimal count limits agent workflows and suggests an incomplete surface.
The tool surface has significant gaps for a RAG server. There are no tools for managing the knowledge base (ingesting, updating, or deleting documents), monitoring system status, or configuring core settings. While 'rag' and 'search' cover querying comprehensively, the absence of management operations creates dead ends for agents needing to interact with the underlying data.