Back to Business
Adobe Commerce / Magento
A Model Context Protocol (MCP) tool for integrating with the Adobe Commerce/ Magento REST API. No direct SQL or server access required.
Last updated: 1/27/2026
README
# Adobe Commerce / Magento MCP
A Model Context Protocol (MCP) tool for integrating with the Magento REST API. No direct SQL or server access required.
## Supported Editions
This MCP tool is compatible with:
- **Adobe Commerce (formerly Magento)**: Enterprise-grade eCommerce platform with advanced features and support.
- **Magento Open Source**: The free, open-source edition of Magento, suitable for small to medium businesses.
All features are implemented using the official Magento REST API, ensuring compatibility and security for both editions. No direct database or server access is requiredβjust API credentials from your Magento instance.
## Available Tools
All registered MCP tools are organized by resource type below:
### Products
| Tool ID | Description |
| --------------------------- | --------------------------------------------------------------------- |
| search-products | Search for products in Adobe Commerce with flexible search filters. |
| create-product | Create a new product in Adobe Commerce with the specified attributes. |
| update-product | Update an existing product in Adobe Commerce with new attributes. |
| get-product-by-sku | Retrieve a specific product from Adobe Commerce by its SKU. |
| delete-product | Delete a product from Adobe Commerce by its SKU. |
| assign-product-to-website | Assign a product to a website by SKU and website ID. |
| remove-product-from-website | Remove a product from a website by SKU and website ID. |
### Product Attributes
| Tool ID | Description |
| ------------------------------- | ------------------------------------------------------------------------------- |
| search-products-attributes | Search for products attributes in Adobe Commerce with flexible search filters. |
| create-product-attribute | Create a new product attribute in Adobe Commerce. Supports all attribute types. |
| get-product-attribute-by-code | Get a single product attribute by its attribute code. |
| update-product-attribute | Update an existing product attribute by its attribute code. |
| delete-product-attribute | Delete a product attribute by its attribute code. |
| get-product-attribute-options | Get all options for a specific product attribute. |
| add-product-attribute-option | Add a new option to a product attribute. |
| update-product-attribute-option | Update an existing option of a product attribute. |
| delete-product-attribute-option | Delete an option from a product attribute. |
### Attribute Sets
| Tool ID | Description |
| ----------------------------- | -------------------------------------------------------------------------------------------- |
| search-attribute-sets | Search for attribute sets in Adobe Commerce with flexible search filters. |
| create-attribute-set | Create a new attribute set in Adobe Commerce. Only attribute_set_name and sort_order needed. |
| get-attribute-set-by-id | Get details of an attribute set by its ID. |
| get-attributes-from-set | Get all attributes from an attribute set by its ID. |
| delete-attribute-set | Delete an attribute set by its ID. |
| update-attribute-set | Update an attribute set by its ID. Only provide fields you want to update. |
| delete-attribute-from-set | Delete an attribute from an attribute set by set ID and attribute code. |
| assign-attribute-to-set-group | Assign an attribute to an attribute set and group in Adobe Commerce. |
### Attribute Groups
| Tool ID | Description |
| ----------------------- | ------------------------------------------------------------------- |
| search-attribute-groups | Search for attribute groups in an attribute set in Adobe Commerce. |
| create-attribute-group | Create a new attribute group in an attribute set in Adobe Commerce. |
| delete-attribute-group | Delete an attribute group by its ID. |
| update-attribute-group | Update an attribute group by its ID in a given attribute set. |
### Configurable Products
| Tool ID | Description |
| ------------------------------------- | ---------------------------------------------------------------------------------------------------------------- |
| add-configurable-product-option | Define which attribute and options are used in a configurable product. Creates framework for product variants. |
| link-configurable-child | Link a child product to a configurable product by SKU. The child product becomes a variant of the parent. |
| unlink-configurable-child | Unlink a child product from a configurable product by SKU. The child product remains but is no longer a variant. |
| get-configurable-product-children | Retrieve all child products for a configurable product by SKU. |
| get-configurable-product-options-all | Retrieve all configurable options for a configurable product by SKU. |
| get-configurable-product-option-by-id | Retrieve a specific configurable option for a configurable product by SKU and option ID. |
| update-configurable-product-option | Update an existing configurable option for a configurable product by SKU and option ID. |
| delete-configurable-product-option | Remove a configurable option from a configurable product by SKU and option ID. |
### Pricing
| Tool ID | Description |
| --------------------- | --------------------------------------------------------------------- |
| set-base-prices | Set base prices for multiple products efficiently. |
| get-base-prices | Retrieve base prices for multiple products. |
| set-special-prices | Set special prices with date ranges for multiple products. |
| delete-special-prices | Delete special prices for multiple products. |
| get-special-prices | Retrieve special prices for multiple products. |
| set-tier-prices | Set tier prices for quantity-based discounts on multiple products. |
| replace-tier-prices | Replace all existing tier prices with new ones for multiple products. |
| delete-tier-prices | Delete specific tier prices for multiple products. |
| get-tier-prices | Retrieve tier prices for multiple products. |
| set-costs | Set cost values for multiple products. |
| delete-costs | Delete cost values for multiple products. |
| get-costs | Retrieve cost values for multiple products. |
### Categories
| Tool ID | Description |
| ------------------------------ | -------------------------------------------------------------------------------------- |
| search-categories | Search for categories in Adobe Commerce with flexible search filters. |
| get-category-tree | Retrieve the category tree structure with optional root category and depth parameters. |
| get-category-by-id | Retrieve a specific category by its ID. |
| create-category | Create a new category in Adobe Commerce. |
| update-category | Update an existing category in Adobe Commerce. |
| delete-category | Delete a category by its ID. |
| move-category | Move a category to a new parent category. |
| get-category-attributes | Retrieve category attributes with optional search criteria. |
| get-category-attribute-by-code | Retrieve a specific category attribute by its code. |
| get-category-attribute-options | Retrieve options for a specific category attribute. |
| get-category-products | Retrieve products assigned to a specific category. |
| assign-product-to-category | Assign a product to a specific category. |
| update-product-in-category | Update a product's assignment in a category. |
| remove-product-from-category | Remove a product from a specific category. |
### Customers
| Tool ID | Description |
| ---------------- | -------------------------------------------------------------------- |
| search-customers | Search for customers in Adobe Commerce with flexible search filters. |
### Orders
| Tool ID | Description |
| ------------- | ----------------------------------------------------------------- |
| search-orders | Search for orders in Adobe Commerce with flexible search filters. |
### CMS
| Tool ID | Description |
| ----------------- | --------------------------------------------------------------------- |
| search-cms-blocks | Search for CMS blocks in Adobe Commerce with flexible search filters. |
| search-cms-pages | Search for CMS pages in Adobe Commerce with flexible search filters. |
### Stores
| Tool ID | Description |
| ----------------- | ----------------------------------------------------------------- |
| get-store-configs | Retrieve store configurations with optional store code filtering. |
| get-store-views | Get all store views in Adobe Commerce. |
| get-store-groups | Get all store groups in Adobe Commerce. |
| get-websites | Get all websites in Adobe Commerce. |
### Inventory Management (MSI - Multi-Source Inventory)
#### MSI Source Items
| Tool ID | Description |
| ------------------------------------------ | --------------------------------------------------------------------- |
| search-msi-source-items | Search for source items with flexible filters and pagination. |
| create-msi-source-item | Create a new source item with product SKU, source code, and quantity. |
| delete-msi-source-item | Delete a source item by SKU and source code. |
| are-products-salable-msi | Check if multiple products are salable for given SKUs and stock ID. |
| are-products-salable-for-requested-qty-msi | Check if products are salable for specific requested quantities. |
| is-product-salable-msi | Check if a specific product is salable for a given stock. |
| is-product-salable-for-requested-qty-msi | Check if a product is salable for a specific requested quantity. |
| get-product-salable-quantity-msi | Get the salable quantity for a specific product and stock. |
#### MSI Stocks
| Tool ID | Description |
| ------------------- | ------------------------------------------------------- |
| search-msi-stocks | Search for stocks with flexible filters and pagination. |
| get-msi-stock-by-id | Get stock data by given stockId. |
| create-msi-stock | Save Stock data. |
| update-msi-stock | Save Stock data. |
| delete-msi-stock | Delete the Stock data by stockId. |
| resolve-msi-stock | Resolve Stock by Sales Channel type and code. |
#### MSI Sources
| Tool ID | Description |
| ---------------------- | ------------------------------- |
| search-msi-sources | Find Sources by SearchCriteria. |
| get-msi-source-by-code | Get Source data by given code. |
| create-msi-source | Save Source data. |
| update-msi-source | Save Source data. |
#### MSI Stock-Source Links
| Tool ID | Description |
| ----------------------------- | -------------------------------------------------- |
| search-msi-stock-source-links | Find StockSourceLink list by given SearchCriteria. |
| create-msi-stock-source-links | Save StockSourceLink list data. |
| delete-msi-stock-source-links | Remove StockSourceLink list. |
#### MSI Source Selection
| Tool ID | Description |
| ----------------------------------- | -------------------------------------------------- |
| get-msi-source-selection-algorithms | Get list of available source selection algorithms. |
| run-msi-source-selection-algorithm | Get source selection algorithm result. |
### Inventory Management (Single Stock System)
| Tool ID | Description |
| -------------------------- | ------------------------------------------------------------------------------------------- |
| get-single-stock-item | Get stock information for a specific product by SKU (single stock system). |
| update-single-stock-item | Update stock item information (quantity, status, etc.) for a product (single stock system). |
| get-single-low-stock-items | Get products with low inventory quantity below specified threshold (single stock system). |
| get-single-stock-status | Get stock status information for a specific product by SKU (single stock system). |
Each tool provides a set of MCP-compatible operations for its resource type. For a full list and detailed parameters, see the source files in `src/tools/`.
## Usage
### 1. Install
```bash
npm install
```
### 2. Build
```bash
npm run build
```
### 3. Configure
Create or edit your `.cursor/mcp.json` file and provide your Magento/Adobe Commerce instance credentials:
```json
{
"mcpServers": {
"adobe-commerce-mcp": {
"command": "node",
"args": ["/path/to/adobe-commerce-mcp/build/index.js"],
"env": {
"COMMERCE_BASE_URL": "https://your-magento-instance/",
"COMMERCE_CONSUMER_KEY": "your_consumer_key",
"COMMERCE_CONSUMER_SECRET": "your_consumer_secret",
"COMMERCE_ACCESS_TOKEN": "your_access_token",
"COMMERCE_ACCESS_TOKEN_SECRET": "your_access_token_secret"
}
}
}
}
```
### 4. Run
Start the MCP server as defined in your configuration. The tools will be available for use in any MCP-compatible client or workflow.
## Directory Structure
```
adobe-commerce-mcp/
βββ src/
β βββ adobe/
β β βββ categories/ # Category API and types
β β βββ cms/ # CMS blocks and pages API and types
β β βββ customers/ # Customer API and types
β β βββ inventory/ # Inventory API, MSI, and single stock types
β β βββ orders/ # Order API and types
β β βββ products/ # Product API, attributes, sets, and types
β β βββ search-criteria/ # Search criteria schemas and types
β β βββ stores/ # Store API and types
β β βββ types/ # Shared API response and parameter types
β βββ tools/ # MCP tool implementations for each resource
β βββ index.ts # Main MCP server entry point
βββ packages/
β βββ commerce-sdk-auth/ # Authentication SDK for Adobe Commerce
βββ tests/ # Test suites and mocks
βββ package.json
βββ tsconfig.json
βββ README.md
```
## Testing
### Prerequisites
To run the test suite, you need access to a Magento/Adobe Commerce instance with the following configuration:
#### Required Website Structure
The test environment requires a multi-website setup with the following structure:
**Websites:**
- Website ID 0: `admin` - Admin website
- Website ID 1: `base` - Main Website (default)
- Website ID 2: `second_website` - Second website for testing
**Store Groups:**
- Group ID 0: `Default` - Default store group
- Group ID 1: `Main Website Store` - Main website store group
- Group ID 2: `Second Store` - Second store group
**Store Views:**
- Store ID 0: `admin` - Admin store view
- Store ID 1: `default` - Default store view
- Store ID 2: `second_store_view_pl` - Second store view (PL)
- Store ID 3: `second_store_view_en` - Second store view (EN)
#### Configuration Requirements
- **Pricing Scope**: Set to "Website" based pricing
- **API Access**: Valid REST API credentials with appropriate permissions
- **Test Data**: Clean test environment with sample products, categories, and attributes
### Running Tests
```bash
# Run all tests
npm test
# Run tests with coverage
npm run test:coverage
# Run specific test suites
npm test -- --testPathPattern=products
npm test -- --testPathPattern=categories
```
### Test Structure
Tests are organized in the `tests/` directory:
- `tests/tools/` - Tool-specific test suites
- `tests/utils/` - Test utilities and mocks
- `tests/fixtures/` - Test data fixtures
### Environment Setup
Create a `.env.test` file based on `tests/env.test.example`:
```bash
cp tests/env.test.example .env.test
```
Then configure your test environment variables in `.env.test`.
---
TODO
config
- IS MSI enabled?
- can manage stock?
- if you update stock of simple, update in stock for config
- simple of configurable should be not visible
Installation
Add this MCP to your configuration:
{
"mcpServers": {
"adobe-commerce-magento": {
// See GitHub repository for configuration
}
}
}See the GitHub repository for full installation instructions.