Skip to main content
Glama
hidenorigoto

Sakura Cloud MCP Server

by hidenorigoto

get_cdrom_list

Retrieve a list of ISO images available on the Sakura Cloud MCP Server to manage and interact with infrastructure resources effectively.

Instructions

Get list of ISO images

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Implementation Reference

  • Handler implementation for the 'get_cdrom_list' tool. Validates credentials and fetches the list of ISO images (CD-ROMs) from the Sakura Cloud API endpoint '/cdrom' using the fetchFromSakuraCloud helper, returning JSON-formatted response.
    } else if (request.params.name === 'get_cdrom_list') { try { validateCredentials(); const cdromList = await fetchFromSakuraCloud(`/cdrom`); return { content: [ { type: 'text', text: JSON.stringify(cdromList, null, 2) } ] }; } catch (error) { console.error('Error calling tool:', error); throw error; }
  • Input schema for the 'get_cdrom_list' tool, defining an empty object (no parameters required).
    inputSchema: { type: 'object', properties: { }, }
  • src/server.ts:885-893 (registration)
    Tool registration entry in ListToolsRequestSchema handler, specifying name, description, and input schema for 'get_cdrom_list'.
    { name: 'get_cdrom_list', description: 'Get list of ISO images', inputSchema: { type: 'object', properties: { }, } },
  • Helper function fetchFromSakuraCloud used by the get_cdrom_list handler to make authenticated HTTPS requests to Sakura Cloud API endpoints.
    async function fetchFromSakuraCloud(path: string, isPublicAPI: boolean = false, zone: string = DEFAULT_ZONE, method: string = 'GET', bodyData?: any): Promise<any> { return new Promise((resolve, reject) => { const basePath = isPublicAPI ? '/cloud/api/cloud/1.1' : `/cloud/zone/${zone}/api/cloud/1.1`; const options = { hostname: 'secure.sakura.ad.jp', port: 443, path: `${basePath}${path}`, method: method, headers: { 'Accept': 'application/json', 'Authorization': '', 'Content-Type': 'application/json' } }; // Add authorization for non-public APIs if (!isPublicAPI) { options.headers['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