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 any 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:

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

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

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 flag readOnlyHint and openWorldHint, so the safety profile is covered. The description adds meaningful context beyond that: it contacts Amazon remotely and by default fans out across every site with a saved session rather than just one, which is non-obvious scoping 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?

Two compact sentences, front-loaded with the primary action, with the default-scope rule immediately following. No filler, though the trailing 'Also says which site is the default' is a slightly tacked-on secondary behavior.

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?

An output schema exists so return values need no explanation, there is only one optional parameter, and annotations cover safety and openness. The description supplies the remaining scope semantics, leaving nothing an agent needs 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% and the single optional `site` parameter is fully documented in the schema, including its default fallback. The description's clause about the default site and all saved-session sites largely restates the schema description, adding no new syntax or format detail.

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: checking whether saved Amazon sessions still work, plus a secondary effect of reporting the default site. It is clearly distinguishable from data-fetching siblings like get_orders, though it never names `sign_in` as the contrasting tool.

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 default behavior (check default site plus every site with a saved session) is spelled out, which implies the use case of verifying session validity. However, there is no explicit guidance on when to use this versus `sign_in`, or what it means when a session is reported as broken.

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.1/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 a useful framing — the returned keys are exactly the mutable settings — but defers the actual meaning of each setting to an external readthedocs URL that an agent cannot reliably resolve at call time.

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?

Two short sentences, front-loaded with the operation and its scope. The second sentence outsources essential semantics to a URL rather than stating them, which is efficient but only partially earns its place.

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-shape explanation is unnecessary, and annotations carry the read-only/open-world profile. The only meaningful gap is that the per-setting semantics an agent would need to interpret the values live behind an external link rather than in the description.

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?

Zero parameters, so the baseline of 4 applies; there is nothing for the description to disambiguate. The description correctly implies no arguments are needed and that the payload is self-describing key/value settings.

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 (get) and resource (settings/config) and explicitly scopes the result to the subset mutable via `update_config`, which cleanly distinguishes it from the sibling with the matching write operation. An agent can tell from the description alone what it will receive and how it relates to the write counterpart.

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

Usage Guidelines4/5

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

The pairing with `update_config` gives clear read-before-write context, and the zero-parameter, side-effect-free nature means there are few alternative tools an agent could confuse this with. It lacks explicit when-not-to-use guidance, but for a config getter there is little meaningful competing surface to exclude.

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/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 safety is covered. The description adds the genuinely useful behavioral fact that the tool is deprecated, but it does not say whether calls still succeed, when removal happens, or what happens if an agent uses it anyway. It also adds nothing about the per-site read behavior beyond the schema.

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, deprecation notice front-loaded, and the actionable replacement immediately follows. Nothing extraneous.

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?

For a deprecated read-only tool with a single documented parameter and an output schema, the description supplies everything an agent needs to make the routing decision. The only missing piece is whether the tool still functions at all, which would matter if an agent is forced to fall back to it.

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 single `site` parameter is fully documented in the schema, including the default-site fallback. The description adds no parameter guidance, so the baseline 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 names the resource indirectly through the replacement's field ('household_members lists the same members'), making clear this tool returns family/household members, and it explicitly distinguishes itself from the sibling get_orders. It never states the verb directly ('lists family members'), so the purpose is inferred rather than declared.

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 gives an explicit do-not-use instruction plus the exact alternative (`get_orders`) and the specific field that covers the same need (`household_members`). An agent has no ambiguity about which tool to call.

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.5/5.0
Behavior3/5

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

readOnlyHint=true and openWorldHint=true already declare the safety profile, and the description usefully discloses the batching/cursor continuation model. It says nothing about auth/session requirements (check_session is a sibling) or rate limits, so added value is moderate.

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?

