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