Skip to main content
Glama
antoineschaller

MCP Shopify

README.md
# MCP Shopify

A comprehensive Model Context Protocol (MCP) server for Shopify Admin API integration. This server provides a set of tools to interact with your Shopify store, enabling AI assistants like Claude to manage products, orders, customers, inventory, analytics, and more through natural language.

*Note: Documentation below includes both currently implemented and planned enhancements. Read-only tools are fully implemented; write/update operations are in development.*

## Features

- **Products Management**: List, search, create, update, and manage products and variants
- **Orders Management**: View and update orders, fulfill orders, manage transactions
- **Customer Management**: Search and manage customer data
- **Inventory Management**: Track and update inventory levels
- **Analytics**: Access store analytics and reports
- **Collections**: Manage product collections
- **Discounts**: Create and manage discount codes
- **And more!**

## Installation

### Global Installation (Recommended)

```bash
npm install -g @akson/mcp-shopify
```

### Local Installation

```bash
npm install @akson/mcp-shopify
```

## Usage

### With Environment Variables

```bash
export SHOPIFY_ACCESS_TOKEN=your-access-token
export SHOPIFY_DOMAIN=your-store.myshopify.com
mcp-shopify
```

### With Command Line Arguments

```bash
mcp-shopify --accessToken=your-access-token --domain=your-store.myshopify.com
```

### With Claude Desktop

1. Install the package globally:
   ```bash
   npm install -g @akson/mcp-shopify
   ```

2. Find your Claude Desktop configuration file:
   - macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
   - Windows: `%APPDATA%\Claude\claude_desktop_config.json`
   - Linux: `~/.config/Claude/claude_desktop_config.json`

3. Add the Shopify MCP server to your configuration:
   ```json
   {
     "mcpServers": {
       "shopify": {
         "command": "npx",
         "args": ["@akson/mcp-shopify"],
         "env": {
           "SHOPIFY_ACCESS_TOKEN": "your-access-token",
           "SHOPIFY_DOMAIN": "your-store.myshopify.com"
         }
       }
     }
   }
   ```

4. Restart Claude Desktop to load the new server

## Available Tools

### Product Management
- `list_products` - List all products with filters
- `get_product` - Get detailed product information
- `search_products` - Search products by title
- `create_product` - Create a new product
- `update_product` - Update product details
- `delete_product` - Delete a product
- `update_inventory` - Update inventory levels

### Order Management
- `list_orders` - List orders with filters
- `get_order` - Get detailed order information
- `update_order` - Update order details
- `fulfill_order` - Fulfill an order
- `cancel_order` - Cancel an order
- `create_order_note` - Add note to order

### Customer Management
- `list_customers` - List all customers
- `search_customers` - Search customers
- `get_customer` - Get customer details
- `create_customer` - Create new customer

### Analytics & Reporting
- `get_analytics` - Get store analytics
- `get_reports` - Access various reports

### Other Features
- `list_collections` - Manage collections
- `create_discount` - Create discount codes
- `list_locations` - View store locations

## Requirements

- Node.js >= 14.0.0
- Shopify Admin API access token
- Shopify store domain

## API Access

To use this server, you need:
1. A Shopify store
2. A private app or custom app with appropriate API permissions
3. An Admin API access token

## Getting Started

### 1. Create a Shopify App

1. Go to your Shopify admin panel
2. Navigate to Settings → Apps and sales channels → Develop apps
3. Create a new app or use an existing one
4. Configure Admin API scopes (read/write for products, orders, customers, etc.)
5. Install the app to your store
6. Copy the Admin API access token

### 2. Configure the Server

Set your credentials using one of these methods:

**Environment Variables (Recommended):**
```bash
export SHOPIFY_ACCESS_TOKEN="your-access-token"
export SHOPIFY_DOMAIN="your-store.myshopify.com"
```

**Command Line Arguments:**
```bash
mcp-shopify --accessToken="your-token" --domain="your-store.myshopify.com"
```

## Security

- **Never commit access tokens** to version control
- Use environment variables for sensitive data
- Store tokens securely (e.g., in password managers or secure vaults)
- Ensure API tokens have only the necessary permissions
- Regularly rotate access tokens
- Monitor API usage through Shopify admin

## Examples

Once configured in Claude Desktop, you can ask Claude to:

- "Show me my top 10 best-selling products"
- "Update the price of product SKU123 to $29.99"
- "List all pending orders from the last week"
- "Create a new product collection for summer items"
- "Check inventory levels for products running low"
- "Generate a sales report for this month"
- "Find all customers from New York"
- "Apply a 20% discount code for the next week"

## Troubleshooting

### Common Issues

1. **"SHOPIFY_ACCESS_TOKEN and SHOPIFY_DOMAIN are required"**
   - Ensure environment variables are set correctly
   - Check that your shell configuration loads the variables

2. **"401 Unauthorized" errors**
   - Verify your access token is correct
   - Check that your app has the required API permissions
   - Ensure the token hasn't expired

3. **"Server not found" in Claude Desktop**
   - Verify the package is installed globally: `npm list -g @akson/mcp-shopify`
   - Check the configuration file path is correct
   - Restart Claude Desktop after configuration changes

## Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

## License

MIT

## Support

For issues and feature requests, please visit: https://github.com/antoineschaller/mcp-shopify/issues

## Changelog

### v1.0.0
- Initial release with 22 comprehensive Shopify tools
- Full ES module support
- Command line and environment variable configuration
- Claude Desktop integration