vpc_delete_volume
Delete an IBM Cloud VPC volume by specifying its volume ID. Optionally include the region to target a specific location.
Instructions
Delete a volume
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| volume_id | Yes | ||
| region | No |
Implementation Reference
- src/tools/vpc/index.ts:103-105 (registration)Registration of the vpc_delete_volume tool on the MCP server with schema and handler
server.tool("vpc_delete_volume", "Delete a volume", { volume_id: z.string(), region: z.string().optional(), }, async (p) => safeTool(async () => { w(); await client.delete(vpcUrl(p.region||r, `/volumes/${p.volume_id}`)); return {message:"Volume deleted"}; })); - src/tools/vpc/index.ts:104-104 (schema)Input schema: volume_id (string, required) and region (string, optional)
volume_id: z.string(), region: z.string().optional(), - src/tools/vpc/index.ts:105-105 (handler)Handler function: performs write-allowed check, then issues delete request to /volumes/{volume_id} and returns success message
}, async (p) => safeTool(async () => { w(); await client.delete(vpcUrl(p.region||r, `/volumes/${p.volume_id}`)); return {message:"Volume deleted"}; })); - src/lib/utils.ts:70-77 (helper)safeTool helper wraps handler to catch errors and return proper MCP 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); } } - src/server.ts:7-8 (registration)Import of registerVPCTools in the main server entry point
import { registerIAMTools } from "./tools/iam/index.js"; import { registerVPCTools } from "./tools/vpc/index.js";