etsy-mcp-server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ETSY_API_KEY | Yes | Your Etsy API key from developer account | |
| ETSY_SHOP_ID | No | Your Etsy shop ID | |
| ETSY_API_SECRET | Yes | Your Etsy API shared secret | |
| ETSY_ACCESS_TOKEN | No | OAuth access token (obtained after authorization) | |
| ETSY_TOKEN_EXPIRY | No | OAuth token expiry timestamp (obtained after authorization) | |
| ETSY_REFRESH_TOKEN | No | OAuth refresh token (obtained after authorization) |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_meA | Get authenticated Etsy user info including user_id and shop_id. Use this first to find your ETSY_SHOP_ID. |
| get_shopA | Get full details of your Etsy shop (name, announcement, policies, stats). |
| update_shopA | Update shop info: title, announcement, sale message, or digital sale message. |
| list_listingsB | List all listings in your shop. Filter by state: active, draft, inactive, expired, sold_out. |
| get_listingB | Get full details of a single listing by ID. |
| create_listingA | Create a new draft listing. For digital products (PDF, etc.) set type='download'. Returns the new listing_id. |
| update_listingC | Update an existing listing. Only provide fields you want to change. |
| publish_listingA | Publish a draft listing (make it active/visible). Requires at least one image already uploaded. |
| delete_listingA | Permanently delete a listing. This cannot be undone. |
| list_listing_imagesC | List all images attached to a listing. |
| upload_listing_imageB | Upload an image to a listing from a local file path. Supported formats: JPEG, PNG, GIF (max 10MB). |
| delete_listing_imageC | Remove an image from a listing. |
| list_listing_filesC | List all digital files attached to a listing. |
| upload_listing_fileA | Upload a digital file (PDF, ZIP, etc.) to a listing. The listing type must be 'download'. |
| delete_listing_fileC | Remove a digital file from a listing. |
| get_inventoryA | Get inventory (products, offerings, prices, quantities) for a listing. |
| update_inventoryA | Update the full inventory for a listing. You must provide ALL products (replaces entire inventory). Get current state with get_inventory first, then modify only what you need. |
| list_sectionsA | List all sections in your shop (used to organize listings into categories). |
| create_sectionB | Create a new section in your shop. |
| update_sectionC | Rename an existing shop section. |
| delete_sectionB | Delete a shop section. Listings in this section will become unsectioned. |
| get_taxonomy_nodesA | Get the full Etsy seller taxonomy tree. Use this to find the right taxonomy_id for create_listing. Search the results for your product category (e.g. 'art print', 'digital download', 'guide'). |
| get_taxonomy_propertiesA | Get available properties (attributes) for a specific taxonomy node. Use this to know what attributes you can set when creating a listing. |
| suggest_tagsA | Search taxonomy nodes by keyword to help build relevant SEO tags for a listing. Returns matching category names you can use as tags. |
| list_ordersC | List shop orders (receipts). Filter by status: open, unshipped, unpaid, completed, processing. |
| get_orderA | Get full details of a single order (receipt) including buyer info, items, and totals. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 26 tools
Every tool targets a distinct entity and action. For example, create_listing, get_listing, update_listing, delete_listing are clearly separated from section, inventory, order, and taxonomy tools. No two tools overlap in purpose.
All tool names use a consistent verb_noun pattern in snake_case (e.g., create_listing, upload_listing_image, suggest_tags). The verbs are standardized (get, list, create, update, delete, upload, publish, suggest), making the API highly predictable.
26 tools is slightly above the typical range, but each tool maps to a well-defined API operation. The count is justified by the breadth of Etsy's domain (listings, sections, inventory, orders, shop, taxonomy). It could be streamlined, but it's still reasonable.
The tool set covers core CRUD operations for listings, sections, inventory, and shop, plus listing-specific file/image management and taxonomy exploration. Minor gaps exist (e.g., no tool to update order status), but the overall surface is comprehensive for seller-side automation.