Open-source B2B and marketplace ecommerce; new stores include an MCP server for AI agents.
Gmc MCP
ภาพรวม
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
MIT-licensed pip-installable MCP for Google Merchant Center on Merchant API v1 (126 tools).
สามเสาของ PopNx MCP
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
- เสียงผู้ใช้iยังไม่มีรีวิวรีวิวเปิดพร้อมระบบบัญชีในขั้นถัดไป
- ผลตรวจเบื้องต้นของเราiผ่าน 1 จาก 1 ข้อตรวจจากข้อมูลที่เปิดอยู่ ยังไม่ได้สแกนโค้ด
- การใช้งานiยังไม่ได้วัด★ –
ใช้ทำอะไรได้
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
- การเชื่อมต่อ: รันบนเครื่อง
- ช่องทาง (transport): stdio
- หมวด: ร้านค้าออนไลน์และรับเงิน
- ต้องใส่ค่าเหล่านี้: GMC_ACCOUNT_ID, GMC_SERVICE_ACCOUNT_KEY, GMC_OAUTH_TOKEN
ติดตั้ง
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
ก่อนติดตั้ง
- ผลตรวจเบื้องต้น: ผ่าน 1 จาก 1 ข้อ
- รันในเครื่องคุณด้วยสิทธิ์ของผู้ใช้คุณ (ไฟล์ อินเทอร์เน็ต แอปต่าง ๆ)
- ค่าที่คุณต้องใส่เอง:
GMC_ACCOUNT_ID,GMC_SERVICE_ACCOUNT_KEY,GMC_OAUTH_TOKEN,GMC_SUBACCOUNT_ID,GMC_DRY_RUN,GMC_LOG_LEVEL
ค่าที่ติดป้ายความลับคือกุญแจของบัญชีคุณ อย่าส่งให้ใคร และอย่าวางในแชต
ต้องเตรียมก่อน
- PyPIติดตั้ง uv ของ Python (มีคำสั่ง uvx) ในเครื่อง
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"gmc": {
"command": "uvx",
"args": [
"gmc-mcp"
],
"env": {
"GMC_ACCOUNT_ID": "ใส่ค่าของคุณ",
"GMC_SERVICE_ACCOUNT_KEY": "ใส่ค่าของคุณ",
"GMC_OAUTH_TOKEN": "ใส่ค่าของคุณ",
"GMC_SUBACCOUNT_ID": "ใส่ค่าของคุณ",
"GMC_DRY_RUN": "ใส่ค่าของคุณ",
"GMC_LOG_LEVEL": "ใส่ค่าของคุณ"
}
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add gmc --env GMC_ACCOUNT_ID='ใส่ค่าของคุณ' --env GMC_SERVICE_ACCOUNT_KEY='ใส่ค่าของคุณ' --env GMC_OAUTH_TOKEN='ใส่ค่าของคุณ' --env GMC_SUBACCOUNT_ID='ใส่ค่าของคุณ' --env GMC_DRY_RUN='ใส่ค่าของคุณ' --env GMC_LOG_LEVEL='ใส่ค่าของคุณ' -- uvx gmc-mcpเติมค่าที่เว้นว่างไว้ก่อนรัน
หรือคัดลอกค่าตั้งเอง
วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"gmc": {
"command": "uvx",
"args": [
"gmc-mcp"
],
"env": {
"GMC_ACCOUNT_ID": "ใส่ค่าของคุณ",
"GMC_SERVICE_ACCOUNT_KEY": "ใส่ค่าของคุณ",
"GMC_OAUTH_TOKEN": "ใส่ค่าของคุณ",
"GMC_SUBACCOUNT_ID": "ใส่ค่าของคุณ",
"GMC_DRY_RUN": "ใส่ค่าของคุณ",
"GMC_LOG_LEVEL": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
หรือคัดลอกค่าตั้งเอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"gmc": {
"type": "stdio",
"command": "uvx",
"args": [
"gmc-mcp"
],
"env": {
"GMC_ACCOUNT_ID": "ใส่ค่าของคุณ",
"GMC_SERVICE_ACCOUNT_KEY": "ใส่ค่าของคุณ",
"GMC_OAUTH_TOKEN": "ใส่ค่าของคุณ",
"GMC_SUBACCOUNT_ID": "ใส่ค่าของคุณ",
"GMC_DRY_RUN": "ใส่ค่าของคุณ",
"GMC_LOG_LEVEL": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
ค่าที่ต้องใส่เอง
- Your 10-digit Google Merchant Center account ID (top-right of merchants.google.com).
- Absolute path to a Google Cloud service-account JSON key file. The service account must be added as Admin in Merchant Center.
- Absolute path to an OAuth user-token JSON file produced by `gmc-mcp auth-init`. Use this OR GMC_SERVICE_ACCOUNT_KEY.
GMC_SUBACCOUNT_IDenvOptional sub-account ID when operating an MCA (Multi-Client Account).GMC_DRY_RUNenvWhen 'true', writes are logged to the audit log only (no actual API calls).GMC_LOG_LEVELenvLog verbosity: DEBUG / INFO / WARNING / ERROR.
ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
ทำอะไรได้บ้าง
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
ผลตรวจเบื้องต้นi
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 8 พ.ย. 2569
- ✓ ผ่าน
ตัวตนผู้ทำตรงกับ repo
ชื่อใน registry ยืนยันด้วยบัญชี GitHub kiwoongeom ซึ่งเป็นเจ้าของ repo
- … ยังไม่ตรวจ
ยังมีคนดูแล
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
- … ยังไม่ตรวจ
มีสัญญาอนุญาต (license)
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
- – ไม่เกี่ยว
endpoint ตอบ
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
- – ไม่เกี่ยว
ล็อกอินแบบ OAuth
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
- … ยังไม่ตรวจ
คำอธิบายเครื่องมือไม่มีคำสั่งแอบแฝง
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับตัวอื่นในหมวด ร้านค้าออนไลน์และรับเงินi
- ดาวมากกว่า 0% ของอีก 2545 ตัวในหมวดนี้
- ส่งรุ่นใหม่เข้า registry ล่าสุดกว่า 90% ของอีก 2545 ตัวในหมวดนี้
- ผลตรวจเบื้องต้นดีกว่าหรือเท่ากับ 100% ของอีก 2545 ตัวในหมวดนี้
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
คำถามที่พบบ่อย
Gmc MCP ปลอดภัยไหม?
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
ต้องใช้กุญแจหรือรหัสอะไรบ้าง?
ต้องใส่ค่าเหล่านี้: GMC_ACCOUNT_ID, GMC_SERVICE_ACCOUNT_KEY, GMC_OAUTH_TOKEN
ตัวนี้รันบนเครื่องหรือบนคลาวด์?
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
ยังมีคนดูแลอยู่ไหม?
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.2.6) เข้า registry เมื่อวานซืน
ใช้กับโปรแกรมไหนได้บ้าง?
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Python (uv) ในเครื่องด้วย
มีตัวไหนใช้แทนได้บ้าง?
ในหมวดเดียวกันมี Spree Commerce: open-source B2B and marketplace ecommerce, Stripe MCP, MCP Cn Commerce
ตัวที่ใช้แทนได้
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
Stripe MCP
server ทางการของ Stripe ให้ AI ดูและจัดการลูกค้า สินค้า การชำระเงิน และใบแจ้งหนี้ ต่อผ่านคลาวด์ของ Stripe และล็อกอินแบบ OAuth
MCP Cn Commerce
8 read-only MCP platform entries; support is operation-specific; merchant live acceptance pending
README จากผู้ทำ
เปิดอ่าน README
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
Google Merchant Center MCP (gmc-mcp)
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
| Option | Type | API | License | Install | Tools |
|---|---|---|---|---|---|
| Adzviser / Catchr / Windsor.ai / Pipedream | Paid hosted SaaS | varies | proprietary | sign-up | varies |
| archpeng/GMC-mcp-server | Self-hosted | Content API v2.1 (deprecated 2026-08) | none declared | git clone | 34 |
| `gmc-mcp` (this package) | Self-hosted | Merchant API v1 (future-proof) | MIT | `pip install gmc-mcp` | 126 |
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.
| Module | Tools |
|---|---|
| products | gmc_list_products, gmc_get_product, gmc_insert_product, gmc_update_product, gmc_delete_product, gmc_bulk_delete_products, gmc_list_disapproved_products |
| inventory | gmc_update_regional_inventory, gmc_update_local_inventory, gmc_list_regional_inventories, gmc_list_local_inventories |
| issues | gmc_list_account_issues, gmc_get_product_status, gmc_summarize_product_issues |
| reports | gmc_query_report, gmc_product_performance, gmc_price_competitiveness, gmc_best_sellers, gmc_zero_click_products, gmc_revenue_by_brand, gmc_category_performance, gmc_competitive_visibility_top_merchants, gmc_price_insights, gmc_demoted_products |
| promotions | gmc_list_promotions, gmc_get_promotion, gmc_insert_promotion |
| accounts | gmc_get_account, gmc_get_business_info, gmc_update_business_info, gmc_list_users, gmc_add_user, gmc_remove_user, gmc_get_shipping_settings, gmc_update_shipping_settings, gmc_list_programs, gmc_request_program_review, gmc_get_program_review |
| regions | gmc_list_regions, gmc_get_region, gmc_create_region, gmc_update_region, gmc_delete_region |
| notifications | gmc_list_subscriptions, gmc_subscribe, gmc_unsubscribe |
| feeds | gmc_list_datasources, gmc_get_datasource, gmc_create_supplemental_feed, gmc_create_primary_feed, gmc_delete_datasource, gmc_fetch_datasource |
| return_policies | gmc_list_return_policies, gmc_get_return_policy, gmc_create_return_policy, gmc_update_return_policy, gmc_delete_return_policy |
| homepage | gmc_get_homepage, gmc_update_homepage, gmc_claim_homepage, gmc_unclaim_homepage |
| account_config | gmc_get_business_identity, gmc_update_business_identity, gmc_get_checkout_settings, gmc_create_checkout_settings, gmc_update_checkout_settings, gmc_delete_checkout_settings, gmc_get_automatic_improvements, gmc_update_automatic_improvements, gmc_get_autofeed_settings, gmc_update_autofeed_settings, gmc_get_account_tax, gmc_update_account_tax, gmc_get_email_preferences, gmc_update_email_preferences, gmc_get_latest_tos, gmc_list_tos_agreement_states, gmc_accept_tos |
| quotas | gmc_list_quotas |
| reviews | gmc_list_merchant_reviews, gmc_get_merchant_review, gmc_insert_merchant_review, gmc_delete_merchant_review, gmc_list_product_reviews, gmc_get_product_review, gmc_insert_product_review, gmc_delete_product_review |
| conversions | gmc_list_conversion_sources, gmc_get_conversion_source, gmc_create_conversion_source, gmc_update_conversion_source, gmc_delete_conversion_source, gmc_undelete_conversion_source |
| omnichannel | gmc_list_omnichannel_settings, gmc_get_omnichannel_settings, gmc_create_omnichannel_settings, gmc_update_omnichannel_settings, gmc_request_inventory_verification, gmc_link_gbp_account, gmc_list_gbp_accounts |
| lfp | gmc_lfp_list_stores, gmc_lfp_get_store, gmc_lfp_insert_store, gmc_lfp_delete_store, gmc_lfp_insert_inventory, gmc_lfp_insert_sale, gmc_lfp_get_merchant_state |
| mca | gmc_list_relationships, gmc_get_relationship, gmc_update_relationship, gmc_create_aggregation, gmc_delete_aggregation, gmc_list_account_services, gmc_propose_account_service, gmc_approve_account_service, gmc_reject_account_service |
| bulk | gmc_bulk_update_regional_prices, gmc_bulk_set_availability |
| diagnostics | gmc_health_check, gmc_rollback, gmc_export_all, gmc_diff_with_shopify |
| meta | gmc_describe_server, gmc_audit_lookup, gmc_audit_tail, gmc_set_dry_run |
CLI also exposes: gmc-mcp run, auth-init, register-gcp, webhook, describe, version.
Install
pip install gmc-mcp
For development:
git clone https://github.com/kiwoongeom/gmc-mcp
cd gmc-mcp pip install -e ".[dev,test]" pre-commit install
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
gmc-mcp@PROJECT.iam.gserviceaccount.comemail → grant Admin. - Note the 10-digit Merchant Center ID in the top-right.
3. Configure
cp .env.example .env
edit:
GMC_ACCOUNT_ID=1234567890
GMC_SERVICE_ACCOUNT_KEY=/abs/path/to/service-account.json
4. One-time GCP registration
Required before any v1 Merchant API call works for a new project.
gmc-mcp register-gcp --developer-email you@example.com
5. Smoke-test
gmc-mcp describe # prints the resolved config
python examples/quickstart.py # makes one read against the Merchant API
6. Wire into Claude
Drop this into %APPDATA%/Claude/claude_desktop_config.json (Desktop) or ~/.claude/settings.json (Code):
{
"mcpServers": { "gmc": { "command": "gmc-mcp", "args": ["run"], "env": { "GMC_ACCOUNT_ID": "1234567890", "GMC_SERVICE_ACCOUNT_KEY": "/abs/path/to/service-account.json" } } } }
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):
# 1. In GCP, create OAuth client credentials (type: Desktop), download client_secret.json.
gmc-mcp auth-init --client-secrets ./client_secret.json
follow the browser flow; a token JSON is saved to secrets/oauth-token.json.
2. Use it
export GMC_OAUTH_TOKEN=./secrets/oauth-token.json gmc-mcp run
Transports
gmc-mcp run # stdio (Claude Desktop default)
gmc-mcp run --transport sse --port 8000 # SSE / HTTP (remote, Docker, hosted)
Or via Docker:
docker build -t gmc-mcp .
docker run --rm -p 8000:8000 \ -e GMC_ACCOUNT_ID=1234567890 \ -v $PWD/secrets:/secrets \ -e GMC_SERVICE_ACCOUNT_KEY=/secrets/service-account.json \ gmc-mcp
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:
> Show me my last 5 GMC writes.
[gmc_audit_tail(limit=5) → ...]
Look up audit ID abc123.
[gmc_audit_lookup(audit_id="abc123") → ...]
Roll back audit ID abc123, that update was wrong.
[gmc_rollback(audit_id="abc123", confirm="ROLLBACK") → ...]
Dry-run
Two ways to enable:
GMC_DRY_RUN=true gmc-mcp run
> Set dry-run on and update the price of SKU1 to $19.99.
[gmc_set_dry_run(enabled=True) → ok] [gmc_update_regional_inventory(...) → {"_dry_run": true, ...}]
Reads always go through; only writes are skipped.
Reports query examples
Paste into gmc_query_report:
-- Top 50 by clicks last 7 days
SELECT offer_id, title, clicks, impressions, ctr FROM product_performance_view WHERE date BETWEEN '2026-04-23' AND '2026-04-30' ORDER BY clicks DESC LIMIT 50
-- Disapproved products with reason codes SELECT id, offer_id, title, item_issues FROM product_view WHERE aggregated_reporting_context_status = 'NOT_ELIGIBLE_OR_DISAPPROVED'
-- You're priced h
ตัดมาแค่ช่วงต้น อ่านต่อใน repo