r2r-mcp

r2r-mcp

0

R2R MCP Server is a system designed to integrate Model Context Protocol with the R2R system, enhancing interactions with MCP-compatible models like Claude. It supports high-performance access to knowledge bases and features advanced search and response generation capabilities.

πŸš€ R2R MCP Server

Python MCP License UV

R2R MCP Server прСдоставляСт ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡŽ Model Context Protocol (MCP) с систСмой R2R (Retrieval-to-Response) для ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ взаимодСйствия с Claude ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ MCP-совмСстимыми модСлями, обСспСчивая доступ ΠΊ Π±Π°Π·Π°ΠΌ Π·Π½Π°Π½ΠΈΠΉ.

✨ ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ

  • πŸ”Œ MCP сСрвСр для ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ с Claude ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ MCP-совмСстимыми модСлями
  • ⚑ Асинхронный ΠΊΠ»ΠΈΠ΅Π½Ρ‚ R2R для Π²Ρ‹ΡΠΎΠΊΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ доступа ΠΊ Π±Π°Π·Π°ΠΌ Π·Π½Π°Π½ΠΈΠΉ
  • πŸ” Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ поиска ΠΈ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ² Π½Π° основС ΠΊΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…
  • πŸ“Š Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π»ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Loguru
  • πŸͺΆ ЛСгкая Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ зависимостями
  • πŸ’‘ Π Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Π΅ возмоТности RAG (Retrieval-Augmented Generation)
  • 🌐 ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π²Π΅Π±-поиска для получСния Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ
  • πŸ€– Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ исслСдования Ρ‡Π΅Ρ€Π΅Π· Π°Π³Π΅Π½Ρ‚Π° для слоТных запросов

πŸ—οΈ АрхитСктура

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ Π² соотвСтствии с ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°ΠΌΠΈ SOLID, DRY ΠΈ KISS:

  • Single Responsibility: ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ выполняСт ΠΎΠ΄Π½Ρƒ Π·Π°Π΄Π°Ρ‡Ρƒ
  • Open/Closed: ΠœΠΎΠ΄ΡƒΠ»ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ для Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ, Π½ΠΎ Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ для ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ
  • Liskov Substitution: ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ взаимозамСняСмы Ρ‡Π΅Ρ€Π΅Π· интСрфСйсы
  • Interface Segregation: API Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Ρ‹ ΠΏΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ
  • Dependency Inversion: Зависимости Π²Π½Π΅Π΄Ρ€ΡΡŽΡ‚ΡΡ, Π° Π½Π΅ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²

πŸ“ Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

r2r-mcp/
β”‚
β”œβ”€β”€ app/                    # πŸ“¦ Основной ΠΊΠΎΠ΄ прилоТСния
β”‚   └── server.py           # πŸ–₯️ Основной MCP сСрвСр
β”‚
β”œβ”€β”€ tests/                  # πŸ§ͺ ВСсты
β”‚   β”œβ”€β”€ test_r2r_mcp.py               # ΠœΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹Π΅ тСсты Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ
β”‚   β”œβ”€β”€ test_r2r_mcp_integration.py   # Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ тСсты с API
β”‚   β”œβ”€β”€ test_r2r_mcp_performance.py   # ВСсты ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ
β”‚   └── conftest.py                   # Настройки ΠΈ фикстуры для тСстов
β”‚
β”œβ”€β”€ docs/                   # πŸ“š ДокумСнтация
β”‚   └── ...
β”‚
β”œβ”€β”€ logs/                   # πŸ“ ДирСктория для Π»ΠΎΠ³ΠΎΠ²
β”‚   └── ...
β”‚
β”œβ”€β”€ .github/                # πŸ”„ GitHub конфигурация
β”‚   └── workflows/          # CI/CD workflows
β”‚       β”œβ”€β”€ test.yml        # ВСстированиС
β”‚       └── release.yml     # Π Π΅Π»ΠΈΠ·Ρ‹
β”‚
β”œβ”€β”€ .env.example            # πŸ”’ ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… окруТСния
β”œβ”€β”€ Makefile                # πŸ› οΈ ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ тСстирования
β”œβ”€β”€ pyproject.toml          # βš™οΈ ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ зависимостСй
β”œβ”€β”€ CONTRIBUTING.md         # οΏ½οΏ½ Руководство ΠΏΠΎ ΠΊΠΎΠ½Ρ‚Ρ€ΠΈΠ±ΡŒΡŽΡ‚ΠΈΠ½Π³Ρƒ
β”œβ”€β”€ README.md               # πŸ“„ ДокумСнтация ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°
└── .gitignore              # πŸ™ˆ Π˜Π³Π½ΠΎΡ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ Git