One front-loaded sentence that names the primary output first, then the activity batch and cursor. No filler, though the trailing cursor clause reads slightly like schema restatement.

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 shape needn't be described, and all four parameters are fully documented in the schema. The description covers purpose and pagination adequately; only session/site-selection context is left implicit.

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 documented in the schema, including the interaction where 'days' is ignored when 'cursor' is given. The description merely restates the days/cursor relationship, 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 ('Get the Amazon Gift Card balance') plus the secondary payload (activity batch) and cursor mechanic. The resource is clearly distinct from siblings like get_transactions and get_prime_payments, though no sibling is named 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 implied by the resource ('balance and activity for a given number of days'), but there is no explicit when-to-use, when-not, or routing to alternatives such as get_transactions for payment-level history.

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

A3.9/5.0
Behavior4/5

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

With readOnlyHint and openWorldHint already declared, the description adds real context beyond annotations: the Printable Order Summary is HTML and available on every site, while invoice and credit note PDFs are seller-issued and mostly only on EU sites. That availability variance is valuable and not in structured fields; only auth/permission details are absent.

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 the resource and scope stated first, followed by the document types. The nested parentheticals are a bit dense but every clause carries information about what is returned.

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 needn't be explained, and annotations cover the safety profile. The description adequately conveys purpose and output variety; only explicit sibling routing guidance is missing, which is a minor gap for a simple two-parameter read tool.

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 both parameters (order_id, site) are documented there, so the schema does the heavy lifting. The description reinforces that documents are tied to a single Order ID and mentions site coverage, but adds no format or defaulting detail beyond the schema.

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 of a given Amazon Order ID') and enumerates exactly what is returned (Printable Order Summary HTML plus seller-issued invoice and credit note PDFs). This clearly separates it from siblings like get_order or get_transactions without opening 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?

The purpose implies when to use it, but there is no explicit routing guidance versus get_order, get_transactions, or search_orders, and no stated prerequisites (e.g., that a session must exist). Usage is inferable rather than directed.

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

get_orderB
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

B3.2/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 only that the result is 'full details' (a complete record), and says nothing about failure modes for an unknown Order ID or the site-resolution 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 front-loaded sentence with no filler. It is efficient, though its brevity leaves room for a short clause on scope or alternatives.

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

Completeness3/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 described, and annotations cover the read-only nature. However, for a cross-site tool whose site parameter defaults to a session-derived value, the description omits any note about site scoping or session prerequisites.

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 schema itself explains both order_id and the site default that falls back to the user's default site via check_session. The description adds no meaning beyond that, so the baseline 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?

States a specific verb and resource ('Get the full details for a given Amazon Order ID'), which distinguishes it from list-oriented siblings like get_orders and search_orders by implying a single-record lookup. It never names those siblings explicitly, so the differentiation relies on inference.

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

Usage Guidelines2/5

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

There is no guidance on when to prefer this over get_orders, search_orders, or get_transactions, nor any mention of preconditions such as needing a valid session. The only usage signal is implicit in the required order_id.

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

get_ordersB
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

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint and openWorldHint, so safety is covered. The description adds the batch/cursor pagination model and the household-visibility default, but these largely restate schema-level behavior rather than disclosing new operational traits such as rate limits or page size.

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 that wastes no words and leads with the core action and resource. Its only minor weakness is cramming three related facts (time period, household members, cursor) into one dense clause.

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 and annotations covering the read-only profile, the description gives enough for an agent to call the tool correctly, including the pagination model. The remaining gap is routing guidance against sibling order tools, which is minor given the schema richness.

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 all nine parameters are documented in the schema itself. The description adds no syntax, format, or precedence detail (e.g., time_filter over year) beyond what the schema already provides, 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 ('Get'), resource ('Amazon Order history'), and scope ('a batch ... for a given time period') plus the cursor-based pagination and household visibility. It is clearly distinguishable from the singular get_order and from a search tool, but it never names a sibling to route against.

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

Usage Guidelines2/5

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

No explicit when-to-use or when-not guidance and no mention of alternatives like search_orders or get_order. The batching/pagination framing implies list-style usage, but the agent is left to infer when this tool is preferred.

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

