Skip to content

Connect Magento 1 to ChatGPT: Manage Catalog, Stock, and Orders

Learn how to connect Magento 1 to ChatGPT using Truto's auto-generated MCP server. Automate catalog updates, inventory syncs, and order invoicing workflows.

Nachi Raman Nachi Raman · · 10 min read
Connect Magento 1 to ChatGPT: Manage Catalog, Stock, and Orders

If you need to connect Magento 1 to ChatGPT to automate e-commerce workflows, manage product catalog updates, or orchestrate order fulfillment, you need a Model Context Protocol (MCP) server. This server acts as the translation layer between ChatGPT's tool calls and Magento 1's complex mix of REST and RPC APIs. You can either build, host, and maintain this proxy infrastructure yourself, or use a managed integration platform like Truto to dynamically generate a secure, authenticated MCP server URL.

If your team uses Claude, check out our guide on connecting Magento 1 to Claude or explore our broader architectural overview on connecting Magento 1 to AI Agents.

Giving a Large Language Model (LLM) read and write access to a legacy system like Magento 1 (or its active community fork, OpenMage) is a massive engineering challenge. You have to handle OAuth 1.0a HMAC-SHA1 signature generation, map dynamic EAV (Entity-Attribute-Value) structures, and deal with an API surface that is fragmented across REST and XML/JSON-RPC endpoints. Every time an admin adds a custom attribute, your custom server code must be updated, redeployed, and tested.

This guide breaks down exactly how to use Truto to generate a secure, managed MCP server for Magento 1, connect it natively to ChatGPT, and execute complex catalog and order workflows using natural language.

The Engineering Reality of the Magento 1 API

A custom MCP server is a self-hosted integration layer. While the open MCP standard provides a predictable JSON-RPC 2.0 interface for models to discover tools, implementing it against Magento 1's highly idiosyncratic API is exceptionally painful.

If you decide to build a custom Magento 1 MCP server, you own the entire API lifecycle. Here are the specific integration challenges that break standard CRUD assumptions when working with Magento 1:

The OAuth 1.0a Signature Nightmare

Unlike modern APIs that accept a simple Bearer token in the Authorization header, Magento 1's REST API relies on OAuth 1.0a. This means every single API request requires computing an HMAC-SHA1 signature based on the request URL, HTTP method, and query parameters. LLMs cannot generate these signatures natively. If you build a custom MCP server, you must implement the entire OAuth 1.0a signing mechanism in your middleware. Truto handles this signing process automatically, passing a clean authentication layer to the LLM.

The REST vs. RPC Fragmentation

Magento 1's API is notoriously fragmented. The REST API handles basic CRUD operations for Customers, Products, and Orders, but it lacks coverage for deep operational workflows like creating invoices, generating shipments, or manipulating complex product tier pricing. For those, you must use the Magento RPC API (accessible via JSON-RPC in OpenMage). A custom MCP server must maintain two entirely different authentication flows and protocol adapters depending on which endpoint the LLM is trying to call.

The EAV Data Model Complexity

Magento 1 uses an Entity-Attribute-Value (EAV) database architecture. This means products don't have a static schema; they are composed of hundreds of dynamic attributes spread across multiple database tables. When an LLM asks "Update the wholesale tier price for SKU 123," the API payload isn't a simple flat JSON object. It requires knowing the specific attribute set IDs and passing nested, strictly typed arrays. Auto-generating MCP tools from Magento 1 requires a platform that understands these schemas and provides the LLM with explicit JSON Schema definitions for every custom payload.

Step-by-Step: Connect Magento 1 to ChatGPT

To safely expose Magento 1 to ChatGPT, we will use Truto to generate a single, authenticated MCP Server URL that encapsulates all the OAuth 1.0a logic, RPC translation, and schema validation.

Step 1: Connect the Magento 1 Account

