Skip to main content
Glama

requestNewTest

Requests that a not yet tested page be tested. Call this tool after listSites or listPages. Requires either a siteID from listSites if the site has been tested, or a siteName, namely the brand or organization name of the site, like the names shown by listSites, but distinct from the name of any tested site when lower-cased and stripped of punctuation and white space. Also requires a pageName describing the purpose of the page, such as home, about, contact, shop, blog, subscribe, sign up, or Benefactors Club; a URL; and a reason justifying the request. If the site has been tested, the pageName must be distinct from the names of all other tested pages of the site shown by listPages. Permits an optional boolean reviewImmediately parameter. If it is true, the response will notify you of approval (with a report identifier, and with an opportunity to call awaitTest and wait for, typically, 2 to 4 minutes), rejection, or queuing for management review. If reviewImmediately is false or omitted, the request will be queued for management review (approval and test completion typically take an hour to a day). If the page has already been tested, call requestRetest instead.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "pageName": "<pageName>",
      "URL": "<URL>",
      "reason": "<reason>"
    },
    "name": "requestNewTest"
  }
}

Input Schema

NameRequiredDescriptionDefault
URLYes12- to 300-character URL of the page, including the https:// scheme and any query; it must not redirect to a target this deployment disallows, such as a private, loopback, or link-local address
reasonYes20- to 100-character justification evaluated by the reviewer selected by reviewImmediately
siteIDNoFor a page of a site in the listSites output: identifier of the site, formatted s-xxxxxx (example: s-2fw2ea). Give either siteID or siteName, not both.
pageNameYes1- to 120-character name of the page, distinguishing it from every other page of the site (for the home page of a site, “home”)
siteNameNoFor a page of a site not in the listSites output: 1- to 80-character name of the site, usually the name of the organization or brand that presents it; it must not match the name of any site in the listSites output, ignoring case, white space, and punctuation. Give either siteID or siteName, not both.
reviewImmediatelyNotrue for immediate review with immediate approval or rejection and immediate enqueueing if approved; false or omitted to queue the request for review by management

Output Schema

