内容
# Yandex Cloud MCP
非官方的MCP服务器,用于与Yandex Cloud API交互。
功能:
```
📋 列出您账户中的所有存储桶
📁 查看特定存储桶的内容
⬇️ 下载文件到本地文件夹
```
技术细节:
使用官方的AWS SDK(与Yandex Cloud兼容)
配置了Yandex Cloud的端点(https://storage.yandexcloud.net)
通过MCP协议支持所有主要操作
安全性:
访问密钥存储在环境变量中
可以通过服务账户配置访问权限
创建和配置此服务器后,Claude可以连接到您的Yandex Cloud存储桶,并帮助您进行数据分析、文件管理和其他任务!
## 步骤 1:创建项目
在终端中执行以下命令:
```
mkdir yandex-cloud-mcp
cd yandex-cloud-mcp
npm init -y
```
## 步骤 2:安装依赖项
主要依赖项
```
npm install @modelcontextprotocol/sdk @aws-sdk/client-s3 dotenv
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": {
"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=您的访问密钥ID
YANDEX_SECRET_ACCESS_KEY=您的秘密访问密钥
```
⚠️ 目前请保留占位符值 - 我们将在获取密钥后填写它们
## 步骤 6:主要代码
创建文件 src/index.ts 并将代码复制到其中(从 #!/usr/bin/env node 开始)
## 步骤 7:获取Yandex Cloud中的访问密钥
进入Yandex Cloud控制台:https://console.cloud.yandex.ru/
登录账户或创建新账户(如果没有)
创建或选择云目录(folder)
进入IAM:
在左侧菜单中找到“身份和访问管理”或“IAM”
选择“服务账户”
创建服务账户:
点击“创建服务账户”
输入名称(例如“mcp-s3-access”)
分配角色 storage.editor(完全访问权限)或 storage.viewer(仅读取权限)
点击“创建”
创建静态访问密钥:
打开创建的服务账户
进入“访问密钥”选项卡
点击“创建新密钥”→“静态访问密钥”
保存访问密钥ID和秘密访问密钥(它们只显示一次!)
## 步骤 8:更新 .env 文件
打开 .env 文件并用您的密钥替换占位符值:
```
YANDEX_ACCESS_KEY_ID=您的访问密钥ID
YANDEX_SECRET_ACCESS_KEY=您的秘密访问密钥
```
## 步骤 9:测试
尝试启动服务器:
```
npm run build
npm start
```
如果一切配置正确,应该会出现以下消息:
Yandex Cloud MCP 服务器已启动
## 步骤 10:连接到 Claude Desktop
1. 查找 Claude Desktop 配置文件
配置文件位于不同位置,具体取决于操作系统:
```
Windows:
%APPDATA%\Claude\claude_desktop_config.json
macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
Linux:
~/.config/Claude/claude_desktop_config.json
```
3. 创建或编辑配置文件
如果文件不存在 - 创建它。如果存在 - 添加您的服务器。
新的配置文件:
```
{
"mcpServers": {
"yandex-cloud": {
"command": "node",
"args": ["/完整/路径/到/您的/项目/yandex-cloud-mcp/dist/index.js"],
"env": {
"YANDEX_ACCESS_KEY_ID": "您的访问密钥ID",
"YANDEX_SECRET_ACCESS_KEY": "您的秘密访问密钥"
}
}
}
}
```
如果文件已存在,请在 mcpServers 部分中添加:
```
{
"mcpServers": {
"现有服务器": { ... },
"yandex-cloud": {
"command": "node",
"args": ["/完整/路径/到/您的/项目/yandex-cloud-mcp/dist/index.js"],
"env": {
"YANDEX_ACCESS_KEY_ID": "您的访问密钥ID",
"YANDEX_SECRET_ACCESS_KEY": "您的秘密访问密钥"
}
}
}
}
```
5. 获取项目完整路径
在终端中,位于 yandex-cloud-mcp 文件夹中:
```
Windows:
cmd
echo %cd%\dist\index.js
macOS/Linux:
bash
echo "$(pwd)/dist/index.js"
```
7. 重新启动 Claude Desktop
完全关闭并重新打开 Claude Desktop 应用程序。
8. 测试连接
重启后,在聊天中尝试:
你能显示我的 Yandex Cloud 存储桶吗?
如果一切配置正确,Claude 就可以使用工具来处理您的 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
```