Actions
Safety guide for the Amazon Ads operations Titan AI MCP can take on your behalf. Read this before enabling actions in any host.
⚠️ These tools spend real money
Action tools call the Amazon Ads API. A single misread of a sales report could spawn 10 campaigns at $500/day each. There is no automatic rollback. Treat every operation as if you were typing into the Amazon Ads UI yourself.
What are actions?
Actions are operations that change something in your Amazon Advertising account — pausing a campaign, adjusting a bid, adding a negative keyword, launching a new structure. They cover Sponsored Products, Sponsored Brands, and Sponsored Display surfaces.
Real-world danger scenarios
- Duplicate campaigns: agent misreads a "do this for each ASIN" instruction and creates 10 copies of the same campaign at full daily budget each.
- Wrong-marketplace target: a US-targeted keyword gets attached to a UK ad group because the agent didn't re-validate the active marketplace before the call.
- Accidental archive: an "update state" call on a winning campaign pauses it instead of the intended low-performer.
- Always-Allow runaway: the user toggled "Always Allow" once for a single low-risk negative keyword, then a follow-up turn spawns 10 high-risk campaigns without further prompts.
Dry-run by default
Titan AI MCP ships in dry-run mode by default — every action is validated against Amazon's API but is NOT executed. The result tells you exactly what would have happened. Your operator team flips to live mode only after the runbook is signed off.
Keyword Relevancy dataset writes — no dry-run, no delete
Five action tools (propose_create_relevancy_dataset, propose_add_relevancy_dataset_asins, propose_remove_relevancy_dataset_asins, propose_relevancy_ranking_update, propose_relevancy_cache_purge) modify your Titan Tools Keyword Relevancy datasets rather than your Amazon Advertising account. They behave differently: there is no dry-run and no delete — a created dataset executes the moment it is called and cannot be removed via the API. propose_relevancy_ranking_update triggers a real ranking recompute (once per 24h, runs asynchronously — poll get_relevancy_ranking_status until it finishes). Authorization is handled server-side, so no re-link is needed.
Keyword Rank Tracker writes — reversible, no dry-run
These modify what you track in the Keyword Rank Tracker (not Amazon Ads): propose_track_keywords, propose_untrack_keywords, propose_set_keyword_label, propose_add_keyword_tag, propose_remove_keyword_tags, plus single-item member-note writes propose_add_keyword_comment, propose_edit_keyword_comment, and propose_remove_keyword_comment. They execute the moment they are called but are reversible (untrack reverses track, remove reverses add). Adding a comment returns a commentId you use to edit or remove it; editing changes the text only.
Product COGS write — no dry-run, no undo
propose_set_product_cogs sets the cost of goods on your Titan product records for up to 500 SKUs in one call. It is not an Amazon Advertising write, but it is the most consequential tool in this group. The periods you send REPLACE that SKU's entire cost history on every call, so a single period leaves only that period and erases everything recorded before it. There is no dry-run and no undo: no COGS read, GET or DELETE endpoint exists, so a previous cost structure cannot be restored once it is overwritten, and cost of goods drives your CM1, CM2 and CM3, so a wrong value distorts every margin number you read afterwards. To ADD a new cost period without losing the old one, send two or more periods in the same call: the first entry is the prior cost with startDate left null (Titan anchors it to the beginning of time and auto-ends it the day before the next period starts), and the second is the new period with its own startDate. A single dated period does not do this; it replaces everything. Two more things to check before you call it: isAllMarketplace: true applies the cost to every marketplace (leave salesChannel out), and the element name on each cost line is not validated, so reuse the SKU's existing names, since an unknown element is silently created and zeroes your real cost lines. Results come back per SKU in request order, and a batch in which every SKU failed still returns a 200, so read the per-SKU outcomes rather than assuming success.
Compass writes: no dry-run, and nothing recalculates until you do
propose_save_compass_suppliers, propose_delete_compass_supplier and propose_update_compass_product_configs change your supplier book and per-SKU ordering settings in Titan Tools Compass. They are not Amazon Advertising writes and there is no dry-run. Compass does not recalculate anything when they run: your forecast, Demand Plan and Purchase Order figures keep the old settings until you open Compass and accept the recompute prompt. Editing a supplier changes the terms on every SKU linked to it. A SKU can be relinked to another supplier but never unlinked, and a deleted supplier cannot be restored; the SKUs that were linked to it keep its last terms. The per-SKU update reports each SKU on its own, so read every result: an entry that lost a race with another edit was not applied and needs to be re-read and sent again.
⚠️ Do not enable "Always Allow"
Most AI applications (Claude.ai, Claude Desktop, Claude Code) let you toggle "Always Allow" per tool. Once on, the model can call that tool with nothing in its way. Once you toggle Always Allow for an action tool, the human-in-the-loop is gone. We strongly recommend reviewing every action call on any application that offers you the choice, and reading what it is proposing before you accept.
Where approval actually happens
Titan AI MCP cannot ask you anything. The server has no channel to put a question in front of you mid-call, so every approval decision belongs to the AI application you connected it to. We cannot promise that an application will ask before it runs a write. Applications differ, most let you turn prompting off per tool, and some run tools with no interactive approval at all. Treat a write as able to run without asking until you have found and read the setting yourself.
| Where you connected it | Where the approval setting lives |
|---|---|
| Claude.ai web | Connector settings, per tool |
| Claude Desktop | Connector settings, per tool |
| Claude Code plugin | Permission rules in ~/.claude/settings.json |
| Cowork | The app's tool permission settings |
| Automated or headless clients, OpenClaw among them | No approval step exists. A write runs when the model calls it, and the only thing you see beforehand is whatever the model said it was about to do. |
Rollback recipes
| Action | How to undo |
|---|---|
| Created campaign | Re-pause via the same operation, setting status to Archived. |
| Created keyword | Update the keyword's status to Archived. |
| Updated budget | Re-run the campaign update with the prior budget value. |
| Added neg keyword | Update its state to Archived via the matching propose_update_*_neg_keyword tool. |
| Added neg target | Update its state to Archived via the matching propose_update_*_neg_target tool. |
| Set product COGS | No rollback exists. Every call replaces the SKU's full cost history, and there is no COGS read endpoint, so the previous structure cannot be recovered. The only remedy is to re-enter the prior values from your own records. To avoid needing this, append instead of replacing: send the prior cost as a first period with a null startDate alongside the new dated period. |
| Changed Compass supplier or SKU settings | Send the previous values again with the same tool. Read them first with get_compass_suppliers or get_compass_product_configs, then open Compass and accept the recompute prompt. |
| Deleted Compass supplier | No restore exists. Create the supplier again (it gets a new id) and relink its SKUs to it with propose_update_compass_product_configs. |
A rollback is a write like any other. It goes through whatever approval your AI application applies, which on some applications is none.
Recommended account hygiene
- Set account-wide budget caps in Titan Tools or directly in Amazon Ads Console before enabling action tools. Even a runaway agent can't create campaigns above the cap.
- Start with low-risk actions only (negative keywords, campaign pauses). Don't enable high-risk tools until you've watched a full week of low-risk usage.
- Audit your Amazon Ads change history weekly for the first month. Spot anything you didn't intend and reach out before it compounds.
- Use the same Titan AI MCP account for all action calls — don't share access across team members. Audit-trail integrity depends on a 1:1 user mapping.
Reporting unexpected behavior
When reporting an issue, include the timestamp and the action description; we'll trace it through our logs.
Per-interface gotchas live on the host docs: Claude.ai, Claude Code, Cowork, Other clients.