Skip to main content
Glama

SEO GSC Wizard MCP

List SEO experiments

list_experiments
Read-only

Use this when the user asks which SEO experiments (split tests) a property runs, or an experimentId is needed. Lists the experiments defined for the property in GSC Wizard, each with its control/variant URL groups (the first group is the control), source, status, and start date, newest first (createdAt descending). By default only active experiments are returned. Groups carry URL counts; to get the saved URLs themselves (including URLs with no Search Console traffic, which results leave out), pass experimentId with includeUrls: true and page with memberOffset until nextMemberOffset is null. Not for results: use get_experiment_results to score one.

Input Schema

NameRequiredDescriptionDefault
siteUrlYes
includeUrlsNoAdd the experiment's saved URLs as members [{url, group}], in saved order, 2000 per call.
experimentIdNoReturn only this experiment (active or archived). Required with includeUrls.
memberOffsetNoWith includeUrls: index of the first member to return; pass the previous nextMemberOffset.
includeArchivedNoInclude archived experiments as well as active ones.

Output Schema

NameRequiredDescriptionDefault
countNo
errorNo
thenByNo
listKeyNoName of the top-level field that holds the rows sortedBy describes.
siteUrlNo
nextStepNo
orderingNo
sortedByNo
sortOrderNo
thenOrderNo
experimentsNo
emptyBecauseNo
methodLimitsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedOutput schema / properties / listKey
      Added value: +{
      +  "$ref": "#/properties/siteUrl",
      +  "description": "Name of the top-level field that holds the rows sortedBy describes."
      +}
  2. Changed7 schema fields changed
    • addedInput schema / properties / experimentId
      Added value: +{
      +  "description": "Return only this experiment (active or archived). Required with includeUrls.",
      +  "type": "string"
      +}
    • addedInput schema / properties / includeUrls
      Added value: +{
      +  "default": false,
      +  "description": "Add the experiment's saved URLs as members [{url, group}], in saved order, 2000 per call.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / memberOffset
      Added value: +{
      +  "default": 0,
      +  "description": "With includeUrls: index of the first member to return; pass the previous nextMemberOffset.",
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • addedOutput schema / properties / experiments / items / properties / memberOffset
      Added value: +{
      +  "$ref": "#/properties/count"
      +}
    • addedOutput schema / properties / experiments / items / properties / memberTotal
      Added value: +{
      +  "$ref": "#/properties/count"
      +}
    • addedOutput schema / properties / experiments / items / properties / members
      Added value: +{
      +  "items": {
      +    "additionalProperties": true,
      +    "properties": {
      +      "group": {
      +        "$ref": "#/properties/siteUrl"
      +      },
      +      "url": {
      +        "$ref": "#/properties/siteUrl"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / experiments / items / properties / nextMemberOffset
      Added value: +{
      +  "$ref": "#/properties/count"
      +}
  3. Changed11 schema fields changed
    • changedOutput schema / additionalProperties
      Previous value: -falseNew value: +true
    • addedOutput schema / properties / emptyBecause
      Added value: +{
      +  "$ref": "#/properties/siteUrl"
      +}
    • changedOutput schema / properties / experiments / items / additionalProperties
      Previous value: -falseNew value: +true
    • changedOutput schema / properties / experiments / items / properties / groups / items / additionalProperties
      Previous value: -falseNew value: +true
    • addedOutput schema / properties / methodLimits
      Added value: +{
      +  "$ref": "#/properties/siteUrl"
      +}
    • addedOutput schema / properties / nextStep
      Added value: +{
      +  "$ref": "#/properties/siteUrl"
      +}
    • addedOutput schema / properties / ordering
      Added value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": {
      +        "additionalProperties": true,
      +        "properties": {
      +          "sortOrder": {
      +            "$ref": "#/properties/siteUrl"
      +          },
      +          "sortedBy": {
      +            "$ref": "#/properties/siteUrl"
      +          },
      +          "thenBy": {
      +            "$ref": "#/properties/siteUrl"
      +          },
      +          "thenOrder": {
      +            "$ref": "#/properties/siteUrl"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • addedOutput schema / properties / sortOrder
      Added value: +{
      +  "$ref": "#/properties/siteUrl"
      +}
    • addedOutput schema / properties / sortedBy
      Added value: +{
      +  "$ref": "#/properties/siteUrl"
      +}
    • addedOutput schema / properties / thenBy
      Added value: +{
      +  "$ref": "#/properties/siteUrl"
      +}
    • addedOutput schema / properties / thenOrder
      Added value: +{
      +  "$ref": "#/properties/siteUrl"
      +}
  4. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Beyond the readOnly/destructive annotations, it discloses ordering (newest first, createdAt descending), the default filter (active only), the pagination protocol (2000 members per call, loop until nextMemberOffset is null), and a non-obvious data caveat that saved URLs include ones with no Search Console traffic while results omit them.

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

Conciseness4/5

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

Usage trigger is front-loaded and every clause carries information, but the middle sentence is long and stacks several ideas (group counts, includeUrls, traffic caveat) into one breath. Slightly denser than ideal, though nothing is truly wasted.

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?

For a five-parameter list tool with an output schema, the description still covers the pieces an agent needs to call it correctly: default filtering, archived opt-in, ordering, and the full pagination loop. Return values are largely documented by the output schema, so nothing material is missing.

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 80%, so baseline is 3; the description earns an extra point by explaining relationships the schema doesn't (experimentId must be paired with includeUrls: true, and memberOffset is driven by the prior nextMemberOffset). It also clarifies that the first group is the control, which is not in the schema.

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?

States a specific verb and resource ("Lists the experiments defined for the property") and enumerates the payload fields (control/variant URL groups, source, status, start date). It also distinguishes itself from get_experiment_results, so an agent can tell the two apart 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?

Opens with an explicit trigger ("Use this when the user asks which SEO experiments... or an experimentId is needed") and closes with an exclusion plus named alternative ("Not for results: use get_experiment_results to score one"). Both when-to-use and when-not-to-use are covered.

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