← WebMCP Directory

Tool tree

edgewright.vercel.app

Developer ToolsTools verified
Website
Edgewright turns your Netlify, Vercel and Cloudflare redirect rules into a live console an AI agent drives through WebMCP: test any URL, catch the rule that shadows another, fix the order, export a…
Explore capabilities

    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/"
    }