Stamped MCP by usefulapi
Read Stamped Loyalty 2.0 customers, products, orders, rewards and activity.
Should I use this
Quality & Safety
Findings (1)
- LOWin stamped_list_loyalty_activities
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"stamped": {
"url": "https://stamped.usefulapi.io/mcp"
}
}
}Remote endpoints
https://stamped.usefulapi.io/mcpstreamable-httpWhat it can do
Tool inventory
Tools (11)
🟢stamped_list_customers(email, first_name, last_name, last_first, shopify_id, ...)
Filter and list customer records (email, name, tags, addresses, loyalty activity summary such as points and VIP tier). All filters are optional. V3 API: only for shops on the Stamped Loyalty 2.0 dashboard. GET /api/v3/merchant/shops/{shopId}/customers.
Input Schema
{
"type": "object",
"properties": {
"email": {
"description": "Customer email.",
"type": "string",
"minLength": 3,
"maxLength": 320
},
"first_name": {
"description": "First name.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"last_name": {
"description": "Last name.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"last_first": {
"description": "Match the name filters as last-name-first.",
"type": "boolean"
},
"shopify_id": {
"description": "Shopify customer id.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"bigcommerce_id": {
"description": "BigCommerce customer id.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"custom_customer_id": {
"description": "Custom-platform customer id.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"created_from": {
"description": "Customer created on the store platform from this date (datePlatformCreated). Passed to Stamped as given (a date such as 2026-10-01, or a Unix timestamp as the dashboard uses).",
"type": "string",
"minLength": 1,
"maxLength": 40,
"pattern": "^[\\w:+.\\- /]+$"
},
"created_to": {
"description": "Customer created on the store platform up to this date (datePlatformCreatedEnd). Passed to Stamped as given (a date such as 2026-10-01, or a Unix timestamp as the dashboard uses).",
"type": "string",
"minLength": 1,
"maxLength": 40,
"pattern": "^[\\w:+.\\- /]+$"
},
"reviews_min": {
"description": "Minimum number of reviews written.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"reviews_max": {
"description": "Maximum number of reviews written.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"points_min": {
"description": "Minimum loyalty points balance.",
"type": "number",
"minimum": 0
},
"points_max": {
"description": "Maximum loyalty points balance.",
"type": "number",
"minimum": 0
},
"vip_tier": {
"description": "VIP tier name.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"tags": {
"description": "Only records carrying these tags.",
"maxItems": 20,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
},
"page": {
"description": "Zero-based page number (default 0). Use the reply's more_pages / next_page.",
"type": "integer",
"minimum": 0,
"maximum": 100000
},
"limit": {
"description": "Results per page, 1-100.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢stamped_get_customer(customer_id)
One customer record by Stamped customer id (customerId from stamped_list_customers). V3 API. GET /api/v3/merchant/shops/{shopId}/customers/{customerId}.
Input Schema
{
"type": "object",
"properties": {
"customer_id": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Stamped customer id."
}
},
"required": [
"customer_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢stamped_lookup_customer(email, custom_customer_id, shopify_id, bigcommerce_id)
Find one customer by email or by a platform id (give exactly one). V3 API. GET /api/v3/merchant/shops/{shopId}/customers/lookup.
Input Schema
{
"type": "object",
"properties": {
"email": {
"description": "Customer email.",
"type": "string",
"minLength": 3,
"maxLength": 320
},
"custom_customer_id": {
"description": "Custom-platform customer id.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"shopify_id": {
"description": "Shopify customer id.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"bigcommerce_id": {
"description": "BigCommerce customer id.",
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢stamped_list_products(title, vendor, type, handle, status, ...)
Filter and list the product catalog Stamped holds (title, vendor, type, handle, status, tags). All filters are optional. V3 API. GET /api/v3/merchant/shops/{shopId}/products.
Input Schema
{
"type": "object",
"properties": {
"title": {
"description": "Product title.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"vendor": {
"description": "Product vendor.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"type": {
"description": "Product type.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"handle": {
"description": "Product handle (URL slug).",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"status": {
"description": "Product status.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"published_scope": {
"description": "Published scope.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"shopify_id": {
"description": "Shopify product id.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"bigcommerce_id": {
"description": "BigCommerce product id.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"custom_product_id": {
"description": "Custom-platform product id.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"tags": {
"description": "Only records carrying these tags.",
"maxItems": 20,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
},
"page": {
"description": "Zero-based page number (default 0). Use the reply's more_pages / next_page.",
"type": "integer",
"minimum": 0,
"maximum": 100000
},
"limit": {
"description": "Results per page, 1-100.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢stamped_get_product(product_id)
One product by Stamped product id (productId from stamped_list_products). V3 API. GET /api/v3/merchant/shops/{shopId}/products/{productId}.
Input Schema
{
"type": "object",
"properties": {
"product_id": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Stamped product id."
}
},
"required": [
"product_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢stamped_lookup_product(custom_product_id, shopify_id, bigcommerce_id)
Find one product by a platform id (give exactly one). V3 API. GET /api/v3/merchant/shops/{shopId}/products/lookup.
Input Schema
{
"type": "object",
"properties": {
"custom_product_id": {
"description": "Custom-platform product id.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"shopify_id": {
"description": "Shopify product id.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"bigcommerce_id": {
"description": "BigCommerce product id.",
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢stamped_list_orders(page, limit)
List order records Stamped holds (customer id, currency, line items and cart states, discounts applied, dates). Paged; Stamped documents no filters for this list, use stamped_lookup_order for one order. V3 API. GET /api/v3/merchant/shops/{shopId}/orders.
Input Schema
{
"type": "object",
"properties": {
"page": {
"description": "Zero-based page number (default 0). Use the reply's more_pages / next_page.",
"type": "integer",
"minimum": 0,
"maximum": 100000
},
"limit": {
"description": "Results per page, 1-100.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢stamped_get_order(order_id)
One order by Stamped order id (orderId from stamped_list_orders). V3 API. GET /api/v3/merchant/shops/{shopId}/orders/{orderId}.
Input Schema
{
"type": "object",
"properties": {
"order_id": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Stamped order id."
}
},
"required": [
"order_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢stamped_lookup_order(custom_order_id, shopify_id, bigcommerce_id)
Find one order by a platform order id (give exactly one). V3 API. GET /api/v3/merchant/shops/{shopId}/orders/lookup.
Input Schema
{
"type": "object",
"properties": {
"custom_order_id": {
"description": "Custom-platform order id.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"shopify_id": {
"description": "Shopify order id.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"bigcommerce_id": {
"description": "BigCommerce order id.",
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢stamped_list_loyalty_rewards(page, limit)
Loyalty program report: the rewards customers earned or redeemed (title, type, value, status, expiry, customer id, and the coupon code MASKED: only the last 4 characters are shown, codes shorter than 10 characters are fully hidden, and coupon_code_masked is true in the reply). Read-only audit view; nothing is redeemed or voided. V3 API (Loyalty 2.0). GET /api/v3/loyalty/shops/{shopId}/rewards.
Input Schema
{
"type": "object",
"properties": {
"page": {
"description": "Zero-based page number (default 0). Use the reply's more_pages / next_page.",
"type": "integer",
"minimum": 0,
"maximum": 100000
},
"limit": {
"description": "Results per page, 1-100.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢stamped_list_loyalty_activities(page, limit)
Loyalty program report: the points ledger of activities (rule, points credited/debited, event, order id and order breakdown, customer id). Read-only audit view; no points are changed. V3 API (Loyalty 2.0). GET /api/v3/loyalty/shops/{shopId}/activities.
Input Schema
{
"type": "object",
"properties": {
"page": {
"description": "Zero-based page number (default 0). Use the reply's more_pages / next_page.",
"type": "integer",
"minimum": 0,
"maximum": 100000
},
"limit": {
"description": "Results per page, 1-100.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Community
Evidence