Repository navigation
Conversation
Collaborator
|
✅ Internal validation passed. A ZCode maintainer will review the change next; after acceptance, release checks run separately and this PR is closed automatically. |
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Plugin type (required) / 插件类型(必填)
Select exactly one before requesting review. / 发起评审前必须且只能勾选一项。
Affected plugin name(s) / 涉及的插件名称:
etsy-manager(new)What / 改动内容
Adds etsy-manager, a community plugin for managing an Etsy shop from ZCode: search/create/update/delete listings, image/video upload, inventory & variations, shipping profiles, orders/receipts, shipments, reviews, payments and taxonomy lookup — 41 MCP tools on top of the Etsy Open API v3 (vendored from aserper/etsy-mcp, MIT, credited and licensed under
vendor/etsy-mcp/LICENSE).Architecture notes:
vendor/etsy-mcp/server-bundle.mjs, ~1.3 MB) — no committednode_modules, no install step, matching the repo convention. Theopendependency was replaced with an inline cross-platform browser launcher anddotenvmade optional, so the bundle has zero runtime dependencies.ETSY_API_KEY/ETSY_SHARED_SECRETenv vars or~/.etsy-mcp/config.json; OAuth tokens live in~/.etsy-mcp/tokens.json(documented in the READMEs).authenticatetool is non-blocking and returns the OAuth consent URL directly in the tool result (with SSH-tunnel instructions), the callback server binds loopback-only on a fixed port (3737), browser-launch failures never break the flow, andETSY_NO_BROWSER=1disables the attempt entirely.api.etsy.com/www.etsy.com; a temporary loopback HTTP server (port 3737, ≤2 min) during OAuth; reads/writes only inside~/.etsy-mcp/. Requires Node.js ≥ 20 onPATH(the only runtime requirement).Self-check / 自查清单
external_plugins/<name>/; existing fixes retain ownership / 插件名唯一且 kebab-case,外部新增插件位于external_plugins/<name>/categoryis set independently of publisher ownership / 用途分类category已填写,与维护归属分开 —productivityversionbumped in BOTHplugin.jsonandmarketplace.json(artifacts are immutable) / 两处版本号一致(新插件,0.1.1)README.md(EN) andREADME_CN.md(中文) both updated and equivalent / 中英文 README 均已提供且语义一致description_i18nhas bothenandzh-CN/description_i18n包含en与zh-CN(plugin.json 与 marketplace 条目一致)python3 scripts/validate.pyandpython3 scripts/build_dist.pypass locally / 本地校验与构建均通过 — see note belowValidation note (honest reporting):
python scripts/validate.pypasses fully (OK: 42 plugin(s) validated).build_dist.pyaborts on my machine at the pre-existingblenderUI plugin, which requirespnpm buildoutput (ui-plugins/blenderis not built in a fresh clone without pnpm — unrelated to this change). For the new entry itself,build_zip('external_plugins/etsy-manager', …)runs clean (9 files, 249 KB zip, sha256fc9dc663…), and I verified the extracted zip end-to-end: launchingscripts/mcp-server.mjsfrom it completes the MCP handshake and lists all 41 tools with fake credentials.