{
  "markdown": "# profitlee-mcp\n\n[![npm version](https://img.shields.io/npm/v/profitlee-mcp.svg)](https://www.npmjs.com/package/profitlee-mcp)\n[![license](https://img.shields.io/npm/l/profitlee-mcp.svg)](./LICENSE)\n[![smithery badge](https://smithery.ai/badge/aronleedev/profitlee-mcp)](https://smithery.ai/servers/aronleedev/profitlee-mcp)\n[![Glama MCP Server](https://glama.ai/mcp/servers/AronLEEdev/profitlee-mcp/badges/score.svg)](https://glama.ai/mcp/servers/AronLEEdev/profitlee-mcp)\n\nAn [MCP](https://modelcontextprotocol.io) server for [Profitlee](https://profitlee.com) — compute **country-accurate Amazon FBA/FBM and TikTok Shop profit margins**, and manage saved scenarios, from any MCP client (Claude Desktop, Claude Code, Cursor, …).\n\n`calculate_profit` is **free and needs no token**. The scenario tools require a Profitlee Pro API token.\n\n> MCP registry name: `io.github.AronLEEdev/profitlee-mcp`\n\n## Quick start\n\nAdd to your MCP client config:\n\n```json\n{\n  \"mcpServers\": {\n    \"profitlee\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"profitlee-mcp\"],\n      \"env\": {\n        \"PROFITLEE_API_TOKEN\": \"eck_live_xxx\"\n      }\n    }\n  }\n}\n```\n\n`PROFITLEE_API_TOKEN` is **optional** — omit the whole `env` block to use `calculate_profit` only. Create a token on your Profitlee [account page](https://profitlee.com/account) to unlock the scenario tools.\n\nRequires Node.js 20+.\n\n## Tools\n\n| Tool | Auth | Description |\n| --- | --- | --- |\n| `calculate_profit` | none | Full per-unit cost stack, gross/net margin, and monthly P&L. |\n| `list_scenarios` | Pro token | List your saved scenarios. |\n| `get_scenario` | Pro token | Read one scenario (inputs + outputs) by id. |\n| `save_scenario` | Pro token | Save a named scenario from calculator inputs. |\n| `update_scenario` | Pro token | Rename and/or replace a scenario's inputs. |\n| `delete_scenario` | Pro token | Delete a scenario by id. |\n| `copy_scenario` | Pro token | Duplicate a scenario into a new one (\"Copy of …\"). |\n\n### `calculate_profit` inputs\n\nPick a `platform` + `mode`, give the product's physical and cost details, and Profitlee folds every fee into a single net margin. Rates are **0–1 decimals** (e.g. `0.15` = 15%). US uses inches + pounds; DE/JP use cm + kg.\n\n| Field | Notes |\n| --- | --- |\n| `platform` | `amazon` (default) or `tiktok_shop`. |\n| `region` | `us`, `de`, or `jp`. |\n| `mode` | amazon: `fba` \\| `fbm`. tiktok_shop: `fbt` \\| `self_fulfilled`. |\n| `L`, `W`, `H`, `weight` | Dimensions + unit weight. |\n| `fob`, `headShip`, `duty` | Unit cost, inbound freight/unit, import duty/unit. |\n| `price` | Selling price (gross; VAT-inclusive for DE/JP). |\n| `ppcAcos`, `returnRate` | Ad ACoS and return rate (0–1). |\n| `monthlyVolume` | Units/month (scales the P&L). |\n| `referralPct` | Referral fee (0–1). Preferred over `referralCategory`. |\n| `isApparel` | Affects some fees. |\n| mode-specific | FBA: `inboundOption`, `storageMonths`, `storageSeason`. FBM / TikTok self-fulfilled: `outboundShipPerUnit`, `pickPackPerUnit`, `monthly3plStorage`. TikTok FBT: `storageMonthsPastFree`. |\n\nThe Profitlee API is the source of truth for validation — incomplete or out-of-range inputs come back as a clear error listing the offending fields. Full field reference: <https://profitlee.com/docs/api>.\n\n## Environment variables\n\n| Var | Required | Default | Purpose |\n| --- | --- | --- | --- |\n| `PROFITLEE_API_TOKEN` | No | — | Pro token (`eck_live_…`); needed only for the scenario tools. |\n| `PROFITLEE_BASE_URL` | No | `https://profitlee.com` | Override the API origin (testing). |\n\n## How it works\n\nThe server is a thin wrapper over Profitlee's public HTTP API:\n\n- `calculate_profit` → `POST /api/v1/calculate` (public, no token).\n- scenario tools → `/api/v1/scenarios*` (require the Pro token; the server fails fast with a clear message if it's missing).\n\nNo fee logic is reimplemented here, so results always match the live Profitlee calculator and current fee tables.\n\n## Development\n\n```bash\nnpm install\nnpm test       # vitest (27 tests)\nnpm run build  # tsc -> dist/\nnpm run dev    # run from source with tsx\n```\n\n## Releasing\n\nMaintainers: see [PUBLISHING.md](./PUBLISHING.md) for npm publish + MCP registry steps. The registry manifest lives in [server.json](./server.json).\n\n## License\n\n[MIT](./LICENSE)\n",
  "bytes": 4277,
  "sha": "f4402bd519372c211928f8cb1ce481f334023b736f6d73a57ee0c92acef170e7",
  "repo_slug": "aronleedev/profitlee-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_aronleedev_profitlee_mcp_55af25b3/readme"
}