Sakura Cloud MCP Server is a Model Context Protocol implementation that enables AI assistants to interact with Sakura Cloud infrastructure through a standardized interface. It allows AI systems to access and manage cloud resources including servers, disks, networks, and containerized applications via AppRun.
# Clone the repository
git clone https://github.com/hidenorigoto/sacloud-mcp.git
cd sacloud-mcp
# Install dependencies
npm install
# Build the project
npm run build
Set the following environment variables:
SACLOUD_API_TOKEN
: Your Sakura Cloud API tokenSACLOUD_API_SECRET
: Your Sakura Cloud API secretThe MCP server provides access to numerous Sakura Cloud resources through URIs:
sakura:///servers
- Lists all serverssakura:///switches
- Lists all switchessakura:///appliances
- Lists all appliancessakura:///disks
- Lists all diskssakura:///archives
- Lists all archivessakura:///cdrom
- Lists all ISO imagessakura:///bridge
- Lists all bridgessakura:///internet
- Lists all routerssakura:///interface
- Lists all network interfacessakura:///icon
- Lists all iconssakura:///note
- Lists all startup scripts and notessakura:///sshkey
- Lists all SSH keyssakura:///region
- Lists all regionssakura:///zone
- Lists all zonessakura:///product
- Lists all available productssakura:///commonserviceitem
- Lists all common service itemssakura:///license
- Lists all licensessakura:///auth-status
- Shows current authentication statussakura:///bill
- Shows monthly billing informationsakura:///bill-detail
- Shows detailed billing breakdownsakura:///coupon
- Lists all available couponssakura:///privatehost
- Lists all private hostssakura:///public-price
- Shows public pricing information (no auth required)sakura:///apprun
- Lists all AppRun applicationsThe server provides tools to interact with Sakura Cloud resources:
get_server_list
- Lists all serversget_server_info
- Details about a specific server (requires serverId
)get_switch_list
- Lists all switchesget_switch_info
- Details about a specific switch (requires switchId
)get_router_list
- Lists all routersget_router_info
- Details about a specific router (requires routerId
)get_interface_list
- Lists all network interfacesget_interface_info
- Details about a specific interface (requires interfaceId
)get_bridge_list
- Lists all bridgesget_bridge_info
- Details about a specific bridge (requires bridgeId
)get_disk_list
- Lists all disksget_disk_info
- Details about a specific disk (requires diskId
)get_archive_list
- Lists all archivesget_archive_info
- Details about a specific archive (requires archiveId
)get_cdrom_list
- Lists all ISO imagesget_cdrom_info
- Details about a specific ISO image (requires cdromId
)get_appliance_list
- Lists all appliancesget_appliance_info
- Details about a specific appliance (requires applianceId
)get_zone_list
- Lists all zonesget_zone_info
- Details about a specific zone (requires zoneId
)get_region_list
- Lists all regionsget_region_info
- Details about a specific region (requires regionId
)get_apprun_list
- Lists all AppRun applicationsget_apprun_info
- Details about a specific AppRun app (requires appId
)create_apprun
- Creates a new AppRun application (requires name
, dockerImage
, planId
)delete_apprun
- Deletes an AppRun application (requires appId
)start_apprun
- Starts an AppRun application (requires appId
)stop_apprun
- Stops an AppRun application (requires appId
)update_apprun
- Updates an existing AppRun application (requires appId
)get_apprun_logs
- Gets logs from an AppRun application (requires appId
)get_icon_list
- Lists all iconsget_icon_info
- Details about a specific icon (requires iconId
)get_note_list
- Lists all notes and startup scriptsget_note_info
- Details about a specific note (requires noteId
)get_sshkey_list
- Lists all SSH keysget_sshkey_info
- Details about a specific SSH key (requires sshkeyId
)get_product_info
- Details about product offerings (requires productType
)get_commonserviceitem_list
- Lists all common service itemsget_commonserviceitem_info
- Details about a specific service item (requires itemId
)get_license_list
- Lists all licensesget_license_info
- Details about a specific license (requires licenseId
)get_bill_info
- Billing information for a specific month (requires year
, month
)get_bill_detail
- Detailed billing for a specific month (requires year
, month
)get_coupon_info
- Information about a specific coupon (requires couponId
)get_privatehost_info
- Information about a private host (requires privateHostId
)get_public_price
- Public pricing information (no auth required)All API calls support specifying a zone parameter to target specific Sakura Cloud data centers:
tk1v
(Tokyo)is1a
(Ishikari), tk1a
(Tokyo), etc.Example URI with zone parameter: sakura:///servers?zone=is1a
This MCP server provides full AppRun container management:
When creating or updating an AppRun application, you can specify:
To use this server with Claude Desktop app:
Ensure the server is running locally or on an accessible host.
Create a claude_desktop_config.json
file in the appropriate location:
%APPDATA%\Claude\claude_desktop_config.json
~/Library/Application Support/Claude/claude_desktop_config.json
~/.config/Claude/claude_desktop_config.json
Add the following configuration:
{
"sacloud-server": {
"command": "node",
"args": ["path/to/mcp/dist/server.js"],
"env": {
"SACLOUD_API_TOKEN": "your_token_here",
"SACLOUD_API_SECRET": "your_secret_here"
}
}
}
Restart the Claude Desktop app to apply the configuration.
In your conversation with Claude, you can now access Sakura Cloud resources and tools.
There are two ways to add an MCP server to Cursor. The most common way is to add the server globally in the ~/.cursor/mcp.json
file so that it is available in all of your projects.
If you only need the server in a single project, you can add it to the project instead by creating or adding it to the .cursor/mcp.json
file.
To add a global MCP server go to Cursor Settings > MCP and click "Add new global MCP server".
When you click that button the ~/.cursor/mcp.json
file will be opened and you can add your server like this:
{
"mcpServers": {
"cursor-rules-mcp": {
"command": "npx",
"args": [
"-y",
"cursor-rules-mcp"
]
}
}
}
To add an MCP server to a project you can create a new .cursor/mcp.json
file or add it to the existing one. This will look exactly the same as the global MCP server example above.
Once the server is installed, you might need to head back to Settings > MCP and click the refresh button.
The Cursor agent will then be able to see the available tools the added MCP server has available and will call them when it needs to.
You can also explictly ask the agent to use the tool by mentioning the tool name and describing what the function does.