Amazon Seller MCP
Provides tools for interacting with the Amazon Selling Partner API, enabling management of seller profiles, listings, pricing, inventory, orders, reports, and feeds.
Click on "Install 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 Seller MCPShow me my recent orders from the last week."
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 Seller MCP
ā Published on npm as
seller-central-mcpā run instantly withnpx seller-central-mcp(no clone or build needed).š§© Also available as a VS Code extension for one-click install with secure credential storage.
A Model Context Protocol (MCP) server for the Amazon Selling Partner API (SP-API). It exposes seller data and listing operations as MCP tools so any MCP-compatible client (VS Code, Claude Desktop, etc.) can query and manage your Amazon catalogue.
Works with any SP-API marketplace and region ā set
SP_API_MARKETPLACE_IDandSP_API_ENDPOINTfor your target (defaults to India /amazon.in). LWA-only auth ā no AWS SigV4 signing required.
Features
Tools exposed by this server:
Tool | Description |
| Seller marketplace participations (store name, marketplace, currency). |
| Real-time list of catalogued SKUs ( |
| Full details for one SKU (summaries, offers, issues, attributes). |
| Create or update a listing ( |
| Set selling price (and optional MRP) for a SKU. |
| Set fulfillment quantity for a SKU. |
| Delete a listing (destructive ā requires |
| Fetch a product type schema (required attributes + enums). |
| List orders (default: last 30 days). |
| Line items for a specific order. |
| Create a report request (returns a reportId). |
| Poll a report's processing status. |
| Download + decompress a report document. |
| Submit a feed (create doc ā upload ā create feed) for bulk operations. |
| Poll a feed's processing status. |
Related MCP server: Amazon Ads API MCP SDK
Requirements
Node.js >= 18
Amazon SP-API access (LWA app credentials + refresh token). See the SP-API docs.
Install
Run directly from npm (no clone needed):
npx seller-central-mcpOr install globally:
npm install -g seller-central-mcp
seller-central-mcpProvide credentials via environment variables (see Configuration).
Setup (from source)
npm install
cp .env.example .env # fill in your credentials
npm run buildConfiguration
Set these via .env (local dev) or via the MCP host's env block:
Variable | Description |
| LWA app client ID ( |
| LWA app client secret |
| Long-lived refresh token (a long opaque string) |
| Merchant Token (Seller ID, starts with |
| Marketplace ID (default India |
| Regional endpoint for your marketplace (default EU, used by India) |
| LWA token endpoint (default |
Marketplaces & regions
This server is not tied to India ā point it at any marketplace by setting the two variables above:
Region |
| Example marketplaces |
NA |
| US |
EU |
| UK, DE, FR, IT, ES, IN |
FE |
| JP, AU, SG |
Full list: Amazon marketplace IDs. Defaults live in src/config.ts.
Never commit .env ā it is git-ignored.
Run
npm start # run the built server (stdio)
npm run dev # watch mode with tsxVS Code extension
Prefer a one-click setup? Install the Seller Central MCP VS Code extension. It registers this server automatically and stores your SP-API credentials in encrypted SecretStorage ā no manual mcp.json or .env editing.
Install the extension (from the Marketplace, or the packaged
.vsixinvscode-extension/).Run
Seller Central MCP: Set Credentialsfrom the Command Palette.The Seller Central MCP server appears in the MCP view ā use its tools from Chat.
Under the hood it just launches npx -y seller-central-mcp with your credentials injected as environment variables. See vscode-extension/README.md for details.
Use with VS Code (manual)
This repo ships a .vscode/mcp.json. Open it in VS Code and start the server from the MCP view, or point your MCP host at:
{
"servers": {
"amazon-seller": {
"type": "stdio",
"command": "node",
"args": ["dist/index.js"],
"env": { "SP_API_CLIENT_ID": "...", "SP_API_CLIENT_SECRET": "...", "SP_API_REFRESH_TOKEN": "...", "SP_API_SELLER_ID": "..." }
}
}
}Use with Claude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"amazon-seller": {
"command": "npx",
"args": ["-y", "seller-central-mcp"],
"env": { "SP_API_CLIENT_ID": "...", "SP_API_CLIENT_SECRET": "...", "SP_API_REFRESH_TOKEN": "...", "SP_API_SELLER_ID": "..." }
}
}
}Project structure
mcp/
āāā src/
ā āāā index.ts # server entry (stdio)
ā āāā config.ts # env loading + validation
ā āāā spapi/
ā ā āāā client.ts # SP-API client (LWA auth + request wrapper)
ā āāā tools/
ā āāā index.ts # registers all tools
ā āāā shared.ts # result helpers
ā āāā sellers.ts # get_seller_profile
ā āāā listings.ts # list/get/upsert/update_price/set_quantity/delete
ā āāā definitions.ts # get_product_type_definition
ā āāā orders.ts # get_orders, get_order_items
ā āāā reports.ts # request/get/download report
ā āāā feeds.ts # submit_feed, get_feed
āāā .vscode/mcp.json
āāā .github/copilot-instructions.md
āāā .env.example
āāā package.json
āāā tsconfig.jsonSecurity
Credentials are read from environment variables only; nothing is logged to stdout (reserved for the MCP protocol).
delete_listingis destructive and requires an explicitconfirm: trueargument.
License
MIT Ā© Bhavy Khatri
Available Tools
15 toolsdelete_listingDelete a listingADestructive
DESTRUCTIVE: permanently deletes the listing for a SKU. Requires confirm=true. Tip: if the listing has an active offer, set quantity to 0 first, then delete.
| Name | Required | Description | Default |
|---|---|---|---|
| sku | Yes | The seller SKU to delete. | |
| confirm | Yes | Must be true to actually delete. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, but the description adds value beyond that by stating the deletion is permanent, requires confirm=true, and advises handling active offers. This is useful behavioral context, though it does not mention cascading side effects or post-deletion 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?
The description is compact and front-loaded with the DESTRUCTIVE warning, then the action, then the confirm requirement, and finally an actionable tip. No filler or repetition of schema fields beyond what is useful.
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 two-parameter destructive tool with no output schema, the description covers the key safety concerns, the required confirmation, and the important conditional workflow around active offers. Nothing else an agent needs to call 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 both sku and confirm are already well documented in the schema. The description restates 'Requires confirm=true,' but adds little new parameter meaning beyond what the schema already says.
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: 'permanently deletes the listing for a SKU.' This clearly distinguishes delete_listing from sibling mutation tools like upsert_listing and set_quantity, and from read-only tools like get_listing.
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 situational guidance: if the listing has an active offer, the agent should set quantity to 0 first and then delete. This points toward a safe sequence involving a related operation, though it does not explicitly name the sibling tool or list exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
download_reportDownload report documentB
Downloads and decompresses a report document by its reportDocumentId, returning the text.
| Name | Required | Description | Default |
|---|---|---|---|
| reportDocumentId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It mentions downloading and decompressing, which implies a read-only operation, but does not discuss error handling, permissions, or side effects. It does add the detail that the result is text, which is useful, but lacks deeper behavioral context.
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 sentence that front-loads the action and includes the key details (download, decompress, ID, return text). There is no filler or redundant information.
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 simple tool with one parameter and no output schema, the description covers the basic purpose and return type. However, it does not specify the format of the returned text (e.g., CSV, JSON), nor does it mention error conditions or valid ID constraints. These gaps matter for correct invocation but are minor for a straightforward read 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?
The schema has zero description coverage, so the description must clarify the parameter. It only repeats 'reportDocumentId' without adding meaning about the ID's format, origin, or constraints. This does not compensate for the missing schema documentation.
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 clearly states the action (download and decompress), the resource (report document), and the identifier (reportDocumentId), plus the return type (text). It distinguishes itself from siblings like request_report and get_report by specifying that it retrieves the actual document content.
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 guidance is given on when to use this tool versus siblings such as get_report or request_report. The description does not mention prerequisites, sequencing, or conditions under which this tool should be preferred, leaving the agent to infer usage from context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_feedGet feed statusC
Returns a feed's processing status. When DONE, use resultFeedDocumentId with download_report-style retrieval.
| Name | Required | Description | Default |
|---|---|---|---|
| feedId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full responsibility. It does not disclose whether the operation is read-only, has side effects, or any error/rate-limit behavior. The 'get' prefix implies non-mutating but this is not stated explicitly.
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 extremely concise, consisting of two short sentences with no superfluous content. It gets straight to the point without wasting words.
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?
The tool is simple but lacks essential context: it does not explain how to obtain feedId, what possible statuses exist (beyond DONE), or any error conditions. The mention of resultFeedDocumentId is helpful but incomplete without further details on the response.
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?
The input schema has one parameter (feedId) with zero description coverage, and the description does not compensate. It does not explain what feedId is, where to obtain it, or its format, leaving the agent with insufficient information to correctly supply it.
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?
Clearly states it returns a feed's processing status, with a specific verb and resource. However, it does not explicitly differentiate from siblings like get_report, though the feed-specific wording makes the distinction implicit.
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?
Provides only a post-processing hint ('When DONE, use resultFeedDocumentId with download_report-style retrieval') but no guidance on when to use this tool versus alternatives. Does not mention conditions like having a feedId from submit_feed or that get_report is for reports, not feeds.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_listingGet a listingA
Full details for one SKU: summaries (ASIN/status), attributes, offers, issues, and fulfillment availability.
| Name | Required | Description | Default |
|---|---|---|---|
| sku | Yes | The seller SKU. | |
| includedData | No | Comma-separated data sets. Default: summaries,attributes,offers,issues,fulfillmentAvailability |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It does not explicitly state that this is a read-only operation or disclose any side effects, rate limits, or error behavior. The term 'get' implies read-only, but it is not made explicit.
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 concise and free of extraneous words. It conveys the essential purpose and included data sets in a single sentence, making it easy to scan and parse.
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?
The tool is simple (two parameters, no output schema). The description provides enough context about what is returned and the default includedData value. It omits details like error responses or pagination, but these are not critical for a basic read operation with low complexity.
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% for both parameters (sku and includedData). The description does not add significant meaning beyond the schema, though it does clarify the default for includedData. Since the schema already explains each parameter, a baseline score 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 clearly states the tool fetches full details for a single SKU, enumerating the specific data sets (summaries, attributes, offers, issues, fulfillment availability). This distinguishes it from list/list operations and provides a precise, actionable purpose.
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 use for a single SKU via 'one SKU' but does not explicitly contrast with siblings like list_listings or set_quantity. It lacks a clear 'when not to use' or direct alternative guidance, leaving some inference required.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_order_itemsGet order itemsC
Returns the line items for a specific order.
| Name | Required | Description | Default |
|---|---|---|---|
| orderId | Yes | The Amazon order ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool returns line items but discloses nothing about error behavior for invalid or nonexistent order IDs, whether the order must exist first, pagination of results, or what the response structure looks like. For a retrieval tool with zero annotation coverage, this is a meaningful 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?
The description is a single efficient sentence with no wasted words and the core action front-loaded. It is appropriately sized for a simple one-parameter retrieval tool, though it errs on the side of under-specification rather than richness.
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 there is no output schema, the description should explain what line items are returned, but it doesn't. It also lacks usage context and behavioral details. For a tool with one parameter and no annotations or output schema, the description is the only source of information and it provides only the bare minimum, leaving an agent guessing about return format and error conditions.
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% - the single orderId parameter is already documented as 'The Amazon order ID.' The description adds no semantic detail beyond the schema; it merely implies the order must be specific without elaborating format or provenance. At the baseline 3 for high schema coverage, the description is adequate but adds nothing extra.
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 uses a specific verb (Returns) and resource (line items) with clear scope (for a specific order). It distinguishes itself from get_orders by indicating it operates on a single order's contents rather than listing orders. However, it doesn't explicitly name or differentiate from the sibling get_orders, leaving the agent to infer the distinction.
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 is provided on when to use this tool versus alternatives. It doesn't mention that a valid orderId must be obtained from get_orders first, nor does it explain when one would choose get_order_items over get_orders or the listing tools. The prerequisite relationship with get_orders is left entirely implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ordersGet ordersA
Lists orders. Defaults to orders created in the last 30 days. Note: full buyer/address data requires the restricted PII role.
| Name | Required | Description | Default |
|---|---|---|---|
| nextToken | No | Pagination token from a previous response. | |
| maxResults | No | ||
| createdAfter | No | ISO 8601 datetime. Default: 30 days ago. | |
| orderStatuses | No | Filter, e.g. ['Unshipped','Shipped','Pending','Canceled']. | |
| lastUpdatedAfter | No | ISO 8601 datetime (use instead of createdAfter). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description itself must convey behavioral traits. 'Lists orders' implies a read-only operation, and the PII note communicates an important access-control behavior. It does not mention pagination or response shape, but those are partially covered by parameter descriptions.
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 concise and well structured. Two sentences convey the core function, default behavior, and a critical caveat without extraneous detail.
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?
The description is complete enough given the relatively simple parameter set and lack of an output schema. It covers the default behavior and an important access restriction. It does not explicitly explain the return format or how pagination works, but the nextToken parameter description partially covers that.
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?
The schema already describes most parameters, and the description adds meaningful context about the default createdAfter value and the PII note. The lastUpdatedAfter parameter is clarified as 'use instead of createdAfter' in the schema. maxResults lacks a direct description, but its type and constraints are clear from 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?
The description clearly states the tool lists orders, which is a specific and unambiguous action. It also provides a useful default behavior (last 30 days) and a scope note about PII-restricted data, making the purpose immediately understandable.
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 practical usage guidance by noting the default date range and the PII role requirement. It does not explicitly contrast this with sibling tools like get_order_items or report-based order retrieval, but the provided guidance is sufficient for most callers.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_product_type_definitionGet product type definitionA
Fetches the product type definition metadata (includes a link to the JSON schema with required attributes and enums).
| Name | Required | Description | Default |
|---|---|---|---|
| locale | No | Locale, default en_IN. | |
| productType | Yes | Amazon product type, e.g. SHIRT, TOTE_BAG. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full responsibility for disclosing side effects, permissions, or output details. It only mentions fetching metadata and a link to a JSON schema, but does not state whether it is read-only, what happens on invalid input, or any side effects. This leaves significant ambiguity.
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, concise sentence that directly states the tool's function without superfluous words. It is well-structured and easy to parse.
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?
The tool is simple with only two parameters. The description mentions that the output includes a link to the JSON schema, which gives a hint about the return payload. Without an output schema, this is adequate for the low complexity. It does not cover error cases, but that is not critical for this simple metadata fetch.
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?
The schema provides descriptions for both parameters: locale (with default) and productType (with examples). Since schema coverage is 100%, the baseline is 3. The description adds no extra information beyond the schema, so a score of 3 is 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 clearly states the tool's purpose with the verb 'Fetches' and specifies the resource as 'product type definition metadata.' It distinguishes from sibling tools like get_listing or get_orders by focusing on schema/metadata retrieval, making its role obvious.
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 usage for retrieving product type schema definitions but does not explicitly mention when to use this tool over alternatives or provide exclusions. No guidance on scenarios where other tools like get_listing would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_reportGet report statusA
Returns a report's processing status. When DONE, use the reportDocumentId with download_report.
| Name | Required | Description | Default |
|---|---|---|---|
| reportId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden of behavioral disclosure. It reveals that status can be DONE and that the response includes a reportDocumentId, but it does not enumerate other possible statuses or describe error/failure 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 short sentences with no filler. The primary behavior is front-loaded and the workflow handoff is stated efficiently.
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?
The description covers the core status-check flow and the next step, but with no output schema and no annotations it omits important context such as possible status values, whether the call is pollable, and what happens on failure. An agent could call it correctly but may not handle non-DONE outcomes well.
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 0%, and the description does not explain how reportId is obtained or what format it should take. The parameter name is somewhat self-explanatory, but the description adds no semantic value 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?
The description states a specific verb and resource: 'Returns a report's processing status.' It clearly distinguishes this tool from request_report and download_report, and the DONE handoff to download_report reinforces its role.
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 explicit conditional guidance: when the status is DONE, use download_report with the reportDocumentId. This tells an agent when this tool is the right choice and what to do next, though it does not mention polling cadence or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_seller_profileGet seller profileA
Returns the seller's marketplace participations (store name, marketplace, currency, participation status).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The word 'Returns' suggests a read-only operation and no side effects, but the description does not explicitly state that it does not modify data or mention potential errors, permissions, or data freshness. With no annotations to supplement this, transparency is only 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?
The description is a single concise sentence that directly states the function and the returned fields. There is no unnecessary wording or redundant information.
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 tool without an output schema, the description provides sufficient context by naming the resource ('seller's marketplace participations') and listing the included fields. It is complete enough for an agent to know what to expect.
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?
The tool has no parameters, so there are no parameter details to explain. The description accurately reflects the zero-input nature and focuses on the output, avoiding any ambiguity.
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 clearly states the tool returns the seller's marketplace participations and enumerates the specific fields included. This verb-resource combination is distinct from all sibling tools, which focus on listings, orders, and reports.
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 usage when seller profile or marketplace participation data is needed, but it does not explicitly compare with sibling tools or state when to prefer this over alternatives. No sibling tool serves the same purpose, so the lack of explicit differentiation is less critical, but guidance is still minimal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_listingsList all listingsA
Real-time list of catalogued SKUs for the seller (searchListingsItems). Paginates through all pages.
| 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 of behavioral disclosure. It adds useful context by stating the list is 'real-time' and that it 'paginates through all pages', which implies it handles fetching the entire dataset. However, it does not explicitly confirm the operation is read-only (though obvious), nor does it mention any potential response size, rate limits, or whether it returns full listing objects or just SKU identifiers. The provided info is above minimal but still has gaps.
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 efficient sentence plus a parenthetical, with no wasted words. The primary purpose ('list all listings') is front-loaded, and the pagination detail adds valuable information without redundancy. It is both concise and well-structured.
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 tool has no parameters and no output schema, the description is reasonably complete. It clarifies the scope (all SKUs for the seller) and the pagination behavior, which are the key operational aspects. However, it leaves ambiguous whether the returned data is just SKU identifiers or full listing details, and it does not mention any filtering or sorting options (though none are implied). For a simple list-all tool, this is adequate but not exhaustive.
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?
There are zero parameters, so the schema coverage is trivially 100%. The baseline for a 0-parameter tool is 4, and the description does not need to add parameter-specific meaning. It correctly omits any parameter details since none exist.
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 clearly states the tool lists all catalogued SKUs for the seller, naming the underlying method (searchListingsItems) and explicitly mentioning pagination through all pages. It distinguishes itself from sibling tools like get_listing (single item) and upsert_listing (create/update) by focusing on the bulk listing action.
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 context is clear: this tool is for retrieving all listings, as opposed to get_listing for a single listing. While it doesn't explicitly state 'use this when you need all listings' or exclude alternatives, the purpose is so direct that an agent would infer the appropriate usage. No exclusions are mentioned, but the listing nature is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
request_reportRequest a reportA
Creates a report request and returns a reportId. Example types: GET_MERCHANT_LISTINGS_ALL_DATA, GET_FLAT_FILE_OPEN_LISTINGS_DATA, GET_FBA_INVENTORY_PLANNING_DATA.
| Name | Required | Description | Default |
|---|---|---|---|
| reportType | Yes | SP-API report type. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It transparently states that the operation creates a request and returns a reportId, implying a write operation. However, it does not disclose that report generation is asynchronous or that the report will not be immediately available, which is a behavioral detail an agent might need to know.
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 concise and well-structured. It states the action, the return value, and provides useful examples in just two sentences. No unnecessary words 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?
For a simple creation tool with one parameter, the description provides enough context to understand its role in the overall report workflow (create, then get, then download). The sibling tool names reinforce this. It lacks an explicit mention of the report lifecycle, but that is not essential for calling this tool correctly.
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?
The schema description for reportType is minimal: 'SP-API report type.' The tool description provides example values, which helps, but the schema itself lacks detail about the expected format or available valid values. The description does not fully clarify what constitutes a valid reportType beyond the examples given.
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 clearly states the tool's function: 'Creates a report request and returns a reportId.' It also provides specific example report types, which makes the purpose concrete and distinguishable from sibling tools like get_report (retrieves a report) or download_report (downloads report content).
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 through the verb 'Creates' and the context of sibling tools, but the description does not explicitly differentiate when to use this tool versus get_report or download_report. It lacks explicit guidance such as 'Use this to initiate a report; use get_report to check status or download_report to retrieve data.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_quantitySet listing quantityB
Sets the fulfillment quantity for a SKU (merchant-fulfilled / DEFAULT channel).
| Name | Required | Description | Default |
|---|---|---|---|
| sku | Yes | The seller SKU. | |
| quantity | Yes | New quantity (0 to remove the buyable offer). | |
| productType | Yes | Amazon product type, e.g. SHIRT. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the action ('Sets the fulfillment quantity') but does not mention side effects, such as whether this triggers a feed submission, whether it is reversible, or what the response looks like. It also does not explain the significance of the 'DEFAULT channel' beyond a qualifier. This is insufficient for a mutation tool with zero annotation coverage.
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, tight sentence that states the action and a key scoping qualifier. There is no fluff or repetition. It is optimally concise and front-loaded.
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 mutation tool with three required parameters and no output schema or annotations, the description is under-specified. It omits any mention of return values, error conditions, prerequisites (e.g., product type must be valid), or the operational impact (e.g., feed submission). An agent would need to infer too much about the tool's behavior.
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 schema already documents all three parameters (sku, quantity, productType) including the meaning of quantity (0 to remove the buyable offer). The description adds only the channel context, not parameter-specific meaning, so it does not go beyond the schema. Baseline 3 is 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 clearly states the verb 'Sets' and the resource 'fulfillment quantity for a SKU', with an explicit channel qualifier '(merchant-fulfilled / DEFAULT channel)'. It is specific and unambiguous, but it does not reference any sibling tool to differentiate, so it does not fully earn 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 channel qualifier implies that this tool is for merchant-fulfilled listings only, which provides some usage context. However, it does not explicitly state when to use this tool versus alternatives (e.g., for FBA or other channels), nor does it mention any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
submit_feedSubmit a feedADestructive
Submits a feed in one call: creates a feed document, uploads the content, and creates the feed. Common for flat-file / JSON_LISTINGS_FEED bulk operations. Returns the feedId to poll with get_feed. This WRITES to your account.
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | The feed body (JSON or flat-file text). | |
| feedType | Yes | SP-API feed type, e.g. JSON_LISTINGS_FEED, POST_FLAT_FILE_LISTINGS_DATA. | |
| contentType | No | Content type of the body. Default: text/tab-separated-values; charset=UTF-8. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explicitly says 'WRITES to your account' and mentions creating/uploading, aligning with the destructiveHint annotation. It does not detail side effects, but the annotation already covers destructiveness, so the bar is met.
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 two sentences, direct, and free of unnecessary detail. Every clause adds information about purpose or workflow.
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?
It covers what the tool does, the intended bulk use case, and the return value (feedId for polling). Without an output schema, this is sufficient context.
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?
The schema fully describes all three parameters (content, feedType, contentType), so the description adds little beyond the schema. It implies content is the body but does not add meaningful constraints or format details.
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 clearly states the action (submit a feed) and the resource (feed) with a specific verb. It also mentions 'in one call' and 'bulk operations' to distinguish from per-item tools like upsert_listing, though it does not explicitly name alternatives.
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 provides context on when to use this tool ('Common for flat-file / JSON_LISTINGS_FEED bulk operations') and instructs to poll with get_feed using the returned feedId, effectively guiding the asynchronous workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_priceUpdate listing priceA
Convenience: sets the selling price (and optional MRP) for a SKU via a purchasable_offer PATCH, without a full upsert.
| Name | Required | Description | Default |
|---|---|---|---|
| mrp | No | Maximum Retail Price (value with tax). | |
| sku | Yes | The seller SKU. | |
| price | Yes | Selling price (value with tax). | |
| currency | No | Currency code. Default INR. | |
| productType | Yes | Amazon product type, e.g. SHIRT. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the PATCH mechanism but does not disclose side effects, error conditions, required permissions, reversibility, or what happens if the SKU doesn't exist. For a mutation tool, this is insufficient.
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 efficiently conveys the core action and its convenience aspect. No wasted words, though the term 'purchasable_offer' may be jargon but is still precise.
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?
This is a mutation tool with no annotations and no output schema. The description does not cover success/failure outcomes, prerequisites, or error handling, leaving an agent without critical information needed to invoke it correctly and interpret results.
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 description adds little beyond what the schema already states (selling price, optional MRP). It does not provide additional context on units, validation rules, or interaction between price and mrp, so it meets the baseline without enriching semantics.
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 clearly states the tool sets the selling price (and optional MRP) for a SKU via a purchasable_offer PATCH, and distinguishes it from a full upsert. This is specific and immediately differentiates it from upsert_listing, making the purpose 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?
The phrase 'without a full upsert' implies this is the tool to use when only updating price, contrasting with upsert_listing. However, it does not explicitly mention alternatives like set_quantity or state when not to use it, though the context is reasonably clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upsert_listingCreate or update a listingA
Creates or updates a listing via PUT. Provide productType, sku, and the full attributes object. Use requirements=LISTING for a complete/offer listing or LISTING_PRODUCT_ONLY for a product-only draft.
| Name | Required | Description | Default |
|---|---|---|---|
| sku | Yes | The seller SKU. | |
| attributes | Yes | The listing attributes object (SP-API schema for the product type). | |
| productType | Yes | Amazon product type, e.g. SHIRT. | |
| requirements | 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 discloses the HTTP method (PUT) and the need for complete attributes, but does not explicitly state that the operation will overwrite existing listing data or mention side effects like validation failures or state changes beyond what is implied by 'upsert.'
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 two sentences, highly concise, and well-structured. It front-loads the action and follows with parameter priorities and requirement options, avoiding any unnecessary 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?
Given the moderate complexity (four parameters including a nested attributes object) and no output schema, the description lacks information about the expected response format, potential errors, or the fact that the operation is a full replacement. It does cover the core usage but misses some contextual details that would help an agent handle the operation safely.
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 75% (3 of 4 params have descriptions). The description adds value by clarifying 'full attributes object' and explaining that requirements can be LISTING or LISTING_PRODUCT_ONLY, which complements the enum definition and gives semantic meaning 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?
The description states a specific verb and resource: 'Creates or updates a listing via PUT.' It clearly differentiates from siblings like get_listing, delete_listing, update_price, and set_quantity by focusing on the full listing upsert operation.
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 provides explicit parameter guidance (productType, sku, full attributes) and explains the requirements enum values (LISTING vs LISTING_PRODUCT_ONLY). However, it does not explicitly contrast with alternatives like update_price or set_quantity, which could clarify when to use this tool over those.
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. Dates show when Glama detected each change.
15 tool updates
v1.0.1- First observed
delete_listing - First observed
download_report - First observed
get_feed - First observed
get_listing - First observed
get_order_items - First observed
get_orders - First observed
get_product_type_definition - First observed
get_report - First observed
get_seller_profile - First observed
list_listings - First observed
request_report - First observed
set_quantity - First observed
submit_feed - First observed
update_price - First observed
upsert_listing
TDQS
Most tools have distinct purposes and clear descriptions. Potential confusion between get_orders and get_order_items (one lists orders, the other fetches line items for a specific order) is mitigated by context, but get_ and list_ verbs could be more consistently separated.
Names generally follow verb_noun pattern with verbs like get, list, upsert, set, delete, update, request, submit. Minor inconsistency: list_ is used for plural collections (list_listings, list_orders) while get_ is used for singular resources, but get_orders is plural and list_listings is plural, creating slight overlap.
15 tools is at the upper bound of the ideal range. They cover a reasonable breadth of seller operations (profile, listings, orders, reports, feeds) without being overwhelming, though some consolidation could be considered.
The tool set covers major listing CRUD, order listing, report/feed submission and retrieval. Missing a dedicated 'get_order' for full order details (only line items are available) and no order update/shipment actions, but core workflows are represented.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Hosted Amazon Seller Central and Amazon Ads MCP server for Claude, ChatGPT, Cursor, and agents.
Hosted Amazon Seller and Vendor MCP server for Claude, ChatGPT, Cursor, Codex, Gemini, Copilot.
Connect Amazon Seller Central to Claude or ChatGPT via MCP. Orders, inventory, pricing, fees, FBA.
Connects Amazon Seller Central and Amazon Advertising to any MCP client. Settlement-accurate P&L - every fee, refund and reimbursement as Amazon posted it - plus contribution margin and breakeven per product, per marketplace, per day. Full Sponsored Products, Brands and Display management: search terms, placements, keyword and competitor research, dayparting, automation rules. 107 tools: 72 read-only, 29 that stage a reviewable diff for your approval, and 6 confirmation/support actions. Write tools stage a reviewable diff; applying it takes a separate confirmation.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceHosted Amazon Seller Central & Vendor Central MCP server. Connect Claude, ChatGPT, Cursor, Codex, Gemini, and GitHub Copilot to live Amazon SP-API and Amazon Ads API data.14MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI-powered advertising applications by providing MCP-compliant tools to interact with Amazon Ads API for campaign management, reporting, and optimization.1MIT
- AlicenseNot gradedqualityCmaintenanceMCP server for Amazon Selling Partner API and Advertising API, enabling access to orders, inventory, pricing, ads, and reports via natural language.1MIT
- FlicenseNot gradedqualityCmaintenanceUnifies Amazon SP-API and Ads API into 20 MCP tools for orders, inventory, reports, feeds, and advertising, handling auth, throttling, and PII compliance automatically.-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/bhavykhatri/amazon-seller-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server