Skip to main content
Glama

SEO GSC Wizard MCP

Get migration health

get_migration_health
Read-only

Use this when the user asks how a site migration is doing or what to fix. The GSC Wizard app's Migration Compare analysis around the go-live date (without brand terms, the search-type split or a saved migration's country / device filters; notes says what differs). Returns recovery (side B clicks per day as a % of side A clicks per day before go-live), pace against the recovery a migration on track reaches by now, momentum, a projected recovery with milestone dates, URL success per migration unit, a 0-100 risk score with its factors, prioritised recommendations, redirect status counts (stored checks), the top lost pages, lost queries and losing sections (biggest loss first), redirect problems, the old-to-new impression handover, the click change split into demand / position / CTR effects, the country and device splits (segments) with their recommendations, and a launch checklist; redirect problems and segments by clicksBefore, descending. ctr and shares are 0-100, handover.currentNewShare 0-1. Query figures cover only queries Google lists (waterfall.coveragePct: their click share). siteUrl is the OLD property (side A); pass siteUrlB (the new one) for a domain move, omit it for a migration inside one property. Not for a plain before/after read: use compare_migration. Pass goLiveDate, or a migrationId from list_migrations to reuse a migration saved in the app (its properties, URL prefixes or regexes, go-live date, windows, mapping label and Only mapped URLs setting; explicit arguments override it). Redirect mappings are those saved for the property pair (add_migration_redirects or the app); without any, pages are joined by path. onlyMapped is the app's "Only mapped URLs": with saved mappings, the totals, recovery and health count only the pages the mappings claim, and so do the country and device splits of a side read from the warehouse (segments.scope says which; each 10 warehouse queries of those splits cost one more rate-limit unit). Windows as in compare_migration: windowStrategy "recent" (default), "from-go-live" or "full", windowDays (default 28), yoyBaseline. Page and query reads cover at most the top 25,000 rows by clicks per side and window, and at most 10,000 redirect mappings are analysed (each 2,000 costs one more rate-limit unit); truncated flags a reached cap. health is null until a post-launch day has final data.

Input Schema

NameRequiredDescriptionDefault
siteUrlYesThe OLD property (side A), as returned by list_sites. With migrationId it must be the saved migration's old property.
siteUrlBNoThe NEW property (side B) for a move between properties. Omit when the migration happened inside one property.
goLiveDateNoFirst day the new setup was live, as YYYY-MM-DD. Required unless migrationId supplies one.
onlyMappedNoOnly mapped URLs: count only the pages the redirect mappings claim (the old URLs' pages on side A, their new URLs' pages on side B) in the totals, recovery and health. Default: the saved migration's setting with migrationId, else false. No effect without saved mappings.
windowDaysNoWindow length in days for "recent" and "from-go-live" (default 28).
migrationIdNoId of a migration saved in the app (list_migrations). Its setup supplies everything the arguments leave out.
yoyBaselineNoCompare with the same weeks one year (364 days) earlier instead of the days before go-live. Default false.
mappingLabelNoOnly the redirect mappings carrying this label ("__none__" = only unlabelled ones). Omit to use every mapping saved for the property pair.
windowStrategyNo"recent" (default): the last windowDays days vs the windowDays days before go-live. "from-go-live": the first windowDays days after go-live vs the windowDays days before. "full": the 90 days before go-live vs every day since.

Output Schema

