Google Merchant Center MCP server
The Merchant Center questions a basic catalogue sync leaves unanswered.
Temporarily unavailable while we complete account-ownership verification.
- Tools
- 52
- Read-only
- 32
- Write
- 20
- Off by default
- Destructive
- 6
- Flagged distinctly
Google Merchant Center through an assistant
Most stores already push products to Merchant Center somehow. This connector is aimed at what happens afterwards: why a product isn't showing, which data source owns it, what the disapproval reasons actually say, and whether a promotion is live. Diagnostics are the centre of it -- Google will return its own written explanation of each issue and the steps that resolve it, rather than a status code you have to interpret. Product writes, inventory, regions and programs are all opt-in, and anything irreversible needs an explicit confirmation on top.
- Issue diagnostics with Google's own explanation and remediation steps
- Account-wide product health: how many items are approved, pending or disapproved
- Bulk reporting queries across ten report views, with a built-in schema guide
- Product detail, creation and patching across the attributes merchants actually set
- Data sources, and which products each one feeds
- Promotions: money-off, percent-off and free shipping
- Local and regional inventory, plus the regions they depend on (opt-in)
- Programs, autofeed and automatic improvements -- why your data changed on its own
- Shipping settings and return policies (read-only)
- Remaining API quota, for when writes start failing
What people actually ask
Real questions, answered from live Google Merchant Center data.
“Why isn't my product showing on Google, and how do I fix it?”
google_merchant_render_product_issuesgoogle_merchant_get_product“How healthy is my catalogue overall -- how many items are disapproved?”
google_merchant_list_aggregate_product_statusesgoogle_merchant_search_reports“Something changed my product prices and it wasn't me. What's enabled on this account?”
google_merchant_get_automatic_improvementsgoogle_merchant_get_autofeed_settings52 Google Merchant Center tools
Grouped by what they touch. Every tool is individually toggleable — you expose only what you want.
Account
12 tools8 read-only · 4 writeShowing 10 of 10 tools
- google_merchant_claim_homepageWrite
Claim the homepage already configured on this account -- this verifies ownership, it does not set the URI (do that in Merchant Center). Requires the service account to hold the Admin role, which the default onboarding does not grant. Safe to re-run: on an already-claimed homepage it just rechecks verification. Setting overwrite takes the claim on this website away from whichever other Merchant Center account currently holds it and moves it here -- that account loses its claim, so only use it when the merchant genuinely owns the site and a stale account is squatting on it.
- google_merchant_get_accountRead-only
This connection's Merchant Center account details -- name, time zone, language, whether it's a test account.
- google_merchant_get_business_identityRead-only
The self-declared identity attributes on this account -- black-owned, women-owned, veteran-owned, latino-owned, small business -- and whether the business consented to Google using them in promotions. US-only and not applicable to marketplaces, so expect these to be unset elsewhere.
- google_merchant_get_business_infoRead-only
The business address and customer-service contacts Merchant Center holds for this account, plus the phone number and its verification state. Read it before google_merchant_update_business_info -- that update replaces the address wholesale, so you need to know what's there first.
- google_merchant_get_homepageRead-only
The store homepage URI on file for this account and whether it has been claimed. An unclaimed homepage blocks every feature that needs a verified website, and is one of the usual answers to "the products are approved but nothing is showing."
- google_merchant_get_terms_of_service_stateRead-only
Whether this account has accepted the application terms of service and what is still required if not -- including tosFileUri, the URL of the text that has to be shown before acceptance. Both accepted and required can be populated at once, which means the current acceptance expires at validUntil and the new terms must be signed before then. Accepting is deliberately not offered by this connector: it is a legally binding act that belongs to the merchant, in Merchant Center.
- google_merchant_list_accessible_accountsRead-only
Which Merchant Center accounts has this platform's service account been granted access to. accounts.list takes no parent -- Google authorizes it against the calling service account itself, so unlike every other tool here its results legitimately span accounts: every merchant who has added that service-account email under Settings -> Account access shows up. That is the point of it -- use it to discover a merchant ID during onboarding, or to confirm a newly granted access actually landed.
- google_merchant_list_account_issuesRead-only
Account-level problems -- the kind that can affect every product at once -- each with a severity (CRITICAL stops offers serving, ERROR may, SUGGESTION is advisory), the reporting contexts and regions it hits, and a Help Center link explaining the fix. Reach for this when individual products look healthy but nothing is serving; item-level disapprovals live on the product itself, via google_merchant_get_product. Covers this account only, not sub-accounts.
- google_merchant_list_usersRead-only
Users on this Merchant Center account with their access rights and state (PENDING or VERIFIED). Use it to confirm this platform's service-account email is actually present and VERIFIED -- a user still sitting in PENDING is the usual reason calls fail right after onboarding, and google_merchant_verify_self is the fix.
- google_merchant_update_accountWrite
Change this account's own settings -- display name, adult-content flag, time zone, language. Only the fields you supply are touched; the rest are left alone. Requires the service account to hold the Admin role on the merchant's account: the default onboarding grants standard access, so expect PERMISSION_DENIED until the merchant upgrades it under Settings -> Account access.
+ 2 more account tools — see the full catalogue
Products
6 tools2 read-only · 4 writeShowing 6 of 6 tools
- google_merchant_create_productWrite
Submit a new product. Writes go through productInputs, not the read-only products resource -- Google merges this input with the data source's config to produce the final listing (may take a few minutes to appear via google_merchant_get_product).
- google_merchant_delete_productWriteDestructive
Permanently remove a product input -- if it came from a primary data source, this deletes the whole merged product, not just this input's contribution.
- google_merchant_get_productRead-only
The final, merged, Google-processed product -- includes productStatus with per-destination approval state and any disapproval reasons. Use this to answer "why isn't my product showing."
- google_merchant_list_productsRead-only
One page of products in this Merchant Center account, with their approval status and any item-level issues. Returns nextPageToken when more remain. For catalogue-wide questions ("how many are disapproved") prefer google_merchant_search_reports or google_merchant_list_aggregate_product_statuses -- paging through every product to count them is far slower and burns quota.
- google_merchant_update_productWrite
Patch any attribute of an existing product -- title, images, sale price, categories, custom labels, variant and apparel attributes. Only the fields you supply are touched; everything else on the product is left alone. For the common high-frequency case of repricing or flipping stock status, prefer google_merchant_update_product_price_availability, which is the same call with a much smaller schema. There is no batch mutate for products, so this is one HTTP call per product. Writes go through productInputs -- the merged result may take a few minutes to appear via google_merchant_get_product.
- google_merchant_update_product_price_availabilityWrite
Patch just the price and/or availability of an existing product -- the common high-frequency update, without resubmitting the whole product.
Inventory
6 tools2 read-only · 4 writeShowing 6 of 6 tools
- google_merchant_delete_local_inventoryWriteDestructive
Permanently remove one store's local inventory entry from a product, so the product stops being offered for in-store pickup at that store. To keep the store but mark it sold out, use google_merchant_set_local_inventory with availability OUT_OF_STOCK instead. Google takes up to an hour to drop the entry from the product -- wait that long before retrying a delete.
- google_merchant_delete_regional_inventoryWriteDestructive
Permanently remove one region's inventory entry from a product. The product does not stop selling in that region -- it loses the regional override and falls back to its default price and availability there, which is often a bigger change than it sounds. Google takes up to an hour to drop the entry from the product -- wait that long before retrying a delete.
- google_merchant_list_local_inventoriesRead-only
Every per-store local inventory entry on ONE product -- quantity, availability, price and pickup settings per storeCode. This is the read-back for google_merchant_set_local_inventory. Note the scope: local inventories are listed per product, so there is no call that returns an account's whole in-store inventory; you have to walk products from google_merchant_list_products.
- google_merchant_list_regional_inventoriesRead-only
Every per-region price and availability override on ONE product -- the read-back for google_merchant_set_regional_inventory. Like local inventories these are listed per product, not per account, so the parent is a product resource name and an account-wide view means walking google_merchant_list_products.
- google_merchant_set_local_inventoryWrite
Set in-store pickup availability, price, and quantity for a product at one store location -- for merchants with physical stores linked to their online catalog.
- google_merchant_set_regional_inventoryWrite
Set availability and price for a product within a specific geographic region -- for merchants whose stock or pricing varies by region.
Programs
6 tools4 read-only · 2 writeShowing 6 of 6 tools
- google_merchant_disable_programWriteDestructive
Opt this account out of a program. Not a pause -- participation stops and the account's live listings come off that surface (Free Listings, Shopping Ads, whichever it is) until google_merchant_enable_program is called again. Reach for google_merchant_list_programs first to see what the account is actually participating in.
- google_merchant_enable_programWrite
Opt this account into a program, so its products can start appearing on that surface. Check google_merchant_list_programs first: a program in NOT_ELIGIBLE state lists the unmetRequirements standing in the way, and enabling is not what fixes those.
- google_merchant_get_autofeed_settingsRead-only
Whether autofeed is switched on for this account (enableProducts) and whether the account is eligible for it. Autofeed builds products by crawling the merchant's own website, so this is half the answer to "why did my product data change when I didn't change it" and to "where did these products I never uploaded come from" -- google_merchant_get_automatic_improvements is the other half.
- google_merchant_get_automatic_improvementsRead-only
Which corrections Google is permitted to make to this account's data by itself: itemUpdates (price, availability, strict availability, condition), imageImprovements, and shippingImprovements. The other half of "why did my product data change when I didn't change it" -- check here before concluding that a feed or another tool overwrote a value.
- google_merchant_get_programRead-only
One program's state, active region codes, and unmet requirements. Only worth calling when you already hold the program's resource name -- google_merchant_list_programs returns this same shape for every program in a single call.
- google_merchant_list_programsRead-only
Every program available to this account -- Free Listings, Shopping Ads and the rest -- each with its state (ENABLED, ELIGIBLE, NOT_ELIGIBLE), the region codes it is active in, and, for the ones the account is not in, the unmetRequirements blocking it. Each requirement carries a title and a documentationUri. Reach for this when a whole surface is missing rather than one product: the issue and product-status tools explain why an individual listing is disapproved, this explains why the account is not on the surface at all.
Datasources
5 tools2 read-only · 3 writeShowing 5 of 5 tools
- google_merchant_create_data_sourceWrite
Create a new API-type primary product data source -- required plumbing before any product write works. Most accounts only need one; check google_merchant_list_data_sources first.
- google_merchant_delete_data_sourceWriteDestructive
Permanently remove a data source. If it's a primary product data source, this deletes every product sourced from it, including all supplemental data layered on top -- effectively a bulk delete-everything operation.
- google_merchant_fetch_data_sourceWrite
Trigger an immediate fetch of a data source's feed file, outside its normal schedule. Google's own guidance: "If you need to call this method more than once per day, you should use the Products service to update your product data instead" -- so for anything high-frequency use google_merchant_update_product or google_merchant_update_product_price_availability. This only works on a FILE-type data source that already has a fetch URL configured (fileInput.fetchSettings.fetchUri); there is no file upload endpoint in this API, so the feed itself must already be reachable over HTTP/HTTPS/SFTP. Check the source with google_merchant_get_data_source first. Returns nothing on success -- the fetch runs asynchronously.
- google_merchant_get_data_sourceRead-only
The full configuration of one data source -- its input type (API, FILE, UI, AUTOFEED), its feedLabel/contentLanguage/countries, and, for FILE sources, the fileInput block with the fetch schedule and fetch URL. Use this over google_merchant_list_data_sources when you need those details for a single source, e.g. to check whether google_merchant_fetch_data_source can run against it.
- google_merchant_list_data_sourcesRead-only
Data sources on this account. Product writes require an API-type data source -- create one with google_merchant_create_data_source if none exists yet.
Regions
4 tools2 read-only · 2 writeShowing 4 of 4 tools
- google_merchant_create_regionWrite
Define a new region, so that google_merchant_set_regional_inventory has something to target -- on an account with no regions, that tool has no valid value to pass. Define the area EITHER by postal codes (postalCodeRegionCode plus postalCodes) OR by geotargets (geotargetCriteriaIds), never both: Google requires exactly one. Google also supports a third form, a radius around a point, which this tool does not expose. Requires the service account to hold the Admin role on the merchant's account, not the standard role the default onboarding grants.
- google_merchant_delete_regionWriteDestructive
Permanently delete a region definition. There is no undo -- recreating it means re-entering its whole postal-code or geotarget area, and any regional inventory or shipping service that named it no longer has a valid target. Requires the service account to hold the Admin role on the merchant's account, not the standard role the default onboarding grants.
- google_merchant_get_regionRead-only
One region's full definition -- the postal codes, geotargets or radius that make up its area, plus whether it is eligible for regional inventory and for shipping services. Use it to confirm what a region actually covers, and that regionalInventoryEligible is true, before pointing google_merchant_set_regional_inventory at it. Use google_merchant_list_regions when you don't yet know the name.
- google_merchant_list_regionsRead-only
Every region defined on this Merchant Center account, each with its area definition and flags saying whether it is eligible for regional inventory and for shipping services. google_merchant_set_regional_inventory only accepts a `region` that already exists on the account -- this is how you find a valid value for it. An empty list means none has been defined yet; create one with google_merchant_create_region.
Promotions
3 tools2 read-only · 1 writeShowing 3 of 3 tools
- google_merchant_create_promotionWrite
Create a money-off or percent-off promotion, applicable to all products in the account, redeemable online.
- google_merchant_get_promotionRead-only
Full details and approval status for one promotion.
- google_merchant_list_promotionsRead-only
Promotions configured on this account, with their approval status.
Shipping
3 tools3 read-only · 0 writeShowing 3 of 3 tools
- google_merchant_get_return_policyRead-only
A single online return policy by resource name. Use this when you already hold the name -- from google_merchant_list_return_policies or a stored reference -- and want to re-read one policy without paging the whole list.
- google_merchant_get_shipping_settingsRead-only
This account's shipping configuration -- every shipping service with its delivery times, rate groups and carrier rates, plus the warehouses those services ship from. Read-only: the Merchant API replaces shipping settings wholesale rather than patching them, so changes have to be made in the Merchant Center UI. The returned etag is the concurrency token that a future replace would need.
- google_merchant_list_return_policiesRead-only
The online return policies configured on this account -- for each, the countries of sale it covers, the return window, the accepted return methods and item conditions, and any seasonal overrides. `label` is how a policy binds to products: an unlabelled policy is that country's default, and a labelled one is the exception policy applied to the product groups naming it (one label per country). Read this to work out which policy a given product actually gets.
Diagnostics
3 tools3 read-only · 0 writeShowing 3 of 3 tools
- google_merchant_list_aggregate_product_statusesRead-only
Per-country, per-destination rollups of how many products are active, pending, disapproved and expiring, plus the item-level issues driving those counts and how many products each issue affects. This is the right FIRST call for "how healthy is my catalogue" -- it answers in one request what walking google_merchant_list_products would take hundreds to answer. Once it names the issue that matters, use google_merchant_render_product_issues on an affected product for Google's fix-it steps.
- google_merchant_render_account_issuesRead-only
Google's own write-up of every ACCOUNT-level issue -- the account-wide reasons a merchant is limited, warned or suspended, each with a title, its impact, pre-rendered HTML explaining the cause, and the steps that resolve it. Use this when the whole account is affected; use google_merchant_render_product_issues when only some products are. Always scoped to this connection's own account. Actions that need a form come back as links into Merchant Center -- nothing here can submit an appeal.
- google_merchant_render_product_issuesRead-only
Google's own write-up of every issue on ONE product -- each issue comes back with a title, its impact and severity, pre-rendered HTML explaining the root cause, and the steps that fix it. This is the drill-down: reach for it once google_merchant_get_product has told you a product is disapproved or demoted but not what to do about it, and use google_merchant_list_aggregate_product_statuses instead when the question is about the catalogue as a whole. Actions that need a form come back as links into Merchant Center -- nothing here can start a re-review.
Quota
2 tools2 read-only · 0 writeShowing 2 of 2 tools
- google_merchant_list_account_limitsRead-only
The account's resource limits -- how many products it may hold, and the scope that limit applies at. This is the ceiling to check before planning a large upload, and the first thing to look at if product creates start being rejected while the API quota still has headroom. Distinct from google_merchant_list_quota_groups, which caps calls per day rather than items stored.
- google_merchant_list_quota_groupsRead-only
Daily call quota, per-minute limit and current usage for each method group on this account, along with the API methods that share each group. Call this the moment writes start failing with RESOURCE_EXHAUSTED -- it tells you which group is exhausted and therefore which other tools are also about to fail. Worth calling before planning a bulk operation too: there is no batch mutate for products, so updating N products costs N calls out of one group's daily budget. For how many products the account may hold, see google_merchant_list_account_limits instead.
Reporting
2 tools2 read-only · 0 writeShowing 2 of 2 tools
- google_merchant_list_report_viewsRead-only
The MCQL schema reference: every table google_merchant_search_reports can query, what each one answers, its selectable fields, and the SELECT/WHERE clauses each one requires. Read this before writing a query -- the reports service has no schema-discovery endpoint, so a guessed table or column name just returns an error. Covers all ten v1 views: product_view, product_performance_view, price_competitiveness_product_view, price_insights_product_view, best_sellers_product_cluster_view, best_sellers_brand_view, competitive_visibility_competitor_view, competitive_visibility_top_merchant_view, competitive_visibility_benchmark_view and non_product_performance_view. Static reference -- makes no API call and costs no quota.
- google_merchant_search_reportsRead-only
Run a Merchant Center Query Language query against the ProductView, PriceCompetitivenessView, or other report views -- the right tool for bulk questions like "which products are disapproved" without fetching every product individually. Call google_merchant_list_report_views first if you are unsure of a table or column name; there is no schema-discovery endpoint here, so a wrong name just errors. Example: SELECT product_view.item_id, product_view.title, product_view.aggregated_reporting_context_status FROM product_view WHERE product_view.aggregated_reporting_context_status = 'NOT_ELIGIBLE_OR_DISAPPROVED'
Every tool name and description, machine-readable: /llms-full.txt
You decide what it can touch
The same model applies to every connector, and it defaults closed.
Authorize once
Connect Google Merchant Center through its own consent screen. Credentials are encrypted with AES-256-GCM and never returned by any API response or tool call.
Writes off by default
A new connection switches on a read-oriented default set only. Every write tool must be enabled deliberately before any client can call it.
Roles enforced server-side
READ, WRITE and ADMIN gate tool invocation on the server, not just in the UI. A READ member's token is refused any write tool.
More in E-commerce
Printify
E-commercePrint-on-demand shops, products, orders and the catalogue behind them.
Shopify
E-commerceAsk your store a question instead of clicking through the admin.
Amazon Selling Partner API
E-commerceRetail-side analytics for a seller account, read-only by construction.
Start with what's live today
Free plan, no card required. Connect in minutes.