get_prime_paymentsB
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

B3.2/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 phrase "every charge" implies an exhaustive, unpaginated read, which is modest added context, but nothing is said about auth requirements, history depth/limits, or cross-site 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 front-loaded sentence with zero filler. It is efficient, though its terseness leaves little structure to guide the agent.

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

Completeness3/5

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

An output schema exists and the only parameter is fully described, so most of the burden is carried by structured fields. Still, for a payment-history read tool the description doesn't clarify history scope, site behavior, or how it differs from the generic transaction 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 coverage is 100% and the single `site` parameter is fully documented in the schema, including its default and a pointer to check_session. The description adds nothing about the parameter, so 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?

The description names a specific verb ("Get") and a specific resource ("charge[s] in the Prime membership payment history"), which is narrow enough to separate it from generic siblings like get_transactions or get_orders. It does not, however, explicitly name a sibling or state the boundary between this and the general transaction tools.

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

Usage Guidelines2/5

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

There is no when-to-use / when-not-to-use guidance and no mention of the alternative tools (e.g. get_transactions) that also return payment data. The use case must be inferred entirely from the resource name.

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 safety and world-access profile is covered. The description adds that the values are scraped from the tracking page, which hints at external-dependency behavior, but says nothing about what happens when no tracking link exists — a known limitation the schema hints at but the description omits.

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 tight sentence with the resource and the source of the data front-loaded. No padding or redundancy.

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 needn't be spelled out, and annotations cover safety. What's missing is any mention of the failure/edge case (no tracking link on older orders), though the schema does surface it per-parameter, so the omission is minor.

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%, including the site default behavior and the note that older orders stop showing the tracking link. The description adds no parameter-level meaning beyond what the schema already provides, 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: retrieve carrier and tracking number for a Shipment. It also identifies the source of the data (the package tracking page), which helps an agent understand what it actually returns. It doesn't explicitly contrast with siblings like get_order, but the 'shipment tracking' scope is distinctive enough to route correctly.

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 phrase 'from its package tracking page' implies the tool applies when a shipment has a tracking link, but there is no explicit when-to-use vs when-to-use-something-else guidance and no named alternatives among the siblings. Usage is inferable but not directed.

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

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 safety profile is covered. The description adds useful behavioral context about batching and cursor pagination. It does not discuss authentication or rate limits, but with annotations present this is a solid additional 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?

The description is a single front-loaded sentence that covers the main resource, scopes, and pagination behavior with no wasted text.

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 the 100% schema coverage, output schema, and annotations, the description is complete enough for correct invocation. Minor details such as site defaulting and limit page behavior are left to the schema, but the core usage modes are covered.

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 all five parameters are already fully documented in the schema. The description reinforces the days/order/cursor modes but adds no format or edge-case meaning beyond what the schema provides, 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?

The description states a specific verb and resource: getting a batch of Amazon Transaction history. It also clarifies the two scopes, a number of days or a single order, plus cursor-based pagination. It does not explicitly differentiate itself from siblings like get_orders or search_orders, so it falls short of a 5.

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

Usage Guidelines4/5

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

The description gives clear usage context: fetch by days or by a single order, and use the cursor to get the next batch. It does not state when to prefer this tool over sibling order tools, but the transaction-specific scope is reasonably clear from the description.

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.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint and openWorldHint, so safety is covered. The description usefully adds that the search spans all years and returns item-level results with their parent Order's number and date, but says nothing about pagination (cursor/limit behavior beyond the schema), per-site scoping, or result ordering.

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?

