hidenorigoto
服务介绍
Sakura Cloud MCP 服务器
这是一个用于与 Sakura Cloud API 交互的模型上下文协议 (MCP) 服务器实现。
什么是 MCP?
模型上下文协议 (MCP) 是一种标准化的通信协议,它使 AI 应用能够安全地与外部系统和数据源进行交互。它遵循客户端-服务器架构,其中 LLM 应用程序发起连接到暴露资源和工具的服务器。
概述
该项目实现了一个 MCP 服务器,允许 AI 助手通过标准化接口与 Sakura Cloud 基础设施进行交互。它使 AI 助手能够:
- 访问 Sakura Cloud 资源,如服务器、磁盘、网络等
- 使用工具列出资源并检索特定资源的详细信息
- 查询公共定价信息而无需认证要求
- 管理 AppRun 容器化应用程序
先决条件
- Node.js (v16 或更高版本)
- Sakura Cloud API 凭证(令牌和密钥)
- Claude Desktop 应用程序(目前仅支持在桌面应用中使用 MCP)
安装
bash
克隆仓库
git clone https://github.com/hidenorigoto/sacloud-mcp.git
cd sacloud-mcp
安装依赖
npm install
构建项目
npm run build
配置
设置以下环境变量:
SACLOUD_API_TOKEN: 您的 Sakura Cloud API 令牌SACLOUD_API_SECRET: 您的 Sakura Cloud API 密钥
使用
可用资源
| 资源 URI | 描述 |
|---|---|
sakura:///servers |
列出您 Sakura Cloud 账户中的所有服务器 |
sakura:///switches |
列出您 Sakura Cloud 账户中的所有交换机 |
sakura:///appliances |
列出您 Sakura Cloud 账户中的所有设备 |
sakura:///disks |
列出您 Sakura Cloud 账户中的所有磁盘 |
sakura:///archives |
列出您 Sakura Cloud 账户中的所有存档 |
sakura:///cdrom |
列出您 Sakura Cloud 账户中的所有 ISO 映像(CD-ROM) |
sakura:///bridge |
列出您 Sakura Cloud 账户中的所有桥接 |
sakura:///internet |
列出您 Sakura Cloud 账户中的所有路由器 |
sakura:///interface |
列出您 Sakura Cloud 账户中的所有网络接口 |
sakura:///icon |
列出您 Sakura Cloud 账户中的所有图标 |
sakura:///note |
列出您 Sakura Cloud 账户中的所有启动脚本和笔记 |
sakura:///sshkey |
列出您 Sakura Cloud 账户中的所有 SSH 密钥 |
sakura:///region |
列出您 Sakura Cloud 账户中的所有区域 |
sakura:///zone |
列出您 Sakura Cloud 账户中的所有可用区 |
sakura:///product |
列出您 Sakura Cloud 账户中的所有可用产品 |
sakura:///commonserviceitem |
列出您 Sakura Cloud 账户中的所有通用服务项(DNS、简单监控等) |
sakura:///license |
列出您 Sakura Cloud 账户中的所有许可证 |
sakura:///auth-status |
显示当前认证状态和权限 |
sakura:///bill |
显示月度账单信息 |
sakura:///bill-detail |
显示账单信息的详细分解 |
sakura:///coupon |
列出所有可用优惠券 |
sakura:///privatehost |
列出您 Sakura Cloud 账户中的所有私有主机 |
sakura:///public-price |
显示 Sakura Cloud 服务的公开价格信息(无需认证) |
sakura:///apprun |
列出您 Sakura Cloud 账户中的所有 AppRun 应用程序 |
可用工具
| 工具名称 | 描述 | 所需参数 |
|---|---|---|
get_server_list |
获取所有服务器列表 | 无 |
get_server_info |
获取特定服务器的详细信息 | serverId |
get_switch_list |
获取所有交换机列表 | 无 |
get_switch_info |
获取特定交换机的详细信息 | switchId |
get_appliance_list |
获取所有设备列表 | 无 |
get_disk_list |
获取所有磁盘列表 | 无 |
get_disk_info |
获取特定磁盘的详细信息 | diskId |
get_archive_list |
获取所有存档列表 | 无 |
get_archive_info |
获取特定存档的详细信息 | archiveId |
get_cdrom_list |
获取所有ISO镜像列表 | 无 |
get_cdrom_info |
获取特定ISO镜像的详细信息 | cdromId |
get_bridge_list |
获取所有网桥列表 | 无 |
get_bridge_info |
获取特定网桥的详细信息 | bridgeId |
get_router_list |
获取所有路由器列表 | 无 |
get_router_info |
获取特定路由器的详细信息 | routerId |
get_interface_list |
获取所有网络接口列表 | 无 |
get_interface_info |
获取特定网络接口的详细信息 | interfaceId |
get_icon_list |
获取所有图标列表 | 无 |
get_icon_info |
获取特定图标的详细信息 | iconId |
get_note_list |
获取所有笔记和启动脚本列表 | 无 |
get_note_info |
获取特定笔记或启动脚本的详细信息 | noteId |
get_sshkey_list |
获取所有SSH密钥列表 | 无 |
get_sshkey_info |
获取特定SSH密钥的详细信息 | sshkeyId |
get_region_list |
获取所有区域列表 | 无 |
get_region_info |
获取特定区域的详细信息 | regionId |
get_zone_list |
获取所有可用区列表 | 无 |
get_zone_info |
获取特定可用区的详细信息 | zoneId |
get_product_info |
获取特定产品提供的详细信息 | productType |
get_commonserviceitem_list |
获取所有通用服务项列表 | 无 |
get_commonserviceitem_info |
获取特定通用服务项的详细信息 | itemId |
get_license_list |
获取所有许可证列表 | 无 |
get_license_info |
获取特定许可证的详细信息 | licenseId |
get_bill_info |
获取特定月份的账单信息 | year, month |
get_bill_detail |
获取特定月份的详细账单信息 | year, month |
get_coupon_info |
获取特定优惠券的信息 | couponId |
get_privatehost_info |
获取特定私有主机的详细信息 | privateHostId |
get_public_price |
获取Sakura Cloud服务的公开价格信息 | 无 |
get_apprun_list |
获取所有AppRun应用程序列表 | 无 |
get_apprun_info |
获取特定AppRun应用程序的详细信息 | appId |
create_apprun |
创建新的AppRun应用程序 | name, dockerImage, planId |
delete_apprun |
删除AppRun应用程序 | appId |
start_apprun |
启动AppRun应用程序 | appId |
stop_apprun |
停止AppRun应用程序 | appId |
update_apprun |
更新现有的AppRun应用程序 | appId |
get_apprun_logs |
从AppRun应用程序获取日志 | appId |
AppRun集成
Sakura Cloud AppRun是一个容器化应用平台,允许您在不管理基础设施的情况下运行Docker容器。此MCP服务器提供了完整的AppRun管理功能:
- 查看所有您的AppRun应用程序
- 使用自定义Docker镜像创建新应用程序
- 更新现有应用程序(更改镜像、配置等)
- 启动和停止应用程序
- 查看应用程序日志
- 不再需要时删除应用程序
在创建或更新AppRun应用程序时,您可以指定:
- 应用程序名称和描述
- 要使用的Docker镜像
- 计划ID(确定分配的资源)- 环境变量作为键值对
区域支持
所有 API 调用都支持指定一个区域参数来针对特定的 Sakura Cloud 数据中心。默认区域是 tk1v(东京),但您也可以指定其他区域,例如:
is1a(石狩)tk1a(东京)- 以及更多...
带有区域参数的示例 URI:sakura:///servers?zone=is1a
与 Claude 集成
Claude 桌面应用程序提供了 MCP 支持。请按照以下步骤将此服务器与 Claude 集成:
-
确保服务器在本地运行或在可访问的主机上运行。
-
在适合您的操作系统的相应位置创建一个
claude_desktop_config.json文件:- Windows:
%APPDATA%Claudeclaude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
- Windows:
-
将以下配置添加到文件中:
json
{
"sacloud-server": {
"command": "node",
"args": ["path/to/mcp/dist/server.js"],
"env": {
"SACLOUD_API_TOKEN": "your_token_here",
"SACLOUD_API_SECRET": "your_secret_here"
}
}
}
-
重启 Claude 桌面应用程序以应用配置。
-
在与 Claude 的对话中,您现在可以访问 Sakura Cloud 资源和工具。
安全注意事项
- 此服务器处理敏感的 API 凭证
- 切勿将 API 令牌或密钥提交到版本控制系统
- 对所有敏感信息使用环境变量
- 在生产环境中实施适当的访问控制
许可证
ISC