AgentsReady
Verified deep dive · Commerce

Amazon

Run the agent liveReport a change
daysTime to key
NoNo-human path
6Human gates
4/10Onboarding score
CAPTCHAEmail verificationKYC / business checkMandatory 2FAManual reviewPhone OTP

Fastest path to a key

  1. Phone OTP
    Have an Amazon.com account (email + phone OTP; 2FA mandatory for Seller Central).
  2. Card before first call
    Gather business registration number, government ID/passport, recent bank or credit-card statement.
  3. Sign in to Solution Provider Portal -> Register -> enroll -> 'Build applications that use SP APIs'.
  4. KYC / business check
    Verify identity: business info, PIN via SMS/call + CAPTCHA, upload documents, live VIDEO call with an Amazon associate.
  5. Manual review
    Create developer profile (use case, roles; restricted roles need security/data-protection docs) -> review.
  6. Manual review
    Register a Sandbox app client (allowed while profile is under review) -> get LWA client id/secret -> first sandbox call.
  7. Manual review
    Production: self-authorize a private app (refresh token) after profile approval; public apps need full security review + Appstore listing.
  8. Talk to sales
    Seller shortcut (no dev registration): add Claude connector https://sellingpartner-ai.amazon.com/mcp -> OAuth via sellercentral.amazon.com/apps/agents/authorize (requires an existing seller account).
  9. Working API key

Biggest gap

Video-call identity verification for developers; consumer side closed to third-party agents (robots + litigation) while Amazon pushes its own agents.

Worth copying

Doc pages advertise their llms.txt indexes in front-matter (agentTools), and the remote seller MCP lets an existing seller skip developer registration entirely.

Sources (12) · checked 2026-10-11
16Readiness score / 100
L0 Agent-invisibleBeats 7% of 1,846 companies
Access10/20
Context0/20
Interfaces4/32
Onboarding0/19
Trust2/9

Biggest gains

  1. +12 Remote MCP server for the product. Host a remote MCP server (e.g. mcp.<domain>/mcp, Streamable HTTP) for your core actions.
  2. +8 llms.txt exists. Publish /llms.txt: a markdown index of your docs at the root or docs host.
  3. +8 Machine-readable API spec. Publish an OpenAPI spec at a stable URL like /openapi.json and link it from llms.txt.
All 20 checks
  • PASSAgents get the real page, not a bot wall10
  • FAILrobots.txt lets user-triggered agents in6
  • FAILContent is server-rendered4
  • FAILllms.txt exists8
  • FAILllms-full.txt exists3
  • FAILDocs available as markdown6
  • FAILSitemap2
  • FAILStructured metadata1
  • PASSPublic developer docs4
  • FAILMachine-readable API spec8
  • FAILRemote MCP server for the product12
  • FAILDocs MCP or searchable docs4
  • FAILSDKs and a CLI4
  • FAILOAuth discovery metadata5
  • FAILAgents can self-register OAuth clients6
  • FAILSelf-serve API keys5
  • FAILFree tier or test mode3
  • FAILAgent manifests4
  • PASSsecurity.txt2
  • FAILPublic status page3

Your fix pack: 18 changes, up to +84 points

Each change is ready to paste, filled in for amazon.com, with a command to check it worked. Or hand the whole list to your coding agent.

A remote MCP server lets Claude, ChatGPT and Cursor act on your product in one click, with no glue code.

Where: https://mcp.amazon.com/mcp (Streamable HTTP)
// npm i @modelcontextprotocol/sdk zod  — minimal remote MCP server (Streamable HTTP, stateless)
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";
import express from "express";
import { z } from "zod";

const app = express();
app.use(express.json());

app.post("/mcp", async (req, res) => {
  const server = new McpServer({ name: "amazon.com", version: "1.0.0" });
  // One tool per core job. Clear verbs, typed inputs, small outputs.
  server.tool("create_<thing>", "Create a <thing> for the signed-in user.", { name: z.string() },
    async ({ name }) => {
      const key = req.headers.authorization?.replace("Bearer ", ""); // scoped API key or OAuth token
      const r = await fetch("https://amazon.com/v1/<things>", { method: "POST", headers: { Authorization: `Bearer ${key}` }, body: JSON.stringify({ name }) });
      return { content: [{ type: "text", text: await r.text() }] };
    });
  const transport = new StreamableHTTPServerTransport({ sessionIdGenerator: undefined });
  res.on("close", () => transport.close());
  await server.connect(transport);
  await transport.handleRequest(req, res, req.body);
});
app.listen(3000);
Check it worked:curl -s -X POST https://mcp.amazon.com/mcp -H 'Content-Type: application/json' -H 'Accept: application/json, text/event-stream' -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"t","version":"1"}}}' -i | head -15

Add the badge to your README

AgentsReady badge for amazon.com
[![AgentsReady](https://agentsready.dev/badge/amazon.com)](https://agentsready.dev/c/amazon.com)