agentsclimarketplace

Ebay draft

Skill hansohn/marketplace-skills/skills/ebay-draft

Create an eBay listing draft (inventory item + offer) via the eBay MCP server, leaving publication to the user. Use whenever the user wants to push a prepared listing to eBay without copy-pasting, asks to "create an eBay draft", "make an eBay offer", "push to eBay", or after /marketplace:listing finishes generating copy and the user wants the eBay portion auto-drafted. Never publishes the offer — always leaves it as a draft for the user to review and publish manually in Seller Hub.From its SKILL.md

Install
npx -y skills add hansohn/marketplace-skills --skill ebay-draft

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • 16 days oldThe repository was created 16 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

9.0 KB, ~2.1k tokens by cl100k_base, as published. Nobody here has run it

eBay Draft

Create an eBay inventory item and offer (as a draft) via the eBay MCP server. The user reviews and publishes the draft manually from eBay Seller Hub.

When to use

Trigger when:

  • The user asks to create an eBay draft, push to eBay, or auto-list on eBay
  • The /marketplace:listing orchestrator delegates eBay draft creation after generating listing copy
  • The user has a prepared listing (item details + price + photos) and wants to skip manual entry into eBay's UI

Do not use for:

  • Auto-publishing — this skill only creates drafts, never calls ebay_publish_offer
  • Facebook Marketplace — no API exists; FB always requires manual paste

Required inputs

  • Item identification: year, make, model, model number, color, condition
  • eBay-ready listing data: title (≤80 chars), description, item specifics, condition description
  • Price: list price + currency (default USD)
  • Photo URLs (optional): publicly accessible image URLs. If only local file paths are available, the draft is created without images and the user uploads via Seller Hub before publishing.

Input resolution (where the data comes from)

This skill can be invoked three ways. Resolve missing data in this order:

1. Chained from /marketplace:listing (eBay was in the enabled platforms). The orchestrator already generated the eBay block during the listing run. Extract:

  • Title, item specifics, condition description, description body → from the ## eBay Listing section of the generated .md file
  • Price → from the Pricing Recommendation section's "Final listing price"
  • Item identification → from the Item Details section

