Etsy API 服务器

通过Model Context Protocol暴露Etsy API子集,支持获取店铺数据和管理商品列表。

  • by akosa151-star
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 akosa151-star/profplum700-etsy-mcp-server

使用说明

Etsy MCP服务器

此项目公开了 API Etsy 通过模型上下文协议。它允许从MCP客户端调用工具来检索商店数据和管理列表。

OAuth设置

服务器需要有效的Etsy API密钥字符串、共享机密和OAuth刷新令牌。您可以通过 ETSY_API_KEY, ETSY_SHARED_SECRET 和 ETSY_REFRESH_TOKEN 环境变量或通过创建 cline_mcp_settings.json 文件基于 cline_mcp_settings.example.json.

如果您还没有刷新令牌,请运行辅助脚本:

npx tsx src/get-refresh-token --keystring YOUR_KEY --shared-secret YOUR_SECRET

该脚本打开一个浏览器窗口进行身份验证,并将刷新令牌打印到控制台。

发展

安装依赖项并构建服务器:

npm install
npm run build

在开发过程中,您可以使用以下命令自动重建:

npm run watch

跑步

构建后,使用以下命令启动服务器:

node build/index.js

可用工具

getShop

获取有关商店的信息。 必需参数: shop_id.

getMe

返回已验证用户的基本信息,包括 user_id 和 shop_id。此终结点不接受任何参数。

getListingsByShop

列出商店里的商品。支持可选 state 参数(例如。 active, draft).需要 shop_id.

createDraftListing

使用以下命令创建新的物理草稿列表 POST /v3/application/shops/{shop_id}/listings. 该工具接受Etsy支持的所有字段 createDraftListing 终点。

uploadListingImage

将图像上传到列表。需要 shop_id, listing_id 和 image_path. (实施目前是一个占位符。)

updateListing

更新现有列表。需要 shop_id 和 listing_id。可选字段包括 title, description 和 price.

getShopReceipts

检索商店的收据。需要 shop_id.

getShopSections

检索商店中的部分列表。需要 shop_id.

getShopSection

通过以下方式检索单个店铺部分 shop_id 和 shop_section_id.

调试

服务器通过stdio进行通信。为了调试,您可以使用MCP检查器启动它:

npm run inspector

检查器打印一个URL,您可以在浏览器中打开该URL以查看通信日志和检查消息。

码头工人

提供的 Dockerfile 在多阶段构建中使用Node 22映像。

构建Docker镜像:

docker build -t etsy-mcp-server .

使用您的Etsy凭据运行容器:

docker run \
  -e ETSY_API_KEY=your_api_key \
  -e ETSY_SHARED_SECRET=your_shared_secret \
  -e ETSY_REFRESH_TOKEN=your_refresh_token \
  etsy-mcp-server

服务器通过stdio进行通信,因此当容器运行时,它会立即启动。