gentic

Gentic Amazon — Documentation

Connect your Amazon Seller account once, then let your AI agent pull your orders, sales metrics, FBA inventory, and finances — and run Brand Analytics and bulk reports straight into a SQL-queryable data lakehouse — through the Model Context Protocol. Read-only into Amazon's Selling Partner API: ask for last week's units sold, which SKUs are running low, what your fees were, or your search-query performance, and get back real seller data, not a scrape.

1. Getting Started

Sign Up & Get Your API Key

Before you can use Gentic Amazon, you need an API key to authenticate your requests.

  1. Go to gentic.co/amazon and create an account.
  2. Create an organization from your dashboard. API keys and billing are scoped to the organization.
  3. Generate an API key and use it as a Bearer token in your MCP client.

2. Connecting to the MCP Server

The server is available at https://mcp.gentic.co/amazon. For Claude Code:

claude mcp add gentic-amazon \
  --transport http \
  https://mcp.gentic.co/amazon \
  --header "Authorization: Bearer YOUR_API_KEY"

For Claude Web and ChatGPT you can also connect via OAuth — no API key needed. See the connect section on the landing page for other MCP clients (n8n, OpenClaw).

3. Agent Skill

For the best results, pair the MCP server with the Gentic Amazon agent skill. The MCP server gives your agent tool access; the skill teaches it the optimal workflow order. Both the raw SKILL.md and a ready-to-upload .skill bundle are generated on demand from the live manifest, so they always reflect the current tools and pricing.

Add the skill directly via URL:

https://gentic.co/amazon/SKILL.md

Or upload a .skill bundle to Claude Managed Agents:

https://gentic.co/amazon/gentic-amazon.skill

Download this file and upload it wherever Claude Managed Agents asks for a .skill file. It's a zip bundle generated on demand from the latest SKILL.md.

4. When to Apply

  • User wants to check whether their Amazon Seller account is connected and which marketplaces it covers.
  • User wants their agent to pull recent Amazon orders or the line items on a specific order.
  • User wants aggregated sales metrics — units ordered, order count, total sales, average price — over a date range.
  • User wants to know which SKUs or ASINs are low on FBA stock (fulfillable, inbound, reserved quantities).
  • User wants Amazon financial events — shipments, refunds, fees, adjustments, ads — over a window.
  • User wants Brand Analytics data (search-query performance, search terms, catalog performance) or a bulk export loaded into a queryable table.
  • User wants their Amazon seller data available to an agent for analysis rather than exported by hand from Seller Central.