First, you need to establish the core connection between Truto and your Magento 1 instance.

  1. In the Truto dashboard, navigate to Integrated Accounts -> New Integrated Account.
  2. Select Magento 1.
  3. Enter your Magento 1 store URL and the required API credentials (for REST, this includes the Consumer Key, Consumer Secret, Access Token, and Token Secret; for RPC, the API User and API Key).
  4. Save the connection. Truto will perform a list_all_magento_1_rest_connection_checks to verify the OAuth 1.0a handshake is successful.
  5. Copy your new integrated_account_id.

Step 2: Generate the MCP Server URL

An MCP server in Truto is scoped to a specific integrated account. It exposes the integration's resources as MCP-compatible tools over a secure JSON-RPC 2.0 endpoint. You can generate this server via the Truto UI or programmatically via the API.

Method A: Via the Truto UI

  1. Navigate to the integrated account page for your Magento 1 connection.
  2. Click the MCP Servers tab.
  3. Click Create MCP Server.
  4. Select your desired configuration. (For example, check the boxes to allow read and write methods, and filter by tags like orders and catalog).
  5. Click Save and copy the generated MCP server URL (it will look like https://api.truto.one/mcp/a1b2c3d4...).

Method B: Via the API You can dynamically provision an MCP server from your own backend by POSTing to the Truto API. This is ideal for multi-tenant SaaS applications giving their own users AI access.

curl -X POST https://api.truto.one/integrated-account/$INTEGRATED_ACCOUNT_ID/mcp \
  -H "Authorization: Bearer $TRUTO_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Magento 1 Catalog & Orders MCP",
    "config": {
      "methods": ["read", "write", "custom"],
      "tags": ["catalog", "orders", "inventory"]
    }
  }'

The API validates the configuration, generates a cryptographically secure token, and returns a url field. This URL alone handles routing and authentication for the LLM client.

Step 3: Connect the MCP Server to ChatGPT

Now that you have your secure MCP endpoint, you need to register it with ChatGPT. The open MCP standard uses JSON-RPC over stdio for local servers, but since Truto provides a remote, hosted endpoint, you will use Server-Sent Events (SSE) to bridge the connection.

Method A: Via the ChatGPT UI If you are using a ChatGPT Pro, Plus, Business, Enterprise, or Education account with Developer mode enabled:

  1. Open ChatGPT and navigate to Settings -> Apps -> Advanced settings.
  2. Enable Developer mode.
  3. Under MCP servers / Custom connectors, click Add new server.
  4. Enter a Name (e.g., "Magento 1 Store Ops").
  5. Paste your Truto MCP server URL into the Server URL field.
  6. Click Save. ChatGPT will perform an initialization handshake and load the available Magento 1 tools.

Method B: Via Manual Config File For custom AI agents, Claude Desktop, Cursor, or other MCP-compatible clients, you use the official @modelcontextprotocol/server-sse wrapper to connect a local client to the remote Truto URL.

Add the following to your MCP client configuration JSON file (e.g., mcp_config.json or Claude's claude_desktop_config.json):

{
  "mcpServers": {
    "magento1": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-sse",
        "https://api.truto.one/mcp/YOUR_TRUTO_TOKEN"
      ]
    }
  }
}

Restart your client, and the agent will immediately have access to the Magento 1 API.

Magento 1 Hero Tools for AI Agents

When the MCP server is initialized, Truto dynamically generates tool definitions based on the integration's documented resources. The LLM receives strict JSON Schemas for both query and body parameters.

Here are the highest-leverage hero tools for Magento 1 automation.

list_all_magento_1_products

This tool allows the agent to search and retrieve paginated lists of products from the Magento 1 catalog using the REST API. It handles Magento's specific filtering syntax automatically.

Usage notes: Truto normalizes the pagination up to 100 records per page. The LLM can pass sorting and filtering parameters to isolate specific SKUs or product categories.

"Fetch all active products in our Magento 1 catalog that are currently out of stock. Return their entity IDs and SKUs."

update_a_magento_1_stock_item_by_id

An essential tool for inventory management. This endpoint updates the stock quantity and "is_in_stock" status for a specific product via the REST API.

Usage notes: The id parameter requires the stock item ID (which is often tied to the product ID). The LLM must construct the specific nested JSON body required by Magento to update the quantity field without overwriting other inventory settings.

