Skip to main content
Glama
hidenorigoto

Sakura Cloud MCP Server

by hidenorigoto

start_apprun

Start a containerized application on Sakura Cloud by providing the application ID and optional zone. Use this tool to launch AppRun applications for deployment or testing.

Instructions

Start an AppRun application

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
appIdYesThe ID of the AppRun application to start
zoneNoThe zone to use (e.g., "tk1v", "is1a", "tk1a"). Defaults to "tk1v" if not specified.

Implementation Reference

  • Handler for the 'start_apprun' tool. Extracts appId and optional zone from arguments, validates credentials, calls the AppRun API via POST to /applications/{appId}/start, and returns the result as JSON text.
    } else if (request.params.name === 'start_apprun') { try { validateCredentials(); const appId = request.params.arguments?.appId as string; if (!appId) { throw new Error('AppRun application ID is required'); } const zone = request.params.arguments?.zone as string || DEFAULT_ZONE; const startResult = await fetchFromAppRunAPI(`/applications/${appId}/start`, 'POST'); return { content: [ { type: 'text', text: JSON.stringify(startResult, null, 2) } ] }; } catch (error) { console.error('Error calling tool:', error); throw error; }
  • Registration of the 'start_apprun' tool in the ListToolsRequestSchema handler, including name, description, and input schema definition.
    name: 'start_apprun', description: 'Start an AppRun application', inputSchema: { type: 'object', properties: { appId: { type: 'string', description: 'The ID of the AppRun application to start' }, zone: { type: 'string', description: 'The zone to use (e.g., "tk1v", "is1a", "tk1a"). Defaults to "tk1v" if not specified.' } }, required: ['appId'] } },
  • Helper function fetchFromAppRunAPI used by the start_apprun handler to make authenticated HTTPS POST requests to the Sakura Cloud AppRun API.
    async function fetchFromAppRunAPI(path: string, method: string = 'GET', bodyData?: any): Promise<any> { return new Promise((resolve, reject) => { validateCredentials(); const options = { hostname: 'secure.sakura.ad.jp', port: 443, path: `/cloud/api/apprun/1.0/apprun/api${path}`, method: method, headers: { 'Accept': 'application/json', 'Content-Type': 'application/json', 'Authorization': `Basic ${Buffer.from(`${SACLOUD_API_TOKEN}:${SACLOUD_API_SECRET}`).toString('base64')}` } }; const req = https.request(options, (res) => { let data = ''; res.on('data', (chunk) => { data += chunk; }); res.on('end', () => { try { if (data) { const parsedData = JSON.parse(data); resolve(parsedData); } else { resolve({}); } } catch (err) { reject(new Error(`Failed to parse response: ${err}`)); } }); }); req.on('error', (error) => { reject(error); }); if (bodyData && (method === 'POST' || method === 'PUT')) { req.write(JSON.stringify(bodyData)); } req.end(); }); }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/hidenorigoto/sacloud-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server