5. Workflow

  1. 1. Connect once, then work without credentials

    The Amazon server sources the connection from the org's saved Selling Partner API credentials (Gentic dashboard → Integrations → Amazon). The user pastes their LWA client ID, client secret, and refresh token once and picks a default marketplace; the secrets are encrypted at rest and the server resolves the connection on every call. Your agent never passes a credential — it just asks for data. Start with `amazon_connection_status`: it returns `{ connected: false }` when nothing is connected (tell the user to connect in the dashboard) and otherwise lists the marketplaces the account participates in.

  2. 2. Read orders with get_amazon_orders

    `get_amazon_orders` lists orders over a date window and status, or returns a single order's line items when you pass `order_id`. It defaults to the last 30 days. Use `last_updated_after` rather than `created_after` to catch orders whose status changed (e.g. shipped) without re-listing everything. Buyer PII (name, address) requires extra Amazon authorization and is omitted in v1 — don't promise it. It's paginated; follow `next_token` for more.

  3. 3. Summarize sales with get_amazon_order_metrics

    `get_amazon_order_metrics` returns aggregated sales — ordered units, order count, total sales, average unit price — bucketed by Hour, Day, Week, Month, Year, or Total. It defaults to the last 14 days at Day granularity. For Day-and-larger granularity Amazon requires a timezone (`granularity_timezone`, an IANA name like America/Los_Angeles) — set it so buckets align to the seller's day. Reach for this over listing every order when the user wants a trend, not individual transactions.

  4. 4. Check stock with get_amazon_fba_inventory

    `get_amazon_fba_inventory` returns FBA inventory summaries per SKU/ASIN for a marketplace — fulfillable, inbound, reserved, and researching quantities — optionally filtered to specific `seller_skus`. Use it to answer "what's about to run out" or "what's stuck inbound." It's paginated; follow `next_token` to walk the full catalog.

  5. 5. Read finances with get_amazon_financial_events

    `get_amazon_financial_events` returns financial events — shipments, refunds, fees, adjustments, ads — over a date window (defaults to the last 30 days), with per-category counts plus the raw events, paginated. It's the API view for recent activity. When the user wants a flat, tabular finances export to analyze in bulk, use the settlement report through the report tools instead.

  6. 6. Request a report with request_amazon_report

    `request_amazon_report` submits an Amazon report for generation and returns a `report_id` — it does not return data directly (Amazon generates reports asynchronously). Supported types include the Brand Analytics search-query, search-terms, and catalog-performance reports, the all-orders flat file, and the merchant-listings report. Brand Analytics reports need `report_options` (e.g. SQP: `{ asin, reportPeriod: 'WEEK' }`) and, for a WEEK period, a Sunday→Saturday window and a single marketplace. Requesting is free.

  7. 7. Load it with get_amazon_report

    `get_amazon_report` polls the `report_id` from `request_amazon_report`. While Amazon is still generating it you get a status back (free); once it's DONE the rows are written into a SQL-queryable data lakehouse table and you get `{ table, row_count }`. Poll until done, then query the table for analysis. Loading is billed per row written, so it scales with the report's size.

  8. 8. Present results clearly

    Don't dump raw API JSON or whole report files. Summarize the numbers the user asked for — "412 units across 380 orders last week, $9,840 in sales" — call out what's actionable (SKUs low on stock, a refund spike), and when a report loads, name the table and row count so the user can query it. Note when results are paginated and more pages are available.

6. Tool Reference

10 tools, rendered live from the Gentic MCP manifest. Parameter tables come directly from each tool's JSON Schema.

amazon_connection_status

Free

Check whether your organization has connected its Amazon Seller account (Selling Partner API) and list the marketplaces it participates in. Returns `{ connected: false }` if no Amazon account is connected. Free.

This tool takes no parameters.

get_amazon_buy_box_status

Free

Check Amazon Buy Box (Featured Offer) status for your ASINs — whether YOU own the Buy Box, the current Buy Box price, the lowest competing price, and the number of offers. Built for Buy Box LOSS alerting: run it on a schedule (e.g. 3×/day) and alert (Slack) when `owns_buy_box` is false, meaning a competitor undercut you and you lost the Featured Offer. Set only_lost=true to return just the lost ASINs. Note: Amazon does not expose the competing seller's name.

ParameterTypeDescription
asins
required
string[]

ASINs to check (1–200). Chunked into calls of 20.

only_lostboolean

If true, return only ASINs where the Buy Box is lost (owns_buy_box=false).

marketplacestring

Marketplace id (default: connected).

get_amazon_fba_inventory

Free

Get FBA inventory summaries per SKU/ASIN: fulfillable, inbound, reserved, researching, AND the unfulfillable breakdown (defective, warehouse-damaged, customer-damaged, distributor-damaged, carrier-damaged, expired). Returns per-SKU rows plus top-level `totals` summed across the returned SKUs — use the totals for defective/damaged-inventory alerting (e.g. run on a schedule and Slack when defective jumps vs. the prior snapshot). Set only_unfulfillable=true to return just SKUs with unfulfillable inventory. Optionally filter by seller SKUs. Paginated.

ParameterTypeDescription
seller_skusstring[]

Filter to these seller SKUs (optional).

only_unfulfillableboolean

If true, return only SKUs with total_unfulfillable > 0 (totals still cover all SKUs).

marketplacestring

Marketplace id (default: connected).

next_tokenstring

Pagination token from a previous response.

get_amazon_financial_events

Free

Get Amazon financial events (shipments, refunds, fees, adjustments, ads, etc.) over a date window (Finances API). Returns the event categories with per-category counts and the raw events, paginated. For a flat tabular finances export, use the settlement report via the Amazon report tools instead. Defaults to the last 30 days.

ParameterTypeDescription
posted_afterstring

ISO-8601; events posted at/after this time. Defaults to 30 days ago.

posted_beforestring

