yandex-cloude-mcp
Неофициальный mcp сервер для взаимодействия с Yandex Cloude API.
Функциональность :
📋 Список всех bucket в вашем аккаунте 📁 Просмотр содержимого конкретного bucket ⬇️ Скачивание файлов в локаль папкую папку
Технические детали :
Использует официальный AWS SDK (совместим с Yandex Cloud) Настроен endpoint для Yandex Cloud(https://storage.yandexcloud.net) Подерживает все основные операции через MCP протокол
Безопасность :
Ключи доступа хранятся в переменных окужения Можно настроить права доступа через сервита через сервисные акаунты
После создания и настройки этого сервера, Claude сможет подключиться к вашим bucket в Yandex Cloud и помочь с анализом данных, управлением файлами и другими задачами !
Шаг 1 : Создание проекта
Le système d'information de l'Union européenne (UEI) a été mis en place :
mkdir yandex-cloud-mcp cd yandex-cloud-mcp npm init -y
Шаг 2 : Установка зависимостей
Основные зависимости
npm install @modelcontextprotocol/sdk @aws-sdk/client-s3 dotenv Dev зависимости для TypeScript npm install -D typescript @types/node ts-node nodemon
Шаг 3 : Создание структуры папок
mkdir src
Шаг 4 : Конфигурационые файлы
Tsconfig.json в корне проекта :
{"compilerOptions" : {"target" : "ES2020", "module" : "commonjs", "outDir" : "./dist", "rootDir" : "./src", "strict" : true, "esModuleInterop" : true, "skipLibCheck" : true, "forceConsistentCasingInFileNames" : true, "resolveJsonModule" : true }, "include" : ["src/**/*"], "exclude" : ["node_modules", "dist"] }
Обновите package.json, добавив scripts :
{ "scripts" : {"build" : "tsc", "start" : "node dist/index.js", "dev" : "ts-node src/index.ts", "watch" : "nodemon --exec ts-node src/index.ts" } }
Шаг 5 : Файл переменных окружения Создайте файл .env в корне проекта :
YANDEX_ACCESS_KEY_ID=votre_yandex_access_key_id_here YANDEX_SECRET_ACCESS_KEY=votre_yandex_secret_access_key_here
⚠️ Пока оставьте placeholder значения - мы заполним их после получения ключей Шаг 6 : Основной код Создайте файл src/index.ts и скопируйте туда весь код из артефакта (он так же называется index.ts) выше (начиная с #!/usr/bin/env node).
Шаг 7 : Получение ключей доступа в Yandex Cloud
Перейдите в консоль Yandex Cloud : https://console.cloud.yandex.ru/ Войдитев аккаунт или создайте новый, если его нет Создайте или выберите каталог (dossier) в ашем облаке Перейдите в IAM :
В левом меню найдите "Identity and Access Management" или "IAM" Выберите "Сервисные акаунты"
Создайте сервисный аккаунт :
Нажмите "Создать сервисный аккаунт" Введите имя (например, "mcp-s3-access") Назначьте роль storage.editor (для полного доступа) или storage.viewer (только чтение) Нажмите "Создать"
Создайте статический ключ доступа :
Созданный сервисный аккаунт Перейдите на вкладку "Ключи доступа" Нажмите "Создать новый" → "Создать" ключ" → "Статический ключ доступа" Сохраните Access Key ID и Secret Access Key (они показываются только один раз !)
Шаг 8 : Обновление .env файла Откройте файл .env и замените placeholder значения на ваши ключи :
YANDEX_ACCESS_KEY_ID=YCAJEваш_access_key_id_здесь YANDEX_SECRET_ACCESS_KEY=YCваш_очень_длиный_secret_key_здесь
Шаг 9 : Тестирование Попробуйте запустить сервер : bashnpm run build npm start Если все настроено правильно, должно появиться собщение : Yandex Cloud MCP сервер запущен
Шаг 10 : Подключение к Claude Desktop
- Claude Desktop Файл конфигурации находится в разных местах в зависимости от ОС :
Windows : %APPDATA%\Claudeclaude_desktop_config.json macOS : ~/Library/Application Support/Claude/claude_desktop_config.json Linux : ~/.config/Claude/claude_desktop_config.json
- Создайте или отредактируйте конфигурацию Если файл не существует - создайте его. Если существует - добавьте ваш сервер. Новый файл конфигурации :
{ "mcpServers" : {"yandex-cloud" : {"command" : "node", "args" : ["/полный/путь/к/вашему/проекту/yandex-cloud-mcp/dist/index.js"], "env" : {"YANDEX_ACCESS_KEY_ID" : "ваш_access_key_id", "YANDEX_SECRET_ACCESS_KEY" : "ваш_secret_access_key" } } } }
Если файл уже существует, добавьте в секцию mcpServers :
{ "mcpServers" : {"существующие-серверы" : { ... }, "yandex-cloud" : {"command" : "node", "args" : ["/полный/путь/к/вашему/проекту/yandex-cloud-mcp/dist/index.js"], "env" : {"YANDEX_ACCESS_KEY_ID" : "ваш_access_key_id", "YANDEX_SECRET_ACCESS_KEY" : "ваш_secret_access_key" } } } }
- Узнайте полный путь к проекту В терминале, находясь в папке yandex-cloud-mcp :
Windows : cmdecho %cd%\distindex.js macOS/Linux : bashecho "$(pwd)/dist/index.js"
- Перезапустите Claude Desktop Полностью закройте и снова откройте приложение Claude Desktop.
- Проверьте подключение После перезапуска попробуйте написать в чате : Можешь показать мои bucket в Yandex Cloud ? Yandex Cloud ! Замено /полный/путь/кашему/покту/ на реальный путь к вашей папке проекта.
Пояснения по шагам :
Шаг 4 :
Создание tsconfig.json
(например, VS Code, Notepad++, или любой другой) Создайте новый файл в корневой папке yandex-cloud-mcp (там же где package.json) Назовите файл tsconfig.json (важно : именно это имя, с расширением .json) Скопируйте и вставьте этот код :
{"compilerOptions" : {"target" : "ES2020", "module" : "commonjs", "outDir" : "./dist", "rootDir" : "./src", "strict" : true, "esModuleInterop" : true, "skipLibCheck" : true, "forceConsistentCasingInFileNames" : true, "resolveJsonModule" : true }, "include" : ["src/**/*"], "exclude" : ["node_modules", "dist"] }
Сохраните файл
Обновление package.json
Откройте файл package.json (он уже существует после npm init -y) Найдите секцию "scripts" (она может выглядеть примерно так) :
"scripts" : {"test" : "echo \"Error : no test specified\" && exit 1" }
Замените её на :
"scripts" : {"build" : "tsc", "start" : "node dist/index.js", "dev" : "ts-node src/index.ts", "watch" : "nodemon --exec ts-node src/index.ts", "test" : "echo \"Error : no test specified\" && exit 1" }
Сохраните файл
Альтернативный способ (через терминал) Если предпочитаете командную строку :
Создание tsconfig.json
cat > tsconfig.json << 'EOF' { "compilerOptions" : {"target" : "ES2020", "module" : "commonjs", "outDir" : "./dist", "rootDir" : "./src", "strict" : true, "esModuleInterop" : true, "skipLibCheck" : true, "forceConsistentCasingInFileNames" : true, "resolveJsonModule" : true }, "include" : ["src/**/*"], "exclude" : ["node_modules", "dist"] } EOF
Проверка После выполнения у вас должна быть такая структура :
yandex-cloud-mcp/ ├── node_modules/ ├── src/ ├── package.json ├── package-lock.json └── tsconfig.json