NameRequiredDescriptionDefault
notesNo
setupNo
healthNo
thenByNo
listKeyNoName of the top-level field that holds the rows sortedBy describes.
summaryNo
windowsNo
handoverNo
mappingsNo
nextStepNo
orderingNo
segmentsNo
sortedByNo
warningsNo
checklistNo
migrationNo
redirectsNo
sortOrderNo
thenOrderNo
truncatedNo
waterfallNo
dataSourceNo
pageTrendsNo
queryTrendsNo
emptyBecauseNo
methodLimitsNo
topLostPagesNo
topLostQueriesNo
truncatedReadsNo
topLosingSectionsNo
topRedirectProblemsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedOutput schema / properties / listKey
      Added value: +{
      +  "$ref": "#/properties/migration/anyOf/0/properties/id",
      +  "description": "Name of the top-level field that holds the rows sortedBy describes."
      +}
  2. Changed16 schema fields changed
    • changedOutput schema / additionalProperties
      Previous value: -falseNew value: +true
    • addedOutput schema / properties / emptyBecause
      Added value: +{
      +  "$ref": "#/properties/migration/anyOf/0/properties/id"
      +}
    • changedOutput schema / properties / mappings / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "checksAvailable": {
      -        "$ref": "#/properties/setup/anyOf/0/properties/onlyMapped"
      -      },
      -      "total": {
      -        "$ref": "#/properties/setup/anyOf/0/properties/sectionDepth"
      -      },
      -      "truncated": {
      -        "$ref": "#/properties/setup/anyOf/0/properties/onlyMapped"
      -      }
      -    },
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": true,
      +    "properties": {
      +      "checksAvailable": {
      +        "$ref": "#/properties/setup/anyOf/0/properties/onlyMapped"
      +      },
      +      "total": {
      +        "$ref": "#/properties/setup/anyOf/0/properties/sectionDepth"
      +      },
      +      "truncated": {
      +        "$ref": "#/properties/setup/anyOf/0/properties/onlyMapped"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedOutput schema / properties / methodLimits
      Added value: +{
      +  "$ref": "#/properties/migration/anyOf/0/properties/id"
      +}
    • changedOutput schema / properties / migration / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "id": {
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "name": {
      -        "$ref": "#/properties/migration/anyOf/0/properties/id"
      -      }
      -    },
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": true,
      +    "properties": {
      +      "id": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "name": {
      +        "$ref": "#/properties/migration/anyOf/0/properties/id"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedOutput schema / properties / nextStep
      Added value: +{
      +  "$ref": "#/properties/migration/anyOf/0/properties/id"
      +}
    • addedOutput schema / properties / ordering
      Added value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": {
      +        "additionalProperties": true,
      +        "properties": {
      +          "sortOrder": {
      +            "$ref": "#/properties/migration/anyOf/0/properties/id"
      +          },
      +          "sortedBy": {
      +            "$ref": "#/properties/migration/anyOf/0/properties/id"
      +          },
      +          "thenBy": {
      +            "$ref": "#/properties/migration/anyOf/0/properties/id"
      +          },
      +          "thenOrder": {
      +            "$ref": "#/properties/migration/anyOf/0/properties/id"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • changedOutput schema / properties / redirects / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "byFlag": {
      -        "$ref": "#/properties/summary"
      -      },
      -      "byStatus": {
      -        "$ref": "#/properties/summary"
      -      },
      -      "checked": {
      -        "$ref": "#/properties/setup/anyOf/0/properties/sectionDepth"
      -      },
      -      "total": {
      -        "$ref": "#/properties/setup/anyOf/0/properties/sectionDepth"
      -      }
      -    },
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": true,
      +    "properties": {
      +      "byFlag": {
      +        "$ref": "#/properties/summary"
      +      },
      +      "byStatus": {
      +        "$ref": "#/properties/summary"
      +      },
      +      "checked": {
      +        "$ref": "#/properties/setup/anyOf/0/properties/sectionDepth"
      +      },
      +      "total": {
      +        "$ref": "#/properties/setup/anyOf/0/properties/sectionDepth"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / segments / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "countries": {
      -        "anyOf": [
      -          {
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "clicksAfter": {
      -                  "$ref": "#/properties/setup/anyOf/0/properties/sectionDepth"
      -                },
      -                "clicksBefore": {
      -                  "$ref": "#/properties/setup/anyOf/0/properties/sectionDepth"
      -                },
      -                "key": {
      -                  "$ref": "#/properties/migration/anyOf/0/properties/id"
      -                },
      -                "recoveryPct": {
      -                  "$ref": "#/properties/setup/anyOf/0/properties/sectionDepth"
      -                },
      -                "shareAfter": {
      -                  "$ref": "#/properties/setup/anyOf/0/properties/sectionDepth"
      -                },
      -                "shareBefore": {
      -                  "$ref": "#/properties/setup/anyOf/0/properties/sectionDepth"
      -                }
      -              },
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "countriesTotal": {
      -        "$ref": "#/properties/setup/anyOf/0/properties/sectionDepth"
      -      },
      -      "devices": {
      -        "anyOf": [
      -          {
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "clicksAfter": {
      -                  "$ref": "#/properties/setup/anyOf/0/properties/sectionDepth"
      -                },
      -                "clicksBefore": {
      -                  "$ref": "#/properties/setup/anyOf/0/properties/sectionDepth"
      -                },
      -                "key": {
      -                  "$ref": "#/properties/migration/anyOf/0/properties/id"
      -                },
      -                "recoveryPct": {
      -                  "$ref": "#/properties/setup/anyOf/0/properties/sectionDepth"
      -                },
      -                "shareAfter": {
      -                  "$ref": "#/properties/setup/anyOf/0/properties/sectionDepth"
      -                },
      -                "shareBefore": {
      -                  "$ref": "#/properties/setup/anyOf/0/properties/sectionDepth"
      -                }
      -              },
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "scope": {
      -        "anyOf": [
      -          {
      -            "additionalProperties": false,
      -            "properties": {
      -              "a": {
      -                "$ref": "#/properties/migration/anyOf/0/properties/id"
      -              },
      -              "b": {
      -                "$ref": "#/properties/migration/anyOf/0/properties/id"
      -              }
      -            },
      -            "type": "object"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      }
      -    },
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": true,
      +    "properties": {
      +      "countries": {
      +        "anyOf": [
      +          {
      +            "items": {
      +              "additionalProperties": true,
      +              "properties": {
      +                "clicksAfter": {
      +                  "$ref": "#/properties/setup/anyOf/0/properties/sectionDepth"
      +                },
      +                "clicksBefore": {
      +                  "$ref": "#/properties/setup/anyOf/0/properties/sectionDepth"
      +                },
      +                "key": {
      +                  "$ref": "#/properties/migration/anyOf/0/properties/id"
      +                },
      +                "recoveryPct": {
      +                  "$ref": "#/properties/setup/anyOf/0/properties/sectionDepth"
      +                },
      +                "shareAfter": {
      +                  "$ref": "#/properties/setup/anyOf/0/properties/sectionDepth"
      +                },
      +                "shareBefore": {
      +                  "$ref": "#/properties/setup/anyOf/0/properties/sectionDepth"
      +                }
      +              },
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "countriesTotal": {
      +        "$ref": "#/properties/setup/anyOf/0/properties/sectionDepth"
      +      },
      +      "devices": {
      +        "anyOf": [
      +          {
      +            "items": {
      +              "additionalProperties": true,
      +              "properties": {
      +                "clicksAfter": {
      +                  "$ref": "#/properties/setup/anyOf/0/properties/sectionDepth"
      +                },
      +                "clicksBefore": {
      +                  "$ref": "#/properties/setup/anyOf/0/properties/sectionDepth"
      +                },
      +                "key": {
      +                  "$ref": "#/properties/migration/anyOf/0/properties/id"
      +                },
      +                "recoveryPct": {
      +                  "$ref": "#/properties/setup/anyOf/0/properties/sectionDepth"
      +                },
      +                "shareAfter": {
      +                  "$ref": "#/properties/setup/anyOf/0/properties/sectionDepth"
      +                },
      +                "shareBefore": {
      +                  "$ref": "#/properties/setup/anyOf/0/properties/sectionDepth"
      +                }
      +              },
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "scope": {
      +        "anyOf": [
      +          {
      +            "additionalProperties": true,
      +            "properties": {
      +              "a": {
      +                "$ref": "#/properties/migration/anyOf/0/properties/id"
      +              },
      +              "b": {
      +                "$ref": "#/properties/migration/anyOf/0/properties/id"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      }
      +    },
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / setup / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "mappingLabel": {
      -        "$ref": "#/properties/migration/anyOf/0/properties/id"
      -      },
      -      "matchMode": {
      -        "$ref": "#/properties/migration/anyOf/0/properties/id"
      -      },
      -      "mode": {
      -        "$ref": "#/properties/migration/anyOf/0/properties/id"
      -      },
      -      "onlyMapped": {
      -        "type": [
      -          "boolean",
      -          "null"
      -        ]
      -      },
      -      "regexA": {
      -        "$ref": "#/properties/migration/anyOf/0/properties/id"
      -      },
      -      "regexB": {
      -        "$ref": "#/properties/migration/anyOf/0/properties/id"
      -      },
      -      "searchType": {
      -        "$ref": "#/properties/migration/anyOf/0/properties/id"
      -      },
      -      "sectionDepth": {
      -        "type": [
      -          "number",
      -          "null"
      -        ]
      -      },
      -      "siteUrlA": {
      -        "$ref": "#/properties/migration/anyOf/0/properties/id"
      -      },
      -      "siteUrlB": {
      -        "$ref": "#/properties/migration/anyOf/0/properties/id"
      -      },
      -      "urlPrefixA": {
      -        "$ref": "#/properties/migration/anyOf/0/properties/id"
      -      },
      -      "urlPrefixB": {
      -        "$ref": "#/properties/migration/anyOf/0/properties/id"
      -      }
      -    },
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": true,
      +    "properties": {
      +      "mappingLabel": {
      +        "$ref": "#/properties/migration/anyOf/0/properties/id"
      +      },
      +      "matchMode": {
      +        "$ref": "#/properties/migration/anyOf/0/properties/id"
      +      },
      +      "mode": {
      +        "$ref": "#/properties/migration/anyOf/0/properties/id"
      +      },
      +      "onlyMapped": {
      +        "type": [
      +          "boolean",
      +          "null"
      +        ]
      +      },
      +      "regexA": {
      +        "$ref": "#/properties/migration/anyOf/0/properties/id"
      +      },
      +      "regexB": {
      +        "$ref": "#/properties/migration/anyOf/0/properties/id"
      +      },
      +      "searchType": {
      +        "$ref": "#/properties/migration/anyOf/0/properties/id"
      +      },
      +      "sectionDepth": {
      +        "type": [
      +          "number",
      +          "null"
      +        ]
      +      },
      +      "siteUrlA": {
      +        "$ref": "#/properties/migration/anyOf/0/properties/id"
      +      },
      +      "siteUrlB": {
      +        "$ref": "#/properties/migration/anyOf/0/properties/id"
      +      },
      +      "urlPrefixA": {
      +        "$ref": "#/properties/migration/anyOf/0/properties/id"
      +      },
      +      "urlPrefixB": {
      +        "$ref": "#/properties/migration/anyOf/0/properties/id"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedOutput schema / properties / sortOrder
      Added value: +{
      +  "$ref": "#/properties/migration/anyOf/0/properties/id"
      +}
    • addedOutput schema / properties / sortedBy
      Added value: +{
      +  "$ref": "#/properties/migration/anyOf/0/properties/id"
      +}
    • addedOutput schema / properties / thenBy
      Added value: +{
      +  "$ref": "#/properties/migration/anyOf/0/properties/id"
      +}
    • addedOutput schema / properties / thenOrder
      Added value: +{
      +  "$ref": "#/properties/migration/anyOf/0/properties/id"
      +}
    • changedOutput schema / properties / warnings / items / additionalProperties
      Previous value: -falseNew value: +true
    • changedOutput schema / properties / windows / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "after": {
      -        "$ref": "#/properties/windows/anyOf/0/properties/before"
      -      },
      -      "before": {
      -        "anyOf": [
      -          {
      -            "additionalProperties": false,
      -            "properties": {
      -              "days": {
      -                "$ref": "#/properties/setup/anyOf/0/properties/sectionDepth"
      -              },
      -              "end": {
      -                "$ref": "#/properties/migration/anyOf/0/properties/id"
      -              },
      -              "start": {
      -                "$ref": "#/properties/migration/anyOf/0/properties/id"
      -              }
      -            },
      -            "type": "object"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "daysSinceGoLive": {
      -        "$ref": "#/properties/setup/anyOf/0/properties/sectionDepth"
      -      },
      -      "equalLength": {
      -        "$ref": "#/properties/setup/anyOf/0/properties/onlyMapped"
      -      },
      -      "goLiveDate": {
      -        "$ref": "#/properties/migration/anyOf/0/properties/id"
      -      },
      -      "latestDate": {
      -        "$ref": "#/properties/migration/anyOf/0/properties/id"
      -      },
      -      "strategy": {
      -        "$ref": "#/properties/migration/anyOf/0/properties/id"
      -      },
      -      "timeline": {
      -        "$ref": "#/properties/windows/anyOf/0/properties/before"
      -      },
      -      "warnings": {
      -        "items": {
      -          "additionalProperties": false,
      -          "properties": {
      -            "code": {
      -              "$ref": "#/properties/migration/anyOf/0/properties/id"
      -            },
      -            "message": {
      -              "$ref": "#/properties/migration/anyOf/0/properties/id"
      -            },
      -            "severity": {
      -              "$ref": "#/properties/migration/anyOf/0/properties/id"
      -            }
      -          },
      -          "type": "object"
      -        },
      -        "type": "array"
      -      },
      -      "windowScale": {
      -        "$ref": "#/properties/setup/anyOf/0/properties/sectionDepth"
      -      },
      -      "yoyBaseline": {
      -        "$ref": "#/properties/setup/anyOf/0/properties/onlyMapped"
      -      }
      -    },
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": true,
      +    "properties": {
      +      "after": {
      +        "$ref": "#/properties/windows/anyOf/0/properties/before"
      +      },
      +      "before": {
      +        "anyOf": [
      +          {
      +            "additionalProperties": true,
      +            "properties": {
      +              "days": {
      +                "$ref": "#/properties/setup/anyOf/0/properties/sectionDepth"
      +              },
      +              "end": {
      +                "$ref": "#/properties/migration/anyOf/0/properties/id"
      +              },
      +              "start": {
      +                "$ref": "#/properties/migration/anyOf/0/properties/id"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "daysSinceGoLive": {
      +        "$ref": "#/properties/setup/anyOf/0/properties/sectionDepth"
      +      },
      +      "equalLength": {
      +        "$ref": "#/properties/setup/anyOf/0/properties/onlyMapped"
      +      },
      +      "goLiveDate": {
      +        "$ref": "#/properties/migration/anyOf/0/properties/id"
      +      },
      +      "latestDate": {
      +        "$ref": "#/properties/migration/anyOf/0/properties/id"
      +      },
      +      "strategy": {
      +        "$ref": "#/properties/migration/anyOf/0/properties/id"
      +      },
      +      "timeline": {
      +        "$ref": "#/properties/windows/anyOf/0/properties/before"
      +      },
      +      "warnings": {
      +        "items": {
      +          "additionalProperties": true,
      +          "properties": {
      +            "code": {
      +              "$ref": "#/properties/migration/anyOf/0/properties/id"
      +            },
      +            "message": {
      +              "$ref": "#/properties/migration/anyOf/0/properties/id"
      +            },
      +            "severity": {
      +              "$ref": "#/properties/migration/anyOf/0/properties/id"
      +            }
      +          },
      +          "type": "object"
      +        },
      +        "type": "array"
      +      },
      +      "windowScale": {
      +        "$ref": "#/properties/setup/anyOf/0/properties/sectionDepth"
      +      },
      +      "yoyBaseline": {
      +        "$ref": "#/properties/setup/anyOf/0/properties/onlyMapped"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
  3. Added

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already cover read-only safety, but the description goes well beyond: rate-limit costs for warehouse segment queries and every 2,000 redirect mappings, hard caps (25,000 rows, 10,000 mappings) with a `truncated` flag, `health` being null until post-launch data is final, and the fallback to path-join when no mappings exist. It also states precedence rules (explicit arguments override a saved migrationId) and segment scope values.

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?

The usage guidance is front-loaded, but the bulk is a single sprawling sentence enumerating roughly twenty return fields, which an output schema already carries. The information density is high, yet the paragraph is hard to parse and spends meaningful length restating return values.

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 complex, multi-mode analysis this covers the decision points an agent needs: which mode (domain move vs in-property), what a saved migrationId supplies, how caps and rate limits bite, and when `health` is unavailable. Return-shape explanation is partly redundant given the output schema, but nothing needed to call it correctly 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 already 100%, and the description still adds cross-parameter semantics the schema can't express: siteUrl is the OLD side and siteUrlB is only for a domain move (omit for an in-property migration), onlyMapped is inert without saved mappings, and migrationId feeds every omitted argument. It largely restates mappingLabel/windowStrategy rather than extending them, so not a 5.

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?

The opening sentence states a specific verb and decision-oriented resource ('how a site migration is doing or what to fix'), and immediately differentiates scope from the sibling compare_migration. An agent can tell which analysis it needs 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?

Explicit when-to-use ('when the user asks how a site migration is doing or what to fix'), explicit when-not ('Not for a plain before/after read: use compare_migration'), and named alternatives for adjacent needs (list_migrations for saved setups, add_migration_redirects for mappings).

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