Skip to main content
Glama
oborseth

Official Porkbun MCP Server

Create URL Forward

create_url_forward
DestructiveIdempotent

Add a URL forwarding rule for a domain. Forwards a subdomain (or apex if subdomain is empty/omitted) to an arbitrary destination URL. Useful for redirects without setting up a web server. Free.

Instructions

Add a URL forwarding rule for a domain. Forwards a subdomain (or apex if subdomain is empty/omitted) to an arbitrary destination URL. Useful for redirects without setting up a web server. Free.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
typeYes`permanent` = HTTP 301; `temporary` = HTTP 302 (default); `masked` = loads the destination in a frame (URL masking). For a precise code — including a 307 temporary redirect — use `redirect_type`.
domainYesDomain to add the forward to, e.g. `example.com`
locationYesDestination URL to forward visitors to, e.g. `https://newsite.example.com`
wildcardYes`yes` also forwards all sub-subdomains; `no` forwards only the exact subdomain.
subdomainNoSubdomain prefix to forward. Empty/omitted = the apex (root domain). Examples: `www`, `shop`.
includePathYes`yes` appends the request URI path to the forward target; `no` always sends to the bare destination.
redirect_typeNoOptional exact redirect type; takes precedence over `type`. 301 = permanent, 302 or 307 = temporary (pass 307 here to get a 307), masked = URL masking. Omit to derive from `type` (temporary→302, permanent→301).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changedv0.39.4
    • addedInput schema / properties / redirect_type
      Added value: +{
      +  "description": "Optional exact redirect type; takes precedence over `type`. 301 = permanent, 302 or 307 = temporary (pass 307 here to get a 307), masked = URL masking. Omit to derive from `type` (temporary→302, permanent→301).",
      +  "enum": [
      +    "301",
      +    "302",
      +    "307",
      +    "masked"
      +  ],
      +  "type": "string"
      +}
    • changedInput schema / properties / type / description
      Previous value: -"`permanent` sends HTTP 301 (browsers cache); `temporary` is the configurable default redirect."New value: +"`permanent` = HTTP 301; `temporary` = HTTP 302 (default); `masked` = loads the destination in a frame (URL masking). For a precise code — including a 307 temporary redirect — use `redirect_type`."
    • changedInput schema / properties / type / enum
      Previous value: -[
      -  "permanent",
      -  "temporary"
      -]New value: +[
      +  "permanent",
      +  "temporary",
      +  "masked"
      +]
  2. First observedv0.4.1

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=true, idempotentHint=true, and openWorldHint=false, so the mutation safety profile is covered. The description usefully adds the cost trait ('Free'), which annotations do not convey. It does not, however, explain what happens to a pre-existing forward rule on the same subdomain, which matters for a destructive write.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the core action and followed by scope and rationale. Every clause carries information and nothing is padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 7-parameter mutation with 100% schema coverage, a full annotation safety profile, and no output schema, the description covers purpose and a cost detail adequately. The remaining gap is overwrite/idempotency semantics for an existing forward on the same subdomain, which would be worth one more sentence.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all seven parameters including the four enums are already documented in the schema; the baseline is 3. The description's subdomain/apex note largely restates what the schema already says ('Empty/omitted = the apex'), adding no syntax or format detail beyond it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Add a URL forwarding rule for a domain') and clarifies scope via the subdomain/apex behavior. It is clearly distinguishable from list_url_forwards and delete_url_forward by name, but the description never explicitly names an alternative, so it stops short of full sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides implied context ('Useful for redirects without setting up a web server') and a cost note ('Free'), which hints at when to prefer it. However, there is no explicit when-not guidance, no prerequisites, and no comparison to siblings like create_dns_record or delete_url_forward.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools