loading…
Search for a command to run...
loading…
Enables AI assistants to manage Adobe Commerce and Magento 2 instances through business-level tools for catalog, promotions, CMS, and SEO. It features secure OA
Enables AI assistants to manage Adobe Commerce and Magento 2 instances through business-level tools for catalog, promotions, CMS, and SEO. It features secure OAuth 1.0 authentication, safety guardrails for bulk operations, and built-in diagnostic reports for store health.
An MCP (Model Context Protocol) server for Adobe Commerce / Magento 2 administration. Connects AI assistants like Claude, Windsurf, Cursor, and other MCP-compatible clients to your Magento instance for business-level operations — catalog management, promotions, CMS, diagnostics, and more.
auth.login / auth.logout / auth.whoami — session managementscope.list_websites_stores / scope.set_default — multi-store scopecatalog.search_products — search with filters, pagination, field projectioncatalog.get_product — full product details by SKUcatalog.prepare_bulk_update / catalog.commit_bulk_update — two-phase bulk product updatespricing.prepare_bulk_price_update / pricing.commit_bulk_price_update — safe bulk price changes with threshold warningspromotions.search_rules / promotions.get_rule — find and inspect cart price rulespromotions.prepare_cart_price_rule_create / promotions.commit_cart_price_rule_create — create rules safelypromotions.update_rule / promotions.enable_rule / promotions.disable_rulepromotions.generate_coupons / promotions.export_couponscms.search_pages / cms.get_page — find and read CMS pagescms.prepare_bulk_update_pages / cms.commit_bulk_update_pagescms.search_blocks / cms.get_blockcms.prepare_bulk_update_blocks / cms.commit_bulk_update_blocksseo.prepare_bulk_update_url_keys / seo.commit_bulk_update_url_keys — URL key changes with collision detectionseo.bulk_update_meta — bulk meta title/description/keyword updatesseo.report_redirect_chains — find redirect chain issuesdiagnostics.product_display_check — why isn't my product showing?diagnostics.indexer_status_report — indexer health checkdiagnostics.inventory_salable_report — MSI stock/salable quantitycache.purge_by_url / cache.purge_product / cache.purge_category — targeted cache invalidation (Fastly or fallback)git clone https://github.com/thomastx05/magento-mcp.git
cd magento-mcp
npm install
npm run build
Add to your MCP client config (e.g., mcp_config.json for Windsurf, claude_desktop_config.json for Claude Desktop):
{
"mcpServers": {
"magento-mcp": {
"command": "node",
"args": ["C:/path/to/magento-mcp/dist/index.js"],
"env": {
"MAGENTO_BASE_URL": "https://your-magento-instance.com",
"MAGENTO_OAUTH_CONSUMER_KEY": "your_consumer_key",
"MAGENTO_OAUTH_CONSUMER_SECRET": "your_consumer_secret",
"MAGENTO_OAUTH_TOKEN": "your_access_token",
"MAGENTO_OAUTH_TOKEN_SECRET": "your_access_token_secret"
}
}
}
}
If you prefer admin token auth instead of OAuth (requires handling 2FA if enabled):
{
"env": {
"MAGENTO_BASE_URL": "https://your-magento-instance.com",
"MAGENTO_ADMIN_USERNAME": "your_admin_user",
"MAGENTO_ADMIN_PASSWORD": "your_admin_password"
}
}
Once configured, call auth.login first to establish a session, then use any tool:
> auth.login
Login successful (OAuth 1.0 integration)
> catalog.search_products { filters: { name: { value: "%eye drops%", condition: "like" } } }
Found 12 products...
> diagnostics.inventory_salable_report { sku: "PROD-001" }
Qty: 3,805 | In Stock: Yes | Backorders: Enabled
src/
index.ts # MCP server entry point (McpServer + StdioServerTransport)
config/index.ts # Configuration & guardrail defaults
actions/ # Tool handlers (one file per domain)
auth.ts
catalog.ts
pricing.ts
promotions.ts
cms.ts
seo.ts
diagnostics.ts
cache.ts
scope.ts
client/
magentoRest.ts # REST client with OAuth 1.0 signing
fastlyClient.ts # Optional Fastly CDN integration
session/
sessionStore.ts # In-memory session & OAuth credential storage
planStore.ts # Two-phase commit plan storage
idempotencyLedger.ts
validation/
schemas.ts # Zod input schemas for all tools
guardrails.ts # Safety checks (bulk caps, price thresholds, confirmations)
protocol/
types.ts # TypeScript interfaces
audit/
auditLogger.ts # Action audit trail (JSONL)
Guardrails and limits are configurable in src/config/index.ts:
| Setting | Default | Description |
|---|---|---|
maxSkusPerBulkCommit |
500 | Max products per bulk update |
maxCouponQtyPerGeneration |
1000 | Max coupons per generation |
priceChangeThresholdPercent |
50 | Warning threshold for price changes (%) |
maxDiscountPercent |
50 | Max percent discount without override |
allowedCatalogUpdateFields |
name, description, status, visibility, ... | Whitelist for bulk catalog updates |
For targeted cache purge via Fastly, add these environment variables:
{
"env": {
"FASTLY_SERVICE_ID": "your_service_id",
"FASTLY_API_TOKEN": "your_api_token"
}
}
MIT
Добавь это в claude_desktop_config.json и перезапусти Claude Desktop.
{
"mcpServers": {
"magento-mcp-server": {
"command": "npx",
"args": []
}
}
}