Skip to main content
Glama
hidenorigoto

Sakura Cloud MCP Server

by hidenorigoto

delete_apprun

Remove AppRun applications from Sakura Cloud infrastructure by specifying the application ID and zone to manage containerized resources.

Instructions

Delete an AppRun application

Input Schema

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

Implementation Reference

  • The core handler logic for executing the 'delete_apprun' tool. It validates credentials, extracts the appId from input arguments, makes a DELETE request to the Sakura Cloud AppRun API endpoint `/applications/${appId}` using the fetchFromAppRunAPI helper, and returns the API response as JSON text.
    } else if (request.params.name === 'delete_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 deleteResult = await fetchFromAppRunAPI(`/applications/${appId}`, 'DELETE'); return { content: [ { type: 'text', text: JSON.stringify(deleteResult, null, 2) } ] }; } catch (error) { console.error('Error calling tool:', error); throw error; }
  • Registration of the 'delete_apprun' tool in the ListToolsRequestSchema handler, including its name, description, and input schema definition.
    name: 'delete_apprun', description: 'Delete an AppRun application', inputSchema: { type: 'object', properties: { appId: { type: 'string', description: 'The ID of the AppRun application to delete' }, zone: { type: 'string', description: 'The zone to use (e.g., "tk1v", "is1a", "tk1a"). Defaults to "tk1v" if not specified.' } }, required: ['appId'] } },
  • Input schema definition for the 'delete_apprun' tool, specifying required appId (string) and optional zone (string).
    inputSchema: { type: 'object', properties: { appId: { type: 'string', description: 'The ID of the AppRun application to delete' }, 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 delete_apprun handler to make authenticated HTTPS DELETE 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(); }); }
  • Helper function validateCredentials called by the handler to ensure API tokens are set before making requests.
    function validateCredentials(): void { if (!SACLOUD_API_TOKEN || !SACLOUD_API_SECRET) { throw new Error('Missing API credentials. Set SACLOUD_API_TOKEN and SACLOUD_API_SECRET environment variables.'); } }

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