Connect the Google Merchant Center MCP server to your AI agent Open source, MIT, on npm. Setup instructions for Claude, Cursor and Codex are in the repository; adoption questions — Telegram. GitHub repository Telegram

Google Merchant Center: Insert or replace a product — MCP tool

Google Merchant Center MCP tool: Uploads (upserts) a product into an API data source: an existing input with the same contentLanguage~feedLabel~offerId in that data source is fully replaced.

Technical name: insert_product_input

What task it solves

I want to synchronize a product input.

Uploads (upserts) a product into an API data source: an existing input with the same contentLanguage~feedLabel~offerId in that data source is fully replaced.

When to use it

Use this capability when you need “Insert or replace a product” without doing the same work manually in the Google Merchant Center interface. It runs only when an AI client calls it.

What to provide

  • accountoptional. Merchant Center account ID (digits, e.g. "123456"). Omit to use the GOOGLE_MERCHANTS_ACCOUNT_ID default.
  • data_sourcerequired. Data source: numeric ID (e.g. "104628") or full name "accounts/{account}/dataSources/{id}". Product/promotion writes require an API-type data source (input: API), not a file feed.
  • offer_idrequired. The merchant's unique offer ID (SKU).
  • content_languagerequired. Two-letter ISO 639-1 language of the listing, e.g. "en".
  • feed_labelrequired. Feed label, usually the target country CLDR code, e.g. "US" (≤20 chars, no spaces).
  • product_attributesoptional. Product attributes object: title, description, link, imageLink, price {amountMicros, currencyCode}, availability (in_stock/out_of_stock/preorder/backorder), condition (new/refurbished/used), gtin (array), brand, color, sizes, etc. Attribute names are camelCase.
  • custom_attributesoptional. Custom (non-standard) attributes as {name, value} pairs.
  • version_numberoptional. Optional int64 freshness guard (as a string): an insert with a lower version than the stored one is rejected.

What it returns

Returns the ProductInput (name, product = the future processed name, base64EncodedProduct).

What changes in Google Merchant Center

The source marks the entire “Insert or replace a product” call as destructive. The exact effect depends on the selected action and is described below; review the parameters and reversibility before calling it.

Example request

Insert or replace a product in Google Merchant Center. Ask for any required identifiers that are missing. Show me the exact change and wait for confirmation first.

Errors and limitations

Requires data_source (an API-type source — create one with create_data_source or in Merchant Center; file feeds cannot be written). Inserting with a different data source MOVES the product to it. Processing is async: the processed product shows up in get_product/list_products after several minutes, and data-quality problems surface later in productStatus.itemLevelIssues, not as API errors. Prices go in product_attributes as {"price": {"amountMicros": "9990000", "currencyCode": "USD"}} (1 unit = 1,000,000 micros).

Access also depends on token permissions, quotas, and upstream API limits.

Related MCP tools

Technical details