Amazon Creators

io.github.houtini-ai由 GitHub 帳號 houtini-ai 發布v0.4.3更新於 Oct 26, 2026

Amazon product search returning paste-ready affiliate deal rows for your blog

概覽

AI 產生的概覽

搜尋 Amazon 即時商品目錄,回傳可直接貼上的聯盟商品卡片、優惠列或網格,連結中已內嵌你的 Associates 標籤。

可以做什麼
  • 依關鍵字、品牌、演員、作者或標題搜尋 Amazon 商品目錄,支援篩選與翻頁
  • 依 ASIN 查詢指定商品,並列出父 ASIN 的顏色與尺寸變體
  • 依瀏覽節點 ID 取得分類中繼資料與上層分類鏈
  • 將結果輸出為 markdown、JSON、單張 HTML 卡片、響應式網格或結構化優惠列
  • 對已取得的資料重新渲染樣式或標題,不必再次呼叫 Amazon
適用情境
適合撰寫商品推薦合輯的聯盟部落客、SEO 與內容團隊以及電子報作者,希望在幾秒內取得風格一致且合規的嵌入內容,而不必手動複製圖片、價格與連結。也適合仍在使用已停用 Product Advertising API 5.0 的工作流程尋找替代方案。
執行需求
透過 npx 在本機執行,需要 Node.js 20 或更新版本。需要目標市場已核准的 Amazon Associates 帳戶,且須為主要帳戶持有人,並在過去 30 天內至少有 10 筆符合條件的已出貨銷售。需設定 AMAZON_CLIENT_ID、AMAZON_CLIENT_SECRET、AMAZON_PARTNER_TAG、AMAZON_CREDENTIAL_VERSION 與 AMAZON_MARKETPLACE;AMAZON_MAX_CONCURRENCY 與 DEBUG 為選用。憑證必須與市場所在區域一致。
安裝前請注意
需要 Amazon Associates API 憑證(AMAZON_CLIENT_ID、AMAZON_CLIENT_SECRET)與你的合作標籤,這些會存放在本機設定中;伺服器直接與 Amazon 通訊。存取權受 Amazon 銷售門檻限制,銷量下滑可能被暫停。輸出為已內嵌聯盟標籤與揭露聲明的 HTML,發布前應自行檢查;星級評分與 Prime 狀態可能缺漏,因為 Amazon 限制這類資料。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Amazon Creators,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

Amazon Creators API MCP - paste-ready affiliate product cards, straight from a chat

[npm version] [MCP Registry] [License: MIT] [TypeScript] [Known Vulnerabilities] [Socket Badge]

If you write product round-ups, you already know the boring part. You find the product on Amazon, copy the image, grab the price, paste your affiliate link, and hope the price hasn't moved by the time someone reads the post. Then you do it again for the next nine products.

This does that part for you. You ask Claude to find something, it searches the live Amazon catalogue, and it hands you back a finished HTML card - image, price, savings, star rating, your Associates tag already baked into the link, and the disclosure footer Amazon requires. Paste it into WordPress, Ghost, Substack, whatever you write in. In Claude Desktop you even see the card render before you copy it.

Built on the Amazon Creators API - the REST API that replaced Product Advertising API 5.0 when Amazon retired the old endpoint on 15 May 2026. If your workflow still points at PA-API, it's been dead for a while now. This is the way back in.

[Three Amazon product cards in a responsive grid, each with an image, title, brand and star rating, price with retrieval timestamp, a savings line, and a yellow View on Amazon button, above the Associates disclosure]

One "make a grid of these" and you get this - styles inlined, tag in every link, disclosure at the bottom. Paste it and move on.

Quick nav

Who it's for · How you'll actually use it · Getting your API key · Install · Environment variables · Tools · Output formats · Styling · Associates compliance · Troubleshooting


