Command Palette

Search for a command to run...

UnylyUnyly
Весь каталог

Sp Api Server

БесплатноНе проверен

Unifies Amazon SP-API and Ads API into 20 MCP tools for orders, inventory, reports, feeds, and advertising, handling auth, throttling, and PII compliance automa

GitHubEmbed

Описание

Unifies Amazon SP-API and Ads API into 20 MCP tools for orders, inventory, reports, feeds, and advertising, handling auth, throttling, and PII compliance automatically.

README

Amazon SP-API 的 MCP Server(Model Context Protocol) —— 跨境电商 AI 工作流的「高速公路」地基。 把订单 / 目录 / 价格 / FBA 库存 / 报表 / Feed / 广告 等亚马逊能力,统一封装成 20 个标准化 MCP 工具,让上层 Agent(广告复盘、客服助手、经营日报、Listing 推送)只调工具名、不碰 API 细节。

状态:已落地 + 15/15 单测通过(Python)。可用于 stdio / SSE 两种传输,被另两个项目(seller-central-reply-assistantamazon-ads-review-agent)直接依赖。


1. 这个工具解决什么问题

跨境卖家 / 运营每天在 5 个场景里反复调用亚马逊数据(SKU 上新、内容转化、广告复盘、客服、经营日报)。如果每个上层 Agent 都各自对接 SP-API,会出现:

  • 鉴权复杂:LWA(Login with Amazon)+ AWS SigV4 签名 + RDT 受限数据令牌,新手极易踩坑。
  • 两套 OAuth:广告 API 与 SP-API 是独立授权体系,需分别封装。
  • 限流治理:429 / quota 需统一退避、缓存、重试,否则一跑就封。
  • PII 治理:买家姓名 / 邮箱 / 地址受 RDT 与数据驻留约束,需集中处理。

本服务把「对接亚马逊」一次性做成平台能力(MCP Server),上层只需 call_tool("spapi_orders_list", {...}),鉴权、签名、限流、RDT、缓存全部透明。一个能力喂饱五个场景。


2. 核心能力

能力 说明
统一鉴权 LWA access/refresh token 持久化 + 自动刷新;广告 API 独立 OAuth(含 profileId 路由)。
RDT 自动换取 返回买家 PII 的接口(买家信息、收货地址)自动判断并惰性申请受限数据令牌。
SigV4 签名 所有 SP-API 请求加 AWS 签名头(x-amz-datex-amz-content-sha256、SigV4 Authorization)。
限流退避 429 / Retry-After 指数退避;内置短缓存减少重复调用。
审批网关 写操作(Feed 提交、广告调价)默认禁用,需 APPROVE_WRITES/ADS_APPROVE_WRITES 显式开启,返回 blocked 而非真的执行。
统一出参 所有工具返回 {ok, data, request_id, rate_remaining, cached, raw?},上层解析零成本。
双传输 stdio(本地 Agent 子进程)与 sse(远程 HTTP 服务)两种接入方式。

3. 工具清单(共 20 个)

命名约定:spapi_<domain>_<action>ads_<product>_<action>。⚡ = 写操作(受审批网关保护),🔒 = 需 RDT(自动换)。

订单 Orders(5)

工具 说明
spapi_orders_list 按时间 / 状态 / 市场列出订单(低频缓存)
spapi_orders_get 单订单详情
spapi_orders_items 订单商品行
spapi_orders_buyer_info 🔒 买家姓名 / 邮箱(自动换 RDT)
spapi_orders_address 🔒 收货地址(自动换 RDT)

报表 Reports(3) | spapi_reports_create | 创建报表(订单 / 库存 / 商品等) | | spapi_reports_get | 轮询报表状态 | | spapi_reports_document | 下载报表(自动解压 / 解密) |

FBA 库存(1) | spapi_fba_inventory | 可售 / 在途 / 预留库存、可售天数(日报核心) |

价格 Pricing(2) | spapi_pricing_get | 自家 ASIN 价格 | | spapi_pricing_competitive | Buy Box / 竞品价 |

目录 Catalog(2) | spapi_catalog_item | 按 ASIN 查属性(可选 Client Credentials,无卖家上下文) | | spapi_catalog_search | 按关键词查(竞品 / 选品调研) |

Feed(3,写 ⚡) | spapi_feeds_create ⚡ | 提交 JSON_LISTINGS_FEED / PATCH(Listing 推送) | | spapi_feeds_get | 轮询 Feed 处理状态 | | spapi_feeds_document | 取结果(错误明细) |

广告 Advertising(4,独立 OAuth) | ads_profiles_list | 列出账号 / 市场 profileId | | ads_campaigns_list | 广告活动列表 | | ads_performance_report | 按天 / 周的表现报表(异步 → 轮询 → gzip 下载) | | ads_searchterms_report | 搜索词报表(否定词挖掘数据源) |

写执行工具 ads_campaign_update / ads_negative_keyword_create 已在 AdsClient 内实现并带 @require_approval 网关,由 amazon-ads-review-agent 经 MCP 客户端调用(受 ADS_APPROVE_WRITES 控制,默认关闭)。如需作为独立 MCP 工具暴露,在 server.py@_reg 注册即可。


