Skip to main content
Glama

SEO GSC Wizard MCP

Merchant Center account health

get_gmc_account_health
Read-only

Use this when the user asks why their products are missing from Google Shopping everywhere at once, why a whole Merchant Center account stopped serving, or whether the account is in good standing. Account-level health of the Google Merchant Center account linked to a GSC Wizard site: the account issues Merchant Center raises (suspensions, misrepresentation and other policy warnings, missing settings), each with severity CRITICAL / ERROR / SUGGESTION, the affected destinations (FREE_LISTINGS, SHOPPING_ADS, ...) and regions, plus eligibility checks on the settings Google reads: the Merchant Center terms of service, the free-listings program state (with any unmet requirements), whether the website is claimed, account shipping services, return policies and business info. Issues come most severe first, then by title; checks keep that fixed order. Every check has a status (ok / suggestion / warning / critical / unknown) and a plain-language message, and overallStatus is the worst of them and of the issues. Not for per-product problems: use get_product_listing_status or get_feed_audit_results. Business contact details are reported as present or missing only, never their values. A check whose setting this Google login may not read answers status "unknown" (see sections) instead of failing the call. Returns a notConfigured result (not an error) when Merchant Center is not connected or no Merchant Center account is linked to the site in the GSC Wizard app.

Input Schema

NameRequiredDescriptionDefault
limitNoAccount issues to return, most severe first (default 200, max 500).
siteUrlYesThe property URL as returned by list_sites (e.g. "sc-domain:example.com").
languageCodeNoOptional. BCP-47 language for the issue titles and details (e.g. "en-US", "nl"). Default en-US.

Output Schema