ISO-8601; events posted before this time.

max_results
required
integer

Page size (1-100, default 100).

1 – 100 · default: 100

next_tokenstring

Pagination token from a previous response.

get_amazon_order_metrics

Free

Get aggregated Amazon sales metrics (ordered units, order count, total sales, average unit price) bucketed over an interval (Sales API). Defaults to the last 14 days at Day granularity.

ParameterTypeDescription
interval_startstring

ISO-8601 start with offset, e.g. 2026-06-01T00:00:00-07:00. Defaults to 14 days ago.

interval_endstring

ISO-8601 end with offset. Defaults to now.

granularity
required
string

Bucket size (default Day).

enum: Hour, Day, Week, Month, Year, Total · default: "Day"

granularity_timezonestring

IANA tz for Day+ granularity, e.g. America/Los_Angeles (required by Amazon for Day and larger; defaults to that).

marketplacestring

Marketplace id (default: connected).

get_amazon_orders

Free

List your Amazon orders (Orders API) by date window and status, or pass order_id to get that order's line items. Returns non-PII order fields (buyer name/address require extra Amazon authorization and are omitted in v1). Defaults to the last 30 days if no date is given.

ParameterTypeDescription
order_idstring

Amazon order id (e.g. 114-4099390-3920248). When set, returns that order's line items instead of a list.

created_afterstring

ISO-8601; list orders created at/after this time.

created_beforestring

ISO-8601; list orders created before this time.

last_updated_afterstring

ISO-8601; list orders updated at/after this time (use instead of created_after to catch status changes).

order_statusesstring[]

Filter by status: Pending, Unshipped, PartiallyShipped, Shipped, Canceled, Unfulfillable.

marketplacestring

Marketplace id (default: the connected marketplace). NA: US ATVPDKIKX0DER, CA A2EUQ1WTGCTBG2, MX A1AM78C64UM0Y8.

max_results
required
integer

Page size (1-100, default 50).

1 – 100 · default: 50

next_tokenstring

Pagination token from a previous response's next_token.

get_amazon_report

Free

Check a requested Amazon report and, once ready, load its rows into your data warehouse (SQL-queryable). Poll with the report_id from request_amazon_report. While Amazon is generating it you get IN_PROGRESS; once it's downloaded the rows load in the background and you get INGESTING with rows_so_far; when finished you get LOADED with { table, row_count }. Keep polling until LOADED (or FATAL/FAILED). Free.

ParameterTypeDescription
report_id
required
string

The report_id returned by request_amazon_report.

tablestring

Warehouse table to write into (default: derived from the report type).

request_amazon_report

Free

Submit an Amazon report for generation, then poll it with get_amazon_report. Supported report_type: GET_BRAND_ANALYTICS_SEARCH_QUERY_PERFORMANCE_REPORT, GET_BRAND_ANALYTICS_SEARCH_CATALOG_PERFORMANCE_REPORT, GET_BRAND_ANALYTICS_SEARCH_TERMS_REPORT, GET_FLAT_FILE_ALL_ORDERS_DATA_BY_ORDER_DATE_GENERAL, GET_FLAT_FILE_ALL_ORDERS_DATA_BY_LAST_UPDATE_GENERAL, GET_MERCHANT_LISTINGS_ALL_DATA, GET_LEDGER_DETAIL_VIEW_DATA, GET_LEDGER_SUMMARY_VIEW_DATA. Brand Analytics reports need reportOptions (e.g. SQP: { asin, reportPeriod: 'WEEK' }) and, for WEEK, a Sunday→Saturday window (data_start_time/data_end_time) + a single marketplace. Free.

ParameterTypeDescription
report_type
required
string

