Epinium MCP
Access: Settings → MCP
The Epinium MCP lets an AI assistant query your Epinium data directly, with no exports and no code. You can ask it in plain language which campaigns have the worst ACOS or which searches are eating your budget, and it answers with your real figures.
It runs on the Model Context Protocol, an open standard for connecting assistants to data sources. Under the hood it uses the Epinium API, so it sees exactly the same data and honours the same permissions.
You decide whether it can write
By default the assistant only queries. The tools that change anything sit behind write permissions that you tick when you create the key -workflows:write for your automations, campaigns:write for your campaigns on Amazon, tasks:write for your tasks and catalog:write for your keyword clusters-: withhold them and those tools do not exist for the assistant. In your Shopify and WooCommerce stores, the same tool it queries with is the one that also writes, and it only does so if the key carries platform:write: without it, any attempt to change something is rejected before it reaches the store. And writing is for the Business and Master plans: on Free and Guru the assistant queries, but cannot change anything.
The server address
https://mcp.epinium.com/mcpYou will also find it in Settings → MCP, with a button to copy it.
How to connect it
There are two ways to give the assistant access, and which one applies depends on the client you use:
- Browser authorisation: you paste the server address, the assistant takes you to Epinium, you approve and that is it. There is no key to copy, and you can withdraw access whenever you like from Settings → MCP.
- API key: you create a key in Settings → API Keys and paste it into the client's configuration. This is the route for Claude Code and for your own integrations.
Claude (web and desktop app)
- Open Claude's connector settings and add a custom connector
- Paste
https://mcp.epinium.com/mcpas the server address - Claude will take you to Epinium to authorise access: review the permissions it asks for and approve them
- Check that it works by asking it to use the
epinium_whoamitool
Custom connectors require a paid Claude plan.
Claude Code
Claude Code is configured from the terminal and uses an API key rather than browser authorisation:
claude mcp add --transport http epinium https://mcp.epinium.com/mcp \
--header "Authorization: Bearer TU_API_KEY"Replace TU_API_KEY with a key created in Settings → API Keys, with whichever permissions you want to give the assistant.
ChatGPT
ChatGPT's MCP connectors live in developer mode (Settings → Security and login), and they are only available on paid plans and from the web version.
- Turn on developer mode under Settings → Security and login
- In the connector settings, add a new connector
- Paste
https://mcp.epinium.com/mcpas the server address and leave the registration method as it comes: the connector signs itself up - ChatGPT will take you to Epinium to authorise access: review the permissions it asks for and approve them
- Check that it works by asking it to use the
epinium_whoamitool
What you have connected
Settings → MCP lists the assistants you have authorised, with which permissions, who approved them and when. From there you can withdraw access from any of them: it immediately stops being able to read your data, and you can authorise it again later if you want.
API keys are managed separately, in Settings → API Keys.
What tools it includes
The assistant sees one tool per resource your token reaches. The names are descriptive, so you can just ask for what you want in plain language.
| Group | Tools | Permission |
|---|---|---|
| Catalog | Products, their Seller, Vendor and Advertising views, the category of their rank and, for Vendor, their reviews, brands, countries and clusters | catalog:read |
| Catalog performance | Seller and Vendor product metrics: sales, traffic, Amazon fees and margin, returns, stock, days of coverage and the Vendor sell-in | catalog:read |
| Advertising structure | Campaigns, ad groups, targets, product ads and search terms | campaigns:read |
| Advertising performance | Metrics for the five levels above | campaigns:read |
| Portfolios | Your portfolios and the budget cap each one puts on its campaigns | campaigns:read |
| Advertising writes | Create and change campaigns, portfolios, ad groups, targets and product ads on Amazon | campaigns:write |
| Optimization config | What the optimizer chases on a campaign: objective, bid limits, budget and which workflows process it | campaigns:write |
| Automation | Your workflows, their configuration, which campaigns they reach and how those campaigns perform | workflows:read |
| Writing automation | Creating, copying, editing, activating, pausing, deleting and restoring workflows, running or simulating them, and the forecast of what it would cost | workflows:write |
| Automation changes | What a workflow changed on a campaign, with the net effect per entity | campaigns:read |
| Change history | Everything Epinium has changed on Amazon, whatever set it off, including what Amazon rejected | campaigns:read |
| Connections | Your connections: Amazon, Shopify and WooCommerce | connections:read |
| Connected stores | epinium_platform_docs and epinium_platform_request: look up what is inside your Shopify and WooCommerce stores and, with platform:write, create, edit and delete products and content with the same tool. Writing is direct, with no task, and some deletions cannot be undone | platform:read, and also platform:write to write |
| Store changes | epinium_list_platform_changes: everything written to your stores in the last 12 months, including what the store rejected. It costs 1 credit per row returned | platform:read |
| Tasks | Epinium tasks and their items | tasks:read |
| Writing tasks | Creating tasks with suggestions, approving or rejecting them, closing them and applying what was approved | tasks:write |
| Writing clusters | Creating keyword clusters, adding or removing their keywords and products, and deleting them | catalog:write |
| Skills | The CMO Brain: Epinium's 101 marketing skills | skills:read |
| Discovery | epinium_find_data: where each piece of data lives. The assistant asks it for a name, an acronym or a synonym (BSR, ACoS, TACoS, Buy Box, margin) and it answers which tool and which field hold it. It does not read your data or spend credits | any of the above |
| Account | epinium_whoami and the list of accessible accounts | always |
Only the tools your token can use appear. If you create a key with campaigns:read alone, the assistant will not see the catalog or task tools: they do not fail, they simply do not exist for that key.
CMO Brain: Epinium's marketing brain
Beyond your data, the MCP serves the CMO Brain: 101 skills with the methods a CMO would apply, written so an assistant can read and follow them. They cover everything from advertising and SEO to pricing, retention, content and marketplaces, and the assistant consults them before advising you.
The difference shows: without them, an assistant answers with whatever it read online; with them, it follows the same criteria we work by and applies it to your figures. Ask it to review a campaign with a poor ACOS and it does not improvise generic advice: it loads the relevant skill and follows it.
They require the skills:read permission, which is ticked by default when you create a key.
Account totals, by period and by product family
The assistant answers big-picture questions with a single query: "how much did I sell in September?", "how has my advertising spend gone month by month this year?", "how are the products in my coffee machine cluster selling?". The metrics tools add up by account, by country or by connection on their own, split the range into weeks, months, quarters or years, and can be narrowed down to one or more of your product clusters.
That way it does not have to walk your catalogue product by product and add it up, which is slow and expensive: a month's total for a large account costs about 150 credits instead of more than 17,000.
Four things worth knowing when reading its answers:
- Each currency comes separately. If you sell on marketplaces with different currencies, the assistant receives one total per currency: amounts are never converted.
- Stock is only added up by country. FBA's pan-European inventory shows up in full in every marketplace, so an account-wide stock total built by adding up countries would not be a real figure. The assistant does not receive it; if you ask for it, it gives it to you country by country.
- By cluster, each product counts in all of its clusters. Ask how much each cluster sold and it gets the answer from a single query; a product in two clusters adds up in both, so the cluster totals do not make up the account total.
- If it starts adding up product by product, it is told not to. When the assistant asks for an ungrouped list of metrics and more pages follow, the response itself tells it to group instead of paging on.
Asking it what your automation has done
With the workflows:read permission the assistant can audit your workflows, and it is one of the things it does best: these are cross-referencing questions, the kind that take an afternoon by hand.
You can ask it three different things:
- How a workflow is configured — its schedule, its diagram and every variable with the value it actually carries, flagging the ones you changed against the ones still on the template default. It is the quick way to review a setting without opening the editor.
- Which campaigns it actually reaches — which is not the same as the campaigns linked to it. A workflow can be scheduled every night and process none at all; this is the question that surfaces it, and when the set comes back empty the assistant tells you the reason.
- What it changed on a campaign — the bid each target started from against the one it has now, how many times it moved along the way, and the reason for the last change.
What really pays off is pairing that with the metrics for the same period: "what has the workflow changed on this campaign this month and how did the ACOS go?" is a single question, and the assistant holds both halves. That is where it can tell you whether the changes are achieving anything or just moving bids around.
Two things worth keeping in mind when reading its answer:
- Changes come as a net, not as a list. A target raised and cut back on the same night shows up as no net change, two moves. That is deliberate: a flat decision list hides exactly that.
- It never sees simulations. Only changes that actually reached Amazon, and only from the last 90 days, which is how long they are kept.
Running a workflow, or simulating it first
With the workflows:write permission the assistant does not only read your automations: it can run them too. That helps when you do not want to wait for the scheduled time —you have just changed a setting and want to see the effect— and when you want to check a new workflow before letting it loose.
Two things worth asking for before running it for real:
- What it would cost — the assistant can give you the forecast without running anything. It pays off on any workflow that walks your catalogue or your campaigns: the cost grows with the number of items it processes, so a twelve-step diagram can be expensive on a large account. It is a ceiling, not a bill; and if a step cannot be forecast, it comes back with zero items and the assistant points it out.
- That it simulates first — a simulation walks the whole diagram and writes nothing: not to Amazon, not to your data. It tells you what it would have done, without doing it.
A paused workflow can be simulated too, and that is precisely why simulation exists. Checking an automation before switching it on should not force you to switch it on first, which is the risky step. Running it for real does require it to be active, exactly as in the app.
Two things worth keeping in mind:
- It does not wait for the run to finish. Running returns the identifier of the execution, not its result: a pass over dozens of campaigns takes far longer than an assistant reply. The result is read afterwards, and the assistant knows how.
- Running for real moves bids and budgets on Amazon. Simulating and running are two different requests and the assistant has to say which one it is making. If it does not, ask before you confirm.
Creating and editing automations from the assistant
The same workflows:write permission lets the assistant build and change your automations, not just run them. It can create one from scratch, copy one you already have, start from a template in Epinium's catalogue, change its diagram or its settings, give it a schedule, turn it on, pause it, delete it and go back to an earlier version.
Everything it creates is born paused, by any of the three routes —creating, copying or instantiating a template—. Turning it on is always a separate step you have to ask for: from then on its schedule fires for real every night.
Four things worth knowing:
- To edit a scheduled workflow it has to be paused first. The assistant will tell you: pause, make the change, check the result and turn it back on. Pausing, on the other hand, is always accepted —it can only make fewer things happen on Amazon, never more—.
- Copying beats rebuilding. If you want the same logic with different values, ask it to copy the automation and change only what changes. That is cheaper and more reliable than rebuilding the diagram step by step. The copy is born paused and with no campaigns attached: attaching them is done in Epinium.
- Deleting is the only thing it will ask you to confirm. It is announced to the assistant as a destructive operation, so your AI client will ask first. The rest deliberately do not: if everything asked for confirmation, you would end up accepting without reading. What really protects you is that nothing is born switched on and that simulating and running are two different requests.
- An invalid diagram is not saved. It is checked before writing, so an edit cannot leave your automation half-done: either the change goes in whole, or it tells you what is wrong and touches nothing.
Every write is recorded: what changed, when and with which credential. Deletion too, which leaves a trace even though the automation no longer exists, and runs, which record who asked for them. In each workflow's version history you can tell what an assistant did from what a person did in the app, and you can go back to any saved version.
If you would rather see it or touch it by hand, all of this lives in Processes → Workflows.
If the automation writes to your store on Shopify or WooCommerce, the credential also needs platform:write to save it, copy it, turn it on or run it for real. Simulating it, pausing it or renaming it doesn't. More in Reading and writing to your store.
Interactive tables
When you ask it for a list — products, campaigns, search terms — the assistant can show it as a table inside the conversation instead of as text.
With that table you can:
- Load more rows without spending assistant turns. The table fetches the next pages on its own, so working through a long catalogue does not consume conversation.
- Open a row to see its full detail, including the fields that do not fit in the table.
- Select several rows and hand them to the assistant with the Use N in chat button. From then on it reasons about those only: pick six products out of two hundred and ask about them, without copying a single ASIN.
When the assistant can write
With the campaigns:write permission the assistant stops just looking: it creates campaigns and moves bids, budgets and states really, on Amazon. Grant it deliberately, and only to the key that needs it.
What the assistant itself knows, because the tools tell it:
- What it creates is born paused unless asked otherwise, and it has to warn you before enabling anything: an enabled campaign starts spending as soon as Amazon accepts it.
- It can archive, and it will ask you first. Archiving is the only irreversible operation, so it has its own tool and is announced to the assistant as destructive: your AI client will ask you to confirm before running it. If you only want to stop the spend, ask it to pause instead.
- To move many bids it uses the batch tool, not the single one in a loop. One batch takes up to 1000 entities, each with its own value.
- A batch can come back partial, and that is the normal outcome. The assistant gets one row per entity plus a count of what reached Amazon; if it does not read that count, it will assume everything went in. If it tells you a change was applied, you can ask for the breakdown.
- It does not touch what the optimizer manages. Those entities are refused, because the 03:00 UTC run would write over them. For that, change the smart campaign instead.
- It also manages portfolios. It can create them, change their name, state and budget cap, and move Sponsored Products campaigns into or out of them. The cap limits what all the portfolio's campaigns spend together, so changing it moves the spend of all of them at once.
- It also writes to Sponsored Brands and Sponsored Display. It can change and archive their campaigns, ad groups, targets and product ads, and create their targets and negatives, with the types the ad group's ad product accepts. What it cannot do yet is create SB or SD campaigns. And for
AUDIENCE,CONTENT_CATEGORYandLOCATIONtargets it needs the Amazon id, which you have to give it from the Amazon Ads console.
Everything it writes is recorded with its origin: in the change history it shows up as mcp, with the credential that did it. That is how you tell what an assistant did from what a person did in the application.
Configuring a campaign's optimization
With the same campaigns:write permission, the assistant can also read and change the configuration Epinium's optimizer uses on a campaign: its objective, bid limits, monthly budget, harvesting overrides and which workflows process it.
It is not the same as writing to Amazon, and it is worth being clear about: this configuration stays inside Epinium - the optimizer consumes it on its nightly run - so the tool does not ask for an idempotency key, nor does it leave a row in Amazon's change history, because it never reaches it.
You can ask it things like "set this campaign's target to ACOS 15%", "raise the bid ceiling to $0.80" or "take this campaign off workflow X", and the assistant translates that into the matching configuration. Before touching anything, it can also tell you the current values.
What is really worth confirming before accepting:
- Assigning a workflow to the campaign is what puts it under the optimizer - not
aiEnabled, which is only the account holder's consent and travels to Amazon as a tag, nor any other setting in this block. If the assistant is about to link the campaign to a workflow, confirm it first: from that night on, that workflow moves real bids on Amazon against it. A workflow with auto-selection can also pick it up on its own unless the campaign has declined that selection, and the exclusion list is the only thing that reliably takes it out. - A batch change is not all-or-nothing. If you ask it to apply the same setting to several campaigns, it gets one result row per campaign - each one validated against its own stored state - so one can fail for a specific reason while the rest go through. Ask it for the breakdown if something does not add up.
Proposing changes as tasks
With the tasks:write permission the assistant can leave you its proposals as a task instead of applying them itself: it analyses, creates the task with one suggestion per change, and you review it in Processes → Tasks or settle it from the conversation. It is the way to let an assistant work on your account without anything reaching Amazon before you have seen it.
Four things worth knowing:
- Approving and applying are two steps. Approving a suggestion only records your decision; the changes reach Amazon when you ask it to apply the task. Campaign changes go in straight away and the assistant knows which ones Amazon accepted; product changes are queued and take a little while.
- It will ask you before applying, just as before closing a task: both are announced to the assistant as operations that require confirmation, because applying really changes your campaigns and your listings, and closing cannot be undone.
- Not every suggestion gets applied. Today, product suggestions and campaign ones -daily budget, state and name- are applied. The rest stay as notes for you to read: approving them changes nothing, and the assistant knows it.
- Close the task at the end. Whatever is still pending when you close it stays frozen and can no longer be approved.
The tasks the assistant creates appear in your list with the origin API and assistants, and each decision records which credential made it.
Creating, editing and deleting keyword clusters
With the catalog:write permission the assistant can save what it finds as a keyword cluster, the same ones you manage in Segmentation → Clusters: ask it to group a few products with the keywords they should rank or advertise for, and it creates the cluster or extends one you already have. Nothing reaches Amazon: a cluster lives in Epinium, where your SEO prompts, the optimizer's keyword discovery and the cluster filter of the product charts pick it up.
Four things worth knowing:
- It edits by deltas. It adds or removes keywords and products, or renames the cluster, without resending the whole list; a keyword it adds again is updated, not duplicated.
- It respects your padlock. A cluster you protected from the app is refused, and the assistant knows it has to ask you to unprotect it rather than retry.
- It can delete, and it will ask you first. Deleting a cluster cannot be undone, so the tool is announced as destructive and your AI client asks you to confirm. It is refused while the cluster is protected or a smart campaign uses it as its base.
- It will not ask you to confirm creating or editing, precisely because no bid, budget or listing moves. The cluster is created under the name of the person who authorised the assistant, and it can link only Seller or Vendor catalog products of the account.
Querying your Shopify and WooCommerce stores
With the platform:read permission the assistant reads, live, what is inside the Shopify and WooCommerce stores you have connected: products, variants, stock, prices and the rest of what each store exposes. It does so with two tools that work for both platforms:
epinium_platform_docstells it which version of the store's API Epinium uses, where its reference lives and the pitfalls that make a response look right when it is not. It also shows it the fields your store has right now, including the ones your plugins or apps add, so it does not write them from memory.epinium_platform_requestruns the query in each platform's own language: GraphQL on Shopify and REST on WooCommerce.
With the platform:write permission, the same epinium_platform_request also creates, edits and deletes products and content in the store, directly and with no task. What it can change on each platform, and what gets recorded, is in the Shopify and WooCommerce guides.
Three things worth knowing:
- It is a different permission from
connections:read. That one says what you have connected; this one lets it read what is inside the store. That is why it has its own area on the permissions screen, Data from your connected stores and platforms. - Personal data stays out. Names, emails, phones and addresses are refused before the query reaches the store. It is a deliberate safeguard, not a bug, and the assistant knows which field triggered it.
- It is charged by the size of the response. Asking only for the fields you need is cheaper and faster.
What data it reaches
The same as the API, resource by resource. The full list of endpoints, with what each one returns, is in the API section.
Five things worth knowing when asking it for data:
- Metrics need a date range. Tell it the period you care about; otherwise the assistant will ask.
- You can ask for the day-by-day evolution, not just the total for the period. Useful for spotting trends rather than a single aggregate figure.
- The range cap depends on the granularity. With the period total or by week, month, quarter or year, 366 days; day by day, 93. For targets and search terms, the heaviest resources, it drops to 93 and 31. Asking for more returns an error stating the exact limit.
- An empty figure is not a zero. If the assistant says a metric is unavailable, it means Amazon does not report it for that ad format, not that it is zero.
- Before telling you a metric does not exist, it looks for it. With
epinium_find_datait finds the tool and the field of any metric by its name or its acronym. If it still says it does not have it, the MCP does not expose it.
Questions it answers well
- Which campaigns have the worst ACOS this month?
- Which searches am I spending on without any sales?
- Which keywords are performing best and would be worth promoting to exact match?
- Which advertised products are not getting a single impression?
- Which of my products get traffic but do not convert?
- What has the workflow changed on this campaign over the last month, and did it achieve anything?
- Which campaigns does my workflow reach, and is there one I think it optimises that it never actually touches?
- Which products in my Shopify or WooCommerce store are running out of stock?
- How much did each of my clusters sell last month, and how much did I spend on advertising in each?