One dense sentence with no filler, front-loaded on the search scope before the returned unit. It is long but every clause carries information about matching fields or output shape.

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, full parameter descriptions, and read-only/open-world annotations, the description only needs to establish purpose and scope, which it does (all-years, item-level results). Minor gaps around pagination and default-site behavior are already handled by the schema.

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 baseline is 3. The description does add a little conceptual meaning for `query` (the same matching the site's own search box performs across title, order number, and recipient/address), but repeats what the schema already documents 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?

Names a specific verb (search) and resource (Order history) plus the fields matched (product title, order number, address, recipient) and the returned unit (each Item with its Order number and date). It is clearly distinguishable from get_order/get_orders in substance, but it never names those siblings, so the differentiation is inferred rather than stated.

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 'as the search box on Your Orders does' analogy implies the case where the user has a keyword rather than an order ID, and 'every year' implies it is not date-scoped. But there is no explicit when-to-use / when-not statement and no pointer to get_orders or get_order for listing or fetching a known order.

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
Behavior4/5

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

Goes well beyond the annotations: it discloses that a real browser window opens on the user's machine, that credentials are entered on Amazon's own page and never seen by the tool, and that the call blocks waiting on the user with a 120-second budget. It does not say what happens on timeout/success/failure (does it return a session, throw, leave state changed), which is the one behavioral gap.

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?

Four short sentences, front-loaded with the action and trigger, then the mechanism, then the timeout, then the error path — in the order an agent needs them. No restated title, no 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?

With annotations declaring the mutating/open-world profile, an output schema covering return values, and full parameter documentation in the schema, the description supplies exactly the missing pieces: trigger condition, blocking/timeout behavior, credential privacy, and the retry-with-browser loop.

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; the description earns above that by giving the `browser` parameter a conditional usage rule (only on the 'no browser' error, value is the user's choice, persisted so the user is asked once) that is not derivable from the schema text alone. `site` is only implicitly referenced via the general sign-in flow, so it stops short of a 5.

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 immediately distinguishes itself from the session-checking siblings by naming the trigger 'after a tool says they aren't signed in'. An agent can identify this as the authentication 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 when-to-use conditions (user asks, or a prior tool reports no session) and an explicit when-to-use-again path: if the tool reports no browser, ask the user which to use and re-call with `browser`. The fallback is spelled out, not left to inference.

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.8/5.0
Behavior5/5

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

Annotations cover the safety profile, and the description adds substantial beyond it: persistence semantics (preference saved, tuning lasts until restart unless `save`), the side effect that `warn_on_missing_required_field` returns partial data, and the required follow-up `check_session` after changing `domain`.

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?

Dense but well-structured and front-loaded: the change-preference vs self-tune rule comes first, persistence and follow-up last. It is long, but nearly every sentence carries actionable constraint; minor trimming of the doc link sentence is possible.

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?

Given an output schema exists and annotations carry the safety profile, the description covers the remaining gaps: when to invoke, persistence, self-tune conditions, and post-change verification. An agent can act correctly without opening anything else.

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 baseline is 3, but the description adds real meaning beyond the schema: `domain` is the default site read when `site` is absent, and the `save` default differs between preference and tuning changes. This genuinely enriches parameter interpretation.

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 (change) and resource (setting/preference), and distinguishes itself from get_config by naming `key` as coming from that tool. The agent can tell this is the write counterpart to reading config.

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?

Explicitly separates when the agent may change prefs on its own (only when user asks) from when it may self-tune (calls keep failing), and routes to an alternative (pass `site` instead of switching `domain`). No inference needed.

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. 13 tool updatesv2.1.2
    • Changedcheck_session14 fields changed
      • removedInput schema / properties / site / title
        Removed value: -"Site"
      • removedOutput schema / $defs
        Removed 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"
        -  }
        -}
      • removedOutput schema / properties / default / title
        Removed value: -"Default"
      • removedOutput schema / properties / error / title
        Removed value: -"Error"
      • removedOutput schema / properties / sign_in / title
        Removed value: -"Sign In"
      • removedOutput schema / properties / signed_in / title
        Removed value: -"Signed In"
      • removedOutput schema / properties / site / title
        Removed value: -"Site"
      • removedOutput schema / properties / sites / items / $ref
        Removed value: -"#/$defs/SiteSessionStatus"
      • addedOutput schema / properties / sites / items / description
        Added value: +"The user's session status on an Amazon site."
      • addedOutput schema / properties / sites / items / properties
        Added value: +{
        +  "default": {
        +    "description": "Whether it's the user's default site, which tools read when they aren't given `site`.",
        +    "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."
        +  },
        +  "sign_in": {
        +    "anyOf": [
        +      {
        +        "type": "string"
        +      },
        +      {
        +        "type": "null"
        +      }
        +    ],
        +    "default": null,
        +    "description": "What to do to sign in, if the user isn't."
        +  },
        +  "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."
        +  },
        +  "site": {
        +    "description": "The Amazon site, as `site` accepts it.",
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / sites / items / required
        Added value: +[
        +  "signed_in",
        +  "site",
        +  "default"
        +]
      • addedOutput schema / properties / sites / items / title
        Added value: +"SiteSessionStatus"
      • addedOutput schema / properties / sites / items / type
        Added value: +"object"
      • removedOutput schema / properties / sites / title
        Removed value: -"Sites"
    • Changedget_config2 fields changed
      • removedOutput schema / properties / preferences / title
        Removed value: -"Preferences"
      • removedOutput schema / properties / tuning / title
        Removed value: -"Tuning"
    • Changedget_family_members1 field changed
      • removedInput schema / properties / site / title
        Removed value: -"Site"
    • Changedget_gift_cards4 fields changed
      • removedInput schema / properties / cursor / title
        Removed value: -"Cursor"
      • removedInput schema / properties / days / title
        Removed value: -"Days"
      • removedInput schema / properties / limit / title
        Removed value: -"Limit"
      • removedInput schema / properties / site / title
        Removed value: -"Site"
    • Changedget_invoices2 fields changed
      • removedInput schema / properties / order_id / title
        Removed value: -"Order Id"
      • removedInput schema / properties / site / title
        Removed value: -"Site"
    • Changedget_order2 fields changed
      • removedInput schema / properties / order_id / title
        Removed value: -"Order Id"
      • removedInput schema / properties / site / title
        Removed value: -"Site"
    • Changedget_orders9 fields changed
      • removedInput schema / properties / cursor / title
        Removed value: -"Cursor"
      • removedInput schema / properties / family_member_id / title
        Removed value: -"Family Member Id"
      • removedInput schema / properties / full_details / title
        Removed value: -"Full Details"
      • removedInput schema / properties / limit / title
        Removed value: -"Limit"
      • removedInput schema / properties / order_filter / title
        Removed value: -"Order Filter"
      • removedInput schema / properties / site / title
        Removed value: -"Site"
      • removedInput schema / properties / start_index / title
        Removed value: -"Start Index"
      • removedInput schema / properties / time_filter / title
        Removed value: -"Time Filter"
      • removedInput schema / properties / year / title
        Removed value: -"Year"
    • Changedget_prime_payments1 field changed
      • removedInput schema / properties / site / title
        Removed value: -"Site"
    • Changedget_tracking3 fields changed
      • removedInput schema / properties / order_id / title
        Removed value: -"Order Id"
      • removedInput schema / properties / shipment_id / title
        Removed value: -"Shipment Id"
      • removedInput schema / properties / site / title
        Removed value: -"Site"
    • Changedget_transactions5 fields changed
      • removedInput schema / properties / cursor / title
        Removed value: -"Cursor"
      • removedInput schema / properties / days / title
        Removed value: -"Days"
      • removedInput schema / properties / limit / title
        Removed value: -"Limit"
      • removedInput schema / properties / order_id / title
        Removed value: -"Order Id"
      • removedInput schema / properties / site / title
        Removed value: -"Site"
    • Changedsearch_orders4 fields changed
      • removedInput schema / properties / cursor / title
        Removed value: -"Cursor"
      • removedInput schema / properties / limit / title
        Removed value: -"Limit"
      • removedInput schema / properties / query / title
        Removed value: -"Query"
      • removedInput schema / properties / site / title
        Removed value: -"Site"
    • Changedsign_in15 fields changed
      • removedInput schema / properties / browser / title
        Removed value: -"Browser"
      • removedInput schema / properties / site / title
        Removed value: -"Site"
      • removedOutput schema / $defs
        Removed 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"
        -  }
        -}
      • removedOutput schema / properties / default / title
        Removed value: -"Default"
      • removedOutput schema / properties / error / title
        Removed value: -"Error"
      • removedOutput schema / properties / sign_in / title
        Removed value: -"Sign In"
      • removedOutput schema / properties / signed_in / title
        Removed value: -"Signed In"
      • removedOutput schema / properties / site / title
        Removed value: -"Site"
      • removedOutput schema / properties / sites / items / $ref
        Removed value: -"#/$defs/SiteSessionStatus"
      • addedOutput schema / properties / sites / items / description
        Added value: +"The user's session status on an Amazon site."
      • addedOutput schema / properties / sites / items / properties
        Added value: +{
        +  "default": {
        +    "description": "Whether it's the user's default site, which tools read when they aren't given `site`.",
        +    "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."
        +  },
        +  "sign_in": {
        +    "anyOf": [
        +      {
        +        "type": "string"
        +      },
        +      {
        +        "type": "null"
        +      }
        +    ],
        +    "default": null,
        +    "description": "What to do to sign in, if the user isn't."
        +  },
        +  "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."
        +  },
        +  "site": {
        +    "description": "The Amazon site, as `site` accepts it.",
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / sites / items / required
        Added value: +[
        +  "signed_in",
        +  "site",
        +  "default"
        +]
      • addedOutput schema / properties / sites / items / title
        Added value: +"SiteSessionStatus"
      • addedOutput schema / properties / sites / items / type
        Added value: +"object"
      • removedOutput schema / properties / sites / title
        Removed value: -"Sites"
    • Changedupdate_config6 fields changed
      • removedInput schema / properties / key / title
        Removed value: -"Key"
      • removedInput schema / properties / save / title
        Removed value: -"Save"
      • removedInput schema / properties / value / title
        Removed value: -"Value"
      • removedOutput schema / properties / key / title
        Removed value: -"Key"
      • removedOutput schema / properties / saved / title
        Removed value: -"Saved"
      • removedOutput schema / properties / value / title
        Removed value: -"Value"
  2. 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"
        +}
  3. 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
  4. 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"
        +]
  5. 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
  6. 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

