Skip to main content
Glama

reload_node

Reload or reimage a CloudLab node with its disk image by specifying the experiment ID and node identifier.

Instructions

Reload/reimage a node with its disk image

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
experiment_idYesExperiment UUID (from list_experiments)
nodeYesNode client_id

Implementation Reference

  • The handler function for the reload_node tool. It extracts experiment_id and node from arguments, makes a POST request to the CloudLab API endpoint /experiments/{experiment_id}/node/{node}/reload, and returns the result.
    case "reload_node": { const { experiment_id, node } = args as { experiment_id: string; node: string; }; const result = await cloudlabRequest( `/experiments/${experiment_id}/node/${node}/reload`, "POST" ); return { content: [ { type: "text", text: `Reload initiated for node ${node}: ${JSON.stringify(result, null, 2)}`, }, ], }; }
  • The tool registration entry including name, description, and input schema for reload_node, returned by the ListTools handler.
    { name: "reload_node", description: "Reload/reimage a node with its disk image", inputSchema: { type: "object", properties: { experiment_id: { type: "string", description: "Experiment UUID (from list_experiments)", }, node: { type: "string", description: "Node client_id", }, }, required: ["experiment_id", "node"], },
  • src/index.ts:97-202 (registration)
    The ListToolsRequestHandler where reload_node is registered as an available tool.
    server.setRequestHandler(ListToolsRequestSchema, async () => { return { tools: [ { name: "list_experiments", description: "List all your CloudLab experiments", inputSchema: { type: "object", properties: {}, required: [], }, }, { name: "create_experiment", description: "Create a new CloudLab experiment from a profile", inputSchema: { type: "object", properties: { project: { type: "string", description: "Project name (e.g., 'UCY-CS499-DC')", }, profile_name: { type: "string", description: "Profile name (e.g., 'small-lan')", }, profile_project: { type: "string", description: "Project that owns the profile (e.g., 'PortalProfiles')", }, name: { type: "string", description: "Optional experiment name (auto-generated if not provided)", }, bindings: { type: "object", description: "Optional profile parameter bindings (e.g., {nodeCount: '2', phystype: 'c220g1'})", }, }, required: ["project", "profile_name", "profile_project"], }, }, { name: "get_experiment", description: "Get detailed status of a specific experiment including node states", inputSchema: { type: "object", properties: { experiment_id: { type: "string", description: "Experiment UUID (from list_experiments)", }, }, required: ["experiment_id"], }, }, { name: "reboot_node", description: "Reboot a specific node in an experiment", inputSchema: { type: "object", properties: { experiment_id: { type: "string", description: "Experiment UUID (from list_experiments)", }, node: { type: "string", description: "Node client_id (e.g., 'node0')", }, }, required: ["experiment_id", "node"], }, }, { name: "reboot_all_nodes", description: "Reboot all nodes in an experiment", inputSchema: { type: "object", properties: { experiment_id: { type: "string", description: "Experiment UUID (from list_experiments)", }, }, required: ["experiment_id"], }, }, { name: "reload_node", description: "Reload/reimage a node with its disk image", inputSchema: { type: "object", properties: { experiment_id: { type: "string", description: "Experiment UUID (from list_experiments)", }, node: { type: "string", description: "Node client_id", }, }, required: ["experiment_id", "node"], }, },

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/ArdaGurcan/cloudlab-mcp'

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