NameRequiredDescriptionDefault
tool nameYes
this requestYes
tool collectionYes
response contentYes
response metadataYes
URLs of similar requests for web usersYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed14 schema fields changed
    • removedInput schema / properties / description
      Removed value: -{
      -  "description": "1- to 100-character name for the page, unique among tested pages and conforming to the naming convention used in the listPages output",
      -  "maxLength": 100,
      -  "minLength": 1,
      -  "type": "string"
      -}
    • addedInput schema / properties / pageName
      Added value: +{
      +  "description": "1- to 120-character name of the page, distinguishing it from every other page of the site (for the home page of a site, “home”)",
      +  "maxLength": 120,
      +  "minLength": 1,
      +  "type": "string"
      +}
    • addedInput schema / properties / siteID
      Added value: +{
      +  "description": "For a page of a site in the listSites output: identifier of the site, formatted s-xxxxxx (example: s-2fw2ea). Give either siteID or siteName, not both.",
      +  "pattern": "^s-[0-9a-z]{6}$",
      +  "type": "string"
      +}
    • addedInput schema / properties / siteName
      Added value: +{
      +  "description": "For a page of a site not in the listSites output: 1- to 80-character name of the site, usually the name of the organization or brand that presents it; it must not match the name of any site in the listSites output, ignoring case, white space, and punctuation. Give either siteID or siteName, not both.",
      +  "maxLength": 80,
      +  "minLength": 1,
      +  "type": "string"
      +}
    • changedInput schema / required
      Previous value: -[
      -  "description",
      -  "URL",
      -  "reason"
      -]New value: +[
      +  "pageName",
      +  "URL",
      +  "reason"
      +]
    • addedOutput schema / definitions / PageSite
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "identifier": {
      +      "description": "Identifier of the site (example: s-2fw2ea).",
      +      "type": "string"
      +    },
      +    "name": {
      +      "description": "Current name of the site.",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "identifier",
      +    "name"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / definitions / RequestedPage
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "URL": {
      +      "type": "string"
      +    },
      +    "page identifier": {
      +      "description": "Identifier of the page, or null if the page does not exist yet.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "page name": {
      +      "type": "string"
      +    },
      +    "site identifier": {
      +      "description": "Identifier of the site, or null if the site does not exist yet.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "site name": {
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "site identifier",
      +    "site name",
      +    "page identifier",
      +    "page name",
      +    "URL"
      +  ],
      +  "type": "object"
      +}
    • changedOutput schema / properties / response content / properties / details about your request / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "error": {
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "error"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "date and time received": {
      -        "type": "string"
      -      },
      -      "page to be tested": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "URL": {
      -            "type": "string"
      -          },
      -          "description": {
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "description",
      -          "URL"
      -        ],
      -        "type": "object"
      -      },
      -      "reason why the page should be tested": {
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "date and time received",
      -      "page to be tested",
      -      "reason why the page should be tested"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "error": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "error"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "date and time received": {
      +        "type": "string"
      +      },
      +      "page to be tested": {
      +        "$ref": "#/definitions/RequestedPage"
      +      },
      +      "reason why the page should be tested": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "date and time received",
      +      "page to be tested",
      +      "reason why the page should be tested"
      +    ],
      +    "type": "object"
      +  }
      +]
    • changedOutput schema / properties / response content / properties / disposition of your request / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "do you want to wait for completion": {
      -        "type": "string"
      -      },
      -      "how a web user can check for completion": {
      -        "type": "string"
      -      },
      -      "how you can check for completion": {
      -        "type": "string"
      -      },
      -      "report identifier": {
      -        "anyOf": [
      -          {
      -            "description": "Identifier of the report, to pass to listIssues once the report is ready (example: 260503T0432-x9z).",
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "what happens next": {
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "what happens next",
      -      "how you can check for completion"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "do you want to wait for completion": {
      +        "type": "string"
      +      },
      +      "how a web user can check for completion": {
      +        "type": "string"
      +      },
      +      "how you can check for completion": {
      +        "type": "string"
      +      },
      +      "possible duplicates": {
      +        "description": "Tested pages that may be the requested page. If one is, its latest report can be used at once.",
      +        "items": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "URL": {
      +              "type": "string"
      +            },
      +            "identifier": {
      +              "description": "Identifier of the page (example: p-l6vni7ua).",
      +              "type": "string"
      +            },
      +            "identifier of the latest report": {
      +              "description": "Identifier of the latest report about the page (example: 260503T0432-x9z).",
      +              "type": "string"
      +            },
      +            "name": {
      +              "description": "Name of the page, distinguishing it from the other pages of its site.",
      +              "type": "string"
      +            },
      +            "reason for suspicion": {
      +              "type": "string"
      +            },
      +            "sites": {
      +              "description": "The sites that the page belongs to (currently always one).",
      +              "items": {
      +                "$ref": "#/definitions/PageSite"
      +              },
      +              "type": "array"
      +            }
      +          },
      +          "required": [
      +            "identifier",
      +            "name",
      +            "URL",
      +            "sites",
      +            "identifier of the latest report",
      +            "reason for suspicion"
      +          ],
      +          "type": "object"
      +        },
      +        "type": "array"
      +      },
      +      "report identifier": {
      +        "anyOf": [
      +          {
      +            "description": "Identifier of the report, to pass to listIssues once the report is ready (example: 260503T0432-x9z).",
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "similar sites": {
      +        "description": "Existing sites that may be the requested site. If one is, a test of a page of it can be requested with requestNewTest by giving its identifier as siteID.",
      +        "items": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "count of tested pages": {
      +              "type": "number"
      +            },
      +            "identifier": {
      +              "description": "Identifier of the site (example: s-2fw2ea).",
      +              "type": "string"
      +            },
      +            "name": {
      +              "type": "string"
      +            },
      +            "reason for suspicion": {
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "identifier",
      +            "name",
      +            "count of tested pages",
      +            "reason for suspicion"
      +          ],
      +          "type": "object"
      +        },
      +        "type": "array"
      +      },
      +      "what happens next": {
      +        "type": "string"
      +      },
      +      "whether your request was referred to management review": {
      +        "description": "true if immediate review was requested but the request was referred to management review because of possible duplicates or similar sites.",
      +        "type": "boolean"
      +      }
      +    },
      +    "required": [
      +      "what happens next",
      +      "how you can check for completion"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / this request / properties / body / properties / description
      Removed value: -{
      -  "description": "1- to 100-character name for the page, unique among tested pages and conforming to the naming convention used in the listPages output",
      -  "maxLength": 100,
      -  "minLength": 1,
      -  "type": "string"
      -}
    • addedOutput schema / properties / this request / properties / body / properties / pageName
      Added value: +{
      +  "description": "1- to 120-character name of the page, distinguishing it from every other page of the site (for the home page of a site, “home”)",
      +  "maxLength": 120,
      +  "minLength": 1,
      +  "type": "string"
      +}
    • addedOutput schema / properties / this request / properties / body / properties / siteID
      Added value: +{
      +  "description": "For a page of a site in the listSites output: identifier of the site, formatted s-xxxxxx (example: s-2fw2ea). Give either siteID or siteName, not both.",
      +  "pattern": "^s-[0-9a-z]{6}$",
      +  "type": "string"
      +}
    • addedOutput schema / properties / this request / properties / body / properties / siteName
      Added value: +{
      +  "description": "For a page of a site not in the listSites output: 1- to 80-character name of the site, usually the name of the organization or brand that presents it; it must not match the name of any site in the listSites output, ignoring case, white space, and punctuation. Give either siteID or siteName, not both.",
      +  "maxLength": 80,
      +  "minLength": 1,
      +  "type": "string"
      +}
    • changedOutput schema / properties / this request / properties / body / required
      Previous value: -[
      -  "description",
      -  "URL",
      -  "reason"
      -]New value: +[
      +  "pageName",
      +  "URL",
      +  "reason"
      +]
  2. Changed23 schema fields changed
    • changedInput schema / properties / URL / description
      Previous value: -"12- to 300-character URL of the page, including the https:// scheme and any query"New value: +"12- to 300-character URL of the page, including the https:// scheme and any query; it must not redirect to a target this deployment disallows, such as a private, loopback, or link-local address"
    • addedInput schema / properties / URL / maxLength
      Added value: +300
    • addedInput schema / properties / URL / minLength
      Added value: +12
    • addedInput schema / properties / URL / pattern
      Added value: +"^https:\\/\\/"
    • changedInput schema / properties / description / description
      Previous value: -"1- to 100-character description of the page conforming to the naming convention used in the listPages output"New value: +"1- to 100-character name for the page, unique among tested pages and conforming to the naming convention used in the listPages output"
    • addedInput schema / properties / description / maxLength
      Added value: +100
    • addedInput schema / properties / description / minLength
      Added value: +1
    • changedInput schema / properties / reason / description
      Previous value: -"20- to 100-character reason why the page should be tested"New value: +"20- to 100-character justification evaluated by the reviewer selected by reviewImmediately"
    • addedInput schema / properties / reason / maxLength
      Added value: +100
    • addedInput schema / properties / reason / minLength
      Added value: +20
    • addedInput schema / properties / reviewImmediately
      Added value: +{
      +  "description": "true for immediate review with immediate approval or rejection and immediate enqueueing if approved; false or omitted to queue the request for review by management",
      +  "type": "boolean"
      +}
    • changedOutput schema / properties / response content / properties / disposition of your request / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "how a web user can check for completion": {
      -        "type": "string"
      -      },
      -      "how you can check for completion": {
      -        "type": "string"
      -      },
      -      "what happens next": {
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "what happens next",
      -      "how you can check for completion",
      -      "how a web user can check for completion"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "do you want to wait for completion": {
      +        "type": "string"
      +      },
      +      "how a web user can check for completion": {
      +        "type": "string"
      +      },
      +      "how you can check for completion": {
      +        "type": "string"
      +      },
      +      "report identifier": {
      +        "anyOf": [
      +          {
      +            "description": "Identifier of the report, to pass to listIssues once the report is ready (example: 260503T0432-x9z).",
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "what happens next": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "what happens next",
      +      "how you can check for completion"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / this request / properties / body / properties / URL / description
      Previous value: -"12- to 300-character URL of the page, including the https:// scheme and any query"New value: +"12- to 300-character URL of the page, including the https:// scheme and any query; it must not redirect to a target this deployment disallows, such as a private, loopback, or link-local address"
    • addedOutput schema / properties / this request / properties / body / properties / URL / maxLength
      Added value: +300
    • addedOutput schema / properties / this request / properties / body / properties / URL / minLength
      Added value: +12
    • addedOutput schema / properties / this request / properties / body / properties / URL / pattern
      Added value: +"^https:\\/\\/"
    • changedOutput schema / properties / this request / properties / body / properties / description / description
      Previous value: -"1- to 100-character description of the page conforming to the naming convention used in the listPages output"New value: +"1- to 100-character name for the page, unique among tested pages and conforming to the naming convention used in the listPages output"
    • addedOutput schema / properties / this request / properties / body / properties / description / maxLength
      Added value: +100
    • addedOutput schema / properties / this request / properties / body / properties / description / minLength
      Added value: +1
    • changedOutput schema / properties / this request / properties / body / properties / reason / description
      Previous value: -"20- to 100-character reason why the page should be tested"New value: +"20- to 100-character justification evaluated by the reviewer selected by reviewImmediately"
    • addedOutput schema / properties / this request / properties / body / properties / reason / maxLength
      Added value: +100
    • addedOutput schema / properties / this request / properties / body / properties / reason / minLength
      Added value: +20
    • addedOutput schema / properties / this request / properties / body / properties / reviewImmediately
      Added value: +{
      +  "description": "true for immediate review with immediate approval or rejection and immediate enqueueing if approved; false or omitted to queue the request for review by management",
      +  "type": "boolean"
      +}
  3. Changed5 schema fields changed
    • addedOutput schema / definitions / ToolsFacts / properties / description / properties / how to generate more findings / properties / approval
      Added value: +{
      +  "type": "string"
      +}
    • removedOutput schema / definitions / ToolsFacts / properties / description / properties / how to generate more findings / properties / confirmation
      Removed value: -{
      -  "type": "string"
      -}
    • addedOutput schema / definitions / ToolsFacts / properties / description / properties / how to generate more findings / properties / order confirmation
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / definitions / ToolsFacts / properties / description / properties / how to generate more findings / properties / request confirmation
      Added value: +{
      +  "type": "string"
      +}
    • changedOutput schema / definitions / ToolsFacts / properties / description / properties / how to generate more findings / required
      Previous value: -[
      -  "new testing",
      -  "retesting",
      -  "latency",
      -  "confirmation"
      -]New value: +[
      +  "new testing",
      +  "retesting",
      +  "approval",
      +  "latency",
      +  "request confirmation",
      +  "order confirmation"
      +]
  4. Changed2 schema fields changed
    • changedInput schema / properties / description / description
      Previous value: -"1- to 100-character description of the page conforming to the naming convention used in the listReports output"New value: +"1- to 100-character description of the page conforming to the naming convention used in the listPages output"
    • changedOutput schema / properties / this request / properties / body / properties / description / description
      Previous value: -"1- to 100-character description of the page conforming to the naming convention used in the listReports output"New value: +"1- to 100-character description of the page conforming to the naming convention used in the listPages output"
  5. Added

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare the safety envelope (readOnlyHint=false, openWorldHint=true, idempotentHint=false, destructiveHint=false), and the description still adds substantive behavior: the queuing outcome, the reviewImmediately branch with distinct response paths (approval+report identifier, rejection, or management queue), and concrete latency expectations (2–4 minutes via awaitTest vs. an hour to a day). What it does not cover is whether duplicate/in-flight requests are rejected or merged — relevant given idempotentHint=false — and it does not state auth or rate-limit requirements.

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

Conciseness3/5

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

Purpose and sequencing are front-loaded, but the body is one dense run-on paragraph and reviewImmediately is effectively described twice (once inline, once in the closing conditional). The siteName clause is grammatically tangled enough to require a second read. Informative but not tight.

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

Completeness5/5

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

Given an output schema exists, the description need not explain return values, and the annotations already cover the safety profile. It still supplies the missing decision context — ordering after listSites/listPages, the retest alternative, and the follow-up awaitTest call — so nothing an agent needs before invoking it is absent.

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

Parameters4/5

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

Schema coverage is 100%, so a 3 is the floor, and the description still adds real meaning: it explains the conditional logic behind siteID (site already tested) vs siteName (site not in listSites), names example pageName values (home, about, shop, sign up, Benefactors Club), and clarifies that a repeat reviewImmediately=false queues for management rather than failing. The one convoluted clause about siteName being distinct after lower-casing/punctuation-stripping duplicates schema text rather than clarifying it.

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

Purpose5/5

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

Opens with a specific verb+resource: request testing of a page that has not yet been tested. It explicitly carves out the boundary with the sibling requestRetest ("If the page has already been tested, call requestRetest instead"), so the agent can disambiguate without opening either schema.

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

Usage Guidelines5/5

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

Gives sequencing guidance ("Call this tool after listSites or listPages"), the branch condition for siteID vs siteName, and a named alternative (requestRetest) for the already-tested case. When-not guidance is explicit rather than inferred.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources