etsy-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ETSY_API_KEY | Yes | Your Etsy API keystring from https://www.etsy.com/developers/your-apps | |
| ETSY_API_URL | No | Etsy API base URL (usually leave as default) | https://api.etsy.com/v3/application/ |
| ETSY_MAX_RETRIES | No | Maximum number of retries for failed requests | 3 |
| ETSY_HTTP_TIMEOUT | No | HTTP timeout in seconds | 60 |
| ETSY_REFRESH_TOKEN | Yes | OAuth2 refresh token for your shop (read-only scopes: listings_r, shops_r, transactions_r) | |
| ETSY_DEFAULT_SHOP_ID | No | Optional fallback shop ID if not provided in tool calls |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| etsy_search_listingsA | Search active Etsy listings by keyword. Args: query: Free-text keyword search across listing title and tags. shop_id: Optional Etsy ShopID to scope the search to a single shop. When omitted, queries the global active-listings index. limit: Cap on returned results (max 100 enforced by Etsy). Returns: JSON envelope: {"ok": true, "data": {"results": [...], "count": N}}. |
| etsy_get_listingA | Fetch the full record for a single listing. Args: listing_id: Etsy ListingID (integer). Returns:
JSON envelope. |
| etsy_get_shopA | Fetch the shop record for a single shop. Args: shop_id: Etsy ShopID (integer). Returns:
JSON envelope. |
| etsy_search_ordersA | Search receipts (orders) created in the inclusive [date_from, date_to] window for a shop. Args: date_from: ISO date (YYYY-MM-DD), start of window. date_to: ISO date (YYYY-MM-DD), end of window. shop_id: Etsy ShopID to scope the search to. Falls back to ETSY_DEFAULT_SHOP_ID if omitted. status: Optional receipt status filter ('open', 'unshipped', 'unpaid', 'completed', 'processing', 'all'). limit: Cap on yielded receipts (default 200, max 1000). Etsy caps page size at 100 per request; pagination is handled transparently. Returns:
JSON envelope. |
| etsy_get_orderB | Fetch full receipt (order) detail including transactions. Args: receipt_id: Etsy ReceiptID (integer). shop_id: Etsy ShopID. Falls back to ETSY_DEFAULT_SHOP_ID if omitted. Returns:
JSON envelope. |
| etsy_get_inventoryA | Fetch the current inventory record (variations + offerings) for a listing. Args: listing_id: Etsy ListingID. Returns:
JSON envelope. |
| etsy_get_shop_statsA | Return aggregated stats (orders, favorers, active listings, revenue) for a shop over the given period. Args: shop_id: Etsy ShopID. period: Lookback window in the form 'd', e.g. '7d', '30d', '90d'. Maximum 365 days. Returns:
JSON envelope. |
| etsy_get_active_listingsA | List active listings for a shop, paginating transparently. Args: shop_id: Etsy ShopID. limit: Soft cap on yielded listings (default 200, max 1000). Returns:
JSON envelope. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/alveyautomation/etsy-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server