vpc_list_volumes
List block storage volumes in IBM Cloud VPC, with optional filters by region, zone, or limit.
Instructions
List block storage volumes
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| zone_name | No | ||
| region | No |
Implementation Reference
- src/tools/vpc/index.ts:92-94 (registration)Registration of the vpc_list_volumes tool via server.tool() with schema and handler.
server.tool("vpc_list_volumes", "List block storage volumes", { limit: z.number().optional(), zone_name: z.string().optional(), region: z.string().optional(), }, async (p) => safeTool(() => client.get(vpcUrl(p.region||r, "/volumes"), {limit:p.limit,"zone.name":p.zone_name}))); - src/tools/vpc/index.ts:93-93 (schema)Input schema: optional 'limit' (number), 'zone_name' (string), and 'region' (string).
limit: z.number().optional(), zone_name: z.string().optional(), region: z.string().optional(), - src/tools/vpc/index.ts:94-94 (handler)Handler: async lambda that calls client.get() on the VPC volumes API endpoint, passing limit and zone.name query params. Wrapped in safeTool for error handling.
}, async (p) => safeTool(() => client.get(vpcUrl(p.region||r, "/volumes"), {limit:p.limit,"zone.name":p.zone_name}))); - src/lib/utils.ts:23-27 (helper)The vpcUrl helper builds the full VPC API URL with region, path, version and generation query parameters.
export function vpcUrl(region: string, path: string, version: string = "2024-11-19"): string { const base = `https://${region}.iaas.cloud.ibm.com/v1${path}`; const sep = base.includes("?") ? "&" : "?"; return `${base}${sep}version=${version}&generation=2`; } - src/lib/utils.ts:70-77 (helper)The safeTool helper wraps the handler to catch errors and return structured MCP success/error responses.
export async function safeTool<T>(fn: () => Promise<T>): Promise<ReturnType<typeof successContent> | ReturnType<typeof errorContent>> { try { const result = await fn(); return successContent(result); } catch (error) { return errorContent(error); } }