Skip to main content
Glama

Version Python Versions Build GitHub License

amazon-orders-mcp is an unofficial MCP server for Amazon order history, line items, and transactions, built on amazon-orders. It gives your AI assistant tools for your Amazon account, available from Claude and any other MCP client.

The server never sees your credentials. When you sign in, a browser window opens on Amazon's own page, and the server reuses the session that leaves behind. It also runs on a server without a display, where you sign in from a terminal instead (see Remote Clients).

Note: This server reads its data through amazon-orders, which works by parsing data from Amazon's consumer-facing website. As Amazon provides no official API to use, older versions may break at any time, so it's recommended that you use the latest version.

Installation

amazon-orders-mcp is available on PyPI and is run with uvx, so there's nothing to install up front. Add it to your AI assistant:

Claude

Claude Desktop: download amazon-orders-mcp-<version>.mcpb from the latest release and open it.

Claude Code:

claude mcp add amazon-orders -- uvx amazon-orders-mcp

ChatGPT

ChatGPT Desktop: in Settings → Plugins, add an MCP server of type STDIO, with uvx as the command and amazon-orders-mcp as its argument.

Codex:

codex mcp add amazon-orders -- uvx amazon-orders-mcp

Other Clients

Any client that runs local MCP servers can use this JSON, or amazon-orders-mcp as the command if you've installed it with pip install amazon-orders-mcp:

{
  "mcpServers": {
    "amazon-orders": {
      "command": "uvx",
      "args": ["amazon-orders-mcp"]
    }
  }
}

Remote Clients

For clients that connect to a server instead of running one, the server can also serve Streamable HTTP:

uvx amazon-orders-mcp --transport streamable-http

It listens at http://127.0.0.1:8000/mcp. See --help to change that, or to require a bearer token (required off loopback). On a server without a display, sign_in can't open a browser window, so sign in there first with uvx amazon-orders login, which asks for your username and password instead.

Docker

docker build -t amazon-orders-mcp .
docker run -i --rm -v amazon-orders:/home/app/.config/amazonorders amazon-orders-mcp

A container has no display, so sign in with the login target first. See the Dockerfile for how.

Related MCP server: Amazon MCP Server

Basic Usage

Just ask your assistant about your orders, and it will use the following tools:

Tool

Returns

sign_in

Opens a browser window for you to sign in to Amazon, when you ask

get_orders

A batch of orders by year, time filter or order type, optionally detailed

search_orders

A batch of items by product, order number, address or recipient, any year

get_order

One order, by order number

get_tracking

A shipment's carrier and tracking number, from an order's shipment ID

get_invoices

An order's printable summary, and any invoice PDFs the seller issues

get_transactions

A batch of payment transactions over a number of days, or for an order

get_gift_cards

The Gift Card balance, with a batch of its activity over a number of days

get_prime_payments

Prime membership fee charges, each with its order number

check_session

Whether you're signed in, on each Amazon site you have a session for

get_config

The settings your assistant can change, and their values

update_config

Changes one of those settings

Order history and transactions come back in batches of limit results (25 by default, and a batch can run up to a page over), with a cursor your assistant passes back to get the next batch.

Every tool that reads Amazon takes an optional site, like amazon.de, so your assistant can read each Amazon site you shop on from one server, e.g. "my last amazon.de orders". Without it, tools read your default site, the domain setting. Each site has its own sign-in, so ask your assistant to sign you in to each one.

Configuration

Ask your assistant to change a setting, such as the default Amazon site (e.g. amazon.co.uk) or the browser to sign in with. Settings are shared with the amazon-orders CLI, so it follows the same changes. See Supported Sites for the sites amazon-orders can read.

Documentation

For more on the data the server returns, amazon-orders's official documentation is available at Read the Docs, including the Order entity's fields and troubleshooting.

Contributing

Want to contribute financially? If you've found amazon-orders-mcp useful, sponsorship would be greatly appreciated!

Available Tools

13 tools
check_sessionA
Read-only

Check with Amazon whether the user's saved sessions still work: on site, or else on their default site and every other Amazon site they have a saved session for. Also says which site is the default.

NameRequiredDescriptionDefault
siteNoThe Amazon site to check, e.g. `amazon.de`. By default, the default site and every other site with a saved session are checked.

Output Schema

NameRequiredDescription
siteYesThe Amazon site, as `site` accepts it.
errorNoWhy the session couldn't be checked, if it couldn't. `signed_in` is null then.
sitesYesEvery site checked: the one asked about, or else the default site and every other site with a saved session.
defaultYesWhether it's the user's default site, which tools read when they aren't given `site`.
sign_inNoWhat to do to sign in, if the user isn't.
signed_inYesWhether Amazon still accepts the user's saved session for the site. If Amazon answers the check with an error page, a saved session is assumed to still work. Null if the session couldn't be checked at all.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover safety (readOnlyHint=true) and network reach (openWorldHint=true). The description adds genuine behavioral detail beyond them: the fan-out scope of sites checked when `site` is omitted, and the side-effect-free extra output of which site is the default.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, both load-bearing: the first defines the check and its fallback scope, the second adds the default-site reporting. Nothing is padded and the primary action is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With a single optional parameter, full schema coverage, annotations, and an output schema, the description covers everything an agent needs to invoke it correctly. The only unstated piece is what the tool does when a session is invalid, which the output schema can reasonably carry.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the description largely restates the schema's own wording for `site` (including the fallback-to-default-semantics). It adds no new syntax or format detail beyond the schema's `amazon.de` example, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: check with Amazon whether the user's saved sessions are still valid, and additionally report the default site. That is clearly distinct from the mutation sibling sign_in, but the description never names or contrasts an alternative tool, so it stops short of the top band.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explains the branching behavior well (check `site` if given, otherwise the default site plus every site with a saved session), which is effectively guidance on how to call it. But there is no explicit when-to-use/when-not-to-use framing, nor any pointer to sign_in for the case where no session exists.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_configA
Read-only