"Update the inventory for stock item ID 450. Set the available quantity to 150 and ensure the item is marked as 'in stock'."

list_all_magento_1_orders

Allows the AI agent to query the main sales orders table. This is the foundation for customer support AI agents needing to check order status, shipping totals, and customer details.

Usage notes: Like products, Truto handles the pagination (up to 100 records per page, ordered by ID).

"Retrieve the last 10 orders placed in Magento 1. Give me a summary of the customer names, order totals, and current status."

create_a_magento_1_rpc_invoice

Because the REST API does not support order invoicing, this tool bridges the gap by calling the sales_order_invoice.create method via the OpenMage RPC interface. It captures the invoice for a given order.

Usage notes: Requires the order_increment_id (the human-readable order number, not the database entity ID). The agent can also pass specific item quantities if performing a partial invoice.

"Generate an invoice for order number 100005682. This is a full invoice, so capture the payment for all items."

create_a_magento_1_rpc_shipment

Another critical RPC tool. This calls sales_order_shipment.create to generate a shipment record in Magento 1, allowing store admins to fulfill orders conversationally.

Usage notes: Like the invoice tool, this requires the order_increment_id. It is often combined with create_a_magento_1_rpc_shipment_track to attach a tracking number immediately after creation.

"Create a new shipment for order 100005682. The items have been picked and packed in the warehouse."

update_a_magento_1_rpc_product_tier_price_by_id

Managing B2B tier pricing in Magento 1 is notoriously tedious via the UI. This tool calls catalog_product_attribute_tier_price.update to programmatically adjust bulk pricing rules.

Usage notes: The id is the product_id. The payload requires a structured array of tier prices, specifying the customer group, quantity threshold, and price.

"Update the tier pricing for product ID 899. Set the wholesale group price to $45.00 for quantities of 50 or more."

(To view the complete inventory of available Magento 1 tools, including customer address management, cart operations, and custom attribute handlers, visit the Magento 1 integration page.)

Workflows in Action

By chaining these dynamically generated MCP tools together, ChatGPT can execute complex, multi-step operations that would normally require a human navigating multiple slow, PHP-rendered Magento 1 admin screens.

Scenario 1: Order Fulfillment and Invoicing

A customer service representative needs to rapidly process an order that has just cleared manual fraud review.

"Order #100009923 has been approved. Please generate the invoice to capture payment, and then create the shipment record for the warehouse team."

Execution Steps:

  1. The agent calls create_a_magento_1_rpc_invoice passing order_increment_id: 100009923 to trigger payment capture in Magento.
  2. The agent verifies the invoice creation response.
  3. The agent calls create_a_magento_1_rpc_shipment using the same order_increment_id to move the order status to Processing/Complete.
  4. The agent reports back to the user that the order has been successfully invoiced and shipped.
sequenceDiagram
  participant User as User
  participant GPT as ChatGPT
  participant Truto as Truto MCP
  participant Upstream as "Upstream API (Magento 1)"
  User->>GPT: Invoice and ship order #100009923
  GPT->>Truto: call tools/call (create_a_magento_1_rpc_invoice)
  Truto->>Upstream: RPC call (sales_order_invoice.create)
  Upstream-->>Truto: Return invoice ID
  Truto-->>GPT: Return success
  GPT->>Truto: call tools/call (create_a_magento_1_rpc_shipment)
  Truto->>Upstream: RPC call (sales_order_shipment.create)
  Upstream-->>Truto: Return shipment ID
  Truto-->>GPT: Return success
  GPT-->>User: Order invoiced and shipment created

Scenario 2: B2B Catalog Inventory Sync

A warehouse manager receives a new pallet of goods and needs to update the store inventory and adjust the B2B volume pricing.

"We just received 500 units of SKU 'PRO-WIDGET'. Find the product ID, update its stock to 500, and add a tier price for wholesale customers at $12.50 for orders over 100 units."