The Amazon report type (see the supported list in this tool's description).

data_start_timestring

ISO-8601 window start (BA WEEK: a Sunday).

data_end_timestring

ISO-8601 window end (BA WEEK: the Saturday of the same week).

marketplacestring

Marketplace id (default: connected). BA reports use exactly one.

report_optionsobject

reportOptions map, e.g. { asin: 'B0...', reportPeriod: 'WEEK' }.

search_amazon_reviews

Free

Search this organization's Amazon customer-review topics by natural language — 'what do customers dislike about <product>?', 'find complaints about durability', 'what do people praise?'. Searches the `amazon_review_topics` table (Amazon's AGGREGATED review THEMES per ASIN — topics + sentiment + mention counts + star-rating impact + representative snippets; NOT individual reviews) semantically over the topic projection, ranked by relevance. Populate it first with sync_amazon_reviews. Supports an optional SQL `filters` clause over structured columns — sentiment ('positive'/'negative'), asin, topic, star_rating_impact, number_of_mentions, occurrence_percentage. Example: search_amazon_reviews(query='product stopped working', filters="sentiment = 'negative' AND star_rating_impact < -0.3"). For pure counts/aggregations use query_data over amazon_review_topics instead.

ParameterTypeDescription
query
required
string

Natural-language search query, e.g. 'device stopped working after a few months' or 'easy to use and comfortable'.

filtersstring

Optional SQL filter clause (the body of a WHERE) over structured columns: sentiment, asin, topic, star_rating_impact, number_of_mentions, occurrence_percentage. Read-only; write/file functions are rejected. Example: "sentiment = 'negative' AND number_of_mentions >= 3".

limitinteger

Number of topics to return (1–50, default 10).

1 – 50

sync_amazon_reviews

Free

Sync Amazon customer-review insights for this organization's products into the `amazon_review_topics` table. NOTE: Amazon does NOT expose individual reviews via API — this pulls Amazon's AGGREGATED review TOPICS per ASIN (negative/positive themes + subtopics, mention counts, occurrence %, star-rating impact, and a few representative review snippets) from the Customer Feedback API, over a rolling ~6-month window. By default it derives ASINs from your already-synced Amazon data (orders/listings/Brand-Analytics); pass `asins` to target specific products. Bounded per call (default 10 ASINs, max 15, with a time budget) — re-syncing an ASIN replaces its latest snapshot, so call again (it reports `asins_remaining`) to cover more. Query the result with `query_data` over `amazon_review_topics` (counts/aggregates) or `search_amazon_reviews` (semantic). Free.

ParameterTypeDescription
asinsstring[]

Specific ASINs to pull topics for (e.g. ['B07M5X4D3P']). If omitted, ASINs are derived from your warehoused Amazon tables (orders/listings/SQP). Capped at the per-call max.

marketplacestring

Marketplace id override (default: the connected marketplace, e.g. US ATVPDKIKX0DER).

max_asinsinteger

Max ASINs to process this call (1–15, default 10). Each ASIN = one Customer Feedback call + an embedding + a write, so calls are bounded; page by calling again.

1 – 15

7. Pricing

Pricing is pulled live from the Gentic MCP manifest. All prices are per call and deducted from your Gentic credits.

ToolCost
amazon_connection_statusFree
get_amazon_buy_box_statusFree
get_amazon_fba_inventoryFree
get_amazon_financial_eventsFree
get_amazon_order_metricsFree
get_amazon_ordersFree
get_amazon_reportFree
request_amazon_reportFree
search_amazon_reviewsFree
sync_amazon_reviewsFree

8. Notes

  • Organization-scoped: the Seller account, credentials, and default marketplace come from the org's connection (dashboard → Integrations → Amazon). The server only ever reads the account your org connected.
  • Read-only: every tool reads from the Selling Partner API — none create, modify, or cancel anything in your Amazon account.
  • Credentials are encrypted: your LWA client secret and SP-API refresh token are encrypted server-side (AES-256-GCM, per-secret IV) and never round-tripped to the browser or your agent. Only the non-secret client ID, marketplace, and region are stored in plaintext.
  • Reports are asynchronous: `request_amazon_report` submits and returns a `report_id`; `get_amazon_report` polls it and, when ready, loads the rows into a SQL-queryable data lakehouse table. Brand Analytics reports require report options and (for WEEK) a Sunday→Saturday window and a single marketplace.
  • v1 covers the NA region — US (ATVPDKIKX0DER), CA (A2EUQ1WTGCTBG2), and MX (A1AM78C64UM0Y8). Buyer PII on orders requires extra Amazon authorization and is omitted.
  • Connection checks and report requests are free; data reads are a few cents per call and report loads are billed per row — pricing is pulled live from the Gentic MCP manifest so it always matches what you'll be charged.