Skip to main content
Glama
yermidi-bot

Yandex.Disk MCP Server

by yermidi-bot
README.md
# Yandex.Disk MCP Server

MCP (Model Context Protocol) сервер для интеграции с Яндекс.Диском.

## Возможности

✅ **Просмотр файлов** - список файлов и папок  
✅ **Загрузка файлов** - upload на Яндекс.Диск  
✅ **Скачивание файлов** - download с ��ндекс.Диска  
✅ **Создание файлов** - создание новых файлов  
✅ **Создание папок** - создание новых директорий  
❌ **Запрет на редактирование** - нельзя менять существующие файлы

## Установка

### 1. Клонируйте репозиторий

```bash
git clone https://github.com/yermidi-bot/yandex-disk-mcp.git
cd yandex-disk-mcp
```

### 2. Создайте виртуальное окружение

```bash
python3 -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
```

### 3. Установите зависимости

```bash
pip install -r requirements.txt
```

### 4. Получите OAuth токен Яндекса

1. Перейдите на https://oauth.yandex.ru/
2. Создайте новое приложение с доступом к Яндекс.Диску
3. Получите `access_token`

### 5. Настройте переменные окружения

```bash
cp .env.example .env
# Отредактируйте .env и добавьте ваш YANDEX_OAUTH_TOKEN
```

## Использование

### Запуск сервера

```bash
python yandex_disk_mcp.py
```

### Доступные команды (Tools)

#### 1. list_files
Просмотреть файлы и папки
```json
{
  "path": "/"
}
```

#### 2. get_file_info
Получить информацию о файле
```json
{
  "path": "/path/to/file.txt"
}
```

#### 3. upload_file
Загрузить файл на Яндекс.Диск
```json
{
  "local_path": "/local/path/file.txt",
  "disk_path": "/file.txt"
}
```

#### 4. download_file
Скачать файл с Яндекс.Диска
```json
{
  "disk_path": "/file.txt",
  "local_path": "/local/path/file.txt"
}
```

#### 5. create_file
Создать новый файл
```json
{
  "disk_path": "/new_file.txt",
  "content": "Hello, World!"
}
```

#### 6. create_directory
Создать новую папку
```json
{
  "disk_path": "/new_folder"
}
```

## Получение OAuth токена

### Способ 1: Через браузер

1. Откройте URL (замените `YOUR_CLIENT_ID`):
```
https://oauth.yandex.ru/authorize?client_id=YOUR_CLIENT_ID&response_type=code
```

2. Авторизуйтесь в аккаунте Яндекса
3. Разрешите доступ к приложению
4. Получите `code` из URL перенаправления

5. Обменяйте код на токен:
```bash
curl -X POST "https://oauth.yandex.ru/token" \
  -d "grant_type=authorization_code&code=YOUR_CODE&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET"
```

### Способ 2: Быстрый способ (для тестирования)

Используйте Яндекс.Диск веб-интерфейс для получения токена через приложение.

## Безопасность

- Никогда не коммитьте `.env` файл с токенами
- Используйте `YANDEX_OAUTH_TOKEN` только в защищённой среде
- Регулярно обновляйте токены

## Ограничения

- **Запрет на редактирование** существующих файлов (защита от случайных изменений)
- Максимальный размер файла: зависит от плана Яндекс.Диска
- API rate limit: см. документацию Яндекса

## Документация

- [Яндекс.Диск API](https://yandex.ru/dev/disk/poligon/)
- [MCP Protocol](https://modelcontextprotocol.io/)

## Лицензия

MIT

## Автор

yermidi-bot

---

**Вопросы?** Создайте issue в репозитории!