amazon-orders-mcp
amazon-orders-mcp is an unofficial MCP server that gives an AI assistant tools to access a user's Amazon account data and settings.
Sign in to Amazon sites via a browser or terminal, and check saved-session status per site.
Fetch paginated Amazon order history by year, time filter, order type, or Amazon Household member, optionally with full details.
Search all order years by product title, order number, address, or recipient.
Retrieve full details for a specific order.
Get shipment carrier and tracking number details.
Get an order's invoice documents, including printable summaries and seller-issued PDFs.
Retrieve paginated transaction history by days or for a specific order.
Retrieve Gift Card balance and paginated Gift Card activity.
Retrieve Prime membership payment history.
List Amazon Household/family members (deprecated; now included in order history results).
View and update configuration settings, including default Amazon site and sign-in browser, with optional saving and tuning settings.
Provides tools for accessing Amazon order history, retrieving individual orders by order number, viewing payment transactions and gift card activity, and managing settings such as the Amazon site and sign-in session.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@amazon-orders-mcpwhat did I order on Amazon last month?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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-mcpClaude
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-mcpOther 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-httpIt 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-mcpA 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 |
| Opens a browser window for you to sign in to Amazon, when you ask |
| A batch of orders by year, time filter or order type, optionally detailed |
| A batch of items by product, order number, address or recipient, any year |
| One order, by order number |
| A shipment's carrier and tracking number, from an order's shipment ID |
| An order's printable summary, and any invoice PDFs the seller issues |
| A batch of payment transactions over a number of days, or for an order |
| The Gift Card balance, with a batch of its activity over a number of days |
| Prime membership fee charges, each with its order number |
| Whether you're signed in, on each Amazon site you have a session for |
| The settings your assistant can change, and their values |
| 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 toolscheck_sessionARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| site | No | The 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
| Name | Required | Description |
|---|---|---|
| site | Yes | The Amazon site, as `site` accepts it. |
| error | No | Why the session couldn't be checked, if it couldn't. `signed_in` is null then. |
| sites | Yes | Every site checked: the one asked about, or else the default site and every other site with a saved session. |
| default | Yes | Whether it's the user's default site, which tools read when they aren't given `site`. |
| sign_in | No | What to do to sign in, if the user isn't. |
| signed_in | Yes | 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. |
TDQS
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.
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.
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.
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.
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.
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_configARead-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
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| tuning | Yes | Settings you may adjust yourself when calls keep failing. A null value means the default. |
| preferences | Yes | The user's choices, changed only when they ask. A null value means the default. |
TDQS
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.
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.
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.
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.
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.
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_membersARead-only
Deprecated, use get_orders, whose household_members lists the same members.
| Name | Required | Description | Default |
|---|---|---|---|
| site | No | 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`). |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | No | The FamilyMembers, or an empty list if the account has none. |
TDQS
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.
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.
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.
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.
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.
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_cardsARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | The number of days worth of Gift Card activity to get. Ignored when `cursor` is given. | |
| site | No | 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`). | |
| limit | No | Stop 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. | |
| cursor | No | The `cursor` of the previous batch, to fetch the next one. The `days` window it was fetched with carries over. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | No | The results in this batch. |
| cursor | No | Pass 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. |
| balance | No | The current Gift Card balance, or `None` if Amazon didn't show one. |
| has_more | No | `True` if there are more results to fetch with `cursor`. |
TDQS
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.
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.
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.
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.
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.
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_invoicesARead-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).
| Name | Required | Description | Default |
|---|---|---|---|
| site | No | 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`). | |
| order_id | Yes | The Amazon Order ID to lookup. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | No | The Order's Invoices, the Printable Order Summary first. |
TDQS
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.
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.
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.
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.
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.
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_orderBRead-only
Get the full details for a given Amazon Order ID.
| Name | Required | Description | Default |
|---|---|---|---|
| site | No | 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`). | |
| order_id | Yes | The Amazon Order ID to lookup. |
Output Schema
| Name | Required | Description |
|---|---|---|
| index | No | 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. |
| items | No | The Order Items. |
| subtotal | No | The Order subtotal. Only populated when `full_details` is `True`. |
| cancelled | No | `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_card | No | The Gift Card total (rendered as "Gift Card" on digital order details pages), as a negative amount. Only populated when `full_details` is `True`. |
| gift_wrap | No | The Gift Wrap total. Only populated when `full_details` is `True`. |
| recipient | No | The Order Recipients. |
| shipments | No | The Order Shipments. |
| item_count | No | The 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_total | No | The Order grand total. |
| full_details | No | If the Orders full details were populated from its details page. |
| order_number | No | The 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_total | No | The Order refund total. Only populated when `full_details` is `True`. |
| estimated_tax | No | The 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_shipping | No | The Order free shipping, as a negative amount. Only populated when `full_details` is `True`. |
| reward_points | No | The Order reward points, as a negative amount of currency (not a count of points). Only populated when `full_details` is `True`. |
| coupon_savings | No | The Order coupon savings, as a negative amount. Only populated when `full_details` is `True`. |
| is_whole_foods | No | `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_method | No | The 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_total | No | The Order shipping total. Only populated when `full_details` is `True`. |
| amazon_discount | No | The Amazon discount, as a negative amount. Only populated when `full_details` is `True`. |
| total_before_tax | No | The Order total before tax. Only populated when `full_details` is `True`. |
| multibuy_discount | No | The Multibuy discount, as a negative amount. Only populated when `full_details` is `True`. |
| order_placed_date | No | The Order placed date. |
| promotion_applied | No | The Order promotion applied, as a negative amount. Only populated when `full_details` is `True`. |
| order_details_link | No | The Order details link. |
| payment_method_last_4 | No | The Order payment method's last 4 digits, preserved verbatim so leading zeros are not lost. Only populated when `full_details` is `True`. |
| subscription_discount | No | The Order Subscribe & Save discount, as a negative amount. Only populated when `full_details` is `True`. |
TDQS
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.
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.
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.
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.
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.
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_ordersBRead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| site | No | 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`). | |
| year | No | The 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. | |
| limit | No | Stop 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. | |
| cursor | No | The `cursor` of the previous batch, to fetch the next one. The filters it was fetched with carry over. | |
| start_index | No | The index of the Order from which to start fetching in the history. Ignored if `cursor` is provided. | |
| time_filter | No | The 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_details | No | Get the full details for each Order in the batch. This will execute an additional request per Order. | |
| order_filter | No | 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. | |
| family_member_id | No | 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | No | The results in this batch. |
| cursor | No | Pass 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_more | No | `True` if there are more results to fetch with `cursor`. |
| household_members | No | 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. |
TDQS
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.
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.
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.
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.
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.
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_paymentsBRead-only
Get every charge in the Prime membership payment history.
| Name | Required | Description | Default |
|---|---|---|---|
| site | No | 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`). |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | No | A list of the PrimePayments, newest first. |
TDQS
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.
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.
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.
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.
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.
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_trackingARead-only
Get the carrier and tracking number of a Shipment from its package tracking page.
| Name | Required | Description | Default |
|---|---|---|---|
| site | No | 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`). | |
| order_id | Yes | The Amazon Order ID of the Shipment. | |
| shipment_id | Yes | The Shipment's `shipment_id`. Amazon stops showing the tracking link it comes from on older Orders. |
Output Schema
| Name | Required | Description |
|---|---|---|
| carrier | No | The carrier name, e.g. `UPS`, or `Amazon` for Amazon's own delivery network. |
| tracking_number | No | The 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
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.
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.
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.
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.
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.
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_transactionsARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | The number of days worth of Transactions to get. Ignored when `order_id` or `cursor` is given. | |
| site | No | 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`). | |
| limit | No | Stop 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. | |
| cursor | No | The `cursor` of the previous batch, to fetch the next one. The `days` window or `order_id` it was fetched with carries over. | |
| order_id | No | If given, only Transactions for this Amazon Order ID are returned, as in `get_transactions`. Ignored when `cursor` is given. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | No | The results in this batch. |
| cursor | No | Pass 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_more | No | `True` if there are more results to fetch with `cursor`. |
TDQS
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.
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.
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.
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.
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.
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_ordersARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| site | No | 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`). | |
| limit | No | Stop 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. | |
| query | Yes | What to search for: words from a product title, an Order number, or a name or address an Order was sent to. | |
| cursor | No | The `cursor` of the previous batch, to fetch the next one. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | No | The results in this batch. |
| cursor | No | Pass 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_more | No | `True` if there are more results to fetch with `cursor`. |
TDQS
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.
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.
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.
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.
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.
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_inAIdempotent
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.
| Name | Required | Description | Default |
|---|---|---|---|
| site | No | 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. | |
| browser | No | Only 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
| Name | Required | Description |
|---|---|---|
| site | Yes | The Amazon site, as `site` accepts it. |
| error | No | Why the session couldn't be checked, if it couldn't. `signed_in` is null then. |
| sites | Yes | Every site checked: the one asked about, or else the default site and every other site with a saved session. |
| default | Yes | Whether it's the user's default site, which tools read when they aren't given `site`. |
| sign_in | No | What to do to sign in, if the user isn't. |
| signed_in | Yes | 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. |
TDQS
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.
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.
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.
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.
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.
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_configAIdempotent
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
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | The setting, from `get_config`. | |
| save | No | Whether to save the change. By default, a preference is saved and tuning isn't. | |
| value | Yes | The new value. Null or an empty string sets it back to the default. |
Output Schema
| Name | Required | Description |
|---|---|---|
| key | Yes | The setting. |
| saved | Yes | Whether the change was saved, or only made until the server restarts. |
| value | No | The value now in effect. A null value means the default. |
TDQS
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.
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.
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.
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.
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.
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.
13 tool updates
v2.1.2- Changed
check_session14 fields changed- removed
Input schema / properties / site / titleRemoved value: -"Site" - removed
Output schema / $defsRemoved 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" - } -} - removed
Output schema / properties / default / titleRemoved value: -"Default" - removed
Output schema / properties / error / titleRemoved value: -"Error" - removed
Output schema / properties / sign_in / titleRemoved value: -"Sign In" - removed
Output schema / properties / signed_in / titleRemoved value: -"Signed In" - removed
Output schema / properties / site / titleRemoved value: -"Site" - removed
Output schema / properties / sites / items / $refRemoved value: -"#/$defs/SiteSessionStatus" - added
Output schema / properties / sites / items / descriptionAdded value: +"The user's session status on an Amazon site." - added
Output schema / properties / sites / items / propertiesAdded 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" + } +} - added
Output schema / properties / sites / items / requiredAdded value: +[ + "signed_in", + "site", + "default" +] - added
Output schema / properties / sites / items / titleAdded value: +"SiteSessionStatus" - added
Output schema / properties / sites / items / typeAdded value: +"object" - removed
Output schema / properties / sites / titleRemoved value: -"Sites"
- Changed
get_config2 fields changed- removed
Output schema / properties / preferences / titleRemoved value: -"Preferences" - removed
Output schema / properties / tuning / titleRemoved value: -"Tuning"
- Changed
get_family_members1 field changed- removed
Input schema / properties / site / titleRemoved value: -"Site"
- Changed
get_gift_cards4 fields changed- removed
Input schema / properties / cursor / titleRemoved value: -"Cursor" - removed
Input schema / properties / days / titleRemoved value: -"Days" - removed
Input schema / properties / limit / titleRemoved value: -"Limit" - removed
Input schema / properties / site / titleRemoved value: -"Site"
- Changed
get_invoices2 fields changed- removed
Input schema / properties / order_id / titleRemoved value: -"Order Id" - removed
Input schema / properties / site / titleRemoved value: -"Site"
- Changed
get_order2 fields changed- removed
Input schema / properties / order_id / titleRemoved value: -"Order Id" - removed
Input schema / properties / site / titleRemoved value: -"Site"
- Changed
get_orders9 fields changed- removed
Input schema / properties / cursor / titleRemoved value: -"Cursor" - removed
Input schema / properties / family_member_id / titleRemoved value: -"Family Member Id" - removed
Input schema / properties / full_details / titleRemoved value: -"Full Details" - removed
Input schema / properties / limit / titleRemoved value: -"Limit" - removed
Input schema / properties / order_filter / titleRemoved value: -"Order Filter" - removed
Input schema / properties / site / titleRemoved value: -"Site" - removed
Input schema / properties / start_index / titleRemoved value: -"Start Index" - removed
Input schema / properties / time_filter / titleRemoved value: -"Time Filter" - removed
Input schema / properties / year / titleRemoved value: -"Year"
- Changed
get_prime_payments1 field changed- removed
Input schema / properties / site / titleRemoved value: -"Site"
- Changed
get_tracking3 fields changed- removed
Input schema / properties / order_id / titleRemoved value: -"Order Id" - removed
Input schema / properties / shipment_id / titleRemoved value: -"Shipment Id" - removed
Input schema / properties / site / titleRemoved value: -"Site"
- Changed
get_transactions5 fields changed- removed
Input schema / properties / cursor / titleRemoved value: -"Cursor" - removed
Input schema / properties / days / titleRemoved value: -"Days" - removed
Input schema / properties / limit / titleRemoved value: -"Limit" - removed
Input schema / properties / order_id / titleRemoved value: -"Order Id" - removed
Input schema / properties / site / titleRemoved value: -"Site"
- Changed
search_orders4 fields changed- removed
Input schema / properties / cursor / titleRemoved value: -"Cursor" - removed
Input schema / properties / limit / titleRemoved value: -"Limit" - removed
Input schema / properties / query / titleRemoved value: -"Query" - removed
Input schema / properties / site / titleRemoved value: -"Site"
- Changed
sign_in15 fields changed- removed
Input schema / properties / browser / titleRemoved value: -"Browser" - removed
Input schema / properties / site / titleRemoved value: -"Site" - removed
Output schema / $defsRemoved 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" - } -} - removed
Output schema / properties / default / titleRemoved value: -"Default" - removed
Output schema / properties / error / titleRemoved value: -"Error" - removed
Output schema / properties / sign_in / titleRemoved value: -"Sign In" - removed
Output schema / properties / signed_in / titleRemoved value: -"Signed In" - removed
Output schema / properties / site / titleRemoved value: -"Site" - removed
Output schema / properties / sites / items / $refRemoved value: -"#/$defs/SiteSessionStatus" - added
Output schema / properties / sites / items / descriptionAdded value: +"The user's session status on an Amazon site." - added
Output schema / properties / sites / items / propertiesAdded 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" + } +} - added
Output schema / properties / sites / items / requiredAdded value: +[ + "signed_in", + "site", + "default" +] - added
Output schema / properties / sites / items / titleAdded value: +"SiteSessionStatus" - added
Output schema / properties / sites / items / typeAdded value: +"object" - removed
Output schema / properties / sites / titleRemoved value: -"Sites"
- Changed
update_config6 fields changed- removed
Input schema / properties / key / titleRemoved value: -"Key" - removed
Input schema / properties / save / titleRemoved value: -"Save" - removed
Input schema / properties / value / titleRemoved value: -"Value" - removed
Output schema / properties / key / titleRemoved value: -"Key" - removed
Output schema / properties / saved / titleRemoved value: -"Saved" - removed
Output schema / properties / value / titleRemoved value: -"Value"
2 tool updates
v2.1.0- Changed
get_family_members1 field changed- changed
Output schema / properties / items / items / properties / id / descriptionPrevious value: -"The FamilyMember ID, Amazon's `familyMemberId`."New value: +"The FamilyMember ID, the value Amazon's household member filter (`householdMembers`) takes."
- Changed
get_orders3 fields changed- changed
Input schema / properties / family_member_id / descriptionPrevious 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." - changed
Output schema / descriptionPrevious 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." - added
Output schema / properties / household_membersAdded 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" +}
10 tool updates
v2.0.1- Changed
get_family_members1 field changed- changed
Output schema / properties / items / items / descriptionPrevious 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."
- Removed
get_gift_card_activity - Removed
get_gift_card_balance - Added
get_gift_cards - Removed
get_invoice_pdfs - Added
get_invoices - Changed
get_order4 fields changed- changed
Output schema / properties / index / descriptionPrevious 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." - changed
Output schema / properties / items / items / descriptionPrevious 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)." - changed
Output schema / properties / shipments / items / properties / delivery_status / descriptionPrevious value: -"The Shipment delivery status."New value: +"The Shipment delivery status, or `None` once Amazon stops showing it, some weeks after delivery." - changed
Output schema / properties / shipments / items / properties / items / items / descriptionPrevious 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)."
- Removed
get_order_history - Added
get_orders - Added
search_orders
11 tool updates
v1.4.2- Changed
check_session11 fields changed- added
Input schema / properties / siteAdded 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" +} - added
Output schema / $defsAdded 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" + } +} - changed
Output schema / descriptionPrevious 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." - added
Output schema / properties / defaultAdded value: +{ + "description": "Whether it's the user's default site, which tools read when they aren't given `site`.", + "title": "Default", + "type": "boolean" +} - added
Output schema / properties / errorAdded 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" +} - added
Output schema / properties / signed_in / anyOfAdded value: +[ + { + "type": "boolean" + }, + { + "type": "null" + } +] - changed
Output schema / properties / signed_in / descriptionPrevious 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." - removed
Output schema / properties / signed_in / typeRemoved value: -"boolean" - changed
Output schema / properties / site / descriptionPrevious value: -"The Amazon site the server is set to read."New value: +"The Amazon site, as `site` accepts it." - added
Output schema / properties / sitesAdded 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" +} - changed
Output schema / requiredPrevious value: -[ - "signed_in", - "site" -]New value: +[ + "signed_in", + "site", + "default", + "sites" +]
- Added
get_family_members - Changed
get_gift_card_activity1 field changed- added
Input schema / properties / siteAdded 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" +}
- Changed
get_gift_card_balance2 fields changed- added
Input schema / properties / siteAdded 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" +} - changed
Output schema / properties / balance / descriptionPrevious 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."
- Added
get_invoice_pdfs - Changed
get_order1 field changed- added
Input schema / properties / siteAdded 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" +}
- Changed
get_order_history2 fields changed- added
Input schema / properties / family_member_idAdded 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" +} - added
Input schema / properties / siteAdded 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" +}
- Added
get_prime_payments - Changed
get_tracking1 field changed- added
Input schema / properties / siteAdded 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" +}
- Changed
get_transactions1 field changed- added
Input schema / properties / siteAdded 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" +}
- Changed
sign_in11 fields changed- added
Input schema / properties / siteAdded 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" +} - added
Output schema / $defsAdded 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" + } +} - changed
Output schema / descriptionPrevious 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." - added
Output schema / properties / defaultAdded value: +{ + "description": "Whether it's the user's default site, which tools read when they aren't given `site`.", + "title": "Default", + "type": "boolean" +} - added
Output schema / properties / errorAdded 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" +} - added
Output schema / properties / signed_in / anyOfAdded value: +[ + { + "type": "boolean" + }, + { + "type": "null" + } +] - changed
Output schema / properties / signed_in / descriptionPrevious 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." - removed
Output schema / properties / signed_in / typeRemoved value: -"boolean" - changed
Output schema / properties / site / descriptionPrevious value: -"The Amazon site the server is set to read."New value: +"The Amazon site, as `site` accepts it." - added
Output schema / properties / sitesAdded 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" +} - changed
Output schema / requiredPrevious value: -[ - "signed_in", - "site" -]New value: +[ + "signed_in", + "site", + "default", + "sites" +]
3 tool updates
v1.3.0- Added
get_gift_card_balance - Changed
get_order_history1 field changed- added
Input schema / properties / order_filterAdded 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" +}
- Added
get_tracking
8 tool updates
v1.2.0- First observed
check_session - First observed
get_config - First observed
get_gift_card_activity - First observed
get_order - First observed
get_order_history - First observed
get_transactions - First observed
sign_in - First observed
update_config
TDQS
Scored across 13 tools
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.
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.
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.
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
Related MCP Connectors
A paid remote MCP for AI SDK data query MCP, built to return verdicts, receipts, usage logs, and aud
Managed Amazon Seller Central and Ads access for OAuth-capable MCP clients.
Discover, plan and run tools across your connected business systems through one OAuth MCP endpoint
Hosted Amazon Seller and Vendor MCP server for Claude, ChatGPT, Cursor, Codex, Gemini, Copilot.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to search products, manage shopping carts, place orders, and retrieve order history from Amazon and Target accounts.2MIT
- AlicenseNot gradedqualityDmaintenanceEnables 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 npmMIT
- AlicenseNot gradedqualityDmaintenanceEnables 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 npm57MIT
- FlicenseNot gradedqualityDmaintenanceEnables natural language querying of a customer and orders database through read-only MCP tools for finding customers, listing orders, and generating revenue summaries.-