Connect Adobe Commerce to Claude: Automate Orders and Shipments
Learn how to connect Adobe Commerce (Magento) to Claude using a managed MCP server. This technical guide covers tool calling, MSI stock, and order automation.
If your team uses ChatGPT, check out our guide on /connect-adobe-commerce-to-chatgpt-manage-catalog-and-msi-stock/ or explore our broader architectural overview on /connect-adobe-commerce-to-ai-agents-sync-sales-rules-and-taxes/.
Connecting Adobe Commerce (formerly Magento) to Claude transforms how your team handles e-commerce operations. By giving an AI agent direct, authenticated access to your storefront's backend, you can automate order fulfillment, balance multi-source inventory (MSI), and manage complex catalog pricing - all through natural language.
To make this happen, you need a Model Context Protocol (MCP) server. This infrastructure acts as the translation layer between Claude's LLM function calls and Adobe Commerce's REST API. You can either build and maintain this translation layer yourself, or use a managed integration platform like Truto to dynamically generate a secure, authenticated MCP server URL.
This guide breaks down exactly how to use Truto to generate a secure MCP server for Adobe Commerce, connect it to Claude, and execute complex e-commerce workflows.
The Engineering Reality of the Adobe Commerce API
A custom MCP server is a self-hosted integration layer. While the open MCP standard provides a predictable way for models to discover tools, the reality of implementing it against Adobe Commerce is notoriously difficult. Adobe Commerce is highly customizable, meaning no two instances have the exact same schema.
If you decide to build a custom MCP server for Adobe Commerce, here are the specific integration challenges you will face:
The SearchCriteria Filtering Maze
Adobe Commerce does not use simple query parameters for filtering (like ?status=pending). Instead, it relies on a complex, nested searchCriteria array structure. A simple query to find pending orders requires constructing searchCriteria [filter_groups][0][filters][0][field]=status, searchCriteria [filter_groups][0][filters][0][value]=pending, and searchCriteria [filter_groups][0][filters][0][condition_type]=eq. An LLM cannot natively guess this syntax. Your MCP server must abstract these nested structures into a flat, predictable query schema that Claude understands, translating it back into the Magento format before the HTTP request is made.
Multi-Source Inventory (MSI) Complexity
In modern Adobe Commerce instances, inventory is not a simple integer on a product record. The Multi-Source Inventory (MSI) system splits stock across physical locations (sources), aggregates them into virtual pools (stocks), and assigns them to sales channels (websites). Updating stock levels requires interacting with source_items, not just legacy stock_items. If your MCP server exposes the wrong inventory endpoint to Claude, the LLM will fail to update stock on MSI-enabled stores, causing critical overselling issues.
Strict Order State Machines Adobe Commerce enforces strict business logic around the order lifecycle. You cannot capture an invoice if the payment method is offline (like a check or money order). You cannot create a shipment for items that have already been shipped. If Claude attempts to call a shipment creation tool on an invalid order state, the API returns a hard error. Your MCP tools must be carefully scoped and documented so the LLM knows exactly when - and how - to trigger these state transitions.
Generating the Adobe Commerce MCP Server
Truto completely abstracts the complexity of the Adobe Commerce API. By inspecting the underlying integration documentation and the connected account's configuration, Truto dynamically generates an MCP server endpoint. You can create this server in two ways.
Method 1: Via the Truto UI
For teams who prefer a visual setup process:
- Navigate to the Integrated Accounts page in the Truto dashboard.
- Select your connected Adobe Commerce account.
- Click the MCP Servers tab.
- Click Create MCP Server.
- Configure your server settings (assign a name, select allowed methods like
readorwrite, and set an expiration date if needed). - Click Save and copy the generated MCP server URL (e.g.,
https://api.truto.one/mcp/your-secure-token).
Method 2: Via the Truto API
For platform engineers building automated provisioning flows, you can generate an MCP server programmatically using the Truto REST API.
Make a POST request to the /integrated-account/:id/mcp endpoint:
curl -X POST https://api.truto.one/integrated-account/<YOUR_ACCOUNT_ID>/mcp \
-H "Authorization: Bearer <YOUR_TRUTO_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"name": "Adobe Commerce Fulfillment Ops",
"config": {
"methods": ["read", "write"],
"tags": ["sales", "inventory"]
}
}'The API will return a JSON response containing the ready-to-use MCP server URL:
{
"id": "mcp_abc123",
"name": "Adobe Commerce Fulfillment Ops",
"url": "https://api.truto.one/mcp/xyz987securetoken...",
"expires_at": null
}Connecting the MCP Server to Claude
Once you have your Truto MCP server URL, connecting it to Claude is a straightforward process.
Method 1: Via the Claude UI (Desktop or Web)
If you are using Claude Desktop or the Claude web interface with team capabilities:
- Open Claude and navigate to Settings.
- Select Integrations (or Connectors depending on your plan tier).
- Click Add MCP Server.
- Paste the Truto MCP URL into the connection field.
- Click Add. Claude will instantly connect to the server, handshake via JSON-RPC, and fetch the available Adobe Commerce tools.
Method 2: Via Manual Configuration File
If you are managing Claude Desktop via local configuration files, you can add the server manually by editing the claude_desktop_config.json file. Because Truto uses Server-Sent Events (SSE) over HTTPS, you will use the official @modelcontextprotocol/server-sse package.
Add the following block to your configuration file:
{
"mcpServers": {
"adobe-commerce": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-sse",
"--url",
"https://api.truto.one/mcp/xyz987securetoken..."
]
}
}
}Restart Claude Desktop. The application will initialize the SSE connection and load the tools into Claude's context window.
Hero Tools for Adobe Commerce
Truto translates Adobe Commerce's REST endpoints into heavily documented, schema-validated MCP tools. Here are five high-leverage tools your AI agent can use to manage your storefront.
create_a_adobe_commerce_order_shipment
Fulfilling orders is one of the most critical e-commerce workflows. This tool allows Claude to generate a shipment for a specific order. You must pass the order_id as a query parameter. Optionally, you can include items to do a partial shipment, tracks to add carrier tracking numbers, and notify to trigger the customer shipment email. This action is irreversible in Magento.
"Claude, create a shipment for order ID 10455. Include tracking number 1Z9999999999999999 using carrier code 'ups' and send the notification email to the customer."
adobe_commerce_source_items_bulk_create
Managing inventory in modern Adobe Commerce instances requires MSI (Multi-Source Inventory). This tool allows Claude to create or update stock levels per source and SKU in bulk. You pass an array of sourceItems containing sku, source_code, quantity, and status (1 for in stock, 0 for out of stock).
"Claude, update the inventory for SKU 'SURFBOARD-01' at the 'california_warehouse' source to 45 units, and set the status to in-stock."
adobe_commerce_tier_prices_bulk_update
Tier pricing allows you to offer quantity discounts or wholesale pricing to specific customer groups. This tool enables Claude to replace all tier prices for given SKUs in a single bulk operation. The payload requires an array of prices containing sku, price, price_type, website_id, customer_group, and quantity.
"Claude, update the tier pricing for SKU 'COFFEE-MUG-BLK'. Set the price to $8.00 for the 'Wholesale' customer group when they purchase a quantity of 50 or more."
create_a_adobe_commerce_invoice_capture
When using online payment gateways, creating an invoice doesn't automatically pull funds - you must capture the invoice. This tool allows Claude to capture payment for a specific invoice_id. Note that this only works for online payment methods; if the order used an offline method like a check or bank transfer, Magento will reject the capture request.
"Claude, the fraud review for order 10455 has cleared. Please capture the payment for invoice ID 5892."
create_a_adobe_commerce_coupon_generation
Marketing teams frequently need bulk coupon codes for promotions. Instead of clicking through the Magento admin panel, Claude can generate them dynamically. This tool generates codes for a specific cart price rule based on a couponSpec payload containing rule_id, quantity, length, and format.
"Claude, generate 200 unique alphanumeric coupon codes, 12 characters long, for the cart price rule ID 45 (Summer Splash Promo). Output the list of codes when finished."
To see the full inventory of tools and detailed schema definitions, check out the Adobe Commerce integration page.
Workflows in Action
Exposing individual tools is useful, but the real power of an MCP server is enabling Claude to chain multiple operations together to execute complex workflows. Here are two real-world scenarios.
Scenario 1: Flash Sale Prep & Wholesale Repricing
The Prompt:
"Claude, generate 50 unique 20% off coupons (alphanumeric, 8 chars) for the Summer Promo rule (ID 12). Once that is done, update the tier pricing for SKU 'TENT-4P' so that the Wholesale customer group gets a price of $120 when buying 10 or more."
The Execution:
create_a_adobe_commerce_coupon_generation: Claude constructs thecouponSpecpayload withrule_id: 12,quantity: 50,length: 8, andformat: "alphanumeric". It receives the 50 generated codes back from Adobe Commerce.adobe_commerce_tier_prices_bulk_update: Claude immediately follows up by constructing the tier pricing array forsku: "TENT-4P", setting theprice: 120,quantity: 10, and pointing to the specific wholesalecustomer_groupID.
The Result: Within seconds, the promotion is fully staged. The marketing team has their 50 unique codes to distribute, and B2B wholesale buyers will see the updated bulk pricing on the storefront automatically.
Scenario 2: Warehouse Stock Rebalancing
The Prompt:
"Claude, check the current MSI stock for SKU 'WINTER-JACKET-M' at the 'east_coast' source. If it's below 20 units, deduct 50 units from the 'default' source and add them to the 'east_coast' source to rebalance our fulfillment network."
The Execution:
list_all_adobe_commerce_source_items: Claude queries the specific SKU and filters the results to inspect thequantityspecifically at theeast_coastsource_code.- Analysis: Claude reads the response. If the quantity is 12 (which is below 20), it decides to execute the transfer.
list_all_adobe_commerce_source_items(Again): Claude checks thedefaultsource to ensure there are at least 50 units available to transfer.adobe_commerce_source_items_bulk_create: Claude sends a single bulk update payload. Array item 1 updates thedefaultsource by subtracting 50 from its current quantity. Array item 2 updates theeast_coastsource by adding 50 to its current quantity.
The Result: The warehouse stock is properly rebalanced across the MSI network without any manual data entry in the Magento backend, preventing out-of-stock scenarios on the East Coast storefront.
sequenceDiagram
participant Claude as Claude Desktop
participant MCP as Truto MCP Server
participant Adobe as Adobe Commerce API
Claude->>MCP: Call tool: list_all_adobe_commerce_source_items
Note right of Claude: Check "east_coast" stock
MCP->>Adobe: GET /rest/V1/inventory/source-items
Adobe-->>MCP: JSON response (qty: 12)
MCP-->>Claude: Return tool execution result
Claude->>MCP: Call tool: adobe_commerce_source_items_bulk_create
Note right of Claude: Array: deduct 50 from default, add 50 to east_coast
MCP->>Adobe: POST /rest/V1/inventory/source-items
Adobe-->>MCP: HTTP 200 OK
MCP-->>Claude: Return success resultHandling Rate Limits in Production
When AI agents execute bulk loops (like querying hundreds of orders or updating massive catalogs), they can quickly hit Adobe Commerce's API rate limits.
It is important to understand how Truto handles these limits. Truto does not absorb, retry, throttle, or apply exponential backoff to rate limit errors. When the upstream Adobe Commerce API returns an HTTP 429 (Too Many Requests), Truto passes that error directly back to the caller.
Truto normalizes the upstream rate limit information into standardized headers according to the IETF specification (ratelimit-limit, ratelimit-remaining, ratelimit-reset). This provides your AI agent framework with predictable data. However, the client calling the MCP server is strictly responsible for interpreting these headers, pausing execution, and handling the retry logic.
Security and Access Control
Giving an AI model unrestricted write access to a production e-commerce database is dangerous. Truto provides four distinct mechanisms to lock down your MCP server and ensure Claude only acts within strict boundaries:
- Method Filtering: You can strictly limit the MCP server to specific HTTP verbs. By configuring the server with
methods: ["read"], Claude is physically prevented from executingcreate,update, ordeletetools, keeping your storefront in a strict read-only state. - Tag Filtering: You can scope the MCP server by business domain using tags. Setting
tags: ["inventory"]ensures Claude only sees tools related to stock and sources, hiding sensitive endpoints like customer billing or payment gateway capture. - Require API Token Auth: By default, possessing the Truto MCP URL grants access. Enabling the
require_api_token_authflag forces the client to pass a valid Truto session token or API key in the Authorization header, adding a strict identity check before any tools are executed. - Automatic Expiration: If you are generating a server for a temporary contractor or a short-lived automation task, you can set the
expires_atfield. Once the ISO datetime is reached, the server's distributed keys are automatically purged, instantly revoking all access.
Wrapping Up
Integrating Adobe Commerce is notoriously difficult due to its deep architectural complexity, fragmented search criteria, and strict state machines. Building a custom MCP server to manage these edge cases requires hundreds of hours of engineering, testing, and continuous maintenance.
Truto handles this entire infrastructure layer for you. By dynamically mapping Adobe Commerce's complex endpoints into clean, heavily documented MCP tools, you can give Claude secure, read/write access to your e-commerce backend in minutes, rather than months.
FAQ
- How do I create an MCP server for Adobe Commerce?
- You can create an MCP server via the Truto UI under the 'MCP Servers' tab for your integrated account, or programmatically via the Truto API by sending a POST request to `/integrated-account/:id/mcp` with your desired configuration.
- Does Truto automatically retry rate-limited API requests?
- No. Truto passes HTTP 429 errors directly back to the caller. Truto normalizes the upstream rate limit data into standard IETF headers (`ratelimit-limit`, `ratelimit-remaining`, `ratelimit-reset`), but the calling client is responsible for implementing retry and backoff logic.
- How do I restrict the AI agent to read-only access?
- When configuring the MCP server in Truto, you can apply method filtering. By setting `methods: ["read"]`, the server will only generate tools for safe GET/LIST operations, physically preventing the AI from creating, updating, or deleting records in Adobe Commerce.
- Can Claude manage Multi-Source Inventory (MSI) in Adobe Commerce?
- Yes. Truto exposes tools like `adobe_commerce_source_items_bulk_create` which allow Claude to read and write inventory levels across specific physical sources and virtual stocks within the MSI architecture.