πŸ”§ Установка

ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ трСбования

  • 🐍 Python 3.12 ΠΈΠ»ΠΈ Π²Ρ‹ΡˆΠ΅
  • πŸ”„ uv (соврСмСнный Python package manager)
  • πŸ› οΈ make (ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ, для использования Makefile)

Установка зависимостСй

Π‘ использованиСм Makefile (рСкомСндуСтся) πŸ‘
# ΠšΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ рСпозитория
git clone https://github.com/eagurin/r2r-mcp.git
cd r2r-mcp

# Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ окруТСния
uv venv
source .venv/bin/activate  # Linux/macOS
# ΠΈΠ»ΠΈ .venv\Scripts\activate  # Windows

# Установка основных зависимостСй
make install

# Установка зависимостСй для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ
make install-dev
Π’Ρ€ΡƒΡ‡Π½ΡƒΡŽ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ uv πŸ”§
# Установка uv, Ссли Π½Π΅ установлСн
curl -LsSf https://astral.sh/uv/install.sh | sh

# ΠšΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ рСпозитория
git clone https://github.com/eagurin/r2r-mcp.git
cd r2r-mcp

# Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ окруТСния
uv venv
source .venv/bin/activate  # Linux/macOS
# ΠΈΠ»ΠΈ .venv\Scripts\activate  # Windows

# Установка основных зависимостСй
uv pip install mcp r2r loguru

# Или установка Ρ‡Π΅Ρ€Π΅Π· pyproject.toml
uv pip install .

# Установка с зависимостями для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ
uv pip install ".[dev]"

Установка ΠΊΠ°ΠΊ MCP-ΠΏΠ»Π°Π³ΠΈΠ½ πŸ”Œ

ПослС установки зависимостСй Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ сСрвСр ΠΊΠ°ΠΊ MCP-ΠΏΠ»Π°Π³ΠΈΠ½:

# Π›ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ R2R API
mcp install app/server.py -v R2R_API_URL=https://api.sciphi.ai

# ΠžΠ±Π»Π°Ρ‡Π½Ρ‹ΠΉ R2R API
mcp install app/server.py -v R2R_API_KEY=your_api_key_here

🧰 ДоступныС инструмСнты MCP

Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ΠžΠΏΠΈΡΠ°Π½ΠΈΠ΅Π‘Ρ‚Π°Ρ‚ΡƒΡ
searchПоиск Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ R2R, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π²Π΅ΠΊΡ‚ΠΎΡ€Π½Ρ‹ΠΉ ΠΈ Π³ΠΈΠ±Ρ€ΠΈΠ΄Π½Ρ‹ΠΉ ΠΏΠΎΠΈΡΠΊβœ…
ragΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΎΡ‚Π²Π΅Ρ‚Π° Π½Π° основС Π±Π°Π·Ρ‹ Π·Π½Π°Π½ΠΈΠΉ (RAG) с Ρ†ΠΈΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈΡΡ‚ΠΎΡ‡Π½ΠΈΠΊΠΎΠ²βœ…
web_searchПоиск Π² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅ Ρ‡Π΅Ρ€Π΅Π· R2R с Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌΠΈ ΠΈΠ· ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… ΠΈΡΡ‚ΠΎΡ‡Π½ΠΈΠΊΠΎΠ²βœ…
document_searchПоиск Π² ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ ΠΈΠ»ΠΈ ΠΏΠΎ всСй Π±Π°Π·Π΅ Π·Π½Π°Π½ΠΈΠΉβœ…
list_documentsБписок доступных Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π² Π±Π°Π·Π΅ Π·Π½Π°Π½ΠΈΠΉ с ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹ΠΌΠΈβœ…
agent_researchИсслСдованиС Ρ‡Π΅Ρ€Π΅Π· Π°Π³Π΅Π½Ρ‚Π° для слоТных запросов с использованиСм LLMβœ…

πŸ” Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ

Π’Π΅ΠΊΡ‚ΠΎΡ€Π½Ρ‹ΠΉ ΠΈ Π³ΠΈΠ±Ρ€ΠΈΠ΄Π½Ρ‹ΠΉ поиск πŸ”

БистСма ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ соврСмСнныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ поиска:

  • πŸ“Š Π’Π΅ΠΊΡ‚ΠΎΡ€Π½Ρ‹ΠΉ поиск ΠΏΠΎ сСмантичСской близости
  • πŸ“ ΠŸΠΎΠ»Π½ΠΎΡ‚Π΅ΠΊΡΡ‚ΠΎΠ²Ρ‹ΠΉ поиск для Ρ‚ΠΎΡ‡Π½Ρ‹Ρ… совпадСний
  • πŸ”„ Π“ΠΈΠ±Ρ€ΠΈΠ΄Π½Ρ‹ΠΉ поиск, ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ ΠΎΠ±Π° ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°

