Tool tree
gradeNot graded
page: Home
test_urlAnswer
Test what a request path does against the current rules: which rule wins, the final status, the destination, and whether it hits a redirect loop. Read-only.
View tool JSON
{
"name": "test_url",
"kind": "answer",
"impl": "imperative",
"description": "Test what a request path does against the current rules: which rule wins, the final status, the destination, and whether it hits a redirect loop. Read-only.",
"inputSchema": {
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "The request path to test, e.g. /docs/getting-started (query string allowed)."
},
"country": {
"type": "string",
"description": "Optional 2-letter country to simulate Country conditions."
},
"language": {
"type": "string",
"description": "Optional language to simulate Language conditions."
},
"role": {
"type": "string",
"description": "Optional role to simulate Role conditions."
},
"cookies": {
"type": "object",
"description": "Optional cookie name/value map to simulate Cookie/has/missing conditions."
}
},
"required": [
"url"
]
},
"page": "/"
}audit_rulesAnswer
Scan every rule for problems: rules shadowed by a broader rule above them, rules made unreachable by a catch-all, redirect loops, and lines the platform silently ignores. Read-only.
View tool JSON
{
"name": "audit_rules",
"kind": "answer",
"impl": "imperative",
"description": "Scan every rule for problems: rules shadowed by a broader rule above them, rules made unreachable by a catch-all, redirect loops, and lines the platform silently ignores. Read-only.",
"inputSchema": {
"type": "object",
"properties": {}
},
"page": "/"
}export_configAnswer
Return the current rules serialized in the active platform native format, ready to paste into your project. Read-only.
View tool JSON
{
"name": "export_config",
"kind": "answer",
"impl": "imperative",
"description": "Return the current rules serialized in the active platform native format, ready to paste into your project. Read-only.",
"inputSchema": {
"type": "object",
"properties": {}
},
"page": "/"
}add_ruleAction
Add a redirect or rewrite rule to the end of the list. Use status 200 for a rewrite/SPA fallback, 301/302/307/308 for a redirect.
View tool JSON
{
"name": "add_rule",
"kind": "act",
"impl": "imperative",
"description": "Add a redirect or rewrite rule to the end of the list. Use status 200 for a rewrite/SPA fallback, 301/302/307/308 for a redirect.",
"inputSchema": {
"type": "object",
"properties": {
"source": {
"type": "string",
"description": "Source pattern, e.g. /old/* or /blog/:slug"
},
"destination": {
"type": "string",
"description": "Destination, e.g. /new/:splat or https://example.com"
},
"status": {
"type": "number",
"description": "HTTP status. 200 = rewrite, 301/302/307/308 = redirect. Defaults to the platform default."
}
},
"required": [
"source",
"destination"
]
},
"page": "/"
}edit_ruleAction
Change the source, destination, or status of the rule at a given position (1-based, as shown in the list).
View tool JSON
{
"name": "edit_rule",
"kind": "act",
"impl": "imperative",
"description": "Change the source, destination, or status of the rule at a given position (1-based, as shown in the list).",
"inputSchema": {
"type": "object",
"properties": {
"position": {
"type": "number",
"description": "1-based position of the rule to edit."
},
"source": {
"type": "string"
},
"destination": {
"type": "string"
},
"status": {
"type": "number"
}
},
"required": [
"position"
]
},
"page": "/"
}remove_ruleAction
Delete the rule at a given position (1-based).
View tool JSON
{
"name": "remove_rule",
"kind": "act",
"impl": "imperative",
"description": "Delete the rule at a given position (1-based).",
"inputSchema": {
"type": "object",
"properties": {
"position": {
"type": "number",
"description": "1-based position of the rule to remove."
}
},
"required": [
"position"
]
},
"page": "/"
}reorder_ruleAction
Move the rule at one position to another. Order matters: the first matching rule wins, so this is how you fix a rule shadowed by a broader one above it.
View tool JSON
{
"name": "reorder_rule",
"kind": "act",
"impl": "imperative",
"description": "Move the rule at one position to another. Order matters: the first matching rule wins, so this is how you fix a rule shadowed by a broader one above it.",
"inputSchema": {
"type": "object",
"properties": {
"from": {
"type": "number",
"description": "1-based current position."
},
"to": {
"type": "number",
"description": "1-based target position."
}
},
"required": [
"from",
"to"
]
},
"page": "/"
}import_configAction
Replace all rules by importing a config in the active platform format (Netlify _redirects text, a vercel.json string, or Cloudflare _redirects text).
View tool JSON
{
"name": "import_config",
"kind": "act",
"impl": "imperative",
"description": "Replace all rules by importing a config in the active platform format (Netlify _redirects text, a vercel.json string, or Cloudflare _redirects text).",
"inputSchema": {
"type": "object",
"properties": {
"text": {
"type": "string",
"description": "The raw config text to import."
}
},
"required": [
"text"
]
},
"page": "/"
}translateAction
Translate the current rules to another platform (netlify, vercel, cloudflare, nextjs) and return the config in that format, with notes on anything that could not carry across. Read-only.
View tool JSON
{
"name": "translate",
"kind": "act",
"impl": "imperative",
"description": "Translate the current rules to another platform (netlify, vercel, cloudflare, nextjs) and return the config in that format, with notes on anything that could not carry across. Read-only.",
"inputSchema": {
"type": "object",
"properties": {
"target": {
"type": "string",
"enum": [
"netlify",
"vercel",
"cloudflare",
"nextjs"
]
}
},
"required": [
"target"
]
},
"page": "/"
}bulk_testAction
Test many request paths at once and report each outcome, failures first. Accepts a list of paths and/or a sitemap.xml body. Read-only.
View tool JSON
{
"name": "bulk_test",
"kind": "act",
"impl": "imperative",
"description": "Test many request paths at once and report each outcome, failures first. Accepts a list of paths and/or a sitemap.xml body. Read-only.",
"inputSchema": {
"type": "object",
"properties": {
"urls": {
"type": "array",
"items": {
"type": "string"
}
},
"sitemap": {
"type": "string",
"description": "A sitemap.xml body; its <loc> paths are tested too."
}
}
},
"page": "/"
}test_pathAnswer
Compile a single source pattern and report whether it matches a URL and what it captures, without touching the rule list. Read-only.
View tool JSON
{
"name": "test_path",
"kind": "answer",
"impl": "imperative",
"description": "Compile a single source pattern and report whether it matches a URL and what it captures, without touching the rule list. Read-only.",
"inputSchema": {
"type": "object",
"properties": {
"pattern": {
"type": "string"
},
"url": {
"type": "string"
}
},
"required": [
"pattern",
"url"
]
},
"page": "/"
}explain_ruleAnswer
Explain the rule at a given position (1-based) in plain English. Read-only.
View tool JSON
{
"name": "explain_rule",
"kind": "answer",
"impl": "imperative",
"description": "Explain the rule at a given position (1-based) in plain English. Read-only.",
"inputSchema": {
"type": "object",
"properties": {
"position": {
"type": "number"
}
},
"required": [
"position"
]
},
"page": "/"
}list_platformsAnswer
List the platforms Edgewright can parse, test, translate and export. Read-only.
View tool JSON
{
"name": "list_platforms",
"kind": "answer",
"impl": "imperative",
"description": "List the platforms Edgewright can parse, test, translate and export. Read-only.",
"inputSchema": {
"type": "object",
"properties": {}
},
"page": "/"
}set_platformAction
Switch the working platform and translate the current rules into it. Constructs the target does not support are dropped and reported.
View tool JSON
{
"name": "set_platform",
"kind": "act",
"impl": "imperative",
"description": "Switch the working platform and translate the current rules into it. Constructs the target does not support are dropped and reported.",
"inputSchema": {
"type": "object",
"properties": {
"platform": {
"type": "string",
"enum": [
"netlify",
"vercel",
"cloudflare",
"nextjs"
]
}
},
"required": [
"platform"
]
},
"page": "/"
}audit_headersAnswer
Audit response headers for a path against a headers config (Netlify _headers, or Vercel/Next.js headers). Flags missing security headers and weak CSP. Read-only.
View tool JSON
{
"name": "audit_headers",
"kind": "answer",
"impl": "imperative",
"description": "Audit response headers for a path against a headers config (Netlify _headers, or Vercel/Next.js headers). Flags missing security headers and weak CSP. Read-only.",
"inputSchema": {
"type": "object",
"properties": {
"platform": {
"type": "string",
"enum": [
"netlify",
"cloudflare",
"vercel",
"nextjs"
]
},
"text": {
"type": "string"
},
"path": {
"type": "string"
}
},
"required": [
"platform",
"text"
]
},
"page": "/"
}page: Preflight
load_configAction
Load a redirect config into Preflight. Optionally set the platform (netlify, vercel, cloudflare, nextjs).
View tool JSON
{
"name": "load_config",
"kind": "act",
"impl": "imperative",
"description": "Load a redirect config into Preflight. Optionally set the platform (netlify, vercel, cloudflare, nextjs).",
"inputSchema": {
"type": "object",
"properties": {
"text": {
"type": "string"
},
"platform": {
"type": "string",
"enum": [
"netlify",
"vercel",
"cloudflare",
"nextjs"
]
}
},
"required": [
"text"
]
},
"page": "/preflight/"
}set_expectationsAction
Set the routes that must work: a list of { path, destination?, status? }. These are what the gate checks.
View tool JSON
{
"name": "set_expectations",
"kind": "act",
"impl": "imperative",
"description": "Set the routes that must work: a list of { path, destination?, status? }. These are what the gate checks.",
"inputSchema": {
"type": "object",
"properties": {
"expectations": {
"type": "array",
"items": {
"type": "object",
"properties": {
"path": {
"type": "string"
},
"destination": {
"type": "string"
},
"status": {
"type": "number"
}
},
"required": [
"path"
]
}
}
},
"required": [
"expectations"
]
},
"page": "/preflight/"
}run_gateAction
Run the preflight gate: resolve every expected route, audit the rules and return a single pass or fail with the failing detail. Read-only.
View tool JSON
{
"name": "run_gate",
"kind": "act",
"impl": "imperative",
"description": "Run the preflight gate: resolve every expected route, audit the rules and return a single pass or fail with the failing detail. Read-only.",
"inputSchema": {
"type": "object",
"properties": {}
},
"page": "/preflight/"
}explain_failureAction
Explain why the last gate failed, route by route. Read-only.
View tool JSON
{
"name": "explain_failure",
"kind": "act",
"impl": "imperative",
"description": "Explain why the last gate failed, route by route. Read-only.",
"inputSchema": {
"type": "object",
"properties": {}
},
"page": "/preflight/"
}export_reportAction
Export the last gate result as a PR-comment markdown block or a JSON artifact. Read-only.
View tool JSON
{
"name": "export_report",
"kind": "act",
"impl": "imperative",
"description": "Export the last gate result as a PR-comment markdown block or a JSON artifact. Read-only.",
"inputSchema": {
"type": "object",
"properties": {
"format": {
"type": "string",
"enum": [
"markdown",
"json"
]
}
},
"required": [
"format"
]
},
"page": "/preflight/"
}page: Studio
load_sourceAction
Load the source config to migrate. Optionally set the source platform (netlify, vercel, cloudflare, nextjs).
View tool JSON
{
"name": "load_source",
"kind": "act",
"impl": "imperative",
"description": "Load the source config to migrate. Optionally set the source platform (netlify, vercel, cloudflare, nextjs).",
"inputSchema": {
"type": "object",
"properties": {
"text": {
"type": "string"
},
"platform": {
"type": "string",
"enum": [
"netlify",
"vercel",
"cloudflare",
"nextjs"
]
}
},
"required": [
"text"
]
},
"page": "/studio/"
}set_targetAction
Set the platform to migrate the config to.
View tool JSON
{
"name": "set_target",
"kind": "act",
"impl": "imperative",
"description": "Set the platform to migrate the config to.",
"inputSchema": {
"type": "object",
"properties": {
"platform": {
"type": "string",
"enum": [
"netlify",
"vercel",
"cloudflare",
"nextjs"
]
}
},
"required": [
"platform"
]
},
"page": "/studio/"
}migrateAction
Translate the source config to the target platform and return it, with notes on anything that could not carry across.
View tool JSON
{
"name": "migrate",
"kind": "act",
"impl": "imperative",
"description": "Translate the source config to the target platform and return it, with notes on anything that could not carry across.",
"inputSchema": {
"type": "object",
"properties": {}
},
"page": "/studio/"
}verify_migrationAction
Replay every source URL through both the source and migrated configs and report whether they resolve identically. Read-only.
View tool JSON
{
"name": "verify_migration",
"kind": "act",
"impl": "imperative",
"description": "Replay every source URL through both the source and migrated configs and report whether they resolve identically. Read-only.",
"inputSchema": {
"type": "object",
"properties": {}
},
"page": "/studio/"
}audit_sourceAnswer
Audit the source config for shadowed rules, unreachable rules and loops. Read-only.
View tool JSON
{
"name": "audit_source",
"kind": "answer",
"impl": "imperative",
"description": "Audit the source config for shadowed rules, unreachable rules and loops. Read-only.",
"inputSchema": {
"type": "object",
"properties": {}
},
"page": "/studio/"
}export_reportAction
Export the migration as a markdown report or the target config text. Read-only.
View tool JSON
{
"name": "export_report",
"kind": "act",
"impl": "imperative",
"description": "Export the migration as a markdown report or the target config text. Read-only.",
"inputSchema": {
"type": "object",
"properties": {
"format": {
"type": "string",
"enum": [
"markdown",
"config"
]
}
},
"required": [
"format"
]
},
"page": "/studio/"
}