Etsy MCP Server

MCP server for the Etsy API

Local serverstdio

What is the Etsy MCP server?

Etsy becomes available to MCP clients through the etsy mcp server. MCP server for the Etsy API.

What Etsy does

This project exposes a subset of the Etsy API through the Model Context Protocol. It allows tools to be called from an MCP client to retrieve shop data and manage listings.

Tools it exposes

Once connected, the assistant can call these 11 tools directly:

  • getShop — Fetch information about a shop. Required argument: shop_id
  • getMe — Return basic info about the authenticated user, including user_id and shop_id. This endpoint takes no arguments
  • getListingsByShop — List the listings in a shop. Supports an optional state parameter (e.g. active, draft). Requires shop_id
  • createDraftListing — Create a new physical draft listing using POST /v3/application/shops/{shop_id}/listings. The tool accepts all fields supported by Etsy's createDraftListing
  • uploadListingImage — Upload an image to a listing. Requires shop_id, listing_id and image_path. (Implementation is currently a placeholder.)
  • updateListing — Update an existing listing. Requires shop_id and listing_id. Optional fields include title, description and price
  • getShopReceipts — The getShopReceipts tool exposed by this server
  • getShopSections — Retrieve the list of sections in a shop. Requires shop_id
  • getShopSection — Retrieve a single shop section by shop_id and shop_section_id
  • getSellerTaxonomyNodes — The getSellerTaxonomyNodes tool exposed by this server
  • getPropertiesByTaxonomyId — List product properties supported for a specific taxonomy node. Requires taxonomy_id

Installing the etsy mcp server

The server is distributed via npm as tsx, so most clients can run it without a manual build step. Add it to your MCP client's configuration and restart the client to pick it up — the copy-paste configs for Claude Desktop, Claude Code and Cursor are on this page.

Configuration

Before the server will start you need to supply 6 environment variables: ETSY_API_KEY, ETSY_SHARED_SECRET, ETSY_REFRESH_TOKEN, YOUR_KEY, YOUR_SECRET, YOUR_TOKEN. Keep credentials in your client's env block or a secrets manager rather than committing them.

Where it fits

Developer-tool servers are usually the first ones people connect, because they turn "help me with this code" into an assistant that can actually read the repo and act on it. Etsy sits in that group, and the shape of its toolset — getShop, getMe, getListingsByShop among others — tells you what it is really for. Worth comparing against the other developer tools servers in this directory before you commit to one, since several overlap in scope but differ sharply in setup cost and permissions.

Practical notes

  • This server runs locally, so it operates with whatever access your machine and its credentials already have. Scope that deliberately rather than by default.
  • It will not start until its required credentials are present, so set those before wondering why the tools never appear.
  • With 11 tools exposed, expect a noticeable bump in prompt size — disable it in projects that never use Etsy.
  • Maintained by profplum700.
  • MCP clients ask for confirmation before each tool call by default. Keep that on while you learn what the etsy mcp server actually does with your data.
  • Every entry in this directory is reviewed by hand before it goes live, and details are checked against the project's own documentation.

Available tools

ToolWhat it does
getShopFetch information about a shop. Required argument: shop_id.
getMeReturn basic info about the authenticated user, including user_id and shop_id. This endpoint takes no arguments.
getListingsByShopList the listings in a shop. Supports an optional state parameter (e.g. active, draft). Requires shop_id.
createDraftListingCreate a new physical draft listing using POST /v3/application/shops/{shop_id}/listings. The tool accepts all fields supported by Etsy's createDraftListing endpoint.
uploadListingImageUpload an image to a listing. Requires shop_id, listing_id and image_path. (Implementation is currently a placeholder.)
updateListingUpdate an existing listing. Requires shop_id and listing_id. Optional fields include title, description and price.
getShopReceiptsThe getShopReceipts tool exposed by this server.
getShopSectionsRetrieve the list of sections in a shop. Requires shop_id.
getShopSectionRetrieve a single shop section by shop_id and shop_section_id.
getSellerTaxonomyNodesThe getSellerTaxonomyNodes tool exposed by this server.
getPropertiesByTaxonomyIdList product properties supported for a specific taxonomy node. Requires taxonomy_id.

How to install the Etsy MCP server

{
  "mcpServers": {
    "etsy": {
      "command": "npx",
      "args": ["-y", "tsx"],
      "env": {
        "ETSY_API_KEY": "your-value",
        "ETSY_SHARED_SECRET": "your-value",
        "ETSY_REFRESH_TOKEN": "your-value",
        "YOUR_KEY": "your-value",
        "YOUR_SECRET": "your-value",
        "YOUR_TOKEN": "your-value"
      }
    }
  }
}

Add to claude_desktop_config.json, then restart Claude Desktop.

Configuration

VariableDescriptionRequired
ETSY_API_KEYCredential the server authenticates with.Yes
ETSY_SHARED_SECRETCredential the server authenticates with.Yes
ETSY_REFRESH_TOKENCredential the server authenticates with.Yes
YOUR_KEYCredential the server authenticates with.Yes
YOUR_SECRETCredential the server authenticates with.Yes
YOUR_TOKENCredential the server authenticates with.Yes

Example prompts to try

  • Use Etsy to getShop.
  • Use Etsy to getMe.
  • Use Etsy to getListingsByShop.

Frequently asked questions

It connects Etsy to MCP-compatible AI assistants such as Claude and Cursor, exposing 11 tools (getShop, getMe, getListingsByShop, and more) that the assistant can call on your behalf. Instead of copying data back and forth by hand, the assistant works with Etsy directly.