etsy-mcp-server
Provides tools for managing an Etsy shop, including listings, inventory, images, digital files, orders, and taxonomy through the Etsy Open API v3.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@etsy-mcp-server list my active listings"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
etsy-mcp-server
Full-featured Model Context Protocol server for the Etsy Open API v3. Manage your Etsy shop — listings, inventory, images, digital files, orders — entirely through Claude or any MCP-compatible client.
Features
Group | Tools |
Shop |
|
Listings |
|
Images |
|
Digital files |
|
Inventory |
|
Sections |
|
Taxonomy |
|
Orders |
|
Related MCP server: Etsy MCP Server
Prerequisites
Node.js 18+
An Etsy Developer account with an app created
Your app must be approved for OAuth write access (Etsy reviews new apps)
Installation
git clone https://github.com/DColl/etsy-mcp-server.git
cd etsy-mcp-server
npm install
cp .env.example .envEdit .env and fill in your credentials:
ETSY_API_KEY=your_keystring_here
ETSY_API_SECRET=your_shared_secret_hereAuthentication
Step 1 — OAuth authorization (required for write operations)
npm run authThis opens a local browser flow. After authorizing, tokens are saved to .env automatically.
Step 2 — Find your Shop ID
Build the server and ask Claude: "call get_me" — it returns your shop_id. Add it to .env:
ETSY_SHOP_ID=12345678Build & run
npm run build
npm startOr in dev mode (no build step):
npm run devConfigure Claude Code
Add to your Claude Code settings (~/.claude/settings.json or project .claude/settings.json):
{
"mcpServers": {
"etsy": {
"command": "node",
"args": ["/absolute/path/to/etsy-mcp-server/dist/index.js"],
"env": {
"ETSY_API_KEY": "your_keystring",
"ETSY_API_SECRET": "your_shared_secret",
"ETSY_ACCESS_TOKEN": "your_access_token",
"ETSY_REFRESH_TOKEN": "your_refresh_token",
"ETSY_TOKEN_EXPIRY": "your_token_expiry",
"ETSY_SHOP_ID": "your_shop_id"
}
}
}
}Configure Claude Desktop
Add to ~/AppData/Roaming/Claude/claude_desktop_config.json (Windows):
{
"mcpServers": {
"etsy": {
"command": "node",
"args": ["C:\\path\\to\\etsy-mcp-server\\dist\\index.js"]
}
}
}Example usage with Claude
Create a draft listing for my PDF printable "STOP Before You Pay" fraud prevention checklist.
Price: $4.99, it's a digital download, quantity 999.
Use suggest_tags with keyword "printable" to find the right taxonomy, then add tags.
Upload cover.jpg as image and stop-before-you-pay.pdf as the digital file.
Then publish the listing.Rate limits
Etsy allows 5 requests/second and 5,000 requests/day per API key.
License
MIT — © TBS-Digital 2026
Available Tools
26 toolscreate_listingA
Create a new draft listing. For digital products (PDF, etc.) set type='download'. Returns the new listing_id.
Inputs: price (required), title (required), quantity (required), description (required), +10 more.
create_sectionB
Create a new section in your shop.
Inputs: title (required).
delete_listingA
Permanently delete a listing. This cannot be undone.
Inputs: listing_id (required).
delete_listing_fileC
Remove a digital file from a listing.
Inputs: listing_id (required), listing_file_id (required).
delete_listing_imageC
Remove an image from a listing.
Inputs: listing_id (required), listing_image_id (required).
delete_sectionB
Delete a shop section. Listings in this section will become unsectioned.
Inputs: section_id (required).
get_inventoryA
Get inventory (products, offerings, prices, quantities) for a listing.
Inputs: listing_id (required).
get_listingB
Get full details of a single listing by ID.
Inputs: listing_id (required).
get_meA
Get authenticated Etsy user info including user_id and shop_id. Use this first to find your ETSY_SHOP_ID.
Inputs: no named parameters.
get_orderA
Get full details of a single order (receipt) including buyer info, items, and totals.
Inputs: receipt_id (required).
get_shopA
Get full details of your Etsy shop (name, announcement, policies, stats).
Inputs: shop_id.
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').
Inputs: no named parameters.
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.
Inputs: taxonomy_id (required).
list_listing_filesC
List all digital files attached to a listing.
Inputs: listing_id (required).
list_listing_imagesC
List all images attached to a listing.
Inputs: listing_id (required).
list_listingsB
List all listings in your shop. Filter by state: active, draft, inactive, expired, sold_out.
Inputs: limit, state, offset.
list_ordersC
List shop orders (receipts). Filter by status: open, unshipped, unpaid, completed, processing.
Inputs: limit, offset, status, max_created, +1 more.
list_sectionsA
List all sections in your shop (used to organize listings into categories).
Inputs: no named parameters.
publish_listingA
Publish a draft listing (make it active/visible). Requires at least one image already uploaded.
Inputs: listing_id (required).
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.
Inputs: keyword (required).
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.
Inputs: products (required), listing_id (required), sku_on_property, price_on_property, +1 more.
update_listingC
Update an existing listing. Only provide fields you want to change.
Inputs: listing_id (required), tags, price, state, +5 more.
update_sectionC
Rename an existing shop section.
Inputs: title (required), section_id (required).
update_shopA
Update shop info: title, announcement, sale message, or digital sale message.
Inputs: title, announcement, sale_message, digital_sale_message.
upload_listing_fileA
Upload a digital file (PDF, ZIP, etc.) to a listing. The listing type must be 'download'.
Inputs: file_path (required), listing_id (required), rank.
upload_listing_imageB
Upload an image to a listing from a local file path. Supported formats: JPEG, PNG, GIF (max 10MB).
Inputs: image_path (required), listing_id (required), rank, overwrite.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
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.
Maintenance
Related MCP Connectors
Hosted MCP server for 3Dsellers, the multichannel selling platform. Connect Claude, ChatGPT, Cursor, VS Code or any MCP client and manage your eBay, Amazon, Walmart, Etsy, Shopify, WooCommerce and TikTok Shop stores in plain language: search and update products, publish listings, sync inventory, tag and track orders, run bulk actions and CSV imports, and reply to customer messages. 120+ tools. Sign in with OAuth or a personal token. No eBay developer account and nothing to install. Setup guides and config examples for every client: https://github.com/3dsellers/ebay-mcp-server
Hosted Amazon Seller and Vendor MCP server for Claude, ChatGPT, Cursor, Codex, Gemini, Copilot.
Hosted Amazon Seller Central and Amazon Ads MCP server for Claude, ChatGPT, Cursor, and agents.
Hosted Magento MCP server for Claude, ChatGPT and Cursor, with each action switched per account.
Related MCP Servers
- AlicenseAqualityDmaintenanceA production-grade MCP server that enables AI assistants like Claude to read Etsy shop data—listings, orders, inventory, and stats—through eight read-only tools, using OAuth and automatic pagination.8MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server for interacting with the Etsy API, enabling listing management, shop information, shipping profiles, and image uploads.13ISC
- AlicenseNot gradedqualityDmaintenanceMCP server for interacting with the Etsy API. Allows users to retrieve shop data, manage listings, and perform various Etsy operations through natural language.MIT
- AlicenseCqualityDmaintenanceComprehensive MCP server for the Etsy API v3, providing 50+ tools to manage listings, shops, orders, payments, and more through natural language.1003MIT