Amazon Orders MCP
Fetches and manages historical Amazon consumer orders from multiple accounts, with tools for syncing orders into a local database, querying orders with filters, and managing saved account profiles.
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 MCPSync my Amazon orders and show me this year's purchases."
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
MCP server for fetching historical Amazon consumer orders from multiple accounts.
Database
Orders are stored in ~/.amazon-orders-mcp/orders.db (SQLite).
Import orders — one click; pulls anything not already in the database (skips known orders, refreshes recent ones for status/tracking)
View — reads from the database; use the toolbar to filter by date, search, or hide cancelled
Related MCP server: Amazon.in MCP Server
MCP tools
sync_orders— import new orders into the databaseget_orders— read from the database (optional filters)list_accounts,login_account,remove_account
Setup
Already registered in ~/.cursor/mcp.json. Restart Cursor or reload MCP servers to pick it up.
First run installs dependencies automatically via run-amazon-orders-mcp.sh.
Tools
list_accounts — saved profiles and session status
login_account — open browser to sign in (complete 2FA manually)
get_orders — fetch orders (
accounts:"all"or comma-separated names)remove_account — delete a saved profile
Example
login_accountwithaccount_name: "personal",region: "us"get_orderswithaccounts: "all",year: 2025,max_orders: 10
Output fields
Each row: account, order_id, item_name, order_date, order_status, tracking_number
Limitations
Unofficial scraping — Amazon HTML changes may break parsers
Tracking fetch adds ~2s per shipment
US (
amazon.com) is the primary target; other regions supported via region codeRe-run
login_accountwhen sessions expire
Sessions stored in ~/.amazon-orders-mcp/profiles/ (mode 700).
Available Tools
5 toolsget_ordersA
Read orders from the local database (run sync_orders first to populate). Returns item name, order date, tracking number, and order status per item.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows to return | |
| search | No | Search item name, order ID, or tracking | |
| accounts | Yes | Account profile name(s), comma-separated, or "all" | |
| end_date | No | Filter to date YYYY-MM-DD | |
| start_date | No | Filter from date YYYY-MM-DD | |
| hide_cancelled | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully discloses the data-freshness dependency (local DB must be populated by sync_orders) and enumerates returned fields, but says nothing about auth requirements, pagination, ordering, or failure modes when the DB is unpopulated.
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 sentences, front-loaded with the action and immediately followed by the prerequisite and return shape. No filler 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?
No output schema exists, so listing the returned fields (item name, order date, tracking number, order status) is genuinely necessary and present. The prerequisite on sync_orders is covered; only edge cases like empty results or auth needs are unaddressed.
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 83%, so the schema already documents limit, search, accounts, start_date, end_date, and hide_cancelled. The description adds no parameter-level detail beyond noting results are 'per item', 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 ('Read orders from the local database') and adds the source of truth, which distinguishes it from sync_orders by implying reads are local rather than remote. It does not explicitly contrast with list_accounts or the other siblings, so it stops short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit precondition — 'run sync_orders first to populate' — which is real routing guidance for an agent that might otherwise call this against an empty store. It offers no exclusions or explicit alternatives, but the prerequisite is the main contextual need here.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_accountsA
List saved Amazon account profiles, session status, and last sync time.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, but it does disclose the returned fields (session status, last sync time), which is genuine behavioral value given there is no output schema. It omits any statement about auth requirements, pagination, or scoping to a single account.
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 front-loaded and no wasted words. Every clause earns its place by naming a returned field.
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 no-parameter list tool with no output schema, the description adequately conveys what the caller receives. It falls short only on usage context and whether the list is scoped or paginated, which are minor for a simple enumeration.
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 is 4. There is nothing for the description to clarify 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?
Specific verb ("List") plus resource ("saved Amazon account profiles") and it enumerates the returned data (session status, last sync time). It is distinguishable from siblings like login_account/remove_account by the read-only listing framing, though it never names an alternative 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 guidance on when to call this versus siblings such as login_account or sync_orders, and no prerequisites stated. Usage is only weakly implied by the verb "List".
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
login_accountA
Open a browser window to log into an Amazon account. Saves the session for future order fetches. Complete sign-in and 2FA manually in the browser.
| Name | Required | Description | Default |
|---|---|---|---|
| region | No | Amazon region code. Supported: us, uk, ca, de, fr, es, it, nl, jp, au, mx, in, ae, sa, ie, be | us |
| account_name | Yes | Profile name for this account (e.g. personal, work) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses that a browser window is opened, that the session is persisted, and that sign-in and 2FA are manual human steps. It omits blocking/timeout behavior and what happens if a session already exists, but the critical interactive nature is clearly communicated.
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?
Three short sentences, each earning its place: the action, the persistence effect, and the manual step. The key information is front-loaded with 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?
No output schema exists, and the description covers the essential behavior for a two-parameter authentication tool, including the manual intervention requirement. It could say more about session lifetime or prerequisites for re-login, but nothing critical for calling it correctly is 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 description coverage is 100%, so account_name and region are already fully documented in the schema with examples and the supported region list. The description adds no parameter-level meaning beyond the schema, making the baseline of 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?
States a specific verb and resource: opens a browser window to log into an Amazon account. It is unmistakably distinct from siblings like list_accounts, sync_orders, get_orders, and remove_account, all of which operate on an existing session rather than creating one.
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 clear context for use: the saved session is needed for future order fetches, and sign-in/2FA must be completed manually. However, it names no explicit alternative and does not state when not to use it (e.g. if a session already exists), so the guidance is contextual rather than exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_accountB
Delete a saved account profile, its browser session, and cached orders.
| Name | Required | Description | Default |
|---|---|---|---|
| account_name | Yes | Profile name to remove |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It does add valuable non-obvious context by disclosing the cascading effects (browser session and cached orders are also deleted), but it omits whether the deletion is permanent/reversible, whether it requires an active session or re-login, and what confirmation is needed.
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; the destructive verb leads and the scope of deletion follows immediately.
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 destructive single-parameter tool with no annotations and no output schema, the description covers what is removed but not the permanence, error behavior, or auth requirements. It is adequate but leaves meaningful holes for an irreversible operation.
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 parameter 'account_name' is already documented as 'Profile name to remove'. The description adds no syntax, format, or matching semantics beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb ('Delete') and resource ('saved account profile'), and further scopes it by naming the collateral artifacts removed (browser session, cached orders). It does not explicitly differentiate itself from siblings, but no sibling (list_accounts, login_account, sync_orders, get_orders) performs removal, so the intent is still unambiguous.
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 guidance, no stated prerequisites, and no mention of alternatives or a confirmation step. Since this is the only removal tool among the siblings, the gap is less about routing and more about the absence of any operational context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sync_ordersA
Import orders from Amazon into the local database. Only fetches orders not already stored (plus recent orders for status/tracking updates).
| Name | Required | Description | Default |
|---|---|---|---|
| accounts | Yes | Account profile name(s), comma-separated, or "all" | |
| concurrency | No | Parallel detail-page fetches per account (default 3, max 4) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden but does disclose meaningful behavior: only orders not already stored are fetched, plus recent orders for status/tracking updates. However, it says nothing about authentication requirements, rate limits, idempotency, or what happens on partial failures during a large import.
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 tight sentences, front-loaded with the primary action and followed by the delta-fetch qualifier. No filler 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?
There is no output schema and no annotations, so the description must carry behavioral context. It covers the fetch scope well but omits what the sync returns (counts, errors), whether it requires prior login, and how it behaves with multiple accounts or concurrency limits.
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 schema already documents both 'accounts' and 'concurrency' fully, including defaults and the max value. The description adds no additional parameter meaning, 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 ('Import orders from Amazon into the local database'), which clearly separates it from the read-oriented sibling get_orders. It does not explicitly name the siblings, but the import-into-local-store framing makes the distinction inferable.
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 implies when the tool is useful by describing the delta logic, but never states when an agent should choose sync_orders over get_orders or what prerequisites (e.g. an account being logged in via login_account) are needed. Usage is implied rather than directed.
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.
5 tool updates
v1.0.0- First observed
get_orders - First observed
list_accounts - First observed
login_account - First observed
remove_account - First observed
sync_orders
TDQS
Scored across 5 tools
Each tool has a distinct action and target: list_accounts (read accounts), login_account (authenticate), sync_orders (import), get_orders (read local orders), remove_account (delete account). No overlapping purposes; descriptions clarify the read/write split between sync_orders and get_orders.
All tools use snake_case with a verb_noun pattern (list_accounts, login_account, sync_orders, get_orders, remove_account). Singular/plural noun variations (account vs accounts) are minor and do not break the pattern.
5 tools appropriately cover the core account and order management workflows without redundancy or excessive granularity. This is well within the ideal 3-15 range for a focused MCP server.
Core account lifecycle (list, login, remove) and order workflow (sync, get) are covered. Minor gaps exist: no tool to retrieve a single order by ID or search orders, and sync/get operations do not explicitly target a specific account, requiring workarounds via login switches.
Maintenance
Related MCP Connectors
Live Amazon product, review, search, deal, offer/stock and seller data across 20 marketplaces.
Real-time Amazon product, seller, and search data for AI agents across 21 marketplaces.
Connect Amazon Seller Central to Claude or ChatGPT via MCP. Orders, inventory, pricing, fees, FBA.
Amazon Seller Central and Ads data for AI: account health, FBA inventory, reimbursements, keywords.
Related MCP Servers
- AlicenseAqualityAmaintenanceEnables downloading Amazon order history as CSV files with support for orders, items, shipments, and transactions across 16 Amazon regional sites using browser automation.1212 npm19MIT
- AlicenseAqualityCmaintenanceEnables searching products, viewing orders, and analyzing order trends on Amazon.in via a persistent Playwright browser session.9-
- FlicenseNot gradedqualityDmaintenanceUnifies Amazon SP-API and Ads API into 20 MCP tools for orders, inventory, reports, feeds, and advertising, handling auth, throttling, and PII compliance automatically.-
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to research and shop on Amazon using their own logged-in browser session, supporting product search, details, reviews, cart, wishlist, and order tracking without API keys.MIT