Who it's for

  • Affiliate bloggers and niche-site owners who live in round-ups and "best X for Y" posts, and want the product embeds done in seconds instead of by hand.
  • Content and SEO teams who need consistent, on-brand product cards across a lot of articles, without a developer wiring up the API each time.
  • Newsletter writers on Substack, Ghost or beehiiv who just want clean HTML they can drop into an issue.
  • Anyone migrating off PA-API 5.0 who needs a working replacement now that the old endpoint is gone.

You don't need to know what an API is to use it - if you can add an MCP server to Claude and paste your Associates keys once, you're set. The key bit is having an eligible Associates account.


How you'll use it

The whole thing is built around a conversation, not a form. You describe what you're writing about, Claude searches and summarises, and it only spits out HTML when you actually ask for the embed. Here's the shape of it.

1. Find products for a post

"Find me the best direct-drive racing wheels under £500"

Claude runs search_items and comes back with a plain summary - no HTML yet:

Found 8 direct-drive wheels under £500. The ones worth a look: • Fanatec CSL DD (£349) - well reviewed, 5 Nm motor • Moza R5 Bundle (£469) - comes with pedals, 5.5 Nm • Cammus C5 (£399) - compact Want me to build an embeddable grid for these?

2. Build the card or grid

"Yes, make a grid of the top three"

Now it switches to format: 'html-grid' and returns a complete HTML document. Images, prices, savings, stars, your tag, the "as of" timestamp, the disclosure footer. All of it. Paste and you're done.

3. Restyle it without burning your rate limit

This is the bit that saves you. The Creators API has real rate limits (roughly a request a second to start with, climbing as you drive more sales), so you don't want to re-query Amazon every time you fancy a different colour. You don't have to. Claude keeps the data from the last call and re-renders locally:

"Same grid, but dark cards and hotpink buttons"

json
{  "response": { "searchResult": { "items": [ /* from the previous call */ ] } },  "format": "html-grid",  "customStyles": ".amzn-card{background:#0f172a;color:#f1f5f9} .amzn-card__cta{background:hotpink;color:#111}"}

Twenty style tweaks, zero extra API calls. Iterate on the look as much as you like.

4. Look up specific ASINs

"Get me the current details for B09B2SBHQK, B08N5M7S6K and B0BZC6YR7Q"

Claude calls get_items and summarises the three. One thing worth knowing: the API doesn't promise to return items in the order you asked for them, and it quietly drops any ASIN it can't find (those land in a separate errors array). Claude matches on the asin field so you don't have to think about it.

5. List colour and size variations

"What colours does the Echo Show 5 come in?"

That's get_variations - it lists the child products of a parent ASIN, each with its own price.


Getting your API key

This is where most people get stuck, so I'll be straight with you: the Creators API isn't open to everyone, and there's a sales gate. Worth knowing before you spend an afternoon on it.

What you need first

  • An approved Amazon Associates account for the marketplace you're targeting (a .com account won't work against .co.uk - the credentials are tied to a region).
  • At least 10 qualifying shipped sales in the trailing 30 days. This is the one that catches people. If your account dips under 10 sales across any rolling 30-day window, access gets suspended until you're back over the line. New or quiet accounts simply won't have API access yet.
  • You have to be the primary account owner. Secondary users on an Associates account can't see the Creators API page or generate keys. In my experience this trips up teams more than anything else.
  • Node.js 20 or newer on the machine running the MCP.

Where to create the credentials

Sign in to Associates Central, open the Tools menu, and pick Creators API - or just go straight to affiliate-program.amazon.com/creatorsapi. Then it's three steps.

1. Create a Creators API application

[Associates Central Creators API page with the Create application button]

2. Name it and pick your region

The region you choose here decides your AMAZON_CREDENTIAL_VERSION (NA = 3.1, EU = 3.2, FE = 3.3 - full table below). Pick the region that matches the marketplace you actually write for.

[Application creation form showing name, description and region selector]

3. Copy the Credential ID and Secret

Amazon generates a Login with Amazon (v3.x) credential pair. Copy both - the ID goes in AMAZON_CLIENT_ID, the secret in AMAZON_CLIENT_SECRET. These never leave your own machine. The MCP server talks to Amazon directly; nothing is sent to Houtini or anyone else.