RAG (Retrieval-Augmented Generation) 🧠

ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ обоснованныС ΠΎΡ‚Π²Π΅Ρ‚Ρ‹ Π½Π° основС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²:

  • πŸ”Ž АвтоматичСский ΠΏΠΎΠ΄Π±ΠΎΡ€ Ρ€Π΅Π»Π΅Π²Π°Π½Ρ‚Π½Ρ‹Ρ… источников
  • πŸ“ƒ ГСнСрация связного ΠΎΡ‚Π²Π΅Ρ‚Π° с Ρ†ΠΈΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ
  • βš™οΈ НастраиваСмыС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ (Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π°, Π΄Π»ΠΈΠ½Π° ΠΎΡ‚Π²Π΅Ρ‚Π°)

АгСнтскиС исслСдования πŸ•΅οΈβ€β™‚οΈ

Для слоТных запросов доступСн Ρ€Π΅ΠΆΠΈΠΌ исслСдования с Π°Π³Π΅Π½Ρ‚ΠΎΠΌ:

  • πŸ”¬ Π“Π»ΡƒΠ±ΠΎΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ· Ρ‚Π΅ΠΌΡ‹ с использованиСм ΠΌΠΎΡ‰Π½Ρ‹Ρ… LLM-ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ
  • πŸ”— ΠšΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ€Π°Π·Π½Ρ‹Ρ… источников ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ
  • πŸ“Š Π€ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ обоснованных Π²Ρ‹Π²ΠΎΠ΄ΠΎΠ² ΠΈ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΉ

πŸ€– ИспользованиС с Claude

ПослС установки ΠΊΠ°ΠΊ MCP-ΠΏΠ»Π°Π³ΠΈΠ½Π°, Claude автоматичСски ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ доступ ΠΊ инструмСнтам R2R ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… для:

  1. πŸ” Поиска ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π² Π²Π°ΡˆΠΈΡ… Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ… ΠΈ получСния ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ² тСкста
  2. ❓ ΠžΡ‚Π²Π΅Ρ‚ΠΎΠ² Π½Π° вопросы с ΠΎΠΏΠΎΡ€ΠΎΠΉ Π½Π° Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· Π±Π°Π·Ρ‹ Π·Π½Π°Π½ΠΈΠΉ с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ источников
  3. πŸ“š ΠŸΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ исслСдования ΠΏΡƒΡ‚Π΅ΠΌ комбинирования Ρ€Π°Π·Π½Ρ‹Ρ… источников ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ
  4. 🌐 Поиска Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅ ΠΏΡ€ΠΈ нСобходимости

πŸ’‘ Claude автоматичСски Π²Ρ‹Π±Π΅Ρ€Π΅Ρ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ инструмСнт MCP ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ доступ ΠΊ вашим Π΄Π°Π½Π½Ρ‹ΠΌ Ρ‡Π΅Ρ€Π΅Π· R2R API.

πŸ‘¨β€πŸ’» Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°

ИспользованиС Makefile πŸ“‹

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Makefile для ΡƒΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ выполнСния Π·Π°Π΄Π°Ρ‡ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ:

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ список доступных ΠΊΠΎΠΌΠ°Π½Π΄ πŸ“œ

make help

Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ MCP сСрвСр локально πŸš€

make run

Запуск тСстов Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ πŸ§ͺ

# Установка зависимостСй для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ
make install-dev

# Запуск тСстов
make test

# Запуск с ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠΌ ΠΎ ΠΏΠΎΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ
make test-cov

Π€ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΊΠΎΠ΄Π° ✨

# Π€ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° ΠΈ сортировка ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΎΠ²
make format

# ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ‚ΠΈΠΏΠΎΠ²
make mypy

# ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° стиля ΠΊΠΎΠ΄Π°
make lint

# Запуск всСх ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ ΠΈ тСстов
make all

πŸ§ͺ ВСстированиС

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½ΡƒΡŽ систСму тСстирования:

ΠœΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹Π΅ тСсты (test_r2r_mcp.py) πŸ”¬

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‚ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ систСмы:

  • ВСсты Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ форматирования
  • ВСсты ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ сСрвСра
  • ВСсты инструмСнтов MCP
  • ВСсты взаимодСйствия с ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ R2R

Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ тСсты (test_r2r_mcp_integration.py) πŸ”„

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‚ взаимодСйствиС с Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌ API R2R:

  • ВСсты с Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ API-Π²Ρ‹Π·ΠΎΠ²Π°ΠΌΠΈ (Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ настройки R2R_API_URL ΠΈΠ»ΠΈ R2R_API_KEY)
  • ВСсты с ΠΌΠΎΠΊΠ°ΠΌΠΈ для ΠΈΠΌΠΈΡ‚Π°Ρ†ΠΈΠΈ API-Π²Ρ‹Π·ΠΎΠ²ΠΎΠ²
  • ΠŸΡ€ΠΎΠΏΡƒΡΠΊ тСстов ΠΏΡ€ΠΈ отсутствии настроСк API

