这是与Sakura Cloud API交互的模型上下文协议(MCP)服务器实现。
模型上下文协议(MCP)是一种标准化通信协议,使AI应用程序能够安全地与外部系统和数据源进行交互。它遵循客户端-服务器架构,其中LLM应用程序发起连接到暴露资源和工具的服务器。
该项目实现了MCP服务器,允许AI助手通过标准化接口与Sakura Cloud基础设施进行交互。它使AI助手能够:
# 克隆仓库
git clone https://github.com/hidenorigoto/sacloud-mcp.git
cd sacloud-m
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_appliance_info | 获取特定设备的详细信息 | applianceId |
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 |
Sakura Cloud AppRun是一个容器化应用程序平台,允许您运行Docker容器而不必管理基础设施。此MCP服务器提供了完整的AppRun管理功能:
在创建或更新AppRun应用程序时,您可以指定:
所有API调用都支持指定区域参数以针对特定的Sakura Cloud数据中心。默认区域是tk1v(东京),但您可以指定其他区域,例如:
is1a(石狩)tk1a(东京)带有区域参数的示例URI:sakura:///servers?zone=is1a
Claude桌面应用提供MCP支持。按照以下步骤将此服务器与Claude集成:
确保服务器在本地或可访问的主机上运行。
在适当的位置为您的操作系统创建一个claude_desktop_config.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资源和工具。
ISC