Amazon FBA Ops MCP Server
Provides tools for querying Amazon Selling Partner API to retrieve orders, financial events, inventory levels, and catalog details, and to compute profitability and low-stock alerts.
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 FBA Ops MCP Server Show me profitability for last month by SKU"
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 FBA Ops MCP Server
A local MCP server that lets Claude query your Amazon Selling Partner API (SP-API) account directly, for two things:
Profitability — revenue, Amazon fees, reimbursements, cost-of-goods (COGS), and net margin, grouped by SKU / order / day.
Inventory alerts — FBA stock levels and low-stock warnings based on estimated days-of-supply.
Everything this server does against SP-API is read-only (GET requests). The only writes are to a local JSON file you control (data/sku_costs.json), which stores your own product costs since Amazon has no concept of COGS.
Not built yet (future phases): Amazon Ads/PPC, keyword research, Slack notifications, scheduled/cron runs, a dashboard UI.
1. Get SP-API credentials
You need three values from Amazon: an LWA app ID, an LWA client secret, and a refresh token. No AWS IAM / AWS keys are needed — SP-API dropped that requirement in October 2023.
Seller Central → gear icon → Apps and Services → Develop Apps → Add new app client. Choose Private app (not "Publish for others") — this is for your own seller account only.
When prompted for API access/roles, select the roles that cover Orders, Finances, Inventory and Order Tracking, and Product Listing (label wording can shift in the Seller Central UI — pick whatever maps to those four areas). Amazon may take a short time to approve the role grant even for a private app.
Open the app's detail page and copy the LWA Client ID and LWA Client Secret.
Still under Develop Apps, click Authorize on your app (self-authorization — since you're authorizing against the same account that created the app, no OAuth redirect server is needed). Confirm, and copy the refresh token shown — it's shown only once; if you lose it, re-run Authorize to get a new one.
Find your marketplace (e.g. US, UK, DE, JP) — this determines both the API endpoint region and the encoded
marketplace_id.
Related MCP server: amazon-mcp
2. Configure
cp .env.example .envFill in .env:
LWA_APP_ID=...
LWA_CLIENT_SECRET=...
SP_API_REFRESH_TOKEN=...
SP_API_DEFAULT_MARKETPLACE=US # match your seller's marketplace.env is gitignored — never commit it.
3. Install
python3 -m venv .venv
.venv/bin/pip install -e .4. Sanity-check credentials before wiring into Claude
PYTHONPATH=src .venv/bin/python3 -c "
from amazon_mcp.orders_service import get_orders
from datetime import datetime, timedelta, timezone
end = datetime.now(timezone.utc)
start = end - timedelta(days=7)
print(get_orders(start.strftime('%Y-%m-%d'), end.strftime('%Y-%m-%d')))
"If this prints an orders list (even an empty one) instead of an error, your credentials work. If it errors, re-check .env against step 1 before touching the MCP server itself.
5. Set your product costs
Profitability can't be computed without knowing what each SKU costs you to make/source. Use the set_sku_cost tool from Claude once the server is registered, or seed data/sku_costs.json directly (see data/sku_costs.example.json for the shape). SKUs with no configured cost show up in missing_cogs_skus in the profitability output rather than silently being treated as free.
6. Register with Claude Code
A .mcp.json is already checked into this project root. It points at .venv/bin/python, so make sure step 3's install happened inside this directory. Claude Code will pick it up automatically when you open this project — restart Claude Code (or run /mcp to reload) if it doesn't appear right away.
To also register it in Claude Desktop, add the same entry under mcpServers in ~/Library/Application Support/Claude/claude_desktop_config.json.
7. Verify end-to-end
All of these are safe, read-only checks against your real seller account:
get_ordersover a known recent window — cross-check the count/total against Seller Central's own Orders report.get_inventory_summary()— cross-check fulfillable quantities against the FBA inventory dashboard for 2-3 known SKUs.get_catalog_item(asin)for a known ASIN — confirm title/image match the live listing.calculate_profitabilityover a short window — manually reconstruct expected profit for 1-2 orders (revenue from Seller Central, fees from the Payments view, COGS from what you entered) and compare.get_low_stock_alerts— temporarily lowerdays_of_supply_thresholdto confirm it flags a SKU you know is low.
Run the unit tests (mocked, no network) any time after changing code:
.venv/bin/pip install -e ".[dev]"
PYTHONPATH=src .venv/bin/pytestTools
Tool | Purpose |
| List orders in a date range |
| Line items for one order |
| Raw fee/refund/reimbursement events |
| Revenue/fees/COGS/net profit, grouped by |
| Current FBA inventory levels |
| SKUs at risk of stocking out |
| Product title/image/dimensions |
| Record a SKU's cost-of-goods |
| List configured SKU costs |
Known limitations
Orders and financial events have a ~48-hour lag on Amazon's side — very recent orders won't show up yet.
get_low_stock_alertsandcalculate_profitability(when grouped by SKU) derive sales velocity/units by callingget_order_itemsonce per order in the window, capped at 200 orders (velocity_sampled/truncatedflags tell you if a cap was hit). High-volume sellers will eventually want a Reports-API-based bulk pull instead — not built in this MVP.Financial-event field parsing (
finances_service.py) is based on Amazon's documented Finances v0 schema but has not yet been checked against a live response — if the shapes don't match exactly, cross-checkget_financial_events's raw output the first time you run it for real and adjust_flatten_*infinances_service.pyif needed.
Available Tools
9 toolscalculate_profitabilityA
Compute profitability (revenue, Amazon fees, reimbursements, COGS, net profit, margin %) for a date range (YYYY-MM-DD), grouped by 'sku', 'order', or 'day'. Requires SKU costs to be set via set_sku_cost for accurate COGS -- SKUs missing a cost are flagged in 'missing_cogs_skus' rather than silently treated as zero-cost.
Inputs: end_date (required), start_date (required), group_by. Returns: object
get_catalog_itemA
Get a product's title, brand, image, and dimensions from the Amazon catalog by ASIN.
Inputs: asin (required). Returns: object
get_financial_eventsA
List Amazon financial events (fees, refunds, reimbursements) posted in a date range (YYYY-MM-DD).
Inputs: end_date (required), start_date (required). Returns: object
get_inventory_summaryA
Get current FBA inventory levels (fulfillable, inbound, reserved, unfulfillable quantities), optionally filtered to one SKU.
Inputs: sku. Returns: object
get_low_stock_alertsA
Flag SKUs at risk of stocking out soon, estimating days-of-supply from current fulfillable inventory and recent sales velocity (units sold over lookback_days).
Inputs: lookback_days, days_of_supply_threshold. Returns: object
get_order_itemsA
List the SKU/quantity/price line items for one Amazon order.
Inputs: order_id (required). Returns: object
get_ordersA
List Amazon orders created in a date range (YYYY-MM-DD). Optionally filter by order status (e.g. Shipped, Unshipped, Canceled).
Inputs: end_date (required), start_date (required), order_status. Returns: object
list_sku_costsA
List all SKU costs currently configured for profitability calculations.
Inputs: no named parameters. Returns: object
set_sku_costA
Record the cost-of-goods (COGS) for a SKU, used by calculate_profitability_tool. Amazon has no concept of product cost, so this must be maintained manually.
Inputs: sku (required), cost (required), effective_date. Returns: object
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 9 tools
Each tool targets a distinct domain aspect (costs, orders, order items, financial events, profitability, inventory, low stock, catalog). No two tools serve the same purpose; even similarly named tools like get_orders and get_order_items are clearly differentiated in their descriptions.
All tools use snake_case, but the verb prefix is inconsistent: list_sku_costs uses 'list' while get_orders, get_order_items, get_financial_events, and get_low_stock_alerts all use 'get' for list-returning operations. This violates the common convention that 'get' fetches a single item and 'list' fetches multiple, which could mislead an agent.
With 9 tools, the server is well-scoped for Amazon FBA operations. Each tool covers a necessary capability without redundancy, and the count falls comfortably within the ideal 3-15 range.
The surface covers the core FBA operations: order retrieval, financials, inventory levels, low stock alerts, catalog lookup, and profitability calculation. Minor gaps include lack of a delete operation for SKU costs and no tool to fetch a single order's full header details, but these are not critical.
Maintenance
Related MCP Connectors
Hosted Amazon Seller and Vendor MCP server for Claude, ChatGPT, Cursor, Codex, Gemini, Copilot.
Hosted Amazon Seller Central and Amazon Ads MCP server for Claude, ChatGPT, Cursor, and agents.
An MCP server that provides read access to your cloud storage providers, bank accounts and more.
Connect Amazon Seller Central to Claude or ChatGPT via MCP. Orders, inventory, pricing, fees, FBA.
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.16MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for Amazon Selling Partner API and Advertising API, enabling access to orders, inventory, pricing, ads, and reports via natural language.1MIT
- AlicenseNot gradedqualityDmaintenanceA lightweight, local inventory-intelligence MCP server that enables querying structured inventory schemas with read-only, zero-config tools for stock levels, velocity metrics, and purchase orders.4 npmMIT
- FlicenseNot gradedqualityDmaintenanceRead-only MCP server for internal Amazon business data, exposing 19 tools to query sales, inventory, and financial metrics.-