Get the settings that can be changed with update_config, and their values. What each one does: https://amazon-orders.readthedocs.io/api.html#amazonorders.conf.AmazonOrdersConfig

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
tuningYesSettings you may adjust yourself when calls keep failing. A null value means the default.
preferencesYesThe user's choices, changed only when they ask. A null value means the default.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered and the description does not contradict it. The description adds that the return is the set of changeable settings plus their current values, but says nothing about auth requirements, session state, or whether values are defaults vs. user-modified. Adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the purpose, and the second sentence points to authoritative documentation for per-setting semantics. Nothing is redundant or padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return structure need not be explained, and the annotations cover the safety profile; the description also supplies the purpose and an authoritative reference for individual settings. The remaining gap is that it does not mention any session/auth prerequisite, which is mildly relevant given the `sign_in` and `check_session` siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is nothing for the description to disambiguate; the baseline for a no-parameter tool is 4. No parameter information is missing.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Get the settings... and their values') and explicitly distinguishes this tool from its write counterpart by naming `update_config`. An agent can immediately tell this is the read half of a config read/write pair without inspecting any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied rather than stated: naming `update_config` signals this is the read counterpart, so an agent can infer it should call this to inspect config before mutating. However, there is no explicit when-to-use guidance, no prerequisites (e.g., needing to sign in first, given the `sign_in`/`check_session` siblings), and no stated exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_family_membersA
Read-only

Deprecated, use get_orders, whose household_members lists the same members.

NameRequiredDescriptionDefault
siteNoThe Amazon site to read, e.g. `amazon.de`, since each site has its own orders. By default, the user's default site (see `check_session`).

Output Schema

NameRequiredDescription
itemsNoThe FamilyMembers, or an empty list if the account has none.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare this as a read-only, open-world operation, so the safety profile is covered. The description adds meaningful behavioral context: the tool is deprecated and its data is equivalent to `household_members` on `get_orders`.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence, front-loaded with the most important fact (“Deprecated”), followed immediately by the correct replacement. There is no wasted text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a deprecated tool, the definition gives the agent everything needed to avoid it and use `get_orders` instead. Annotations cover safety, the schema covers the lone parameter, and an output schema exists, so no additional return-value explanation is required.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single `site` parameter has 100% schema description coverage, so the schema already explains its meaning and default. The description adds no parameter-level detail, which is acceptable given the high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies this tool as deprecated and names the replacement, which implies it retrieves the same family/household members as `get_orders.household_members`. It does not explicitly state a verb and resource such as “lists family members,” but the replacement mapping makes the intended behavior clear enough to distinguish it from siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly says the tool is deprecated and directs the agent to `get_orders`, satisfying the when-not-to-use and alternative-tool guidance. No further usage inference is required.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_gift_cardsA
Read-only

Get the Amazon Gift Card balance, and a batch of its activity for a given number of days, with a cursor to fetch the next batch.

NameRequiredDescriptionDefault
daysNoThe number of days worth of Gift Card activity to get. Ignored when `cursor` is given.
siteNoThe Amazon site to read, e.g. `amazon.de`, since each site has its own orders. By default, the user's default site (see `check_session`).
limitNoStop fetching activity pages once at least this many GiftCardActivity entries are collected. Whole pages are fetched, so the batch can hold up to a page more than `limit`. `None` fetches every page.
cursorNoThe `cursor` of the previous batch, to fetch the next one. The `days` window it was fetched with carries over.

Output Schema

NameRequiredDescription
itemsNoThe results in this batch.
cursorNoPass this back as `cursor` to the same call to fetch the next batch. A JSON-safe `dict` to keep as it is, not to build or change. `None` when there are no more results.
balanceNoThe current Gift Card balance, or `None` if Amazon didn't show one.
has_moreNo`True` if there are more results to fetch with `cursor`.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and openWorldHint, so the safety profile is covered. The description adds useful pagination behavior (batches plus a cursor for the next batch), but says nothing about auth expectations, rate limits, or what happens when no gift cards exist.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence that front-loads the primary resource (balance) and then the secondary payload (activity batch + cursor). No filler, no restatement of the title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, and the pagination model is captured. What remains missing is any note about prerequisites such as an authenticated session or how site defaults are resolved, though the schema's site parameter covers that partially.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so days, site, limit, and cursor are all fully documented in the schema itself. The description restates the days-window and cursor-batch concepts without adding syntax, ranges, or edge-case guidance beyond what the schema already gives.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a concrete verb and resource plus the two things returned: the gift card balance and a batch of activity, with cursor-based batching. That is clearly distinguishable from siblings like get_transactions or get_orders, though the description never names those alternatives explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied – the reader must infer this is the tool for gift card balance/history rather than get_transactions. There is no explicit when-to-use, when-not-to-use, or named alternative, even though nearby siblings cover overlapping financial data.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_invoicesA
Read-only

Get the invoice documents of a given Amazon Order ID from its invoice list: the Printable Order Summary (an HTML page, on every site), then any invoice and credit note PDFs (issued by sellers, mostly on EU sites).

NameRequiredDescriptionDefault
siteNoThe Amazon site to read, e.g. `amazon.de`, since each site has its own orders. By default, the user's default site (see `check_session`).
order_idYesThe Amazon Order ID to lookup.

Output Schema

NameRequiredDescription
itemsNoThe Order's Invoices, the Printable Order Summary first.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, so the description's added value is the variable-result behavior: the HTML summary is always present, PDFs are optional and seller/site dependent. That is genuinely useful expectation-setting. It does not cover empty results, invalid order IDs, or any auth requirement, so it stops short of full disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence that names the resource first and then enumerates the returned document types. Every clause earns its place; nothing is padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be explained, yet the description still frames their variability well. The only gap is behavior on failure or empty-invoice cases, which an agent would have to discover at call time.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the site parameter already explains the default-site behavior and the check_session reference. The description only restates that an Order ID is required, adding no format or usage nuance beyond the schema, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Get the invoice documents') scoped to an Amazon Order ID, and enumerates the artifacts returned: Printable Order Summary HTML plus seller-issued invoice and credit-note PDFs. This clearly separates it from order-detail siblings like get_order or get_orders without needing to name them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the resource itself (ask for invoices of an order), and 'mostly on EU sites' implicitly warns that PDFs may not exist on all marketplaces. But there is no explicit when-to-use vs get_order, no statement that the order must already exist, and no note about needing a session (that hint lives only in the site parameter's schema text).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_orderA
Read-only

Get the full details for a given Amazon Order ID.

NameRequiredDescriptionDefault
siteNoThe Amazon site to read, e.g. `amazon.de`, since each site has its own orders. By default, the user's default site (see `check_session`).
order_idYesThe Amazon Order ID to lookup.

Output Schema

NameRequiredDescription
indexNoWhere the Order appeared in the history when it was queried. This will inevitably change (e.g. when a new Order is placed, all indexes will then be off by one), but is still captured as it may be applicable in various use-cases. Populated when the Order was fetched through `get_orders` (use `start_index` to correlate), or when the `clone` has its `index` set.
itemsNoThe Order Items.
subtotalNoThe Order subtotal. Only populated when `full_details` is `True`.
cancelledNo`True` if the Order was cancelled. When `True`, fields like `grand_total` and the totals on the details page may be `None` because Amazon stops rendering them.
gift_cardNoThe Gift Card total (rendered as "Gift Card" on digital order details pages), as a negative amount. Only populated when `full_details` is `True`.
gift_wrapNoThe Gift Wrap total. Only populated when `full_details` is `True`.
recipientNoThe Order Recipients.
shipmentsNoThe Order Shipments.
item_countNoThe number of items in the purchase, when Amazon summarizes the count instead of listing the items (e.g. Whole Foods Market orders show "N items in this purchase"). `None` when no such summary is shown.
grand_totalNoThe Order grand total.
full_detailsNoIf the Orders full details were populated from its details page.
order_numberNoThe Order number. May be `None` only when the Order is `cancelled` and Amazon stripped the order number from the details page (the `order_number` parameter is used as a fallback in that case).
refund_totalNoThe Order refund total. Only populated when `full_details` is `True`.
estimated_taxNoThe Order estimated tax. Only populated when `full_details` is `True`. For Whole Foods Market orders this is the "Tax and Fees" total from the receipt.
free_shippingNoThe Order free shipping, as a negative amount. Only populated when `full_details` is `True`.
reward_pointsNoThe Order reward points, as a negative amount of currency (not a count of points). Only populated when `full_details` is `True`.
coupon_savingsNoThe Order coupon savings, as a negative amount. Only populated when `full_details` is `True`.
is_whole_foodsNo`True` if this is a Whole Foods Market purchase (an in-store/FOPO purchase or a Whole Foods receipt order). Unlike other unsupported order types, these expose a `grand_total` and (often) an `item_count` on the history page, so those fields are populated.
payment_methodNoThe Order payment method. Only populated when `full_details` is `True`. For Whole Foods Market orders this is the card brand of the first payment method on the receipt (e.g. "Visa").
shipping_totalNoThe Order shipping total. Only populated when `full_details` is `True`.
amazon_discountNoThe Amazon discount, as a negative amount. Only populated when `full_details` is `True`.
total_before_taxNoThe Order total before tax. Only populated when `full_details` is `True`.
multibuy_discountNoThe Multibuy discount, as a negative amount. Only populated when `full_details` is `True`.
order_placed_dateNoThe Order placed date.
promotion_appliedNoThe Order promotion applied, as a negative amount. Only populated when `full_details` is `True`.
order_details_linkNoThe Order details link.
payment_method_last_4NoThe Order payment method's last 4 digits, preserved verbatim so leading zeros are not lost. Only populated when `full_details` is `True`.
subscription_discountNoThe Order Subscribe & Save discount, as a negative amount. Only populated when `full_details` is `True`.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds that it returns 'full details,' which signals completeness of the result, but it does not describe error behavior or any additional operational constraints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with no wasted words. It is appropriately sized for a simple lookup tool and gets directly to the point.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the input schema fully documents the parameters. The description is complete enough for a simple read-by-ID tool, though it could mention how it relates to sibling list/search tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both order_id and site clearly, including the default-site behavior. The description only restates the order ID parameter and adds no further semantic detail, so the baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: retrieving full details for a given Amazon Order ID. It is clear what the tool does, but it does not explicitly differentiate itself from sibling tools such as get_orders or search_orders.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the required order ID, suggesting the tool is for looking up a single known order. However, there is no explicit guidance on when to use this instead of get_orders, search_orders, or get_tracking.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_ordersA
Read-only

Get a batch of the Amazon Order history for a given time period, with the Amazon Household members whose Orders the account can view and a cursor to fetch the next batch.

NameRequiredDescriptionDefault
siteNoThe Amazon site to read, e.g. `amazon.de`, since each site has its own orders. By default, the user's default site (see `check_session`).
yearNoThe year for which to get history. Ignored if `time_filter` or `cursor` is provided. Defaults to the current year if neither `year` nor `time_filter` is specified.
limitNoStop fetching history pages once at least this many Orders are collected. Whole pages are fetched, so the batch can hold up to a page more than `limit`. `None` fetches every page.
cursorNoThe `cursor` of the previous batch, to fetch the next one. The filters it was fetched with carry over.
start_indexNoThe index of the Order from which to start fetching in the history. Ignored if `cursor` is provided.
time_filterNoThe time filter to use. Supported values are `"last30"` (last 30 days), `"months-3"` (past 3 months), or `"year-YYYY"` (specific year). If provided, this takes precedence over the `year` parameter.
full_detailsNoGet the full details for each Order in the batch. This will execute an additional request per Order.
order_filterNoThe order type filter to use, e.g. `"digital-orders"` for Kindle and other digital purchases, which the default history doesn't include. If provided, appended alongside the time filter.
family_member_idNoThe ID of an Amazon Household member whose Orders to get, such as a linked Teen account, from `household_members`. An account in an Amazon Household gets the whole household's Orders by default; pass `"self"` for only its own.

Output Schema

NameRequiredDescription
itemsNoThe results in this batch.
cursorNoPass this back as `cursor` to the same call to fetch the next batch. A JSON-safe `dict` to keep as it is, not to build or change. `None` when there are no more results.
has_moreNo`True` if there are more results to fetch with `cursor`.
household_membersNoThe Amazon Household members whose Orders the account can view, such as linked Teen accounts, from the Order history's member filter. Pass a member's `id` as `family_member_id` to get their Orders. Empty if the account has none.

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With readOnlyHint=true and openWorldHint=true already declaring the safety profile, the description still adds real context: results come in batches, a cursor drives the next batch, and household members whose orders the account can view are included. It stops short of noting that the batch may exceed `limit` due to whole-page fetching or that `full_details` triggers extra requests, both of which remain schema-only.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler; the return-shape clause is packed but each part (history, household members, cursor) carries information. Slightly dense/run-on for a one-liner but efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so explaining return values is unnecessary; the description covers purpose and pagination adequately for a 9-param, all-optional tool. The remaining gap is routing guidance among the many sibling retrieval tools, which is the one thing an agent still has to infer.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with rich per-parameter documentation, so the baseline is 3. The description only gestures at the time-period and cursor semantics; precedence rules, filter values, and `family_member_id` behavior are all left to the schema, which is acceptable but adds nothing.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (get a batch of Amazon Order history) plus the returned payload shape (household members, cursor). This distinguishes it implicitly from the singular `get_order` and from `search_orders`, but it never names those siblings to make the split explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: fetching history for a time period with cursor-based paging and optional household scope. There is no statement of when to prefer this over `search_orders` or `get_order`, and no prerequisites (e.g. requiring a session) are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_prime_paymentsA
Read-only

Get every charge in the Prime membership payment history.

NameRequiredDescriptionDefault
siteNoThe Amazon site to read, e.g. `amazon.de`, since each site has its own orders. By default, the user's default site (see `check_session`).

Output Schema

NameRequiredDescription
itemsNoA list of the PrimePayments, newest first.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, so the agent knows this is a safe, network-dependent read. The description adds that results cover 'every charge' in the history, but says nothing about pagination, ordering, or volume, so it adds only modest context beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence with zero filler. The scope qualifier is stated immediately.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With annotations covering safety, a fully documented single parameter, and an output schema handling return values, the description covers what remains. A brief note on multi-site behavior would make it airtight, but nothing essential for correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the single 'site' parameter is fully documented, including its default behavior referencing check_session. The description contributes nothing about the parameter, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Get') and a specific resource ('every charge in the Prime membership payment history'), which clearly separates it from siblings like get_gift_card_activity or get_order_history. It doesn't explicitly name the nearest alternatives (e.g. get_transactions), so it stops short of full sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The scope ('Prime membership payment history') implicitly tells an agent when this tool applies rather than a general transaction listing. However, there is no explicit when-to-use guidance and no mention of alternatives such as get_transactions for non-Prime payments.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_trackingA
Read-only

Get the carrier and tracking number of a Shipment from its package tracking page.

NameRequiredDescriptionDefault
siteNoThe Amazon site to read, e.g. `amazon.de`, since each site has its own orders. By default, the user's default site (see `check_session`).
order_idYesThe Amazon Order ID of the Shipment.
shipment_idYesThe Shipment's `shipment_id`. Amazon stops showing the tracking link it comes from on older Orders.

Output Schema

NameRequiredDescription
carrierNoThe carrier name, e.g. `UPS`, or `Amazon` for Amazon's own delivery network.
tracking_numberNoThe carrier's tracking number, e.g. `1Z999AA10123456784` or `TBA000000000000`. Always a `str`, since many (e.g. USPS) are all digits and may have leading zeros.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, so the agent knows this is a safe external read. The description adds that data comes from scraping the package tracking page, which is mild context, but it doesn't mention failure modes (e.g., what happens when tracking is unavailable) or return shape. With annotations carrying the safety profile, a 3 fits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single efficient sentence with the resource and source front-loaded. Every clause earns its place; nothing is wasted or buried.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, annotations cover the safety and open-world profile, and parameters are fully documented in the schema. The description supplies the core purpose and source, so it is complete enough for correct invocation, with only minor room for failure-mode detail.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already explains site, order_id, and shipment_id, including the note that Amazon hides tracking links on older orders. The description adds no syntax or format detail beyond the schema, making the baseline 3 appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Get') and resource ('carrier and tracking number of a Shipment'), and even names the source ('package tracking page'). It is clearly distinguishable from list-type siblings like get_order_history or get_order, though it doesn't explicitly name an alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the description (retrieve tracking info for a shipment), but there is no explicit when-to-use, when-not-to-use, or named alternative among the siblings. An agent must infer that this is the tool for tracking details rather than order details.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_transactionsA
Read-only

Get a batch of Amazon Transaction history for a given number of days, or for a single Order, with a cursor to fetch the next batch.

NameRequiredDescriptionDefault
daysNoThe number of days worth of Transactions to get. Ignored when `order_id` or `cursor` is given.
siteNoThe Amazon site to read, e.g. `amazon.de`, since each site has its own orders. By default, the user's default site (see `check_session`).
limitNoStop fetching Transaction pages once at least this many Transactions are collected. Whole pages are fetched, so the batch can hold up to a page more than `limit`. `None` fetches every page.
cursorNoThe `cursor` of the previous batch, to fetch the next one. The `days` window or `order_id` it was fetched with carries over.
order_idNoIf given, only Transactions for this Amazon Order ID are returned, as in `get_transactions`. Ignored when `cursor` is given.

Output Schema

NameRequiredDescription
itemsNoThe results in this batch.
cursorNoPass this back as `cursor` to the same call to fetch the next batch. A JSON-safe `dict` to keep as it is, not to build or change. `None` when there are no more results.
has_moreNo`True` if there are more results to fetch with `cursor`.

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, so safety is covered. The description usefully adds that results come in batches with a cursor for the next batch, which is real behavioral context beyond the annotations' scope. It stops short of describing ordering, freshness, or failure behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence that front-loads the verb and resource and then enumerates the modes plus pagination. Dense but every clause carries information; slightly run-on but not wasteful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need no explanation, and all five parameters are fully described in the schema. The description covers the modal selection and pagination, leaving only tool-routing against siblings unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and every parameter is documented in detail there, including the cursor carry-over and the limit page-rounding semantics. The description only restates the three modes, so the baseline 3 applies with no meaningful added semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Get a batch of Amazon Transaction history') plus the three access modes: day window, single order, cursor batch. It does not name any sibling tool, so an agent cannot distinguish it from get_order_history or get_order without reading further, which keeps it at 4 rather than 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the three usage modes (days, order_id, cursor) but never states when to prefer this tool over get_order_history or get_order, nor any prerequisites beyond what the schema states. Usage is implied by the parameter modes rather than explained.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_ordersA
Read-only

Search every year of the Order history for Orders by product title, Order number, address, or recipient, as the search box on Your Orders does, getting each matching Item with its Order's number and date.

NameRequiredDescriptionDefault
siteNoThe Amazon site to read, e.g. `amazon.de`, since each site has its own orders. By default, the user's default site (see `check_session`).
limitNoStop fetching result pages once at least this many results are collected. Whole pages are fetched, so the batch can hold up to a page more than `limit`. `None` fetches every page.
queryYesWhat to search for: words from a product title, an Order number, or a name or address an Order was sent to.
cursorNoThe `cursor` of the previous batch, to fetch the next one.

Output Schema

NameRequiredDescription
itemsNoThe results in this batch.
cursorNoPass this back as `cursor` to the same call to fetch the next batch. A JSON-safe `dict` to keep as it is, not to build or change. `None` when there are no more results.
has_moreNo`True` if there are more results to fetch with `cursor`.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true. The description adds useful context by stating that it searches every year of order history and returns each matching Item with its Order number and date.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that clearly conveys scope, search inputs, and result content without unnecessary wording.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given full schema coverage, an output schema, and annotations covering safety and openness, the description provides enough context to call the tool correctly. It could be stronger only by explicitly situating this tool relative to its siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the parameters are already well documented. The description reinforces the query semantics but adds little beyond what the schema already provides for site, limit, and cursor.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb and resource: search Order history for Orders by product title, Order number, address, or recipient. It clearly states the search scope and result shape, though it does not explicitly distinguish itself from sibling tools like get_orders or get_order.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage by explaining what can be searched and comparing the behavior to the search box on Your Orders. However, it gives no explicit guidance on when to use this tool versus get_orders, get_order, or other siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sign_inA
Idempotent

Sign the user in to Amazon, when they ask you to or after a tool says they aren't signed in. Opens a browser window on the user's computer, where they sign in on Amazon's own page, so their credentials are never seen. Wait for them to finish, which they have 120 seconds to do. If it says there's no browser to sign in with, ask the user which to use, then call this again with browser.

NameRequiredDescriptionDefault
siteNoThe Amazon site to sign in to, e.g. `amazon.de`, since each site has its own sign-in. By default, the user's default site.
browserNoOnly when there's no browser to sign in with: the one the user chose, either one offered to download for them or a browser they already have installed. It's saved, so they're only asked once.

Output Schema

NameRequiredDescription
siteYesThe Amazon site, as `site` accepts it.
errorNoWhy the session couldn't be checked, if it couldn't. `signed_in` is null then.
sitesYesEvery site checked: the one asked about, or else the default site and every other site with a saved session.
defaultYesWhether it's the user's default site, which tools read when they aren't given `site`.
sign_inNoWhat to do to sign in, if the user isn't.
signed_inYesWhether Amazon still accepts the user's saved session for the site. If Amazon answers the check with an error page, a saved session is assumed to still work. Null if the session couldn't be checked at all.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations it discloses the key traits: it launches a browser window on the user's own machine, credentials never pass through the agent, the call blocks until the user finishes with a 120-second limit, and how the no-browser case behaves. That is exactly the context an agent needs for an interactive, open-world operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The trigger condition comes first, followed by the mechanism, timing constraint, and error fallback, in four tight sentences with no repetition or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema covers return values, so the description needn't explain them; what remains (interactivity, timeout, browser selection flow, consent trigger) is fully covered. Nothing an agent needs to invoke this correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds real workflow meaning for `browser` (only use it after the no-browser error, and the choice is persisted so the user is asked once), but says nothing extra about `site` beyond what the schema already documents.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Sign the user in to Amazon') and is clearly distinguishable from siblings like check_session, which reads state rather than initiating an interactive login. An agent can identify the action without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit triggers ('when they ask you to or after a tool says they aren't signed in') and a concrete fallback flow if the no-browser error occurs: ask the user, then re-call with `browser`. Both when-to-use and what-to-do-next are spelled out.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_configA
Idempotent

