opnsense_fw_manage_alias
Create, update, or delete firewall aliases in OPNsense. Then apply changes with opnsense_fw_apply.
Instructions
Create, update, or delete a firewall alias. Run opnsense_fw_apply afterwards to activate.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action to perform | |
| uuid | No | UUID of alias (required for update/delete) | |
| name | No | Alias name (required for create) | |
| type | No | Alias type: host, network, port, url, etc. (required for create) | |
| content | No | Alias content — newline-separated values (required for create) | |
| description | No | Alias description |
Implementation Reference
- src/tools/firewall.ts:48-68 (schema)ManageAliasSchema: Zod validation schema for opnsense_fw_manage_alias. Defines a discriminated union on 'action' with three variants: create (requires name, type, content), update (requires uuid, optional name/type/content/description), and delete (requires uuid).
const ManageAliasSchema = z.discriminatedUnion("action", [ z.object({ action: z.literal("create"), name: z.string().min(1, "Alias name is required"), type: z.string().min(1, "Alias type is required"), content: z.string().min(1, "Alias content is required"), description: z.string().optional(), }), z.object({ action: z.literal("update"), uuid: UuidSchema, name: z.string().optional(), type: z.string().optional(), content: z.string().optional(), description: z.string().optional(), }), z.object({ action: z.literal("delete"), uuid: UuidSchema, }), ]); - src/tools/firewall.ts:187-218 (registration)Tool definition for 'opnsense_fw_manage_alias' in firewallToolDefinitions array. Registers the tool name, description, and input JSON Schema listing action/uuid/name/type/content/description parameters with 'action' as required.
name: "opnsense_fw_manage_alias", description: "Create, update, or delete a firewall alias. Run opnsense_fw_apply afterwards to activate.", inputSchema: { type: "object" as const, properties: { action: { type: "string", enum: ["create", "update", "delete"], description: "Action to perform", }, uuid: { type: "string", description: "UUID of alias (required for update/delete)", }, name: { type: "string", description: "Alias name (required for create)", }, type: { type: "string", description: "Alias type: host, network, port, url, etc. (required for create)", }, content: { type: "string", description: "Alias content — newline-separated values (required for create)", }, description: { type: "string", description: "Alias description" }, }, required: ["action"], }, }, - src/tools/firewall.ts:373-407 (handler)Handler case 'opnsense_fw_manage_alias' inside handleFirewallTool(). Parses args with ManageAliasSchema, then dispatches by action: create (POST /firewall/alias/addItem), update (POST /firewall/alias/setItem/{uuid} with selective fields), or delete (POST /firewall/alias/delItem/{uuid}).
case "opnsense_fw_manage_alias": { const parsed = ManageAliasSchema.parse(args); switch (parsed.action) { case "create": { const result = await client.post("/firewall/alias/addItem", { alias: { enabled: "1", name: parsed.name, type: parsed.type, content: parsed.content, description: parsed.description ?? "", }, }); return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] }; } case "update": { const payload: Record<string, string> = {}; if (parsed.name !== undefined) payload["name"] = parsed.name; if (parsed.type !== undefined) payload["type"] = parsed.type; if (parsed.content !== undefined) payload["content"] = parsed.content; if (parsed.description !== undefined) payload["description"] = parsed.description; const result = await client.post(`/firewall/alias/setItem/${parsed.uuid}`, { alias: payload, }); return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] }; } case "delete": { const result = await client.post(`/firewall/alias/delItem/${parsed.uuid}`); return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] }; } } break; } - src/index.ts:59-60 (registration)Registers the handler: iterates over firewallToolDefinitions and maps each tool name (including opnsense_fw_manage_alias) to the handleFirewallTool function.
for (const def of dnsToolDefinitions) toolHandlers.set(def.name, handleDnsTool); for (const def of firewallToolDefinitions) toolHandlers.set(def.name, handleFirewallTool);