Execution Steps:

  1. The agent calls list_all_magento_1_products with a filter for sku = PRO-WIDGET to retrieve the internal entity_id.
  2. The agent calls update_a_magento_1_stock_item_by_id using the retrieved ID, updating qty to 500 and is_in_stock to true.
  3. The agent calls update_a_magento_1_rpc_product_tier_price_by_id passing the product ID, formatting the tier array to specify the wholesale customer group, qty: 100, and price: 12.50.
  4. The agent confirms the catalog updates are live.
flowchart TD
  A["Receive prompt<br>from user"] --> B["list_all_magento_1_products<br>(Filter by SKU)"]
  B --> C{"Product found?"}
  C -->|Yes| D["update_a_magento_1_stock_item_by_id<br>(Set qty: 500)"]
  D --> E["update_a_magento_1_rpc_product_tier_price_by_id<br>(Set Tier Price)"]
  E --> F["Return success<br>to user"]
  C -->|No| G["Return error<br>SKU not found"]

Security and Access Control

Giving an LLM access to a live Magento 1 database requires strict governance. Truto's MCP servers provide granular access controls enforced at the server generation level, ensuring the AI cannot exceed its intended boundaries.

  • Method Filtering: You can restrict a specific MCP server to read-only operations. By setting config.methods: ["read"] during server creation, Truto will strip all create, update, and delete tools from the LLM's context. The agent can fetch orders, but it cannot delete products.
  • Tag Filtering: Limit the AI's scope to specific domains. Using config.tags: ["orders"] ensures the LLM only sees tools related to order management, completely hiding the customer directory or catalog RPC endpoints.
  • Time-to-Live (TTL): Temporary access is critical for contractor or short-lived agent workflows. Setting the expires_at field (an ISO datetime) ensures the MCP server token automatically self-destructs at a specific time, instantly revoking access.
  • Extra Authentication Layer: By default, possessing the MCP URL grants access. For high-security enterprise environments, setting require_api_token_auth: true mandates that the client must also pass a valid Truto API token in the Authorization header to execute tool calls.
  • Rate Limits: Truto normalizes upstream rate limit information into standardized headers (ratelimit-limit, ratelimit-remaining, ratelimit-reset) per the IETF spec. Note that Truto does not retry, throttle, or apply backoff on rate limit errors. If Magento 1 returns an HTTP 429, Truto passes that error directly to the LLM or orchestration layer, which is responsible for executing its own backoff strategy.

Wrap-Up

Connecting ChatGPT to Magento 1 unlocks a massive amount of operational leverage for e-commerce teams. Instead of navigating slow admin panels, support staff and managers can orchestrate invoices, update complex EAV catalog schemas, and check real-time stock levels using natural language.

By leveraging Truto's MCP server infrastructure, engineering teams completely bypass the nightmare of generating OAuth 1.0a HMAC signatures, maintaining dual REST/RPC adapters, and hand-coding JSON schemas for the LLM. You simply connect the account, define the security boundaries, and hand the secure MCP URL to ChatGPT.

If you are building AI agents that need reliable, read/write access to Magento 1 and 100+ other enterprise SaaS APIs, you need a managed infrastructure layer.

FAQ

Can I connect ChatGPT to Magento 1 without writing custom API code?
Yes. By using an MCP server generated by a managed integration platform like Truto, you bypass the need to write custom REST or RPC adapters. Truto handles the OAuth 1.0a signing and exposes the endpoints as LLM-ready tools.
How does Truto handle Magento 1's mix of REST and RPC APIs?
Truto maps both the REST endpoints and the OpenMage JSON-RPC methods into standardized MCP tools. The LLM receives clear JSON schemas for both, and Truto manages the protocol translation under the hood.
Can I restrict ChatGPT from deleting products in Magento 1?
Absolutely. When creating the MCP server in Truto, you can use method filtering to restrict the server to specific operations, such as ['read', 'update']. This prevents the LLM from accessing any 'delete' endpoints.
Does Truto handle API rate limits for Magento 1 automatically?
Truto normalizes upstream rate limit information into standard headers (ratelimit-limit, ratelimit-remaining, ratelimit-reset), but it passes HTTP 429 errors directly to the caller. The LLM client is responsible for executing its own retry and backoff logic.

More from our Blog