
Gmc Mcp
io.github.kiwoongeomPublished by GitHub account kiwoongeomv0.2.6Updated Nov 6, 2026
MIT-licensed pip-installable MCP for Google Merchant Center on Merchant API v1 (126 tools).
Overview
Self-hosted MCP server for Google Merchant Center on Merchant API v1, giving an assistant 126 tools to manage products, feeds, inventory, reports and account…
- What you can do
- List, get, insert, update and bulk-delete products, and list disapproved items
- Update regional and local inventory, and run bulk price or availability changes
- Query performance, price competitiveness, best sellers and zero-click reports with SQL-like queries
- Manage feeds and data sources, promotions, return policies, regions and homepage claims
- Administer account settings, users, shipping, taxes, checkout, reviews, conversions and omnichannel/LFP data
- Inspect the audit log, roll back a logged write, export everything, diff against a Shopify CSV and toggle dry-run
- When to use it
- Useful when you run a Google Merchant Center account with a large product feed and want to inspect or change listings, inventory, promotions and reports conversationally instead of through the web UI or one-off scripts. It suits self-hosters who want credentials to stay on their own machine and who value audit logging and dry-run before bulk edits.
- Requirements
- Runs locally as a Python package installed with pip, launched as a stdio process. Needs a 10-digit Merchant Center account ID in GMC_ACCOUNT_ID plus either a service-account JSON key path in GMC_SERVICE_ACCOUNT_KEY or an OAuth token file path in GMC_OAUTH_TOKEN. The service account must be granted Admin in Merchant Center, the Merchant API must be enabled in a Google Cloud project, and a one-time GCP registration step is required. Network access to the Merchant API is needed.
Installation
In SourceWeft
- Open Gmc Mcp in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
Google Merchant Center MCP (gmc-mcp)
[PyPI] [Downloads] [Downloads/month] [GitHub stars] [CI] [Python] [License: MIT] [Ruff]
MCP server for Google Merchant Center, built on Merchant API v1. 126 tools, MIT-licensed,
pip install-able. Drive your Google Shopping feed, products, inventory, Reports, promotions, returns, and account configuration in natural language from Claude Desktop, Claude Code, or any MCP-compatible client.Where this fits in the GMC + MCP landscape
Pick this if you want: future-proof API, an actual OSS license, PyPI install, a larger toolset, audit log + rollback + dry-run safety, and credentials that never leave your machine.
Built on Merchant API v1 (replaces Content API for Shopping; v1beta was
discontinued 2026-02-28). Safe by default: every write is recorded to an
append-only audit log with before snapshots, dry-run is one toggle away, and
destructive bulk operations require an explicit confirm parameter.
Why this exists
Google Merchant Center (GMC) powers Google Shopping listings, Free Listings, Shopping Ads, Buy on Google checkout, YouTube Shopping, and more. Managing a feed of thousands of products through the GMC web UI is tedious, and writing one-off Python scripts against the Merchant API REST endpoints is slow.
There are existing MCP services for GMC, but they fit different niches:
- Paid hosted SaaS (Adzviser, Catchr, Windsor.ai, Pipedream) — your data is proxied through their servers; monthly subscription.
archpeng/GMC-mcp-server— earliest self-hosted Python option (Feb 2026), but built on the deprecated Content API v2.1 which Google retires in August 2026, has no license declared, and isn't on PyPI.
gmc-mcp was built to fill the gap: a self-hosted package on the new
Merchant API v1, MIT-licensed, on PyPI, with audit/rollback/dry-run
safety and 126 tools across 19 modules.
The package gives Claude (or any MCP client) 126 tools that map directly onto the Merchant API v1 surface, so you can do things like:
- "Show me every disapproved product, grouped by issue code."
- "Bump US prices 5% on these 40 SKUs."
- "Which products had impressions but zero clicks last week?"
- "Roll back audit ID 8fc8dc42… — that update broke something."
- "Compare this Shopify CSV against my GMC feed; what's missing?"
What's exposed
126 tools across 19 modules + 4 meta tools.
CLI also exposes: gmc-mcp run, auth-init, register-gcp, webhook, describe, version.
Install
For development:
Quick start
1. Enable the Merchant API and create a service account
- console.cloud.google.com → create / pick a project.
- APIs & Services → Library → enable Merchant API.
- IAM & Admin → Service Accounts → Create service account named
gmc-mcp. - Open the new service account → Keys → Add key → Create new key → JSON. Save it somewhere safe.
2. Add the service account to your Merchant Center
- merchants.google.com → top-right gear → Account access → People.
- Add user → enter the
[email protected]email → grant Admin. - Note the 10-digit Merchant Center ID in the top-right.
3. Configure
4. One-time GCP registration
Required before any v1 Merchant API call works for a new project.
5. Smoke-test
6. Wire into Claude
Drop this into %APPDATA%/Claude/claude_desktop_config.json (Desktop) or ~/.claude/settings.json (Code):
Restart Claude. Ask: "What account am I connected to?" — it should call gmc_describe_server.
OAuth instead of a service account
For acting on behalf of an end user (e.g. multi-tenant SaaS):
Transports
Or via Docker:
Audit log + rollback
GMC_DRY_RUN=true blocks writes, but still sends read requests, including the
read-only Reports API POST reports:search. Report tools return real data;
Merchant API errors are surfaced to the caller rather than reported as zero rows.
Every write logs a JSONL entry to GMC_AUDIT_LOG (default: ./logs/audit.jsonl). Each entry contains:
audit_id— UUID for lookupop,method,url,request_body,response_status,response_bodybefore— pre-write snapshot when the tool fetched it (used byupdate_*anddelete_*)dry_run— whether the request was actually sent
Inspect from inside Claude:
Dry-run
Two ways to enable:
Reads always go through; only writes are skipped.
Reports query examples
Paste into gmc_query_report:
Configuration reference
All config is via env vars (or .env). CLI flags --transport, --host, --port, --env override.
Architecture
auth.py—ServiceAccountAuthandOAuthUserAuthshare anAuthprotocol.client.py— singleMerchantClientwith retries (5x w/ jitter), pagination helper, and write-audit hook.tools/*.py— each module exposes aregister(mcp, client)that registers@mcp.tool()functions.audit.py— append-only JSONL, lookup by ID, supportsbeforesnapshots.cli.py—gmc-mcp run | auth-init | register-gcp | webhook | describe | version.
Testing
Roadmap
- v0.3: webhook handler scaffolding (auto-respond to
gmc_subscribecallbacks) - v0.3: native Merchant API v1 GA migration when Google releases it
- v0.4: BigQuery export of Reports queries
- v0.4: rule-based auto-fixers ("on disapproval, retry with corrected attribute")
Contributing
See CONTRIBUTING.md. PRs and issues welcome — this is the first open-source MCP for Google Merchant Center, so there's a lot of room for community input on which workflows deserve dedicated tools.
License
MIT — see LICENSE.
Search keywords: Google Merchant Center MCP, GMC MCP, Merchant API MCP, Google Shopping MCP, Shopping Ads MCP, free listings MCP, Claude Desktop Google Merchant Center, MCP for ecommerce, Shopify Google Merchant Center automation.
Source: README.md at commit 11b15e3
Tools
0Version history
2- v0.2.6LatestNov 6, 2026
- v0.2.5Sep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts