Skip to main content
Glama
fredriksknese

mcp-infoblox

create_dhcp_range

Define DHCP IP address ranges in Infoblox NIOS to automate network configuration and IP address assignment for devices.

Instructions

Create a DHCP range (scope) in Infoblox

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
start_addrYesStart IP address of the range
end_addrYesEnd IP address of the range
networkNoNetwork the range belongs to (CIDR)
network_viewNoNetwork view
commentNoComment
memberNoDHCP member to serve this range

Implementation Reference

  • The handler function for create_dhcp_range tool. It builds a data object with start_addr, end_addr, and optional fields (network, network_view, comment, member), then calls client.create('range', data) to create the DHCP range in Infoblox. Returns success message with reference or error message.
    async ({
      start_addr,
      end_addr,
      network,
      network_view,
      comment,
      member,
    }) => {
      const data: Record<string, unknown> = {
        start_addr,
        end_addr,
      };
      if (network) data.network = network;
      if (network_view) data.network_view = network_view;
      if (comment) data.comment = comment;
      if (member) data.member = member;
    
      try {
        const ref = await client.create("range", data);
        return toolResult(
          `DHCP range created successfully.\nReference: ${ref}`,
        );
      } catch (error) {
        return toolResult(
          `Error creating DHCP range: ${error}`,
          true,
        );
      }
    },
  • Zod schema definition for create_dhcp_range tool input. Defines required fields (start_addr, end_addr) and optional fields (network, network_view, comment, member) with descriptions for each parameter. The member field is a nested object with _struct and name properties.
      start_addr: z
        .string()
        .describe("Start IP address of the range"),
      end_addr: z
        .string()
        .describe("End IP address of the range"),
      network: z
        .string()
        .optional()
        .describe("Network the range belongs to (CIDR)"),
      network_view: z
        .string()
        .optional()
        .describe("Network view"),
      comment: z.string().optional().describe("Comment"),
      member: z
        .object({
          _struct: z
            .literal("dhcpmember")
            .default("dhcpmember"),
          name: z.string().describe("Grid member FQDN"),
        })
        .optional()
        .describe("DHCP member to serve this range"),
    },
  • Complete tool registration for create_dhcp_range using server.tool(). Includes the tool name 'create_dhcp_range', description 'Create a DHCP range (scope) in Infoblox', the Zod schema for input validation, and the async handler function.
    server.tool(
      "create_dhcp_range",
      "Create a DHCP range (scope) in Infoblox",
      {
        start_addr: z
          .string()
          .describe("Start IP address of the range"),
        end_addr: z
          .string()
          .describe("End IP address of the range"),
        network: z
          .string()
          .optional()
          .describe("Network the range belongs to (CIDR)"),
        network_view: z
          .string()
          .optional()
          .describe("Network view"),
        comment: z.string().optional().describe("Comment"),
        member: z
          .object({
            _struct: z
              .literal("dhcpmember")
              .default("dhcpmember"),
            name: z.string().describe("Grid member FQDN"),
          })
          .optional()
          .describe("DHCP member to serve this range"),
      },
      async ({
        start_addr,
        end_addr,
        network,
        network_view,
        comment,
        member,
      }) => {
        const data: Record<string, unknown> = {
          start_addr,
          end_addr,
        };
        if (network) data.network = network;
        if (network_view) data.network_view = network_view;
        if (comment) data.comment = comment;
        if (member) data.member = member;
    
        try {
          const ref = await client.create("range", data);
          return toolResult(
            `DHCP range created successfully.\nReference: ${ref}`,
          );
        } catch (error) {
          return toolResult(
            `Error creating DHCP range: ${error}`,
            true,
          );
        }
      },
    );
  • The toolResult helper function that formats the response content for MCP tools. Takes a text string and optional isError flag, returning an object with content array containing type 'text' and the text content.
    function toolResult(text: string, isError = false) {
      return { content: [{ type: "text" as const, text }], isError };
    }

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/fredriksknese/mcp-infoblox'

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