2. Standalone, with a path to an existing {ItemPrefix}-Listing.md. Read the file. If it contains a ## eBay Listing section, use it (same extraction as case 1). If it has the item details + pricing but no eBay block (because eBay wasn't enabled when generated), derive the eBay-formatted data on the fly:

  • Read ${CLAUDE_PLUGIN_ROOT}/platforms/ebay.md for the block template and generation rules (these shared files live at the plugin root, not inside this skill's folder — a bare platforms/ebay.md read relative to skills/ebay-draft/ will 404)
  • Use the orchestrator's "Platform-file placeholder sources" derivation logic (see ${CLAUDE_PLUGIN_ROOT}/skills/listing/SKILL.md Step 3) to fill the placeholders from the existing Item Details + Pricing data
  • Don't write the derived eBay block back to the .md file — just use it to populate the API call

3. Standalone, no listing file. Run /marketplace:comps first to get pricing, then derive eBay-formatted data from CSV row or interactive prompt + comps output. This path is for users who want to push directly to eBay without generating the full .md listing artifact. Honor the CSV per-row overrides: a non-empty Asking column is the offer price (overriding the comps recommendation), MSRP feeds the retail callout, and Quantity (default 1) sets the offer's available quantity.

If the user invokes this skill in case 2 or 3 and required data is missing, ask — surface the gap with concrete options rather than guessing (see ${CLAUDE_PLUGIN_ROOT}/references/handling-ambiguity.md). Don't fabricate.

Process

1. Detect the eBay MCP

Check whether any tool whose name starts with ebay_ is available (e.g., ebay_create_inventory_item). If none exist:

  • The MCP isn't installed or configured.
  • Tell the user how to set it up (see plugin README's "Optional: eBay auto-draft via MCP" section).
  • Stop. Do not fall back to browser automation — eBay's terms prohibit it and risks account suspension.

2. Confirm with the user

This step makes authenticated API calls to eBay. Always confirm before proceeding, even if the user originally asked for "the whole flow". Surface:

  • The SKU that will be created
  • The list price
  • The eBay title
  • Whether photos will be attached (any URLs starting with http:// or https://) or skipped (paths are local files, no protocol)

3. Verify prerequisites (best-effort)

eBay requires the seller to have an inventory location and payment / fulfillment / return policies configured before any offer can be published. The orchestrator does not create these — the user sets them up once in Seller Hub.

If possible, call:

  • ebay_get_inventory_locations — confirm at least one location exists
  • ebay_get_fulfillment_policies, ebay_get_payment_policies, ebay_get_return_policies — confirm policies exist

If any are missing, warn the user and link to bizpolicy.ebay.com. The draft can still be created without these (offers will fail to publish until the user resolves), but it's better to surface the gap up front.

4. Create the inventory item

Call ebay_create_inventory_item with these fields:

FieldValue
skuItemPrefix (e.g., Strider-12-SportBalanceBike) — predictable, deduplicates across re-runs
product.titleeBay-formatted title (≤80 chars, keyword-dense)
product.descriptioneBay description (Markdown body of the eBay platform block)
product.aspectsItem Specifics as { "Brand": ["Strider"], "Model": ["12 Sport"], "MPN": ["ST-S4RD"], ... }
product.brand, product.mpnFrom item details
product.imageUrlsArray of publicly accessible image URLs. Detection rule: treat a path as a URL if it starts with http:// or https://; otherwise it's a local file. If all photos are local, omit the imageUrls field entirely — do not pass file paths. The draft will be created without images and the user uploads via Seller Hub before publishing.
conditioneBay enum: NEW, NEW_OTHER, USED_EXCELLENT, USED_VERY_GOOD, USED_GOOD, USED_ACCEPTABLE, FOR_PARTS_OR_NOT_WORKING
conditionDescriptionFree-text elaboration on condition
availability.shipToLocationAvailability.quantityQuantity from CSV (default 1)

5. Create the offer

Call ebay_create_offer with:

FieldValue
skuSame as inventory item
marketplaceIdEBAY_US (or from env override)
formatFIXED_PRICE (auctions out of scope)
pricingSummary.price{ value: list_price, currency: "USD" }
categoryIdFrom item details; call ebay_get_category_suggestions if unknown
listingPolicies.fulfillmentPolicyIdUser's fulfillment policy ID
listingPolicies.paymentPolicyIdUser's payment policy ID
listingPolicies.returnPolicyIdUser's return policy ID
merchantLocationKeyUser's inventory location key

6. Stop here — do not publish

Never call ebay_publish_offer. Leave the offer as a draft. The user reviews and publishes from Seller Hub.

7. Report back

Tell the user:

  • SKU and offer ID
  • eBay Seller Hub URL: https://www.ebay.com/sh/lst/drafts (or similar)
  • Whether photos were attached or need manual upload
  • Any prerequisite warnings surfaced in step 3

Verification

Before returning, confirm every item. The first two are hard safety gates on irreversible, authenticated actions:

  • Never publishedebay_publish_offer was not called. The offer is left as a draft for the user to publish from Seller Hub.
  • Explicit confirmation — the user confirmed (SKU, price, title, photo handling) before any authenticated eBay API call, even if they originally asked for "the whole flow."
  • No browser fallback — if the eBay MCP was absent, you stopped and guided setup; you did not fall back to browser automation (eBay's terms prohibit it).
  • Valid title — the eBay title is ≤80 characters.
  • Valid conditioncondition is one of the allowed eBay enums (NEW, NEW_OTHER, USED_EXCELLENT, USED_VERY_GOOD, USED_GOOD, USED_ACCEPTABLE, FOR_PARTS_OR_NOT_WORKING).
  • No local paths as image URLsimageUrls contains only http(s) URLs; if all photos were local files, the field was omitted entirely.
  • Reported back — you returned the SKU, offer ID, Seller Hub drafts URL, photo status, and any prerequisite warnings.

Notes

  • This skill is platform-specific (eBay only). The equivalent does not exist for Facebook Marketplace — there is no public API for personal Marketplace posting.
  • If the user wants to update an existing draft, use ebay_update_offer instead of creating a new one. Check for existing offers by SKU first via ebay_get_offers.
  • All eBay API calls are subject to rate limits: 1k/day on client credentials, 10k–50k/day with user OAuth tokens. The MCP setup wizard configures user tokens by default.

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Gives 0 of the 12 instructions most mcp tooling skills give in ~2.1k tokens

Counted across 638 of the 750 authors here whose files we hold, read 2026-08-07

  • Create ten complex or independent read-only evaluation questionsin 69 of 638, across 15 files
  • Test servers using MCP Inspectorin 61 of 638, across 19 files
  • Provide actionable error messages with specific next stepsin 54 of 638, across 12 files
  • Prioritize comprehensive API coverage over specific workflows or workflow toolsin 54 of 638, across 12 files
  • Use TypeScript and Streamable HTTP for remote servers or clientsin 54 of 638, across 8 files
  • Define structured output schemas where possiblein 50 of 638, across 8 files
  • Use Zod or Pydantic for input schemasin 47 of 638, across 5 files
  • Fetch MCP specification pages with markdown suffixin 46 of 638, across 4 files
  • Load framework documentation using WebFetchin 45 of 638, across 3 files
  • Verify each evaluation answer independentlyin 45 of 638, across 3 files
  • Implement API client with authentication and paginationin 45 of 638, across 3 files
  • Define input schemas with validationin 27 of 638, across 9 files

Said here and by no other author read

  • Create an eBay inventory item and offer as a draft
  • Resolve missing input data from existing files or prompts
  • Ask the user to resolve missing data gaps
  • Detect the eBay MCP tool availability before proceeding
  • Verify seller policies and inventory locations exist
  • Create the inventory item using the eBay API

Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.

Keep looking

Skills are one crate of 326,852. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.