# Amazon Orders (pypi · amazon-orders-mcp)

An MCP server for Amazon order history, line items, and transactions, built on amazon-orders

- Trust score: 68/100 (medium)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-10-19

## Components

- pypi · `amazon-orders-mcp`: 68/100 (this document), [markdown](https://verifymcp.io/servers/alexdlaird-amazon-orders-mcp/amazon-orders-mcp.md), [page](https://verifymcp.io/servers/alexdlaird-amazon-orders-mcp/amazon-orders-mcp)

## Channel facts

- Registry: `pypi`
- Package: `amazon-orders-mcp`
- Version: `1.2.0`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-10-19.

- **Supply Chain Security**: 94/100
  - No malware found by supply-chain analysis.
  - No known CVEs affecting this package version or its production dependencies.
  - Declares code that runs automatically (build-time code we could not rule out (a Hatch, PDM or setuptools build hook, a dynamic version we could not read statically, shipped VCS metadata or a stray root module)) and that we could not recognise. It may be perfectly ordinary, but we have not established what it does.
  - 2 of 40 dependencies flagged as unhealthy.
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 0 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 70/100
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 1057 tokens (~132/item across 8 items; 8 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 0/100
  - Stability not yet verified: not enough scan history yet (needs a 30-day window).
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 8 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 9 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a current MCP spec version (2026-07-28).

**Unverified: 1 category.** A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

## Install

### How do I install the Amazon Orders MCP server?

Amazon Orders runs locally as a PyPI package, launched with uvx amazon-orders-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add alexdlaird-amazon-orders-mcp -- uvx amazon-orders-mcp
```

### Cursor

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

### VS Code

```json
{
  "servers": {
    "alexdlaird-amazon-orders-mcp": {
      "command": "uvx",
      "args": [
        "amazon-orders-mcp"
      ]
    }
  }
}
```

### Codex

```bash
codex mcp add alexdlaird-amazon-orders-mcp -- uvx amazon-orders-mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "alexdlaird-amazon-orders-mcp": {
      "type": "local",
      "command": [
        "uvx",
        "amazon-orders-mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add alexdlaird-amazon-orders-mcp --command uvx --arg amazon-orders-mcp
```

### Hermes

```yaml
mcp_servers:
  alexdlaird-amazon-orders-mcp:
    command: "uvx"
    args: ["amazon-orders-mcp"]
```

### Netclaw

```json
{
  "McpServers": {
    "alexdlaird-amazon-orders-mcp": {
      "Transport": "stdio",
      "Command": "uvx",
      "Arguments": [
        "amazon-orders-mcp"
      ]
    }
  }
}
```

### Vellum

```bash
assistant mcp add alexdlaird-amazon-orders-mcp -t stdio -c uvx -a amazon-orders-mcp
```

### Other

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

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-10-15 (score 68)

First indexed and scored.

## MCP tools (8)

### `sign_in` (~141 tokens)

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`.

Input parameters:

- `browser`: 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 parameters:

- `sign_in`: What to do to sign in, if the user isn't.
- `signed_in` (boolean): 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.
- `site` (string): The Amazon site the server is set to read.

### `get_order_history` (~261 tokens)

Get a batch of the Amazon Order history for a given time period, with a cursor to fetch the next batch.

Input parameters:

- `cursor`: The `cursor` of the previous batch, to fetch the next one. The filters it was fetched with carry over.
- `full_details` (boolean): Get the full details for each Order in the batch. This will execute an additional request per Order.
- `limit`: 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.
- `start_index`: The index of the Order from which to start fetching in the history. Ignored if `cursor` is provided.
- `time_filter`: 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.
- `year`: 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.

Output parameters:

- `cursor` (object|null): 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` (boolean): `True` if there are more results to fetch with `cursor`.
- `items` (array): The results in this batch.

### `get_order` (~33 tokens)

Get the full details for a given Amazon Order ID.

Input parameters:

- `order_id` (string, required): The Amazon Order ID to lookup.

Output parameters:

- `amazon_discount` (number): The Amazon discount, as a negative amount. Only populated when `full_details` is `True`.
- `cancelled` (boolean): `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.
- `coupon_savings` (number): The Order coupon savings, as a negative amount. Only populated when `full_details` is `True`.
- `estimated_tax` (number): 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` (number): The Order free shipping, as a negative amount. Only populated when `full_details` is `True`.
- `full_details` (boolean): If the Orders full details were populated from its details page.
- `gift_card` (number): 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` (number): The Gift Wrap total. Only populated when `full_details` is `True`.
- `grand_total` (number): The Order grand total.
- `index` (integer): 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 app…
- `is_whole_foods` (boolean): `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_cou…
- `item_count` (integer): 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 sho…
- `items` (array): The Order Items.
- `multibuy_discount` (number): The Multibuy discount, as a negative amount. Only populated when `full_details` is `True`.
- `order_details_link` (string): The Order details link.
- `order_number` (string): 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).
- `order_placed_date` (string): The Order placed date.
- `payment_method` (string): 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").
- `payment_method_last_4` (string): The Order payment method's last 4 digits, preserved verbatim so leading zeros are not lost. Only populated when `full_details` is `True`.
- `promotion_applied` (number): The Order promotion applied, as a negative amount. Only populated when `full_details` is `True`.
- `recipient` (object): The Order Recipients.
- `refund_total` (number): The Order refund total. Only populated when `full_details` is `True`.
- `reward_points` (number): The Order reward points, as a negative amount of currency (not a count of points). Only populated when `full_details` is `True`.
- `shipments` (array): The Order Shipments.
- `shipping_total` (number): The Order shipping total. Only populated when `full_details` is `True`.
- `subscription_discount` (number): The Order Subscribe & Save discount, as a negative amount. Only populated when `full_details` is `True`.
- `subtotal` (number): The Order subtotal. Only populated when `full_details` is `True`.
- `total_before_tax` (number): The Order total before tax. Only populated when `full_details` is `True`.

### `get_transactions` (~180 tokens)

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.

Input parameters:

- `cursor`: The `cursor` of the previous batch, to fetch the next one. The `days` window or `order_id` it was fetched with carries over.
- `days` (integer): The number of days worth of Transactions to get. Ignored when `order_id` or `cursor` is given.
- `limit`: 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.
- `order_id`: If given, only Transactions for this Amazon Order ID are returned, as in `get_transactions`. Ignored when `cursor` is given.

Output parameters:

- `cursor` (object|null): 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` (boolean): `True` if there are more results to fetch with `cursor`.
- `items` (array): The results in this batch.

### `get_gift_card_activity` (~41 tokens)

Get Amazon Gift Card activity for a given number of days.

Input parameters:

- `days` (integer): The number of days worth of Gift Card activity to get.

Output parameters:

- `items` (array): A list of the requested GiftCardActivity, newest first.

### `get_config` (~49 tokens)

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

Output parameters:

- `preferences` (object): The user's choices, changed only when they ask. A null value means the default.
- `tuning` (object): Settings you may adjust yourself when calls keep failing. A null value means the default.

### `update_config` (~241 tokens)

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. After changing `domain`, check with `check_session`, since the user may need to sign in again. What each setting does: https://amazon-orders.readthedocs.io/api.html#amazonorders.conf.AmazonOrdersConfig

Input parameters:

- `key` (string, required): The setting, from `get_config`.
- `save`: Whether to save the change. By default, a preference is saved and tuning isn't.
- `value` (required): The new value. Null or an empty string sets it back to the default.

Output parameters:

- `key` (string): The setting.
- `saved` (boolean): Whether the change was saved, or only made until the server restarts.
- `value`: The value now in effect. A null value means the default.

### `check_session` (~30 tokens)

Check with Amazon whether the user's saved session still works, and which Amazon site the server is set to read.

Output parameters:

- `sign_in`: What to do to sign in, if the user isn't.
- `signed_in` (boolean): 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.
- `site` (string): The Amazon site the server is set to read.

## Diagnostics

Captured diagnostic sections: Provenance, Install scripts, Dependencies. The full working is on the page: https://verifymcp.io/servers/alexdlaird-amazon-orders-mcp/amazon-orders-mcp#diagnostics

## Score history

- 2026-10-19: 68
- 2026-10-18: 68
- 2026-10-17: 68
- 2026-10-16: 68
- 2026-10-15: 68

## Common questions

### What is the Amazon Orders MCP server?

Amazon Orders is an MCP server listed in the public MCP registry as io.github.alexdlaird/amazon-orders-mcp. An MCP server for Amazon order history, line items, and transactions, built on amazon-orders. This page covers its PyPI package (amazon-orders-mcp).

### Is the Amazon Orders MCP server safe to use?

Amazon Orders scores 68 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 19 October 2026. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Amazon Orders MCP server expose?

Amazon Orders exposes 8 tools: sign_in, get_order_history, get_order, get_transactions, get_gift_card_activity, and 3 more. Their descriptions and schemas cost roughly 976 tokens of context every time the server is loaded.

### Is the Amazon Orders MCP server still maintained?

Amazon Orders is still listed as active in the MCP registry. We last reached this channel on 19 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

### What licence is the Amazon Orders MCP server under?

Amazon Orders declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.

## Links

- PyPI project: https://pypi.org/project/amazon-orders-mcp/
- Socket report: https://socket.dev/pypi/package/amazon-orders-mcp
- Repository: https://github.com/alexdlaird/amazon-orders-mcp
- Changelog RSS feed: https://verifymcp.io/servers/alexdlaird-amazon-orders-mcp/amazon-orders-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/alexdlaird-amazon-orders-mcp/amazon-orders-mcp.json
- HTML version of this page: https://verifymcp.io/servers/alexdlaird-amazon-orders-mcp/amazon-orders-mcp
