Tools reference
The Snipcart MCP Server exposes 38 tools organized into 10 categories. This page documents every tool, its parameters, and what it returns.
You don't need to memorize tool names — your AI assistant picks the right tool based on your natural language request. This reference is useful if you want to understand exactly what's available under the hood.
Orders
list_orders
List orders with optional filters. Returns paginated results.
| Parameter | Type | Required | Description |
|---|---|---|---|
status |
string | No | Filter by status: InProgress, Processed, Disputed, Shipped, Delivered, Pending, Cancelled |
from |
string | No | Start date (ISO 8601, e.g. 2026-01-01) |
to |
string | No | End date (ISO 8601) |
limit |
number | No | Number of results (default: 20) |
offset |
number | No | Pagination offset |
Returns: Paginated list with order token, status, customer email, total, and item count.
get_order
Get full details for a specific order.
| Parameter | Type | Required | Description |
|---|---|---|---|
token |
string | Yes | The order token |
Returns: Complete order object including items, customer info, billing/shipping addresses, and payment details.
update_order
Update order status, payment status, tracking information, or addresses.
| Parameter | Type | Required | Description |
|---|---|---|---|
token |
string | Yes | The order token |
status |
string | No | New order status |
paymentStatus |
string | No | New payment status |
trackingNumber |
string | No | Shipping tracking number |
trackingUrl |
string | No | Tracking URL |
email |
string | No | Customer email |
notes |
string | No | Internal notes |
billingAddress |
object | No | Updated billing address |
shippingAddress |
object | No | Updated shipping address |
customFields |
array | No | Custom field values |
metadata |
object | No | Arbitrary metadata |
Returns: The updated order object.
get_order_digital_goods
Retrieve download links for digital products in an order.
| Parameter | Type | Required | Description |
|---|---|---|---|
token |
string | Yes | The order token |
Returns: Array of digital goods with download URLs.
create_order_notification
Send a notification related to an order. Rate limited to 20 calls per 2 minutes per API key.
| Parameter | Type | Required | Description |
|---|---|---|---|
token |
string | Yes | The order token |
type |
string | Yes | Comment, OrderStatusChanged, OrderShipped, TrackingNumber, or Invoice |
deliveryMethod |
string | No | Email (sends to customer) or None (internal only). Defaults to None. |
message |
string | No | Notification message body |
Returns: The created notification object.
list_order_notifications
List all notifications that have been sent for an order.
| Parameter | Type | Required | Description |
|---|---|---|---|
token |
string | Yes | The order token |
Returns: Array of notification objects.
Customers
list_customers
List customers with optional filters.
| Parameter | Type | Required | Description |
|---|---|---|---|
status |
string | No | Confirmed or Unconfirmed |
email |
string | No | Filter by email |
name |
string | No | Filter by name |
from |
string | No | Start date (ISO 8601) |
to |
string | No | End date (ISO 8601) |
limit |
number | No | Number of results |
offset |
number | No | Pagination offset |
Returns: Paginated list with customer ID, email, status, location, and order stats.
get_customer
Get a customer's full profile and statistics.
| Parameter | Type | Required | Description |
|---|---|---|---|
id |
string | Yes | The customer ID |
Returns: Complete customer object with addresses, statistics, and order history summary.
get_customer_orders
Get all orders placed by a specific customer.
| Parameter | Type | Required | Description |
|---|---|---|---|
id |
string | Yes | The customer ID |
Returns: Array of order objects.
update_customer
Update a customer's email or addresses.
| Parameter | Type | Required | Description |
|---|---|---|---|
id |
string | Yes | The customer ID |
email |
string | Yes | New email address |
billingAddress |
object | No | Updated billing address |
shippingAddress |
object | No | Updated shipping address |
cartToken |
string | No | Cart token to associate |
Returns: The updated customer object.
delete_customer
Permanently delete a customer account. This action is irreversible.
| Parameter | Type | Required | Description |
|---|---|---|---|
id |
string | Yes | The customer ID |
Returns: Success confirmation.
Products
list_products
List products with optional filters.
| Parameter | Type | Required | Description |
|---|---|---|---|
userDefinedId |
string | No | Filter by custom product ID |
from |
string | No | Start date (ISO 8601) |
to |
string | No | End date (ISO 8601) |
orderBy |
string | No | Sort field |
limit |
number | No | Number of results |
offset |
number | No | Pagination offset |
Returns: Paginated list with product ID, name, price, stock, and variant count.
get_product
Get full product details.
| Parameter | Type | Required | Description |
|---|---|---|---|
id |
string | Yes | The product ID |
Returns: Complete product object with variants, categories, and descriptions.
update_product_stock
Update stock levels or inventory management settings.
| Parameter | Type | Required | Description |
|---|---|---|---|
id |
string | Yes | The product ID |
stock |
number | No | New stock quantity (for ByProduct management) |
allowOutOfStockPurchases |
boolean | No | Whether to allow purchases when out of stock |
inventoryManagementMethod |
string | No | DontTrack, ByProduct, or ByVariant |
variants |
array | No | Array of variant objects with variation and stock fields |
Returns: The updated product object.
archive_product
Soft-delete a product. The product can be restored from the Snipcart dashboard.
| Parameter | Type | Required | Description |
|---|---|---|---|
id |
string | Yes | The product ID |
Returns: Success confirmation.
Discounts
list_discounts
List all discounts. Rate limited to 10 calls per minute per API key.
Returns: Array of discount objects.
get_discount
Get details for a specific discount.
| Parameter | Type | Required | Description |
|---|---|---|---|
id |
string | Yes | The discount ID |
Returns: The discount object.
create_discount
Create a new discount. The required fields depend on the trigger and type you choose.
| Parameter | Type | Required | Description |
|---|---|---|---|
name |
string | Yes | Display name for the discount |
trigger |
string | Yes | Code (coupon), Total (cart value), or Product (specific product) |
type |
string | Yes | FixedAmount, Rate, AlternatePrice, Shipping, FixedAmountOnItems, AmountOnSubscription, or RateOnSubscription |
code |
string | Conditional | Required when trigger is Code. The coupon code customers enter. |
totalToReach |
number | Conditional | Required when trigger is Total. Minimum cart value. |
itemId |
string | Conditional | Required when trigger is Product. The product ID. |
amount |
number | Conditional | Required for FixedAmount types. Dollar amount off. |
rate |
number | Conditional | Required for Rate types. Decimal between 0 and 1 (e.g. 0.10 for 10% off). |
shippingDescription |
string | Conditional | Required for Shipping type. |
shippingCost |
number | Conditional | Required for Shipping type (set to 0 for free shipping). |
maxNumberOfUses |
number | No | Limit total uses across all customers |
expires |
string | No | Expiration date (ISO 8601) |
Common examples:
- 10% off coupon:
trigger=Code, code=SUMMER10, type=Rate, rate=0.10 - $5 off at $50 cart:
trigger=Total, totalToReach=50, type=FixedAmount, amount=5 - Free shipping:
trigger=Code, code=FREESHIP, type=Shipping, shippingDescription="Free shipping", shippingCost=0
Returns: The created discount object.
update_discount
Update an existing discount's properties.
| Parameter | Type | Required | Description |
|---|---|---|---|
id |
string | Yes | The discount ID |
name |
string | No | Updated name |
code |
string | No | Updated coupon code |
amount |
number | No | Updated amount |
rate |
number | No | Updated rate |
maxNumberOfUses |
number | No | Updated usage limit |
expires |
string | No | Updated expiration date |
archived |
boolean | No | Set to true to disable |
Returns: The updated discount object.
delete_discount
Delete a discount. This will fail if the discount has been used in completed orders.
| Parameter | Type | Required | Description |
|---|---|---|---|
id |
string | Yes | The discount ID |
Returns: Success confirmation.
Refunds
list_order_refunds
List all refunds for an order.
| Parameter | Type | Required | Description |
|---|---|---|---|
token |
string | Yes | The order token |
Returns: Array of refund objects.
get_order_refund
Get details for a specific refund.
| Parameter | Type | Required | Description |
|---|---|---|---|
token |
string | Yes | The order token |
id |
string | Yes | The refund ID |
Returns: The refund object.
create_order_refund
Create a refund on an order. This action is irreversible. The refund amount cannot exceed the order total.
| Parameter | Type | Required | Description |
|---|---|---|---|
token |
string | Yes | The order token |
amount |
number | Yes | Refund amount in the order's currency |
comment |
string | No | Reason for the refund |
notifyCustomer |
boolean | No | Whether to send an email notification |
autoRefundTaxes |
boolean | No | Whether to automatically refund associated taxes |
status |
string | No | Partial or Complete |
Returns: The created refund object.
Order log items
list_order_log_items
List internal notes and log entries for an order.
| Parameter | Type | Required | Description |
|---|---|---|---|
token |
string | Yes | The order token |
Returns: Array of log entry objects.
create_order_log_item
Add an internal note to an order. These notes are only visible in the dashboard, not to customers.
| Parameter | Type | Required | Description |
|---|---|---|---|
token |
string | Yes | The order token |
content |
string | Yes | The note content |
Returns: The created log entry.
Abandoned carts
list_abandoned_carts
List abandoned carts. Uses continuation token pagination (not offset-based).
| Parameter | Type | Required | Description |
|---|---|---|---|
limit |
number | No | Number of results |
continuationToken |
string | No | Token from a previous response to load the next page |
timeRange |
string | No | Predefined range (e.g. LastWeek) |
minimalValue |
number | No | Minimum cart value |
email |
string | No | Filter by customer email |
productId |
string | No | Filter by product |
Returns: Paginated list with continuation token for loading more results.
get_abandoned_cart
Get full details for an abandoned cart.
| Parameter | Type | Required | Description |
|---|---|---|---|
token |
string | Yes | The abandoned cart token |
Returns: Complete cart object with items, customer info, and timestamps.
User sessions
get_user_session
Get details for a user session.
| Parameter | Type | Required | Description |
|---|---|---|---|
token |
string | Yes | The session token |
Returns: Session object with customer and cart information.
Domains
get_domain
Get your store's primary domain configuration.
Returns: Domain configuration object.
update_domain
Update your store's primary domain.
| Parameter | Type | Required | Description |
|---|---|---|---|
domain |
string | Yes | The domain (e.g. mystore.com) |
protocol |
string | No | HTTPS or HTTP (defaults to HTTPS) |
Returns: The updated domain object.
list_allowed_domains
List all domains allowed to embed the Snipcart checkout.
Returns: Array of domain objects.
add_allowed_domains
Add domains to the allowed list.
| Parameter | Type | Required | Description |
|---|---|---|---|
domains |
array | Yes | Array of domain strings (e.g. ["mystore.com", "staging.mystore.com"]) |
Returns: Updated list of allowed domains.
remove_allowed_domains
Remove domains from the allowed list.
| Parameter | Type | Required | Description |
|---|---|---|---|
domains |
array | Yes | Array of domain strings to remove |
Returns: Updated list of allowed domains.
Shipping methods
list_shipping_methods
List all custom shipping methods.
Returns: Array of shipping method objects.
get_shipping_method
Get details for a specific shipping method.
| Parameter | Type | Required | Description |
|---|---|---|---|
id |
string | Yes | The shipping method ID (UUID) |
Returns: The shipping method object.
create_shipping_method
Create a custom shipping method with weight-based rates.
| Parameter | Type | Required | Description |
|---|---|---|---|
name |
string | Yes | Display name |
rates |
array | Yes | Array of rate objects: { cost, weight: { from, to } } |
onOrderTotalAbove |
number | No | Only apply when cart total exceeds this value |
postalCodeRegex |
string | No | Regex to match postal codes |
countryCondition |
array | No | Array of { countryCode, stateCode } objects |
guaranteedEstimatedDelivery |
string | No | Estimated delivery time |
localizationId |
string | No | Localization ID for translations |
Example:
{
"name": "Express Shipping",
"rates": [
{ "cost": 25.00, "weight": { "from": 0, "to": 5000 } },
{ "cost": 35.00, "weight": { "from": 5001, "to": 10000 } }
],
"countryCondition": [
{ "countryCode": "US" },
{ "countryCode": "CA" }
]
}Returns: The created shipping method object.
Known limitation: The
guaranteedEstimatedDeliveryfield is accepted by the API but may not persist due to a server-side issue. Set delivery time estimates from the Snipcart dashboard as a workaround.
update_shipping_method
Update an existing shipping method. The server fetches the current state and merges your changes.
| Parameter | Type | Required | Description |
|---|---|---|---|
id |
string | Yes | The shipping method ID (UUID) |
name |
string | No | Updated name |
rates |
array | No | Updated rates |
onOrderTotalAbove |
number | No | Updated cart total threshold |
postalCodeRegex |
string | No | Updated postal code regex |
countryCondition |
array | No | Updated country conditions |
Returns: The updated shipping method object.
delete_shipping_method
Delete a shipping method.
| Parameter | Type | Required | Description |
|---|---|---|---|
id |
string | Yes | The shipping method ID (UUID) |
Returns: Success confirmation.
Next up: Error handling — Understanding errors and rate limits.