ВСсты ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ (test_r2r_mcp_performance.py) ⚑

Π˜Π·ΠΌΠ΅Ρ€ΡΡŽΡ‚ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²:

  • ВСсты ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ форматирования Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ²
  • ВСсты скорости ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ инструмСнтов
  • Π‘Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠΈΠ½Π³ Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… Ρ€Π°Π·ΠΌΠ΅Ρ€Π°Ρ… Π΄Π°Π½Π½Ρ‹Ρ…

Запуск всСх ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ тСстов:

make test

πŸ‘₯ Contributing

ΠœΡ‹ привСтствуСм Π²ΠΊΠ»Π°Π΄ Π² Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°! ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π°Ρ информация доступна Π² .

ΠšΡ€Π°Ρ‚ΠΊΠΈΠ΅ шаги:

  1. 🍴 Π€ΠΎΡ€ΠΊΠ½ΠΈΡ‚Π΅ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ
  2. 🌱 Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π²Π΅Ρ‚ΠΊΡƒ для вашСй Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ (git checkout -b feature/amazing-feature)
  3. ✏️ ВнСситС измСнСния ΠΈ ΠΎΡ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠ΄ (make format)
  4. πŸ§ͺ ЗапуститС ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΈ тСсты (make all)
  5. πŸ“ Π‘Π΄Π΅Π»Π°ΠΉΡ‚Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚ (git commit -m 'Add amazing feature')
  6. πŸ“€ ΠžΡ‚ΠΏΡ€Π°Π²ΡŒΡ‚Π΅ измСнСния (git push origin feature/amazing-feature)
  7. πŸ”„ ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Pull Request

⚑ ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ для высокой ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ:

  • πŸ”„ АсинхронныС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ для ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ запросов
  • πŸ“Š Π­Ρ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² поиска
  • πŸ”„ ΠšΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² для ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ использования
  • πŸ“ˆ Π‘Ρ‚Ρ€ΠΎΠ³ΠΈΠ΅ тСсты ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ для контроля эффСктивности

πŸ”„ Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ MCP-совмСстимыми модСлями

R2R MCP Server ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π»ΡŽΠ±Ρ‹ΠΌΠΈ MCP-совмСстимыми модСлями, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ:

  • πŸ€– Claude (Ρ‡Π΅Ρ€Π΅Π· Claude.app ΠΈΠ»ΠΈ API)
  • πŸ”„ Π”Ρ€ΡƒΠ³ΠΈΠ΅ LLM-ΠΌΠΎΠ΄Π΅Π»ΠΈ с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ MCP
  • βš™οΈ ΠšΠ°ΡΡ‚ΠΎΠΌΠ½Ρ‹Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ MCP

πŸ“¦ Зависимости ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… зависимостСй ΠΈΠ· pyproject.toml:

Π—Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒΠ’Π΅Ρ€ΡΠΈΡΠ‘Ρ‚Π°Ρ‚ΡƒΡΠžΠΏΠΈΡΠ°Π½ΠΈΠ΅
mcp>=0.1.0βœ…Model Context Protocol для ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ с LLM
r2r>=0.1.0βœ…ΠšΠ»ΠΈΠ΅Π½Ρ‚ для R2R API
loguru>=0.7.0βœ…Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π»ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

Зависимости для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ

Π—Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒΠ’Π΅Ρ€ΡΠΈΡΠ‘Ρ‚Π°Ρ‚ΡƒΡΠžΠΏΠΈΡΠ°Π½ΠΈΠ΅
pytest>=8.0.0βœ…Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ для тСстирования
pytest-asyncio>=0.23.0βœ…ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° асинхронных тСстов
pytest-cov>=6.1.1βœ…ΠžΡ‚Ρ‡Π΅Ρ‚Ρ‹ ΠΎ ΠΏΠΎΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ ΠΊΠΎΠ΄Π° тСстами
black>=24.1.0βœ…Π€ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°
isort>=5.13.0βœ…Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΎΠ²
mypy>=1.8.0βœ…Π‘Ρ‚Π°Ρ‚ΠΈΡ‡Π΅ΡΠΊΠ°Ρ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ‚ΠΈΠΏΠΎΠ²
ruff>=0.2.0βœ…Π›ΠΈΠ½Ρ‚Π΅Ρ€ ΠΊΠΎΠ΄Π°
httpx>=0.26.0βœ…HTTP-ΠΊΠ»ΠΈΠ΅Π½Ρ‚ для тСстов

πŸ“š ΠŸΠΎΠ»Π΅Π·Π½Ρ‹Π΅ рСсурсы

πŸ“„ ЛицСнзия

MIT