MCP server for Google Merchant Center (Merchant API v1): products, promotions, reports, issues.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent โ or use 1-click editor setup below.
๐ก Paste into ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows)
MCP server for Google Merchant Center via the Merchant API v1: manage your product feed, promotions and data sources, run MCQL reports, check price competitiveness and product issues โ from Claude, Cursor, Codex and other AI clients in natural language.
Unlike read-only integrations, this server authenticates with your own OAuth credentials and supports write operations: upload and delete products, insert promotions and trigger feed re-fetches โ with destructive tools clearly annotated so MCP hosts can gate them.
Get OAuth credentials for the Merchant API.
Add the server โ for example in Claude Code (other clients):
Ask the assistant: "Which of my products are disapproved, and why?"
| Tool | Description |
|---|---|
list_accounts | Merchant Center accounts you can access (with optional filter). |
get_account | One account's settings (name, language, time zone, ...). |
get_homepage | The store homepage and whether it is claimed. |
get_shipping_settings | Account-level shipping services and warehouses. |
list_products | Processed products as shown in Merchant Center, incl. statuses. |
get_product | One product with itemLevelIssues โ why it is disapproved. |
insert_product_input | Upload (upsert) a product into an API data source. |
update_product_input | Sparse-update a product (price, availability, ...). |
delete_product_input | Delete a product input from a data source. |
list_data_sources | Feeds/data sources of the account (API, file, UI, autofeed). |
get_data_source | One data source with its feed and fetch configuration. |
create_data_source | Create an API data source for product/promotion writes. |
fetch_data_source | Trigger an immediate re-fetch of a file feed. |
insert_promotion | Create or update a promotion. |
list_promotions | Promotions with their approval statuses. |
get_promotion | One promotion incl. per-destination status. |
search_reports | Run any MCQL query (reports:search). |
price_competitiveness | Your prices vs market benchmarks (canned MCQL). |
price_insights | Google's suggested prices + predicted impact (canned MCQL). |
list_product_issues | Aggregated product issues per reporting context/country. |
list_method_quotas | API usage vs quota limits per method group. |
raw_request | Escape hatch to any Merchant API v1 path (SSRF-guarded). |
Resilience: retries with backoff on 429 and on 5xx/network errors for reads (writes are never
replayed), Retry-After support, request timeouts, automatic access-token refresh.
search_reports accepts raw Merchant Center Query Language. Field names are snake_case in
queries and camelCase in responses; SELECT * is not supported; performance views require a
date range.
The server talks to the Merchant API v1 (merchantapi.googleapis.com) โ the successor of
the Content API for Shopping (sunset in August 2026). Auth is standard Google OAuth 2.0 with
the scope https://www.googleapis.com/auth/content; the server exchanges your refresh token
for access tokens automatically.
One-time registration required. Before any Merchant API call works, your Google Cloud project must be registered with the Merchant Center account once (needs Admin access):
You can do it right from the assistant with the
raw_requesttool, or with any HTTP client. Until then every call fails with a permission error.
claude_desktop_config.json โ macOS ~/Library/Application Support/Claude/, Windows %APPDATA%\Claude\
~/.cursor/mcp.json (or .cursor/mcp.json in a project)
.vscode/mcp.json โ note the servers key (not mcpServers)
Create (or pick) a Google Cloud project at console.cloud.google.com and enable the Merchant API (APIs & Services โ Library โ "Merchant API" โ Enable).
Configure the OAuth consent screen (APIs & Services โ OAuth consent screen): External, fill in the app name and your email, and add yourself as a test user (Testing mode is fine for personal use).
Create an OAuth client (APIs & Services โ Credentials โ Create credentials โ OAuth client ID โ Desktop app). Save the client ID and client secret.
Mint a refresh token for the scope https://www.googleapis.com/auth/content. The
quickest way is the OAuth 2.0 Playground:
https://www.googleapis.com/auth/content and authorize with the
Google account that has access to your Merchant Center;(Any other flow works too โ the server only needs the resulting refresh token. For quick
experiments you can instead pass a short-lived access token as
GOOGLE_MERCHANTS_ACCESS_TOKEN, e.g. from gcloud auth print-access-token.)
Find your Merchant Center ID โ the number in the top-right corner of
merchants.google.com โ and put it in
GOOGLE_MERCHANTS_ACCOUNT_ID (or pass account per tool call, or discover it with
list_accounts).
Register your GCP project with the Merchant Center account (one-time, Admin access required) โ see API access.
โ ๏ธ Credentials are stored in plain text in your MCP client config โ treat them like passwords. The refresh token grants full read/write access to your Merchant Center.
| Variable | Required | Default | Description |
|---|---|---|---|
GOOGLE_MERCHANTS_CLIENT_ID | yes* | โ | OAuth 2.0 client ID. |
GOOGLE_MERCHANTS_CLIENT_SECRET | yes* | โ | OAuth 2.0 client secret. |
GOOGLE_MERCHANTS_REFRESH_TOKEN | yes* | โ | OAuth refresh token (scope .../auth/content). |
GOOGLE_MERCHANTS_ACCESS_TOKEN | yes* | โ | Pre-minted access token (~1h) โ alternative to the three above. |
GOOGLE_MERCHANTS_ACCOUNT_ID | no | โ | Default Merchant Center account ID; tools can override per call. |
GOOGLE_MERCHANTS_API_BASE | no | https://merchantapi.googleapis.com | API root override. |
GOOGLE_MERCHANTS_TOKEN_URL | no | https://oauth2.googleapis.com/token | OAuth token endpoint override. |
GOOGLE_MERCHANTS_TIMEOUT_MS | no | 60000 | Per-request timeout, ms. |
GOOGLE_MERCHANTS_MAX_RETRIES | no | 3 | Retries on transient errors. |
* Either the client ID + secret + refresh token trio, or a bare access token.
npx, no separate install needed).insert_product_input /
delete_product_input the processed product updates within minutes โ an immediate
get_product may 404 or show stale data. Data-quality problems appear later in
productStatus.itemLevelIssues, not as API errors.price_competitiveness / price_insights return rows only for accounts opted into
Market Insights (free, in Merchant Center settings).list_product_issues works for sub-accounts and standalone accounts only, not for
advanced (parent) accounts.list_method_quotas.Questions, ideas and contributions โ Telegram: @gistrec or GitHub issues.
MIT โ see LICENSE.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/google-merchant-center-mcp)<a href="https://allmcps.com/mcp/google-merchant-center-mcp"><img src="https://allmcps.com/api/badge/google-merchant-center-mcp?style=directory" alt="Google Merchant Center MCP on AllMCPs" /></a>