Most tools target clearly distinct resources (orders, transactions, tracking, invoices, gift cards, Prime payments, config, session), and descriptions spell out the differences. However, `get_order` vs `get_orders` differ only by plurality, `get_transactions` can be scoped to a single Order overlapping with `get_order`, and the deprecated `get_family_members` duplicates data already returned by `get_orders`, creating some mselection risk.

Naming Consistency5/5

All names are snake_case following a verb_noun pattern: get_order, get_orders, search_orders, get_tracking, get_invoices, get_gift_cards, get_prime_payments, check_session, sign_in, get_config, update_config. The few non-`get_*` verbs (sign_in, check_session, search_orders, update_config) are semantically appropriate and still consistent with the convention.

Tool Count5/5

13 tools sits squarely in the well-scoped range, with each read surface (orders, transactions, tracking, invoices, gift cards, Prime payments, config/session management) earning its place. The only slack is the deprecated `get_family_members`, which is a minor redundancy rather than bloat.

Completeness4/5

The surface covers the order-history domain thoroughly: detail lookup, paginated history, cross-year search, shipments, invoices, gift cards, Prime charges, and auth/config lifecycle. Gaps exist for adjacent data an agent might expect, such as returns/refunds or the address book, and the server is read-only (no cancel/return actions), but core workflows have no dead ends.

Maintenance

ActivityMaintained
ResponsivenessLimited data

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.
    3 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.
    3 npm
    57
    MIT
  • F
    license
    Not graded
    quality
    D
    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.
    -