4. 快速开始

4.1 安装

cd sp-api-mcp-server
python3 -m venv .venv && source .venv/bin/activate
pip install -e .
# 或仅装运行依赖:pip install "mcp" "httpx" "pydantic" "pydantic-settings" "botocore"

4.2 配置 .env

复制 .env.example.env 并填写:

# SP-API (LWA)
LWA_CLIENT_ID=your_lwa_client_id
LWA_CLIENT_SECRET=your_lwa_client_secret
LWA_REFRESH_TOKEN=your_seller_refresh_token
# AWS SigV4 凭证
AWS_ACCESS_KEY_ID=...
AWS_SECRET_ACCESS_KEY=...
AWS_ROLE_ARN=            # 可选,跨账号角色
# 区域:NA / EU / FE
SP_API_REGION=NA
# 广告 API
ADS_CLIENT_ID=...
ADS_CLIENT_SECRET=...
ADS_REFRESH_TOKEN=...
ADS_REGION=NA
# 审批开关(默认 false,写操作被拦截)
APPROVE_WRITES=false
ADS_APPROVE_WRITES=false

4.3 运行

# 本地 Agent 子进程(默认)
python -m sp_api_mcp --transport stdio

# 远程 HTTP 服务(SSE)
python -m sp_api_mcp --transport sse --host 0.0.0.0 --port 8000

5. 工具调用示例

5.1 通过 MCP 客户端调用(伪代码 / JSON-RPC)

// 列出近 7 天 US 订单
{
  "tool": "spapi_orders_list",
  "arguments": {
    "marketplace_ids": ["ATVPDKIKJ38US"],
    "created_after": "2026-06-28T00:00:00Z"
  }
}
// 拉取某广告 profile 昨日表现报表
{
  "tool": "ads_performance_report",
  "arguments": {
    "profile_id": "1234567890",
    "record_type": "campaigns",
    "report_date": "2026-07-04"
  }
}

5.2 返回结构(统一信封)

{
  "ok": true,
  "data": { "orders": [ /* ... */ ], "next_token": null },
  "request_id": "req_8f2a...",
  "rate_remaining": 0.81,
  "cached": false
}

5.3 写操作被网关拦截的返回

{
  "ok": false,
  "data": {
    "blocked": true,
    "reason": "approval required: set APPROVE_WRITES=true to enable write tools",
    "tool": "spapi_feeds_create"
  }
}

5.4 调试工具

MCP Inspector 连接 stdio 端点,可可视化列出全部 20 个工具的 JSON Schema 并试调用。


6. 上层五个场景如何消费本服务

  • 广告复盘ads_* 报表工具 + 诊断建议(业务在 Agent 侧)。
  • 经营日报spapi_orders_list / spapi_fba_inventory / spapi_reports_get 定时聚合。
  • 客服spapi_orders_get / spapi_orders_buyer_info(RDT) / spapi_orders_address(RDT) 丰富买家上下文。
  • SKU 上新 / Listing 推送spapi_feeds_create(JSON_LISTINGS_FEED)。
  • 内容转化spapi_catalog_item / spapi_catalog_search 拉竞品 / 自家 ASIN 属性做素材。

7. 安全与合规

  • 最小权限 Scope:仅申请用到的 SP-API role;写操作单独授权。
  • PII 治理:RDT 仅在必要时换;出参信封默认带 request_id 便于审计。
  • 审批网关:所有写操作(Feed / 广告调价 / 否定词)默认 blocked,杜绝误烧钱 / 误推送。
  • 数据驻留:报表 / 缓存默认本地;外传需显式开启。
  • 限流尊重:429 / Retry-After 退避;Ads quota 头监控。

8. 测试

source .venv/bin/activate
PYTHONPATH=src python -m pytest -q
# 15 passed —— 覆盖:模型、LWA 令牌刷新、RDT 换取、SigV4、限流重试、订单、审批网关、广告工具

9. 与另两个项目的关系

  • seller-central-reply-assistant:后端生成回复前调用 spapi_orders_get / spapi_orders_buyer_info(RDT) 丰富订单与物流上下文。
  • amazon-ads-review-agent:直接依赖 ads_* 工具拉报表;写执行通过审批网关(受 ADS_APPROVE_WRITES 控制)。

10. 参考资料

from github.com/middlegold9/sp-api-mcp-server

Установка Sp Api Server

У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.

▸ github.com/middlegold9/sp-api-mcp-server

FAQ

Sp Api Server MCP бесплатный?

Да, Sp Api Server MCP бесплатный — установка в пару кликов через Unyly без оплаты.

Нужен ли API-ключ для Sp Api Server?

Нет, Sp Api Server работает без API-ключей и переменных окружения.

Sp Api Server — hosted или self-hosted?

Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.

Как установить Sp Api Server в Claude Desktop, Claude Code или Cursor?

Открой Sp Api Server на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.

Похожие MCP

Compare Sp Api Server with

Не уверен что выбрать?

Найди свой стек за 60 секунд

Автор?

Embed-бейдж для README

Похожее

Все в категории development