# amazon-mcp

**Category:** 💻 Developer Tools  
**Repository:** https://github.com/pangolinfo/pangolinfo-mcp  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/amazon-mcp

## Description
Amazon data MCP: products, rankings, reviews, niches, WIPO & PACER IP, AI search & trends.

## Claude Desktop Quick Installation
Heuristic fallback — verify the package name and runner against the repository README before running it. Uses `npx` (confidence: low):

```json
"mcpServers": {
  "amazon-mcp": {
    "command": "npx",
    "args": ["-y","amazon-mcp"]
  }
}
```

## Documentation & README

# pangolinfo-mcp

> Pangolinfo MCP server — **18 Amazon e-commerce & IP data tools** for AI assistants via [Model Context Protocol](https://modelcontextprotocol.io).

**🔗 Official site: [www.pangolinfo.com](https://tool.pangolinfo.com/#/en/system/loading?sourceTag=github_amz)**

Plug your favorite AI client (Claude Code, Cursor, Cline, Windsurf, Codex, Hermes, OpenClaw) into Pangolinfo's Amazon scrape APIs and let the AI run **real-time ad tracking**, **Sponsored Products** analysis, **VOC sentiment analysis**, **keyword monitoring**, and **competitor product audit** — plus keyword research, listing analysis, review mining, niche discovery, category navigation, AI search lookups, keyword-trend checks, and WIPO trademark clearance — all from natural-language instructions.

> ⚠️ **BREAKING CHANGE in 0.7.0 — `pacer_search` retired, merged into `wipo_search`**
>
> The standalone `pacer_search` tool was removed. US patent-litigation (PACER) lookups
> are now reached by passing `enableLitigation=true` to `wipo_search` — it finds the patent
> and joins the related US litigation cases in a single call. Prompts/scripts pinning
> `pacer_search` will get `ToolNotFound`; switch to `wipo_search` with `enableLitigation`.
>
> <details><summary>Earlier breaking change (0.3.0 — tool renames)</summary>
>
> | Old name (≤ 0.2.x) | New name (0.3.0+) |
> | --- | --- |
> | `google_ai_search` | `ai_search` |
> | `google_trends` | `keyword_trends` |
>
> Tool names changed to remove third-party brand references from the public MCP interface.
> Tool parameters, return shape, and pricing are unchanged.
> </details>

| | |
|---|---|
| **Version** | `0.7.3` |
| **Tools** | 18 business tools (+ a free local `pangolinfo_capabilities` introspection call) |
| **Transport** | stdio (local) · streamable HTTP (hosted — see below) |
| **Runtime** | Node.js 18+ |
| **License** | MIT |
| **Get an API key** | <https://tool.pangolinfo.com/#/en/system/loading?sourceTag=github_amz> |

---

## Install

### Recommended: one-line installer (covers 7 AI clients)

The Pangolinfo Installer detects your AI client, writes the right config files, and you're done. Pass `--scope=mcp` to install **only** this MCP server (skip the Skills package).

**macOS / Linux**

```bash
curl -fsSL https://pangolinfo.dev/install.sh | sh -s -- \
  --agent=<your-agent> \
  --scope=mcp \
  --api-key=pgl_xxxxxxxxxxxx
```

**Windows (PowerShell)**

```powershell
irm https://pangolinfo.dev/install.ps1 | iex; `
  Install-Pangolinfo -Agent <your-agent> -Scope mcp -ApiKey pgl_xxxxxxxxxxxx
```

`<your-agent>` is one of: `claude-code`, `cursor`, `cline`, `windsurf`, `codex`, `hermes`, `openclaw`.

After the installer finishes, **restart your AI client** so it picks up the new `mcpServers` entry.

### Manual install (just download one file)

The release artifact is a **single self-contained `server.mjs`** (~800 KB) — all dependencies are bundled in. No `npm install` needed.

```bash
# macOS / Linux
mkdir -p ~/.local/lib/pangolinfo-mcp
curl -fsSL https://github.com/pangolinfo/pangolinfo-mcp/releases/latest/download/server.mjs \
  -o ~/.local/lib/pangolinfo-mcp/server.mjs
chmod +x ~/.local/lib/pangolinfo-mcp/server.mjs
```

```powershell
# Windows (PowerShell)
$dir = "$env:LOCALAPPDATA\pangolinfo-mcp"
New-Item -ItemType Directory -Force -Path $dir | Out-Null
irm https://github.com/pangolinfo/pangolinfo-mcp/releases/latest/download/server.mjs `
  -OutFile "$dir\server.mjs"
```

Then wire it into your AI client — see the per-client snippets below. Point `args` at the file you just downloaded.

> **Developers**: to build from source, `git clone` this repo and run `npm install && npm run build`. The produced `dist/server.mjs` is identical to the release asset.

---

## Get an API key

1. Sign up at <https://tool.pangolinfo.com/#/en/system/loading?sourceTag=github_amz>
2. Copy your `pgl_xxxxxxxx` key from the dashboard
3. Top up credits if needed (each Amazon scrape call costs 0.75 credits; `pangolinfo_capabilities` is free)

---

## Manual configuration (per AI client)

Replace `/abs/path/to/pangolinfo-mcp/dist/server.mjs` with your real path, and `pgl_xxxxxxxx` with your key.

### Claude Code (`~/.claude/settings.json`)

```json
{
  "mcpServers": {
    "pangolinfo": {
      "command": "node",
      "args": ["/abs/path/to/pangolinfo-mcp/dist/server.mjs"],
      "env": { "PANGOLINFO_API_KEY": "pgl_xxxxxxxx" }
    }
  }
}
```

> Prefer `claude mcp add --scope user pangolinfo node /abs/path/to/dist/server.mjs` — it writes the same entry without hand-editing JSON.

### Cursor (`~/.cursor/mcp.json`)

```json
{
  "mcpServers": {
    "pangolinfo": {
      "command": "node",
      "args": ["/abs/path/to/pangolinfo-mcp/dist/server.mjs"],
      "env": { "PANGOLINFO_API_KEY": "pgl_xxxxxxxx" }
    }
  }
}
```

### Cline (VS Code extension)

Open **Cline → MCP Servers → Edit settings JSON**, then add:

```json
{
  "mcpServers": {
    "pangolinfo": {
      "command": "node",
      "args": ["/abs/path/to/pangolinfo-mcp/dist/server.mjs"],
      "env": { "PANGOLINFO_API_KEY": "pgl_xxxxxxxx" }
    }
  }
}
```

The settings file lives at `<vscode-user>/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json`.
If you're on the standalone Cline CLI, use `~/.cline/data/settings/cline_mcp_settings.json` instead.

### Windsurf (`~/.codeium/windsurf/mcp_config.json`)

```json
{
  "mcpServers": {
    "pangolinfo": {
      "command": "node",
      "args": ["/abs/path/to/pangolinfo-mcp/dist/server.mjs"],
      "env": { "PANGOLINFO_API_KEY": "pgl_xxxxxxxx" }
    }
  }
}
```

### Codex (`~/.codex/config.toml`)

```toml
[mcp_servers.pangolinfo]
command = "node"
args = ["/abs/path/to/pangolinfo-mcp/dist/server.mjs"]

[mcp_servers.pangolinfo.env]
PANGOLINFO_API_KEY = "pgl_xxxxxxxx"
```

### Hermes (`~/.hermes/config.yaml`)

```yaml
mcp_servers:
  pangolinfo:
    command: node
    args: ["/abs/path/to/pangolinfo-mcp/dist/server.mjs"]
    env:
      PANGOLINFO_API_KEY: pgl_xxxxxxxx
```

### OpenClaw (`~/.openclaw/openclaw.json`)

```json
{
  "mcpServers": {
    "pangolinfo": {
      "command": "node",
      "args": ["/abs/path/to/pangolinfo-mcp/dist/server.mjs"],
      "env": { "PANGOLINFO_API_KEY": "pgl_xxxxxxxx" }
    }
  }
}
```

---

## Hosted (remote HTTP) — no local install

Don't want to install anything? Point your AI client at the hosted endpoint
instead of a local `server.mjs`. This is the **streamable HTTP** transport
(MCP spec), multi-tenant — you bring your own key on every request.

| | |
|---|---|
| **Endpoint** | `https://mcp.pangolinfo.com/mcp` |
| **Transport** | Streamable HTTP (POST + SSE) |
| **Auth** | Your `pgl_xxxxxxxx` key, via Bearer header **or** URL query |

### Passing your API key — two ways

**1. `Authorization` header (recommended)**

```
Authorization: Bearer pgl_xxxxxxxx
```

This is the preferred method: the key stays out of URLs, logs, and browser
history. The `Bearer` scheme is matched **case-insensitively** (`bearer`,
`BEARER`, `Bearer` all work) and extra whitespace is tolerated.

**2. `?api_key=` URL query (fallback)**

```
https://mcp.pangolinfo.com/mcp?api_key=pgl_xxxxxxxx
```

Easiest for clients that only let you paste a URL. If your key contains
URL-special characters, **URL-encode it**. The header (method 1) takes
precedence if both are supplied.

### Client config example (Claude Code / Cursor — `"url"`-style remote MCP)

```json
{
  "mcpServers": {
    "pangolinfo": {
      "url": "https://mcp.pangolinfo.com/mcp",
      "headers": { "Authorization": "Bearer pgl_xxxxxxxx" }
    }
  }
}
```

> If your client can't set headers, fall back to the URL form:
> `"url": "https://mcp.pangolinfo.com/mcp?api_key=pgl_xxxxxxxx"`.

### Notes for custom / raw HTTP integrations

If you're calling the endpoint directly (not through a standard MCP client):

- **POST** your JSON-RPC body to `/mcp`.
- The MCP streamable transport normally requires the request to advertise
  **both** `application/json` and `text/event-stream` in its `Accept` header.
  This server **backfills** the missing media type for you, so a plain
  `Accept: application/json`, `Accept: */*`, or even a missing `Accept`
  header all work — you don't need to hand-craft it.
- A `401` means the key was not found in **either** the header **or** the
  query string — check that your client actually sent it (some libraries
  drop the `Authorization` header on cross-origin redirects).

---

## Tools (18)

See [`MCP-TOOLS-MAP.md`](./MCP-TOOLS-MAP.md) for the full coordination graph (which tools chain into which).

| # | Tool | Purpose | Cost (credits) |
|---|---|---|---|
| 1 | `search_amazon` | Amazon keyword search → structured product list | 0.75 |
| 2 | `get_amazon_product` | Single-ASIN listing detail (title / bullets / features / aiReviewsSummary) | 0.75 |
| 3 | `get_amazon_reviews` | Batch reviews for an ASIN (VOC mining) | 0.75 |
| 4 | `list_bestsellers` | Amazon Bestsellers by category | 0.75 |
| 5 | `list_new_releases` | Amazon New Releases by category | 0.75 |
| 6 | `list_seller_products` | Catalog of products under one seller | 0.75 |
| 7 | `list_category_products` | All products in a category leaf | 0.75 |
| 8 | `search_categories` | Search Amazon category tree by keyword | 0.75 |
| 9 | `get_category_children` | Drill down one level in the category tree | 0.75 |
| 10 | `filter_categories` | Filter category nodes by criteria | 0.75 |
| 11 | `filter_niches` | Niche discovery (size × competition × growth) | 0.75 |
| 12 | `get_category_paths` | Resolve full ancestor paths for a category node | 0.75 |
| 13 | `search_local_maps` | Google Maps local business search | 0.75 |
| 14 | `wipo_search` | WIPO global design / trademark search (IP clearance). Set `enableLitigation=true` to also join related US patent-litigation (PACER) cases in the same call | 2 (+12 when `enableLitigation` finds a patent) |
| 15 | `ai_search` | AI Search via Google SERP (AI Overview + organic, with compliance disclaimer) | 2 |
| 16 | `keyword_trends` | Keyword Trends via Google Trends (with compliance disclaimer) | 1.5 |
| 17 | `scrape_url` | Power-user escape hatch: scrape a raw Amazon URL + parserName (non-standard pages) | 0.75 |
| 18 | `search_amazon_alexa` | Amazon Rufus AI conversational product picks (scene-based, no keyword) | 6 |

> **Plus a free local call:** `pangolinfo_capabilities` returns the full tool catalog, canonical workflows, and usage tips with no backend round-trip (**0** credits). It is a self-introspection helper, not one of the 18 data tools.

Default marketplace is **Amazon US** (`marketplaceId=ATVPDKIKX0DER`, `zip=90001`). Override per call via tool arguments.

### ⏱️ Slow tools & your client's tool-call timeout

Two tools legitimately run long because they wait on live AI generation:

| Tool | Typical latency | Worst case |
|---|---|---|
| `search_amazon_alexa` (Rufus) | **60–90s** per prompt | >200s for multiple prompts |
| `ai_search` | ~30s | ~60s |

Most MCP clients enforce a **per-tool-call timeout — often 60 seconds of silence** — and abort the call if nothing comes back in time. When that happens the client reports a transport-level timeout/disconnect, and the agent mistakes it for **"the tool is unavailable/broken."** This is the usual reason `search_amazon_alexa` gets flagged as unavailable — it reliably crosses the silent 60s line.

Two things keep this from happening:

1. **The server emits progress heartbeats.** While a tool runs, the server sends a `notifications/progress` every 15s **if your client included a `progressToken` in the call**. Spec-compliant clients reset their idle timeout on each heartbeat, so the whole 60–90s render stays under the wire. Most modern MCP clients send a `progressToken` automatically — no action needed.

2. **Raise the client timeout for clients that don't honor progress.** If your client has no `progressToken` support or a hard cap, bump its MCP tool-call timeout to **≥120s** before using `search_amazon_alexa`. Where to set it depends on the client (examples):
   - **Claude Code / config-based clients:** raise the MCP request/tool timeout in the client config.
   - **Custom SDK clients:** pass a larger `timeout` (and, ideally, a `progressToken`) in the `callTool` request options.

Also prefer **exactly one prompt per `search_amazon_alexa` call** — multiple prompts stack latency linearly and make the timeout far more likely.

---

## Auth resolution order

The server resolves the API key with this priority:

1. CLI args: `--api-key=pgl_xxx --api-base=... --scrape-base=...`
2. Env vars: `PANGOLINFO_API_KEY`, `PANGOLINFO_API_BASE`, `PANGOLINFO_SCRAPE_BASE`
3. Config file at `~/.pangolinfo/config.json`:
   ```json
   {
     "api_key": "pgl_xxxxxxxxxxxx",
     "api_base": "https://extapi.pangolinfo.com",
     "scrape_base": "https://scrapeapi.pangolinfo.com"
   }
   ```
4. Missing key → startup failure with an actionable error.

CLI args win over env vars — convenient when you want per-server keys without polluting the global environment.

---

## Internationalization

Tool descriptions and error hints are available in **English** and **Chinese**. The
language is resolved in this order: `--lang=zh|en` → `PANGOLINFO_LANG=zh|en` → OS locale
(`$LANG` starting with `zh*` → Chinese, otherwise English) → English when there is no
locale signal at all. So a Chinese-locale machine gets Chinese automatically; everyone
else gets English. Force a language explicitly:

```json
"env": {
  "PANGOLINFO_API_KEY": "pgl_xxxxxxxx",
  "PANGOLINFO_LANG": "zh"
}
```

Startup logs are always English (operator-facing); tool descriptions and error `hint` fields follow the resolved locale.

---

## Verify your install

After restarting your AI client, ask it:

> List all available `pangolinfo` MCP tools.

You should see 18 tools. Then try:

> Use `pangolinfo_capabilities` with mode "summary".

This is a free local call — if it returns the tool catalog, your install is wired correctly. Next, run something paid like:

> Search Amazon for "wireless mouse" and return the top 5 results.

Expected: ~0.75 credits deducted, ~300 KB of structured product data returned.

---

## Development

```bash
npm install
npm run dev        # tsx src/server.ts — hot-reload
npm run build      # esbuild → dist/server.mjs
npm run typecheck  # tsc --noEmit
npm start          # node dist/server.mjs
```

### Project layout

```
src/
├── server.ts           MCP stdio entry + tool registration
├── auth.ts             API key resolution (CLI > env > config file)
├── client.ts           HTTP client (Authorization, User-Agent)
├── errors.ts           PangolinfoError + status-code mapping
├── config.ts           Default endpoints / constants
├── i18n.ts             zh/en translation lookup
└── tools/
    ├── _types.ts             Tool / ToolContext type definitions
    ├── index.ts              Tool registry (18 tools + capabilities)
    └── <verb_noun>.ts        One file per tool
```

### Adding a new tool

1. Create `src/tools/<verb_noun>.ts` exporting a `Tool` object — mirror `search_amazon.ts`.
2. Import it in `src/tools/index.ts` and append to the `tools` array.
3. Schema is `zod`; `.describe()` every field — the AI reads those.
4. Never call `fetch` directly — use `ctx.client.post(...)`. Auth is already injected.
5. Throw `PangolinfoError` on failure; the HTTP client already throws this for non-2xx responses.

---

## Security & Data Handling

We take operator and user safety seriously. By design, this MCP server:

- **Brings your own key.** Authentication is via your personal `PANGOLINFO_API_KEY` (issued at <https://tool.pangolinfo.com/#/en/system/loading?sourceTag=github_amz>). The key is read locally from your AI client's config or environment — it is never transmitted anywhere except to `https://scrapeapi.pangolinfo.com` (or `https://mcp.pangolinfo.com` for the hosted variant) over TLS 1.2+.
- **No telemetry.** This server does not phone home, does not collect usage analytics, and does not log your prompts. The only outbound traffic is the actual Amazon / Google / WIPO scrape API calls you explicitly invoke through tools.
- **No PII collection.** No user account info, no email, no IP geolocation, and no prompt content is persisted by this server. Tool calls forward only the parameters you (or the AI agent) supplied.
- **Read-only.** Every tool is a strictly read-only data lookup. None of them can write to Amazon, place orders, post reviews, modify listings, or take any side-effecting action on third-party platforms.
- **HTTPS-only transport.** Both the stdio variant (local) and the hosted variant (`https://mcp.pangolinfo.com/mcp`) require HTTPS; HTTP requests are refused.
- **Open source.** The full source is in this repository under MIT license — anyone can audit what the server sends and where.
- **Responsible use.** Pangolinfo APIs aggregate public e-commerce data. You are responsible for using the returned data in compliance with the terms of service of the underlying platforms (Amazon, Google, etc.) and with applicable laws in your jurisdiction.

Report security issues privately to <security@pangolinfo.com> — please do not file public GitHub issues for vulnerabilities.

---

## Support

- **API docs**: <https://docs.pangolinfo.com>
- **Issues**: <https://github.com/pangolinfo/pangolinfo-mcp/issues>
- **Email**: <support@pangolinfo.com>

---

## License

[MIT](./LICENSE) © Pangolinfo