[Generated credentials screen with Credential ID and Secret fields]

On older v2.x credentials: if you set an app up before early 2026 you might have v2.x Cognito credentials lying around. They don't work here. Create a fresh Login with Amazon application to get v3.x keys - the server checks on startup and refuses v2.x with a message telling you exactly this, so you won't be left guessing.


Install

You don't clone anything to use it - npx pulls the published package. You just need your five environment variables to hand.

Claude Desktop

Open your config file:

  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
json
{  "mcpServers": {    "amazon-creators": {      "command": "npx",      "args": ["-y", "@houtini/amazon-creators-mcp"],      "env": {        "AMAZON_CLIENT_ID": "amzn1.application-oa2-client.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",        "AMAZON_CLIENT_SECRET": "amzn1.oa2-cs.v1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",        "AMAZON_PARTNER_TAG": "yourtag-20",        "AMAZON_CREDENTIAL_VERSION": "3.1",        "AMAZON_MARKETPLACE": "www.amazon.com"      }    }  }}

Restart Claude Desktop, then say "find me [whatever you're writing about] on Amazon" and you're off.

Claude Code (CLI)

bash
claude mcp add \  -e AMAZON_CLIENT_ID=amzn1.application-oa2-client.xxx \  -e AMAZON_CLIENT_SECRET=amzn1.oa2-cs.v1.xxx \  -e AMAZON_PARTNER_TAG=yourtag-20 \  -e AMAZON_CREDENTIAL_VERSION=3.1 \  -e AMAZON_MARKETPLACE=www.amazon.com \  -s user amazon-creators -- npx -y @houtini/amazon-creators-mcp

Check it took with claude mcp get amazon-creators - you want to see Status: Connected.


Environment variables

VariableRequiredExampleNotes
AMAZON_CLIENT_IDYesamzn1.application-oa2-client.…"Credential Id" from your Creators API app
AMAZON_CLIENT_SECRETYesamzn1.oa2-cs.v1.…"Secret" from the same place
AMAZON_PARTNER_TAGYesyourtag-20Your Associates tracking ID
AMAZON_CREDENTIAL_VERSIONYes3.1 / 3.2 / 3.3Region-specific - see table below
AMAZON_MARKETPLACEYeswww.amazon.comThe full marketplace host
AMAZON_MAX_CONCURRENCYNo4Max requests in flight at once. Default 4.
DEBUGNo1Noisy stderr logging. Off by default.

Credential version by region

Your credentials are tied to one region, and calling a marketplace outside it fails auth - so the server cross-checks these at startup and stops you early rather than letting you find out mid-request.

RegionVersionMarketplaces
NA3.1www.amazon.com, www.amazon.ca, www.amazon.com.mx, www.amazon.com.br
EU3.2www.amazon.co.uk, www.amazon.de, www.amazon.fr, www.amazon.it, www.amazon.es, www.amazon.nl, www.amazon.com.be, www.amazon.eg, www.amazon.in, www.amazon.ie, www.amazon.pl, www.amazon.sa, www.amazon.se, www.amazon.com.tr, www.amazon.ae
FE3.3www.amazon.co.jp, www.amazon.sg, www.amazon.com.au

Tools

ToolInputWhat it does
search_itemskeywords / actor / author / brand / title + filtersSearch the catalogue. Max 10 items a page; page through with itemPage.
get_itemsasins: string[] (1-10)Look up specific ASINs. Match results on asin, not on the order you sent them.
get_variationsasin: stringThe size / colour children of a parent ASIN.
get_browse_nodesbrowseNodeIds: string[]Category metadata and the ancestor chain. json / markdown only.
format_itemsresponse or items[] from a prior callRe-render data you already fetched. Doesn't call Amazon. This is how you restyle for free.

