Sakura Cloud MCP Server

Integrations

  • Enables management of Docker containers through the Sakura Cloud AppRun platform, allowing users to create, update, start, stop, and delete containerized applications with custom Docker images.

  • Uses Node.js as the runtime environment for the MCP server, with specific support for Node.js v16 or higher as a prerequisite for running the server.

Sakura Cloud MCP Server

A Model Context Protocol (MCP) server implementation for interacting with Sakura Cloud's API.

What is MCP?

The Model Context Protocol (MCP) is a standardized communication protocol that enables AI applications to securely interact with external systems and data sources. It follows a client-server architecture where LLM applications initiate connections to servers that expose resources and tools.

Overview

This project implements an MCP server that allows AI assistants to interact with Sakura Cloud infrastructure through a standardized interface. It enables AI assistants to:

  • Access Sakura Cloud resources like servers, disks, networks, and more
  • Use tools to list resources and retrieve detailed information about specific resources
  • Query public pricing information without authentication requirements
  • Manage AppRun containerized applications

Prerequisites

  • Node.js (v16 or higher)
  • Sakura Cloud API credentials (token and secret)
  • Claude Desktop app for using with Claude (MCP is currently only supported in the desktop app)

Installation

# 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

Configuration

Set the following environment variables:

  • SACLOUD_API_TOKEN: Your Sakura Cloud API token
  • SACLOUD_API_SECRET: Your Sakura Cloud API secret

Usage

Available Resources

Resource URIDescription
sakura:///serversLists all servers in your Sakura Cloud account
sakura:///switchesLists all switches in your Sakura Cloud account
sakura:///appliancesLists all appliances in your Sakura Cloud account
sakura:///disksLists all disks in your Sakura Cloud account
sakura:///archivesLists all archives in your Sakura Cloud account
sakura:///cdromLists all ISO images (CD-ROMs) in your Sakura Cloud account
sakura:///bridgeLists all bridges in your Sakura Cloud account
sakura:///internetLists all routers in your Sakura Cloud account
sakura:///interfaceLists all network interfaces in your Sakura Cloud account
sakura:///iconLists all icons in your Sakura Cloud account
sakura:///noteLists all startup scripts and notes in your Sakura Cloud account
sakura:///sshkeyLists all SSH keys in your Sakura Cloud account
sakura:///regionLists all regions in your Sakura Cloud account
sakura:///zoneLists all zones in your Sakura Cloud account
sakura:///productLists all available products in your Sakura Cloud account
sakura:///commonserviceitemLists all common service items (DNS, Simple Monitor, etc.) in your Sakura Cloud account
sakura:///licenseLists all licenses in your Sakura Cloud account
sakura:///auth-statusShows current authentication status and permissions
sakura:///billShows monthly billing information
sakura:///bill-detailShows detailed breakdown of billing information
sakura:///couponLists all available coupons
sakura:///privatehostLists all private hosts in your Sakura Cloud account
sakura:///public-priceShows public pricing information for Sakura Cloud services (no authentication required)
sakura:///apprunLists all AppRun applications in your Sakura Cloud account

Available Tools

