
Search the Amazon catalog in one marketplace (marketplaceids required). Look up items by identifiers + identifierstype (e.g. ASINs or UPCs; SKU also needs sellerid), or by keywords and brandnames, not both. Use includeddata to add summaries, identifiers, images or attributes. Pass pageinfo.nexttoken back as nexttoken to page. Use getcatalogitem for one ASIN's full detail.
Fetch one Amazon catalog item by ASIN for the given marketplaceids. Use includeddata to add summaries, attributes, identifiers, images, productTypes, salesRanks. Use searchcatalogitems to find ASINs.
List FBA (Fulfilled by Amazon) inventory summaries per SKU. granularitytype ('Marketplace'), granularityid (a marketplace ID) and marketplaceids are required. Filter to specific SKUs with sellerskus or a single sellersku. Set details=true to include the full quantity breakdown (fulfillable, inbound, reserved, unfulfillable). Returns pageinfo.nexttoken; pass it back as nexttoken to page.
List Amazon orders in marketplaceids (required, e.g. ['ATVPDKIKX0DER'] for US). createdafter or lastupdatedafter is always required (one kind of window, not both). Filter by orderstatuses, fulfillmentchannels (AFN/MFN), paymentmethods, amazonorderids, sellerorderid, buyeremail. Pass pageinfo.nexttoken back with the same filters to page. Use get_order for one order.
Fetch one Amazon order by its AmazonOrderId: status, totals, fulfillment channel, ship dates, buyer/prime flags. Use listorders to find order IDs, and listorder_items for the order's line items.
List the line items of one Amazon order (ASIN, SellerSKU, title, quantity ordered/shipped, item price) by AmazonOrderId. Use listorders to find order IDs. Returns pageinfo.nexttoken; pass it back as nexttoken to page.
List reports you have requested. reporttypes is required (e.g. ['GETMERCHANTLISTINGSALLDATA']); optionally filter by processingstatuses (INQUEUE, INPROGRESS, DONE, CANCELLED, FATAL), marketplaceids and createdsince/createduntil (default: last 90 days). To page, pass pageinfo.nexttoken back as nexttoken alone. Use get_report for one report's status and document ID.
Request a new report. reporttype and marketplaceids are required; optionally set a datastarttime/dataendtime window and reportoptions. Returns the reportid; poll getreport until processingStatus is DONE, then pass its reportdocumentid to getreportdocument. Cancel with cancelreport while it is still INQUEUE/INPROGRESS.
Fetch one report by ID: processingStatus, data window, created time, and reportdocumentid once DONE. Use listreports or createreport to obtain report IDs; pass reportdocumentid to getreportdocument to download.
Cancel a report that is still INQUEUE or INPROGRESS by its reportid. A report already DONE or CANCELLED cannot be cancelled. Use listreports to find report IDs. This is the inverse of create_report.
List the report schedules configured for the given reporttypes (required), e.g. ['GETMERCHANTLISTINGSALLDATA']. Each schedule has its period and next creation time. Use getreportschedule for one schedule's detail, createreport_schedule to add one.
Create a recurring report schedule. reporttype, marketplaceids and period are required; period is an ISO 8601 duration (e.g. 'P1D' daily, 'PT8H', 'P7D' weekly). Returns the reportscheduleid. Cancel with cancelreportschedule. Note: a report_type can have only one schedule; creating a second replaces the first.
Fetch one report schedule by ID: reporttype, period, marketplaceids and next creation time. Use listreportschedules or createreportschedule to obtain schedule IDs.
Cancel (delete) a report schedule by its reportscheduleid so it stops generating reports. Use listreportschedules to find schedule IDs. This is the inverse of createreportschedule.
Fetch a report document by its reportdocumentid to get the presigned download url and its compressionAlgorithm (e.g. GZIP). Obtain the document ID from a DONE report's reportdocumentid (via get_report). The URL expires a few minutes after this call.
Check that the stored Amazon SP-API access token is valid by making one lightweight read against the Selling Partner API. Returns success true when the token is accepted, false when it is missing, expired or rejected.

In an mcp.json file, add the configuration below, and restart Cursor.
Learn more in the official documentation ↗
1{
2 "mcpServers": {
3 "agent-handler": {
4 "url": "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
5 "headers": {
6 "Authorization": "Bearer yMt*****"
7 }
8 }
9 }
10}
11Open your Claude Desktop configuration file and add the server configuration below. You'll also need to restart the application for the changes to take effect.
Make sure Claude is using the Node v20+.
Learn more in the official documentation ↗
1{
2 "mcpServers": {
3 "agent-handler": {
4 "command": "npx",
5 "args": [
6 "-y",
7 "mcp-remote@latest",
8 "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
9 "--header",
10 "Authorization: Bearer ${AUTH_TOKEN}"
11 ],
12 "env": {
13 "AUTH_TOKEN": "yMt*****"
14 }
15 }
16 }
17}Open your Windsurf MCP configuration file and add the server configuration below.
Click on the refresh button in the top right of the Manage MCP server page or in the top right of the chat box in the box icon.
Learn more in the official documentation ↗
1{
2 "mcpServers": {
3 "agent-handler": {
4 "command": "npx",
5 "args": [
6 "-y",
7 "mcp-remote@latest",
8 "https://ah-api.merge.dev/api/v1/tool-packs/<tool-pack-id>/registered-users/<registered-user-id>/mcp",
9 "--header",
10 "Authorization: Bearer ${AUTH_TOKEN}"
11 ],
12 "env": {
13 "AUTH_TOKEN": "<ah-production-access-key>"
14 }
15 }
16 }
17 }In Command Palette (Cmd+Shift+P on macOS, Ctrl+Shift+P on Windows), run "MCP: Open User Configuration".
You can then add the configuration below and press "start" right under servers. Enter the auth token when prompted.
Learn more in the official documentation ↗
1{
2 "inputs": [
3 {
4 "type": "promptString",
5 "id": "agent-handler-auth",
6 "description": "Agent Handler AUTH_TOKEN", // "yMt*****" when prompt
7 "password": true
8 }
9 ],
10 "servers": {
11 "agent-handler": {
12 "type": "stdio",
13 "command": "npx",
14 "args": [
15 "-y",
16 "mcp-remote@latest",
17 "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
18 "--header",
19 "Authorization: Bearer ${input:agent-handler-auth}"
20 ]
21 }
22 }
23}Whether you're an engineer experimenting with agents or a product manager looking to add tools, you can get started for free now