NameRequiredDescriptionDefault
hintNo
noteNo
rangeNo
checksNo
issuesNo
reasonNo
thenByNo
accountNo
listKeyNoName of the top-level field that holds the rows sortedBy describes.
siteUrlNo
cachedAtNo
homepageNo
orderingNo
programsNo
sectionsNo
shippingNo
sortedByNo
sortOrderNo
thenOrderNo
truncatedNo
dataSourceNo
issueCountNo
issueCountsNo
businessInfoNo
gmcAccountIdNo
notConfiguredNo
overallStatusNo
returnPoliciesNo
termsOfServiceNo
truncationNoteNo
targetCountriesNo
truncationReasonNo
freeListingsIssueCountNo
countriesWithoutShippingServiceNo

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. Changed17 schema fields changed
    • changedOutput schema / additionalProperties
      Previous value: -falseNew value: +true
    • changedOutput schema / properties / businessInfo / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "addressRegionCode": {
      -        "$ref": "#/properties/siteUrl"
      -      },
      -      "hasAddress": {
      -        "$ref": "#/properties/notConfigured"
      -      },
      -      "hasCustomerServiceEmail": {
      -        "$ref": "#/properties/notConfigured"
      -      },
      -      "hasCustomerServicePhone": {
      -        "$ref": "#/properties/notConfigured"
      -      },
      -      "hasCustomerServiceUri": {
      -        "$ref": "#/properties/notConfigured"
      -      },
      -      "hasPhone": {
      -        "$ref": "#/properties/notConfigured"
      -      },
      -      "phoneVerificationState": {
      -        "$ref": "#/properties/siteUrl"
      -      }
      -    },
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": true,
      +    "properties": {
      +      "addressRegionCode": {
      +        "$ref": "#/properties/siteUrl"
      +      },
      +      "hasAddress": {
      +        "$ref": "#/properties/notConfigured"
      +      },
      +      "hasCustomerServiceEmail": {
      +        "$ref": "#/properties/notConfigured"
      +      },
      +      "hasCustomerServicePhone": {
      +        "$ref": "#/properties/notConfigured"
      +      },
      +      "hasCustomerServiceUri": {
      +        "$ref": "#/properties/notConfigured"
      +      },
      +      "hasPhone": {
      +        "$ref": "#/properties/notConfigured"
      +      },
      +      "phoneVerificationState": {
      +        "$ref": "#/properties/siteUrl"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / checks / items / additionalProperties
      Previous value: -falseNew value: +true
    • changedOutput schema / properties / homepage / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "claimed": {
      -        "$ref": "#/properties/notConfigured"
      -      },
      -      "uri": {
      -        "$ref": "#/properties/siteUrl"
      -      }
      -    },
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": true,
      +    "properties": {
      +      "claimed": {
      +        "$ref": "#/properties/notConfigured"
      +      },
      +      "uri": {
      +        "$ref": "#/properties/siteUrl"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / issueCounts / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "critical": {
      -        "$ref": "#/properties/range/anyOf/0/properties/days"
      -      },
      -      "error": {
      -        "$ref": "#/properties/range/anyOf/0/properties/days"
      -      },
      -      "suggestion": {
      -        "$ref": "#/properties/range/anyOf/0/properties/days"
      -      },
      -      "unspecified": {
      -        "$ref": "#/properties/range/anyOf/0/properties/days"
      -      }
      -    },
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": true,
      +    "properties": {
      +      "critical": {
      +        "$ref": "#/properties/range/anyOf/0/properties/days"
      +      },
      +      "error": {
      +        "$ref": "#/properties/range/anyOf/0/properties/days"
      +      },
      +      "suggestion": {
      +        "$ref": "#/properties/range/anyOf/0/properties/days"
      +      },
      +      "unspecified": {
      +        "$ref": "#/properties/range/anyOf/0/properties/days"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / issues / items / additionalProperties
      Previous value: -falseNew value: +true
    • changedOutput schema / properties / issues / items / properties / impactedDestinations / anyOf
      Previous value: -[
      -  {
      -    "items": {
      -      "additionalProperties": false,
      -      "properties": {
      -        "impacts": {
      -          "anyOf": [
      -            {
      -              "items": {
      -                "additionalProperties": false,
      -                "properties": {
      -                  "regionCode": {
      -                    "$ref": "#/properties/siteUrl"
      -                  },
      -                  "severity": {
      -                    "$ref": "#/properties/siteUrl"
      -                  }
      -                },
      -                "type": "object"
      -              },
      -              "type": "array"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ]
      -        },
      -        "reportingContext": {
      -          "$ref": "#/properties/siteUrl"
      -        }
      -      },
      -      "type": "object"
      -    },
      -    "type": "array"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "items": {
      +      "additionalProperties": true,
      +      "properties": {
      +        "impacts": {
      +          "anyOf": [
      +            {
      +              "items": {
      +                "additionalProperties": true,
      +                "properties": {
      +                  "regionCode": {
      +                    "$ref": "#/properties/siteUrl"
      +                  },
      +                  "severity": {
      +                    "$ref": "#/properties/siteUrl"
      +                  }
      +                },
      +                "type": "object"
      +              },
      +              "type": "array"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "reportingContext": {
      +          "$ref": "#/properties/siteUrl"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "type": "array"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • 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"
      +    }
      +  ]
      +}
    • changedOutput schema / properties / programs / anyOf
      Previous value: -[
      -  {
      -    "items": {
      -      "additionalProperties": false,
      -      "properties": {
      -        "activeRegionCodes": {
      -          "$ref": "#/properties/countriesWithoutShippingService"
      -        },
      -        "programId": {
      -          "$ref": "#/properties/siteUrl"
      -        },
      -        "state": {
      -          "$ref": "#/properties/siteUrl"
      -        },
      -        "unmetRequirements": {
      -          "anyOf": [
      -            {
      -              "items": {
      -                "additionalProperties": false,
      -                "properties": {
      -                  "affectedRegionCodes": {
      -                    "$ref": "#/properties/countriesWithoutShippingService"
      -                  },
      -                  "documentationUri": {
      -                    "$ref": "#/properties/siteUrl"
      -                  },
      -                  "title": {
      -                    "$ref": "#/properties/siteUrl"
      -                  }
      -                },
      -                "type": "object"
      -              },
      -              "type": "array"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ]
      -        }
      -      },
      -      "type": "object"
      -    },
      -    "type": "array"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "items": {
      +      "additionalProperties": true,
      +      "properties": {
      +        "activeRegionCodes": {
      +          "$ref": "#/properties/countriesWithoutShippingService"
      +        },
      +        "programId": {
      +          "$ref": "#/properties/siteUrl"
      +        },
      +        "state": {
      +          "$ref": "#/properties/siteUrl"
      +        },
      +        "unmetRequirements": {
      +          "anyOf": [
      +            {
      +              "items": {
      +                "additionalProperties": true,
      +                "properties": {
      +                  "affectedRegionCodes": {
      +                    "$ref": "#/properties/countriesWithoutShippingService"
      +                  },
      +                  "documentationUri": {
      +                    "$ref": "#/properties/siteUrl"
      +                  },
      +                  "title": {
      +                    "$ref": "#/properties/siteUrl"
      +                  }
      +                },
      +                "type": "object"
      +              },
      +              "type": "array"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "type": "array"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / range / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "days": {
      -        "type": [
      -          "number",
      -          "null"
      -        ]
      -      },
      -      "endDate": {
      -        "$ref": "#/properties/siteUrl"
      -      },
      -      "startDate": {
      -        "$ref": "#/properties/siteUrl"
      -      }
      -    },
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": true,
      +    "properties": {
      +      "days": {
      +        "type": [
      +          "number",
      +          "null"
      +        ]
      +      },
      +      "endDate": {
      +        "$ref": "#/properties/siteUrl"
      +      },
      +      "startDate": {
      +        "$ref": "#/properties/siteUrl"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / returnPolicies / anyOf
      Previous value: -[
      -  {
      -    "items": {
      -      "additionalProperties": false,
      -      "properties": {
      -        "countries": {
      -          "$ref": "#/properties/countriesWithoutShippingService"
      -        },
      -        "days": {
      -          "$ref": "#/properties/range/anyOf/0/properties/days"
      -        },
      -        "label": {
      -          "$ref": "#/properties/siteUrl"
      -        },
      -        "policyType": {
      -          "$ref": "#/properties/siteUrl"
      -        },
      -        "returnPolicyId": {
      -          "$ref": "#/properties/siteUrl"
      -        },
      -        "returnPolicyUri": {
      -          "$ref": "#/properties/siteUrl"
      -        }
      -      },
      -      "type": "object"
      -    },
      -    "type": "array"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "items": {
      +      "additionalProperties": true,
      +      "properties": {
      +        "countries": {
      +          "$ref": "#/properties/countriesWithoutShippingService"
      +        },
      +        "days": {
      +          "$ref": "#/properties/range/anyOf/0/properties/days"
      +        },
      +        "label": {
      +          "$ref": "#/properties/siteUrl"
      +        },
      +        "policyType": {
      +          "$ref": "#/properties/siteUrl"
      +        },
      +        "returnPolicyId": {
      +          "$ref": "#/properties/siteUrl"
      +        },
      +        "returnPolicyUri": {
      +          "$ref": "#/properties/siteUrl"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "type": "array"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / shipping / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "activeDeliveryCountries": {
      -        "$ref": "#/properties/countriesWithoutShippingService"
      -      },
      -      "activeServiceCount": {
      -        "$ref": "#/properties/range/anyOf/0/properties/days"
      -      },
      -      "serviceCount": {
      -        "$ref": "#/properties/range/anyOf/0/properties/days"
      -      },
      -      "warehouseCount": {
      -        "$ref": "#/properties/range/anyOf/0/properties/days"
      -      }
      -    },
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": true,
      +    "properties": {
      +      "activeDeliveryCountries": {
      +        "$ref": "#/properties/countriesWithoutShippingService"
      +      },
      +      "activeServiceCount": {
      +        "$ref": "#/properties/range/anyOf/0/properties/days"
      +      },
      +      "serviceCount": {
      +        "$ref": "#/properties/range/anyOf/0/properties/days"
      +      },
      +      "warehouseCount": {
      +        "$ref": "#/properties/range/anyOf/0/properties/days"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedOutput schema / properties / sortOrder
      Added value: +{
      +  "$ref": "#/properties/siteUrl"
      +}
    • addedOutput schema / properties / sortedBy
      Added value: +{
      +  "$ref": "#/properties/siteUrl"
      +}
    • changedOutput schema / properties / termsOfService / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "accepted": {
      -        "anyOf": [
      -          {
      -            "additionalProperties": false,
      -            "properties": {
      -              "termsOfService": {
      -                "$ref": "#/properties/siteUrl"
      -              },
      -              "validUntil": {
      -                "$ref": "#/properties/siteUrl"
      -              }
      -            },
      -            "type": "object"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "regionCode": {
      -        "$ref": "#/properties/siteUrl"
      -      },
      -      "required": {
      -        "anyOf": [
      -          {
      -            "additionalProperties": false,
      -            "properties": {
      -              "termsOfService": {
      -                "$ref": "#/properties/siteUrl"
      -              },
      -              "tosFileUri": {
      -                "$ref": "#/properties/siteUrl"
      -              }
      -            },
      -            "type": "object"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      }
      -    },
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": true,
      +    "properties": {
      +      "accepted": {
      +        "anyOf": [
      +          {
      +            "additionalProperties": true,
      +            "properties": {
      +              "termsOfService": {
      +                "$ref": "#/properties/siteUrl"
      +              },
      +              "validUntil": {
      +                "$ref": "#/properties/siteUrl"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "regionCode": {
      +        "$ref": "#/properties/siteUrl"
      +      },
      +      "required": {
      +        "anyOf": [
      +          {
      +            "additionalProperties": true,
      +            "properties": {
      +              "termsOfService": {
      +                "$ref": "#/properties/siteUrl"
      +              },
      +              "tosFileUri": {
      +                "$ref": "#/properties/siteUrl"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      }
      +    },
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedOutput schema / properties / thenBy
      Added value: +{
      +  "$ref": "#/properties/siteUrl"
      +}
    • addedOutput schema / properties / thenOrder
      Added value: +{
      +  "$ref": "#/properties/siteUrl"
      +}
  3. Added

TDQS

A4.6/5.0
Behavior5/5

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

Annotations only declare readOnly/openWorld/non-destructive; the description adds substantial context beyond them: issue ordering (severity then title, checks in fixed order), the five-value per-check status and how overallStatus is derived, that unreadable settings yield status 'unknown' rather than failing the call, that contact details are reported as present/missing only, and that a missing Merchant Center link returns notConfigured instead of an error. No contradiction with annotations.

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?

Front-loaded with the usage trigger, then scope, then return shape, then exclusions — a sensible order for an agent scanning for relevance. It is dense and a couple of clauses (the full enumeration of settings checked, restating severity ordering twice) could be trimmed, but almost every sentence carries decision-relevant information.

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 read-only diagnostic tool this covers the full burden: what is checked, how severity and ordering work, how overallStatus aggregates, the unknown-status fallback for unreadable settings, the privacy treatment of contact data, and the notConfigured case. With an output schema present, return-value detail need not be repeated further.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents siteUrl (property URL from list_sites), limit (default 200, max 500, severe-first) and languageCode (BCP-47, default en-US). The description reinforces the severity-first ordering that limit relates to but adds no new parameter syntax or defaults. Baseline 3 applies when the schema does the heavy lifting.

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+resource (account-level health of the Merchant Center account linked to a GSC Wizard site) and enumerates the concrete contents: issues with severities and affected destinations/regions, plus eligibility checks on specific settings. It explicitly differentiates from siblings: 'Not for per-product problems: use get_product_listing_status or get_feed_audit_results.'

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 concrete user-question triggers ('why their products are missing from Google Shopping everywhere at once', 'whether the account is in good standing') and names the alternative tools plus the condition that selects them. It also gives the notConfigured condition, so the agent knows what a non-error empty result means.

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