Tool NameDescriptionRequired Parameters
get_server_listRetrieves list of all serversNone
get_server_infoRetrieves detailed information about a specific serverserverId
get_switch_listRetrieves list of all switchesNone
get_switch_infoRetrieves detailed information about a specific switchswitchId
get_appliance_listRetrieves list of all appliancesNone
get_appliance_infoRetrieves detailed information about a specific applianceapplianceId
get_disk_listRetrieves list of all disksNone
get_disk_infoRetrieves detailed information about a specific diskdiskId
get_archive_listRetrieves list of all archivesNone
get_archive_infoRetrieves detailed information about a specific archivearchiveId
get_cdrom_listRetrieves list of all ISO imagesNone
get_cdrom_infoRetrieves detailed information about a specific ISO imagecdromId
get_bridge_listRetrieves list of all bridgesNone
get_bridge_infoRetrieves detailed information about a specific bridgebridgeId
get_router_listRetrieves list of all routersNone
get_router_infoRetrieves detailed information about a specific routerrouterId
get_interface_listRetrieves list of all network interfacesNone
get_interface_infoRetrieves detailed information about a specific network interfaceinterfaceId
get_icon_listRetrieves list of all iconsNone
get_icon_infoRetrieves detailed information about a specific iconiconId
get_note_listRetrieves list of all notes and startup scriptsNone
get_note_infoRetrieves detailed information about a specific note or startup scriptnoteId
get_sshkey_listRetrieves list of all SSH keysNone
get_sshkey_infoRetrieves detailed information about a specific SSH keysshkeyId
get_region_listRetrieves list of all regionsNone
get_region_infoRetrieves detailed information about a specific regionregionId
get_zone_listRetrieves list of all zonesNone
get_zone_infoRetrieves detailed information about a specific zonezoneId
get_product_infoRetrieves detailed information about specific product offeringsproductType
get_commonserviceitem_listRetrieves list of all common service itemsNone
get_commonserviceitem_infoRetrieves detailed information about a specific common service itemitemId
get_license_listRetrieves list of all licensesNone
get_license_infoRetrieves detailed information about a specific licenselicenseId
get_bill_infoRetrieves billing information for a specific monthyear, month
get_bill_detailRetrieves detailed billing information for a specific monthyear, month
get_coupon_infoRetrieves information about a specific couponcouponId
get_privatehost_infoRetrieves detailed information about a specific private hostprivateHostId
get_public_priceRetrieves public pricing information for Sakura Cloud servicesNone
get_apprun_listRetrieves list of all AppRun applicationsNone
get_apprun_infoRetrieves detailed information about a specific AppRun applicationappId
create_apprunCreates a new AppRun applicationname, dockerImage, planId
delete_apprunDeletes an AppRun applicationappId
start_apprunStarts an AppRun applicationappId
stop_apprunStops an AppRun applicationappId
update_apprunUpdates an existing AppRun applicationappId
get_apprun_logsGets logs from an AppRun applicationappId

AppRun Integration

Sakura Cloud AppRun is a containerized application platform that allows you to run Docker containers without managing infrastructure. This MCP server provides full AppRun management capabilities:

  • View all your AppRun applications
  • Create new applications with custom Docker images
  • Update existing applications (change image, configuration, etc.)
  • Start and stop applications
  • View application logs
  • Delete applications when no longer needed

When creating or updating an AppRun application, you can specify:

  • Application name and description
  • Docker image to use
  • Plan ID (determines resources allocated)
  • Environment variables as key-value pairs

Zone Support

All API calls support specifying a zone parameter to target specific Sakura Cloud data centers. The default zone is tk1v (Tokyo), but you can specify others such as:

  • is1a (Ishikari)
  • tk1a (Tokyo)
  • And more...

Example URI with zone parameter: sakura:///servers?zone=is1a

Integrating with Claude

Claude Desktop app provides MCP support. Follow these steps to integrate this server with Claude:

  1. Make sure the server is running locally or on an accessible host.
  2. Create a claude_desktop_config.json file in the appropriate location for your OS:
    • Windows: %APPDATA%\Claude\claude_desktop_config.json
    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Linux: ~/.config/Claude/claude_desktop_config.json
  3. Add the following configuration to the file:
{ "sacloud-server": { "command": "node", "args": ["path/to/mcp/dist/server.js"], "env": { "SACLOUD_API_TOKEN": "your_token_here", "SACLOUD_API_SECRET": "your_secret_here" } } }
  1. Restart the Claude Desktop app to apply the configuration.
  2. In a conversation with Claude, you can now access Sakura Cloud resources and tools.

Security Considerations

  • This server handles sensitive API credentials
  • Never commit API tokens or secrets to version control
  • Use environment variables for all sensitive information
  • Implement proper access controls in production

License

ISC

You must be authenticated.

A
security – no known vulnerabilities
F
license - not found
A
quality - confirmed to work

An MCP server implementation that enables AI assistants to interact with and manage Sakura Cloud infrastructure, including servers, disks, networks, and containerized applications.

  1. What is MCP?
    1. Overview
      1. Prerequisites
        1. Installation
          1. Configuration
            1. Usage
              1. Available Resources
              2. Available Tools
            2. AppRun Integration
              1. Zone Support
                1. Integrating with Claude
                  1. Security Considerations
                    1. License
                      ID: vbob63j601