The four Amazon-facing tools all take:

  • format - 'json' | 'markdown' | 'html-card' | 'html-grid' | 'html-deals' (default markdown; get_browse_nodes is json | markdown only)
  • resources - which fields to pull, as camelCase paths (itemInfo.title, offersV2.listings.price). Leave it off for a sensible default set.
  • customStyles - extra CSS tacked onto the built-in stylesheet when you're rendering HTML. For html-deals it goes in its own <style> block ahead of the rows, so you can tweak your house styles without pulling in the full stylesheet.
  • titleMaxChars - cap the rendered title (default 80). Amazon titles are often 150-plus characters of keyword soup, and 80 keeps a card to one line. Set 0 to turn it off. Markdown and JSON always get the full title.
  • hideItemsWithoutPrice - for html-grid, drop anything with no price (default true). A card with no price is a weak embed - no hook, nothing to click for. Set false if you're building a comparison table where you want the product shown regardless.

Deal rows that match your site, not the tool

The formats below all produce a card that looks like a card. That's right for a one-off embed and wrong the moment you drop it into a post that already has house styling - you end up with somebody else's design sitting in the middle of your article.

html-deals emits structural markup instead: .amazon-deals-section wrapping one .amazon-deal-row per product. If your theme already defines those classes, the output inherits them and there's nothing to restyle. If it doesn't, re-render with format_items and includeCss: true and you get a sensible default:

[A row of three product deals - thumbnail, title, brand, price, savings and a View on Amazon button, in a compact 70px row]

Find me three burr coffee grinders and give me deal rows for the post

Each row is a fixed 70px so ten products read as a scannable list rather than ten screens of scrolling. Feature bullets are off by default for the same reason - set featureCount on format_items if you want them, and unset the row's max-height in your own CSS to make room. Want a title above the rows? Pass heading on format_items ("add the heading 'Our top picks for 2026'") and you get an <h3 class="amazon-deals-header">.

Two things it will not print:

  • A Prime badge. Nothing in the Creators API response says whether an item is Prime-eligible, so claiming it would be inventing a delivery promise on a page someone might buy from.
  • Empty stars. Review data is restricted per Associates account; where Amazon returns none, the rating line is dropped rather than rendered as zero.

A note on star ratings

customerReviews.starRating and customerReviews.count are requested on every call, but Amazon only returns them for accounts eligible for that data. If your rows have no stars, that's the account, not the tool - the fields are being asked for correctly and the formatter degrades rather than inventing a number.


Output formats

  • markdown - image, linked title, price, disclosure. Drops straight into a blog editor. Full untruncated titles.
  • html-deals - structural deal rows that inherit your site's CSS. See above. The one to use for articles.
  • html-card - one self-contained <article class="amzn-card"> with its styles inlined. Title capped at titleMaxChars. If there's no price, it renders a muted "Check price on Amazon" link so the card still has somewhere to click.
  • html-grid - a responsive grid of those cards for a search or a list. No-price items dropped by default.
  • json - the parsed response, pretty-printed. For when you want to see what Amazon actually sent.

If you'd rather not touch HTML at all, markdown is the friendliest. Ask for it and you get exactly this, ready to drop into a post:

markdown
[![Fanatec CSL DD Direct Drive Wheel Base (5 Nm)](https://m.media-amazon.com/images/…jpg)](https://www.amazon.com/dp/B0EXAMPLE01?tag=yourtag-20)**[Fanatec CSL DD Direct Drive Wheel Base (5 Nm)](https://www.amazon.com/dp/B0EXAMPLE01?tag=yourtag-20)**Brand: Fanatec · 4.7★ (1,284 reviews)**£349.95** — save £40.00 (10% off) _(as of 20 Jul 2026, 15:24 UTC)_ASIN: `B0EXAMPLE01`
> *As an Amazon Associate we earn from qualifying purchases. Prices and availability are accurate as of the time shown and are subject to change.*

In Claude Desktop the card renders inline before you copy it, using the official MCP Apps protocol - a sandboxed preview so you're not pasting blind. The preview has a Copy HTML button that copies just the embeddable part: the html-deals fragment exactly as it is, or the <style> plus body markup of a card or grid, without the <!doctype>/<html> wrapper. On a host that doesn't do MCP Apps yet, you still get the HTML as plain text, which is the exact thing you paste anyway. Nothing lost.


Styling the cards

Every visible bit of a card has a stable class hook, so you can restyle the whole thing through conversation without anyone touching the code:

.amzn-card                    .amzn-card__image              .amzn-card__title.amzn-card__meta              .amzn-card__brand              .amzn-card__rating.amzn-card__price             .amzn-card__price--unavailable .amzn-card__savings.amzn-card__cta               .amzn-card__disclosure         .amzn-grid

So this works:

"Make the CTA hotpink and the card a dark rounded rectangle."

json
{  "keywords": "coffee grinder",  "format": "html-card",  "customStyles": ".amzn-card{background:#0f172a;color:#f1f5f9;border-radius:20px} .amzn-card__cta{background:hotpink;color:#111}"}

customStyles is appended after the default stylesheet, so your rules win on ordering. Match your site's look once, then reuse the same CSS on every render.


Associates compliance

Displaying Amazon product data comes with rules, and it's your account on the line if you get them wrong. So the server bakes the boring-but-important bits in for you:

  • Your AMAZON_PARTNER_TAG goes on every outbound link. It prefers the already-tagged detailPageURL Amazon returns, and falls back to a /dp/ASIN?tag=… link if it has to.
  • Every link carries rel="nofollow sponsored noopener".
  • Whenever a price shows, so does the time it was retrieved (as of <timestamp>).
  • Every card and grid ends with the Associates disclosure footer.

None of that is optional under the Associates Operating Agreement, which is exactly why it's automatic rather than something you have to remember.


Development

bash
git clone https://github.com/houtini-ai/amazon-creators-api-mcpcd amazon-creators-api-mcpnpm installnpm run build
CommandWhat it does
npm run buildBuild everything (viewer bundle + TypeScript)
npm run build:viewerJust the MCP Apps viewer HTML bundle
npm run devWatch mode for the server TypeScript
npm run testvitest (103 tests, unit + integration)
npm run typecheckTypes only, no emit
npm run lintESLint

If you've got live credentials, npx tsx scripts/smoke-auth.ts runs a real token fetch plus one searchItems call - the quickest way to confirm your keys actually work end to end.

See SCOPE.md for the architecture and the API quirks worth knowing.


Troubleshooting

"Credential version rejected" on startup - you're on v2.x Cognito credentials. Create a fresh Login with Amazon app in Associates Central → Creators API, then set AMAZON_CREDENTIAL_VERSION to 3.1, 3.2 or 3.3 for your region.

401 or 403 errors - usually one of two things. Either your Associates account doesn't have the 10 qualifying sales in the last 30 days, or Creators API access isn't switched on for the account yet. Both are checked in Associates Central.

A region mismatch error at startup - your credential version and your marketplace are in different regions (a 3.1 NA key pointed at www.amazon.co.uk, say). Use credentials issued for the same region as the marketplace you're calling.

Preview images not showing in Claude Desktop - the viewer only allowlists Amazon's own image CDNs. On a host with a stricter policy the preview images might not load, but the plain HTML output is fine - it renders once it's pasted into your site.

"The items came back in the wrong order" - that's expected. get_items can return items in any order and drops any ASIN it can't find into a separate errors array. Match on the asin field. Claude does this for you when it summarises.


Licence

MIT. See LICENSE.


Built by Houtini for the Model Context Protocol community. Part of the houtini-ai MCP suite.

來源:README.md,提交 83a0641

工具

0
SourceWeft 曾在隔離沙箱中以無憑證方式啟動該軟體包一次,以列出其工具,但未能完成:伺服器未能啟動。

版本歷史

4
  1. v0.4.3最新Oct 26, 2026
  2. v0.4.1Oct 25, 2026
  3. v0.4.0Sep 27, 2026
  4. v0.3.3Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分