Change a setting. Change a preference, like the Amazon site (domain) or the browser to sign in with (browser), only when the user asks. You may change a tuning setting yourself when calls keep failing (e.g. a longer request_timeout after timeouts, or a smaller thread_pool_size when Amazon throttles requests), and tell the user what you changed. warn_on_missing_required_field returns partial data instead of an error, so say so if you change it. A preference is saved, and tuning lasts until the server restarts unless save is true, which you can offer if a change keeps helping. domain is the default site, which tools read when they aren't given site, so to read another site once, pass it as site instead. After changing domain, check with check_session, since the user may need to sign in to the new default site. What each setting does: https://amazon-orders.readthedocs.io/api.html#amazonorders.conf.AmazonOrdersConfig

NameRequiredDescriptionDefault
keyYesThe setting, from `get_config`.
saveNoWhether to save the change. By default, a preference is saved and tuning isn't.
valueYesThe new value. Null or an empty string sets it back to the default.

Output Schema

NameRequiredDescription
keyYesThe setting.
savedYesWhether the change was saved, or only made until the server restarts.
valueNoThe value now in effect. A null value means the default.

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare non-read-only, idempotent, non-destructive, closed-world, so the bar is lower; the description nonetheless adds real behavioral context the annotations cannot carry — preference changes persist, tuning changes die at server restart unless `save` is true, `warn_on_missing_required_field` degrades errors into partial data, and a `domain` change may force re-authentication verified via check_session. It stops just short of describing the response payload, which is covered by the output schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action and dense with actionable detail, but it sprawls into a long run of clauses and offloads key enumeration to an external link rather than staying self-contained. Every sentence is largely load-bearing, so the penalty is mild.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 3-parameter mutation tool with an output schema and full annotation coverage, the description supplies everything an agent needs: what may be changed autonomously, persistence semantics, the restart caveat, the partial-data side effect, and the required follow-up check after a domain change.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, and the description earns an increment by explaining what specific key values mean (`domain` as the default site consumed by tools lacking `site`, `browser` as sign-in target) and by elaborating the `save` trade-off beyond the schema's one-liner. It does not enumerate the full key set, deferring to an external documentation URL instead.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Starts with a specific verb+resource ('Change a setting') and immediately disambiguates the two classes of setting it mutates: user preferences (domain, browser) versus tuning knobs (request_timeout, thread_pool_size). It also ties itself to the sibling get_config by saying the key comes from there, so an agent can distinguish read-config from write-config without inspecting schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit when-to-use rules for both modes: preferences 'only when the user asks', tuning settings autonomously 'when calls keep failing' with concrete trigger examples (timeouts, throttling). It also supplies an alternative path ('to read another site once, pass it as `site` instead') and guidance on when to offer `save`.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 2 tool updatesv2.1.0
    • Changedget_family_members1 field changed
      • changedOutput schema / properties / items / items / properties / id / description
        Previous value: -"The FamilyMember ID, Amazon's `familyMemberId`."New value: +"The FamilyMember ID, the value Amazon's household member filter (`householdMembers`) takes."
    • Changedget_orders3 fields changed
      • changedInput schema / properties / family_member_id / description
        Previous value: -"The ID of an Amazon Household member whose Orders to get, such as a linked Teen account, from `get_family_members`."New value: +"The ID of an Amazon Household member whose Orders to get, such as a linked Teen account, from `household_members`. An account in an Amazon Household gets the whole household's Orders by default; pass `\"self\"` for only its own."
      • changedOutput schema / description
        Previous value: -"The batch of Orders, and the cursor for the next one."New value: +"The batch of Orders, the Amazon Household members, and the cursor for the next one."
      • addedOutput schema / properties / household_members
        Added value: +{
        +  "description": "The Amazon Household members whose Orders the account can view, such as linked Teen accounts, from the Order history's member filter. Pass a member's `id` as `family_member_id` to get their Orders. Empty if the account has none.",
        +  "items": {
        +    "additionalProperties": true,
        +    "description": "A member of the Amazon Household whose Orders the account can view, such as a linked Teen account. Pass its `id` as `family_member_id` to `get_orders` to get their Orders.",
        +    "properties": {
        +      "id": {
        +        "description": "The FamilyMember ID, the value Amazon's household member filter (`householdMembers`) takes.",
        +        "type": "string"
        +      },
        +      "name": {
        +        "description": "The FamilyMember name.",
        +        "type": "string"
        +      }
        +    },
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
  2. 10 tool updatesv2.0.1
    • Changedget_family_members1 field changed
      • changedOutput schema / properties / items / items / description
        Previous value: -"A member of the Amazon Household whose Orders the account can view, such as a linked Teen account. Pass its `id` as `family_member_id` to `get_order_history` to get their Orders."New value: +"A member of the Amazon Household whose Orders the account can view, such as a linked Teen account. Pass its `id` as `family_member_id` to `get_orders` to get their Orders."
    • Removedget_gift_card_activity
    • Removedget_gift_card_balance
    • Addedget_gift_cards
    • Removedget_invoice_pdfs
    • Addedget_invoices
    • Changedget_order4 fields changed
      • changedOutput schema / properties / index / description
        Previous value: -"Where the Order appeared in the history when it was queried. This will inevitably change (e.g. when a new Order is placed, all indexes will then be off by one), but is still captured as it may be applicable in various use-cases. Populated when the Order was fetched through `get_order_history` (use `start_index` to correlate), or when the `clone` has its `index` set."New value: +"Where the Order appeared in the history when it was queried. This will inevitably change (e.g. when a new Order is placed, all indexes will then be off by one), but is still captured as it may be applicable in various use-cases. Populated when the Order was fetched through `get_orders` (use `start_index` to correlate), or when the `clone` has its `index` set."
      • changedOutput schema / properties / items / items / description
        Previous value: -"An Item in an Amazon `Order`. If desired fields are populated as `None`, ensure `full_details` is `True` when retrieving the Order (for instance, with `get_order_history`), since by default it is `False` (it will slow down querying)."New value: +"An Item in an Amazon `Order`. If desired fields are populated as `None`, ensure `full_details` is `True` when retrieving the Order (for instance, with `get_orders`), since by default it is `False` (it will slow down querying)."
      • changedOutput schema / properties / shipments / items / properties / delivery_status / description
        Previous value: -"The Shipment delivery status."New value: +"The Shipment delivery status, or `None` once Amazon stops showing it, some weeks after delivery."
      • changedOutput schema / properties / shipments / items / properties / items / items / description
        Previous value: -"An Item in an Amazon `Order`. If desired fields are populated as `None`, ensure `full_details` is `True` when retrieving the Order (for instance, with `get_order_history`), since by default it is `False` (it will slow down querying)."New value: +"An Item in an Amazon `Order`. If desired fields are populated as `None`, ensure `full_details` is `True` when retrieving the Order (for instance, with `get_orders`), since by default it is `False` (it will slow down querying)."
    • Removedget_order_history
    • Addedget_orders
    • Addedsearch_orders
  3. 11 tool updatesv1.4.2
    • Changedcheck_session11 fields changed
      • addedInput schema / properties / site
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "The Amazon site to check, e.g. `amazon.de`. By default, the default site and every other site with a saved session are checked.",
        +  "title": "Site"
        +}
      • addedOutput schema / $defs
        Added value: +{
        +  "SiteSessionStatus": {
        +    "description": "The user's session status on an Amazon site.",
        +    "properties": {
        +      "default": {
        +        "description": "Whether it's the user's default site, which tools read when they aren't given `site`.",
        +        "title": "Default",
        +        "type": "boolean"
        +      },
        +      "error": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null,
        +        "description": "Why the session couldn't be checked, if it couldn't. `signed_in` is null then.",
        +        "title": "Error"
        +      },
        +      "sign_in": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null,
        +        "description": "What to do to sign in, if the user isn't.",
        +        "title": "Sign In"
        +      },
        +      "signed_in": {
        +        "anyOf": [
        +          {
        +            "type": "boolean"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "description": "Whether Amazon still accepts the user's saved session for the site. If Amazon answers the check with an error page, a saved session is assumed to still work. Null if the session couldn't be checked at all.",
        +        "title": "Signed In"
        +      },
        +      "site": {
        +        "description": "The Amazon site, as `site` accepts it.",
        +        "title": "Site",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "signed_in",
        +      "site",
        +      "default"
        +    ],
        +    "title": "SiteSessionStatus",
        +    "type": "object"
        +  }
        +}
      • changedOutput schema / description
        Previous value: -"The user's Amazon session status, returned by the ``check_session`` tool."New value: +"The user's Amazon session status, returned by the ``check_session`` and ``sign_in`` tools: for the site asked\nabout, or else the default site, and for every site checked."
      • addedOutput schema / properties / default
        Added value: +{
        +  "description": "Whether it's the user's default site, which tools read when they aren't given `site`.",
        +  "title": "Default",
        +  "type": "boolean"
        +}
      • addedOutput schema / properties / error
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Why the session couldn't be checked, if it couldn't. `signed_in` is null then.",
        +  "title": "Error"
        +}
      • addedOutput schema / properties / signed_in / anyOf
        Added value: +[
        +  {
        +    "type": "boolean"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedOutput schema / properties / signed_in / description
        Previous value: -"Whether Amazon still accepts the user's saved session. If Amazon couldn't be reached to check, a saved session is assumed to still work."New value: +"Whether Amazon still accepts the user's saved session for the site. If Amazon answers the check with an error page, a saved session is assumed to still work. Null if the session couldn't be checked at all."
      • removedOutput schema / properties / signed_in / type
        Removed value: -"boolean"
      • changedOutput schema / properties / site / description
        Previous value: -"The Amazon site the server is set to read."New value: +"The Amazon site, as `site` accepts it."
      • addedOutput schema / properties / sites
        Added value: +{
        +  "description": "Every site checked: the one asked about, or else the default site and every other site with a saved session.",
        +  "items": {
        +    "$ref": "#/$defs/SiteSessionStatus"
        +  },
        +  "title": "Sites",
        +  "type": "array"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "signed_in",
        -  "site"
        -]New value: +[
        +  "signed_in",
        +  "site",
        +  "default",
        +  "sites"
        +]
    • Addedget_family_members
    • Changedget_gift_card_activity1 field changed
      • addedInput schema / properties / site
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "The Amazon site to read, e.g. `amazon.de`, since each site has its own orders. By default, the user's default site (see `check_session`).",
        +  "title": "Site"
        +}
    • Changedget_gift_card_balance2 fields changed
      • addedInput schema / properties / site
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "The Amazon site to read, e.g. `amazon.de`, since each site has its own orders. By default, the user's default site (see `check_session`).",
        +  "title": "Site"
        +}
      • changedOutput schema / properties / balance / description
        Previous value: -"The current Gift Card balance, in the currency of the Amazon site the server is set to read (see `check_session`)."New value: +"The current Gift Card balance, in the currency of the Amazon site read."
    • Addedget_invoice_pdfs
    • Changedget_order1 field changed
      • addedInput schema / properties / site
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "The Amazon site to read, e.g. `amazon.de`, since each site has its own orders. By default, the user's default site (see `check_session`).",
        +  "title": "Site"
        +}
    • Changedget_order_history2 fields changed
      • addedInput schema / properties / family_member_id
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "The ID of an Amazon Household member whose Orders to get, such as a linked Teen account, from `get_family_members`.",
        +  "title": "Family Member Id"
        +}
      • addedInput schema / properties / site
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "The Amazon site to read, e.g. `amazon.de`, since each site has its own orders. By default, the user's default site (see `check_session`).",
        +  "title": "Site"
        +}
    • Addedget_prime_payments
    • Changedget_tracking1 field changed
      • addedInput schema / properties / site
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "The Amazon site to read, e.g. `amazon.de`, since each site has its own orders. By default, the user's default site (see `check_session`).",
        +  "title": "Site"
        +}
    • Changedget_transactions1 field changed
      • addedInput schema / properties / site
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "The Amazon site to read, e.g. `amazon.de`, since each site has its own orders. By default, the user's default site (see `check_session`).",
        +  "title": "Site"
        +}
    • Changedsign_in11 fields changed
      • addedInput schema / properties / site
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "The Amazon site to sign in to, e.g. `amazon.de`, since each site has its own sign-in. By default, the user's default site.",
        +  "title": "Site"
        +}
      • addedOutput schema / $defs
        Added value: +{
        +  "SiteSessionStatus": {
        +    "description": "The user's session status on an Amazon site.",
        +    "properties": {
        +      "default": {
        +        "description": "Whether it's the user's default site, which tools read when they aren't given `site`.",
        +        "title": "Default",
        +        "type": "boolean"
        +      },
        +      "error": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null,
        +        "description": "Why the session couldn't be checked, if it couldn't. `signed_in` is null then.",
        +        "title": "Error"
        +      },
        +      "sign_in": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "default": null,
        +        "description": "What to do to sign in, if the user isn't.",
        +        "title": "Sign In"
        +      },
        +      "signed_in": {
        +        "anyOf": [
        +          {
        +            "type": "boolean"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "description": "Whether Amazon still accepts the user's saved session for the site. If Amazon answers the check with an error page, a saved session is assumed to still work. Null if the session couldn't be checked at all.",
        +        "title": "Signed In"
        +      },
        +      "site": {
        +        "description": "The Amazon site, as `site` accepts it.",
        +        "title": "Site",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "signed_in",
        +      "site",
        +      "default"
        +    ],
        +    "title": "SiteSessionStatus",
        +    "type": "object"
        +  }
        +}
      • changedOutput schema / description
        Previous value: -"The user's Amazon session status, returned by the ``check_session`` tool."New value: +"The user's Amazon session status, returned by the ``check_session`` and ``sign_in`` tools: for the site asked\nabout, or else the default site, and for every site checked."
      • addedOutput schema / properties / default
        Added value: +{
        +  "description": "Whether it's the user's default site, which tools read when they aren't given `site`.",
        +  "title": "Default",
        +  "type": "boolean"
        +}
      • addedOutput schema / properties / error
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Why the session couldn't be checked, if it couldn't. `signed_in` is null then.",
        +  "title": "Error"
        +}
      • addedOutput schema / properties / signed_in / anyOf
        Added value: +[
        +  {
        +    "type": "boolean"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedOutput schema / properties / signed_in / description
        Previous value: -"Whether Amazon still accepts the user's saved session. If Amazon couldn't be reached to check, a saved session is assumed to still work."New value: +"Whether Amazon still accepts the user's saved session for the site. If Amazon answers the check with an error page, a saved session is assumed to still work. Null if the session couldn't be checked at all."
      • removedOutput schema / properties / signed_in / type
        Removed value: -"boolean"
      • changedOutput schema / properties / site / description
        Previous value: -"The Amazon site the server is set to read."New value: +"The Amazon site, as `site` accepts it."
      • addedOutput schema / properties / sites
        Added value: +{
        +  "description": "Every site checked: the one asked about, or else the default site and every other site with a saved session.",
        +  "items": {
        +    "$ref": "#/$defs/SiteSessionStatus"
        +  },
        +  "title": "Sites",
        +  "type": "array"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "signed_in",
        -  "site"
        -]New value: +[
        +  "signed_in",
        +  "site",
        +  "default",
        +  "sites"
        +]
  4. 3 tool updatesv1.3.0
    • Addedget_gift_card_balance
    • Changedget_order_history1 field changed
      • addedInput schema / properties / order_filter
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "The order type filter to use, e.g. `\"digital-orders\"` for Kindle and other digital purchases, which the default history doesn't include. If provided, appended alongside the time filter.",
        +  "title": "Order Filter"
        +}
    • Addedget_tracking
  5. 8 tool updatesv1.2.0
    • First observedcheck_session
    • First observedget_config
    • First observedget_gift_card_activity
    • First observedget_order
    • First observedget_order_history
    • First observedget_transactions
    • First observedsign_in
    • First observedupdate_config

TDQS

A3.9/5.0

Scored across 13 tools

Disambiguation4/5

The distinction between get_order (single order), get_orders (paged history), and search_orders (keyword search across years) is spelled out clearly, and get_config/update_config are an obvious read/write pair. The main blemish is get_family_members, which is redundant with the household_members field of get_orders — the deprecation note mitigates but does not eliminate the overlap.

Naming Consistency5/5

Every tool is snake_case with a verb-first pattern (get_*, search_*, check_*, sign_in, update_config), and get_order/get_orders follows a predictable singular/plural distinction rather than an arbitrary naming difference.

Tool Count4/5

Thirteen tools is well within a healthy range for an order-history client, and each covers a distinct Amazon surface (orders, tracking, invoices, transactions, gift cards, Prime, auth, config). A couple are niche (get_prime_payments, get_gift_cards) and the deprecated get_family_members earns no place, but nothing is bloated.

Completeness4/5

The read-side lifecycle is solid: auth (sign_in, check_session), configuration (get/update_config), order retrieval (get_orders, get_order, search_orders), and downstream artifacts (tracking, invoices, transactions, gift cards, Prime payments). Gaps are minor for a read-only history client — there is no direct shipment/package listing (tracking must be reached via an order), and no returns/refund surface.

Maintenance

ActivityMaintained
ResponsivenessResponsive

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables interaction with Amazon services through AI assistants, allowing users to search products, manage their cart, view order history, and place orders using natural language.
    12 npm
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables users to search for products, retrieve details, and manage their shopping cart on Amazon through the MCP framework. It also supports viewing order history and provides a demonstration of ordering capabilities within AI interfaces.
    12 npm
    54
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables natural language querying of a customer and orders database through read-only MCP tools for finding customers, listing orders, and generating revenue summaries.
    -