Overview
Marxx is a creative intelligence platform for paid social. The Marxx MCP server lets an AI assistant work with the same data from inside a chat. The assistant can read a client's Meta and Google Ads performance, look at competitor ads, run audits, pull brand and audience knowledge, and, when a client has the matching switches on, draft ad changes, generate creative and edit video.
The server lists 100 tools in 11 sections. A connected user may see fewer, because some groups are off until they are switched on for that client. With default settings a client sees the groups that are on by default, up to 38 tools, and the Google Ads tools only when Google Ads is connected. See Tool access.
Server URL
https://api.marxx.ai/mcp
Streamable HTTP. Click the address to select it, then copy.
It works with Claude, ChatGPT, and any MCP client that supports remote servers with OAuth and Streamable HTTP. For the product overview and sample questions, see the Marxx MCP page.
Requirements
- A Marxx account with an active subscription or trial. An account that is still in onboarding cannot use the server.
- For a client's own numbers, the client's Meta ad account and, if you use them, Google Ads account connected in Marxx. Competitor and brand tools do not need an ad account.
- An assistant that can add a remote MCP server by URL and sign in with OAuth. On team and enterprise plans, a workspace owner may need to allow or add custom connectors first.
Connect
Claude
- Open Customize, then Connectors, in Claude.
- Choose Add custom connector.
- Paste
https://api.marxx.ai/mcpand add it. - Claude opens a Marxx sign-in and approval page. Sign in with your own Marxx account and choose Approve.
ChatGPT
- In ChatGPT, open the settings where you add a custom connector or MCP server. The menu names change from time to time.
- Set the server URL to
https://api.marxx.ai/mcp. - Approve the authorization prompt on Marxx.
Other MCP clients take the same URL and the same approval flow. Marxx also shows the address inside the app under Settings, then Integrations. Step-by-step help with screenshots is in the help centre.
Authentication and permissions
- OAuth 2.1 with PKCE (S256). Clients register dynamically or with a client ID metadata document. They are public clients. There are no client secrets and no API keys to paste.
- Authorization server:
https://mudra.marxx.ai. The consent screen is onapp.marxx.ai. You sign in with your own Marxx account. - Token lifetime. Access tokens last 15 minutes. Refresh tokens last 14 days and rotate every time they are used. Reusing an old refresh token revokes the whole chain.
- Scope: the server requires
marxx.read. Access tokens are signed RS256 JWTs bound to the audiencehttps://api.marxx.ai/mcp. - Access is checked on every call. The server looks up your user, organisation and role in Marxx each time and caches nothing. Your user, organisation and role are looked up from Marxx on every call.
- Ad platform access comes from the Marxx workspace, not from the assistant. Meta is connected with Meta Business Login. The permissions Marxx requests are ads_management, ads_mcp_management, business_management, pages_show_list, pages_read_engagement, pages_manage_ads, pages_manage_metadata, leads_retrieval, instagram_basic, instagram_manage_insights and instagram_manage_comments. Google Ads uses the adwords scope.
- A permission is not an action. The Meta and Google permissions above are broader than reading. The MCP server writes to an ad account only through the draft and apply flow in Changing ads safely, and only when that client has the changes switch on.
- Disconnect. Remove the connector in your assistant to end that assistant's access. Disconnecting Meta or Google inside Marxx cuts ad-account access for every Marxx surface, the MCP server included.
Clients (workspaces)
Agencies and teams with several clients keep each client in its own Marxx workspace. The assistant works on one client at a time.
- If you have more than one client, the assistant calls
marxx_select_workspaceand asks which one you mean. Every other tool refuses until a client is picked. - If you have one client, it is picked automatically.
- The choice is saved per user, so it applies to all of your connected assistants. Switch it the same way whenever you like.
- Tool switches below are set client by client, so two clients in the same account can have different tools available.
Tool access
Reading is on by default. Anything that changes an ad account, spends credits or edits a video sits in a group that is off until it is switched on for that client. Switches are set client by client in Marxx. Contact support to switch a group on.
| Switch | Default | What it gates |
|---|---|---|
| Data tools | On by default | Clients and accounts, Your Meta ads, Account audits, Competitors and market, Boards and moodboards, Brand and audience. |
| Live Meta tools | On by default | The live Meta reads inside Your Meta ads: today's numbers, account status, diagnostics, setup, media library, targeting search and audience estimates. |
| Google Ads tools | Shown when Google Ads is connected | Google Ads reports, and the Google Ads accounts and cross-channel tools. Shown when the client has Google Ads connected. |
| Live Google Ads tool | Off until switched on | marxx_google_ads_live. Reads straight from the Google Ads API and uses Google API quota. |
| Google Ads changes | Off until switched on | The five Google Ads changes tools. |
| Meta ads changes | Off until switched on | The nine Meta ads changes tools, including the media upload tool. |
| Generation tools | Off until switched on | Creative generation, including opening a finished clip in the editor. Also needs the Creative Engine enabled for the organisation. |
| Video editor tools | Off until switched on | The Video editor group. Also needs the video editor feature turned on. |
A tool in a switched-off group is hidden from the assistant's tool list, and refuses if it is called anyway.
Tool reference
100 tools, grouped. The Access column says what a tool can do:
- Read
- Changes ad account
- Spends credits
- Writes to Marxx
Writes to Marxx means the tool saves something inside Marxx, such as a draft, a board or a project. It does not touch an ad account.
Clients and accounts (3)
Pick the client you are working on and list the ad accounts connected to it. On by default. The Google Ads accounts tool is shown only when the client has Google Ads connected.
| Tool | What it does | Access |
|---|---|---|
| marxx_select_workspace | Lists your clients and sets the one the session works on. Every other tool waits for this when you have more than one client. | Writes to MarxxYour saved client choice |
| marxx_my_ad_accounts | Lists the Meta ad accounts connected to the client. | Read |
| marxx_google_ad_accounts | Lists the Google Ads accounts connected to the client and the dates of stored history. | Read |
Your Meta ads (9)
Performance, structure and live status of the client's own Meta ads. On by default.
| Tool | What it does | Access |
|---|---|---|
| marxx_my_ads_overview | KPI summary, audience, creative health and a leaderboard for the account. | Read |
| marxx_my_ads | Your own ads broken down by hook, format, offer and other dimensions, as a table, series or distribution. | Read |
| marxx_meta_ads_live | Live Meta numbers for today, by hour or by breakdown. | Read |
| marxx_meta_account_status | Live account status, spend cap, balance, pixels and rejected ads. | Read |
| marxx_meta_ads_diagnostics | Meta's own diagnostics: opportunity score, benchmarks, anomalies, auction overlap, pixel quality, delivery errors and experiments. | Read |
| marxx_meta_ads_setup | How campaigns, ad sets and ads are set up, with their review status. | Read |
| marxx_meta_ads_media | Lists the images and videos in the ad account's media library. | Read |
| marxx_meta_targeting_search | Turns an audience description into Meta targeting IDs. | Read |
| marxx_meta_audience_estimate | Estimates the size of a targeting spec or an existing ad set. | Read |
Account audits (6)
Fixed audits of the client's Meta account, plus a Meta and Google side by side. On by default.
| Tool | What it does | Access |
|---|---|---|
| marxx_account_audit | Seven creative audit charts for the account. | Read |
| marxx_audit_spend_waste | Where budget was wasted over the last 180 days. | Read |
| marxx_audit_creative_pipeline | Creative supply health, cohorts and launch cadence. | Read |
| marxx_audit_scalability | Whether the account can scale, and the spend level where results break. | Read |
| marxx_audit_budget_changes | The size, timing and author of budget changes. | Read |
| marxx_channel_brief | Meta and Google side by side. Conversions are never blended into one number. Needs Google Ads connected. | Read |
Competitors and market (10)
Ads from brands the client tracks, what they have in common, and what is trending in the sector. On by default.
| Tool | What it does | Access |
|---|---|---|
| marxx_tracked_competitors | Lists the competitors the client tracks. | Read |
| marxx_brand_teardown | One call that returns a brand's creative patterns and its top ads. | Read |
| marxx_competitor_creative_intelligence | One dimension of a competitor's creative, or how it changed over time. | Read |
| marxx_competitor_ad_fetcher | Lists the ad IDs a competitor is running, up to 500. | Read |
| marxx_ad_detail_by_id | Turns ad IDs into full creative profiles, with attributes and transcript. | Read |
| marxx_keyword_teardown | The creative patterns of ads found under tracked keywords, up to 18 keywords. | Read |
| marxx_creative_gap_recommendations | Tactics competitors run that the account has not tried, with proof ads. Meta only. | Read |
| marxx_performance_brief | Turns a competitor's top ad into a creative brief for your product. | Read |
| marxx_trending_tactics | What is trending in the sector, next to the client's own gap. | Read |
| marxx_trend_tactic_detail | Goes deeper on one trending tactic, with proof ads. | Read |
Boards and moodboards (5)
Saved ads, and a search that collects ads on a theme into a moodboard. On by default.
| Tool | What it does | Access |
|---|---|---|
| marxx_saved_ads | Reads the client's saved ad folders and boards, with notes. | Read |
| marxx_expand_query | Turns a theme into search phrases. | Read |
| marxx_search_and_dedupe | Finds the top 50 ads for a theme and keeps them as a moodboard. | Writes to MarxxA moodboard |
| marxx_load_more_ads | Adds the next 50 ads to a moodboard. | Writes to MarxxA moodboard |
| marxx_save_to_board | Saves chosen ads to a board. A new name creates a new board. | Writes to MarxxA board |
Brand and audience (5)
What the client's brand stands for, its products, assets and audience personas. On by default.
| Tool | What it does | Access |
|---|---|---|
| marxx_brand_knowledge | The client's brand positioning, voice and claims. | Read |
| marxx_products | Lists the client's products, or one product in detail. | Read |
| marxx_brand_assets | Searches the client's own asset library by what the asset shows. | Read |
| marxx_audience_personas | Lists the audience personas built from customer voice. | Read |
| marxx_persona_voice_of_customer | One persona's pains, requests, questions, praise and real quotes. | Read |
Google Ads reports (4)
Stored Google Ads history and analysis. Search campaigns only. Shown when Google Ads is connected. The live Google Ads tool is a separate switch and is off until switched on.
| Tool | What it does | Access |
|---|---|---|
| marxx_google_ads | Stored daily Google Ads history for Search campaigns. | Read |
| marxx_google_ads_analysis | Wasted spend, negative keyword ideas, quality score, impression share and CPA comparisons. | Read |
| marxx_google_ads_weekly_report | A full written report brief for the account. | Read |
| marxx_google_ads_live | Live Google Ads reads (SELECT queries only), keyword ideas, recommendations, policy and forecasts. Off until switched on. Uses Google API quota, not credits. | Read |
Google Ads changes (5)
Draft a change, review it, then apply it. The assistant is instructed to wait for your yes in the chat. Off until switched on.
| Tool | What it does | Access |
|---|---|---|
| marxx_google_ads_draft_campaign | Drafts a new Search campaign. It is created paused when applied. | Writes to MarxxA draft |
| marxx_google_ads_draft_additions | Drafts new ad groups, keywords, negative keywords, responsive search ads and assets. | Writes to MarxxA draft |
| marxx_google_ads_draft_update | Drafts up to 50 changes: pause, enable, remove, rename, budgets, bidding, bids and ad text. | Writes to MarxxA draft |
| marxx_google_ads_apply_change | Applies a stored draft to the live account. Meant to run only after you say yes to that draft. | Changes ad accountGoogle Ads account |
| marxx_google_ads_changes | Lists drafted and applied changes. | Read |
Meta ads changes (9)
Draft a change, review it, then apply it. The assistant is instructed to wait for your yes in the chat. Off until switched on.
| Tool | What it does | Access |
|---|---|---|
| marxx_meta_ads_creation_options | Lists the Pages, lead forms, Instagram accounts and pixels a new campaign can use. | Read |
| marxx_meta_ads_draft_update | Drafts up to 50 changes: pause, turn on, archive, rename, budgets and ad set targeting. | Writes to MarxxA draft |
| marxx_meta_ads_draft_campaign | Drafts a campaign with one ad set and up to 50 ads. It is staged in the client's Meta Ads Manager drafts right away. Nothing runs until it is published. | Changes ad accountDraft in Meta Ads Manager |
| marxx_meta_ads_draft_add_ads | Drafts up to 10 new ads. Library media is uploaded to the ad account at draft time. The ads are created when applied. | Changes ad accountMeta media library |
| marxx_meta_ads_draft_ad_set | Drafts a new ad set with up to 10 ads. Library media is uploaded to the ad account at draft time. | Changes ad accountMeta media library |
| marxx_meta_ads_draft_copy | Drafts a copy of a campaign (up to 10 ad sets and 50 ads) with changes. Copies are created paused when applied. | Writes to MarxxA draft |
| marxx_meta_ads_apply_change | Applies a stored draft: an update, new ads, a new ad set, copies, or publishing a campaign. Meant to run only after you say yes to that draft. | Changes ad accountMeta ad account |
| marxx_meta_ads_changes | Lists drafted and applied changes. | Read |
| marxx_meta_media_upload | Puts images and videos into the ad account's media library, from URLs, a device upload link or ChatGPT files. Images up to 30 MB, videos up to 1 GB. | Changes ad accountMeta media library |
Creative generation (32)
Make images, video, voice and music, and run quality checks. Some tools spend credits. They are marked. Off until switched on.
| Tool | What it does | Access |
|---|---|---|
| marxx_generate_image | Makes one image from a prompt and optional reference images. | Spends credits |
| marxx_generate_carousel | Makes up to 6 images for a carousel. | Spends credits |
| marxx_generate_video | Makes a video clip. This is the most expensive tool. | Spends credits |
| marxx_animate_image | Turns a still image into a short video. | Spends credits |
| marxx_generate_voiceover | Turns text into speech. | Spends credits |
| marxx_generate_music | Makes music or sound effects. | Spends credits |
| marxx_lip_sync | Matches a video's lip movement to an audio track. | Spends credits |
| marxx_generate_avatar | Turns a photo and a script into a talking video. Bills itself and cannot be capped. | Spends credits |
| marxx_edit_image | Upscales, outpaints, relights or removes the background of an image. | Spends credits |
| marxx_upscale_video | Raises a video's resolution. | Spends credits |
| marxx_ugc_blueprint | Step one of a UGC ad: plans the ad. Bills itself and cannot be capped. | Spends credits |
| marxx_ugc_render | Step two of a UGC ad: renders it. Bills itself and cannot be capped. | Spends credits |
| marxx_run_node | Runs one of the allowed Marxx workflow nodes by name. | Spends credits |
| marxx_resize_image | Resizes or crops an image. Free. | Writes to MarxxMedia in your library |
| marxx_stitch_videos | Joins videos into one. Free. | Writes to MarxxMedia in your library |
| marxx_add_audio_to_video | Puts an audio track on a video. Free. | Writes to MarxxMedia in your library |
| marxx_extract_frame | Saves one frame of a video as an image. Free. | Writes to MarxxMedia in your library |
| marxx_ingest_reference | Imports a file by URL from an ad CDN (Meta, Instagram, TikTok, Pinterest) or from Marxx storage. | Writes to MarxxMedia in your library |
| marxx_upload_asset | Shows an upload button in the chat and adds the file to the asset library. | Writes to MarxxMedia in your library |
| marxx_check_upload | Fetches the file you just uploaded in the chat. | Read |
| marxx_list_assets | Lists the files in the asset library. | Read |
| marxx_generation_status | Checks on one generation job. | Read |
| marxx_list_generations | Lists recent generations. | Read |
| marxx_list_models | Lists the models with live credit costs and quality track record. | Read |
| marxx_estimate_cost | Prices a generation before it runs. Free, spends nothing. | Read |
| marxx_credit_balance | Shows the credits left. | Read |
| marxx_list_voices | Lists voices with audio samples. | Read |
| marxx_qa_review | Reviews an image or video against your criteria and brand rules. | Read |
| marxx_pick_best | Compares several candidates and picks the best one. | Read |
| marxx_get_node_manual | Shows how a generation node works. | Read |
| marxx_creative_capabilities | Lists what the creative tools can make. | Read |
| marxx_open_in_editor | Builds a new editor project from finished clips. | Writes to MarxxAn editor project |
Video editor (12)
Edit a video in the Marxx editor. Paid steps and steps that cannot be undone wait for Approve in the editor tab. Archiving a project is the exception. Off until switched on.
| Tool | What it does | Access |
|---|---|---|
| marxx_editor_open | Lists projects, opens one or starts an empty one, and returns a link. | Writes to MarxxMay create an empty project |
| marxx_editor_state | Reads the timeline, media and credits left. | Read |
| marxx_editor_read | Free reads, including frames as images. | Read |
| marxx_editor_edit | Free edits to the project. Each call is one undo step. | Writes to MarxxThe video project |
| marxx_editor_quote | Prices paid steps and returns a quote valid for 15 minutes. Runs nothing. | Read |
| marxx_editor_spend | Runs paid steps. Needs a quote and your Approve in the open editor tab. | Spends credits |
| marxx_editor_destructive | Steps that cannot be undone. The first call says what would be lost. The second runs only after your Approve in the editor tab. | Writes to MarxxThe video project |
| marxx_editor_cancel | Cancels an editor request that is still running. | Read |
| marxx_editor_help | Shows how editing works and what each editor tool does. | Read |
| marxx_editor_projects | Searches and lists your editor projects, or reads one. | Read |
| marxx_editor_project_change | Renames, duplicates or restores a project. Only the owner can rename or restore. | Writes to MarxxAn editor project |
| marxx_editor_project_remove | Archives a project (it can be restored) or drops a saved version. Asks twice, using a confirmation the assistant passes itself. There is no Approve in the editor tab for this one. | Writes to MarxxAn editor project |
Changing ads safely
Changes to Meta and Google Ads are available only when that client has Meta ads changes or Google Ads changes switched on. Both are off by default. When they are on, a change goes through four steps.
- Draft. The assistant calls a draft tool. Marxx runs a basic validation check with the ad platform before showing it, and stores it as a draft. A draft holds up to 50 changes.
- Show. The assistant shows you exactly what would change.
- Your yes. The assistant is instructed to wait for your yes to that exact draft before it applies anything. Approval happens in the conversation. Read the draft before you answer.
- Apply. The assistant applies the draft. Each draft can be applied once, only by the same user for the same client, only while it is pending, and only within 30 minutes. A draft that has expired has to be drafted again.
High-risk changes
Some changes need a second, specific confirmation. The server refuses to apply them unless the assistant passes a high-risk confirmation, and the assistant is instructed to get your specific confirmation first. They are:
- Meta: turning things on, archiving, a budget move of more than 50 percent, targeting changes on a live ad set, new ads or ad sets created as active, and publishing a new campaign.
- Google Ads: removing anything (removals are permanent), turning things on, switching bidding strategy, large rises in budgets, bids or targets, and broad match combined with manual CPC.
What it will and will not do
- New Google campaigns and ad groups are created paused. New Google campaigns are Search only.
- A new Meta campaign is staged as a draft in the client's Meta Ads Manager at the moment it is drafted. Nothing runs until it is published, and publishing is its own high-risk change. Marxx cannot discard that draft for you: delete it in Meta Ads Manager.
- Meta copies are created paused. Media added to a draft is uploaded to the ad account's media library when the draft is made.
- Meta: nothing is deleted. Archive is the furthest a change can go. Google: removals are possible, permanent and always high-risk.
- Meta new campaigns support website and instant-form destinations, one ad set and Advantage+ placements, with objectives Traffic, Leads, Sales, Awareness and Engagement. WhatsApp, Messenger, app and catalog campaigns are not supported.
- Per draft: Meta new campaign up to 50 ads, new ads into an existing ad set up to 10, a campaign copy up to 10 ad sets and 50 ads. Google up to 200 keywords, 10 ad groups and 10 ads.
- There is no separate spend limit in the change tools. The ad platform's own limits and your confirmation are the controls.
- For Meta, if the campaign, ad set or ad changed after the draft was made, the apply sends nothing.
- The change history tools list what was drafted and what was applied.
Video editor
The editor works differently. Paid steps need a quote (valid for 15 minutes) and you pressing Approve in the open editor tab. Steps that cannot be undone, run through marxx_editor_destructive, also need Approve in the tab. Archiving a project uses a confirmation the assistant passes itself, with no Approve in the tab. An archived project can be restored.
Credits
- Data, audit, competitor, Meta and Google tools spend no Marxx credits. Live Google Ads reads use Google's API quota instead.
- Some creative generation tools spend Marxx credits. The tools marked Spends credits above are the ones that do. If you are unsure, ask the assistant to run
marxx_estimate_costormarxx_credit_balance. marxx_estimate_costis free and prices a generation before it runs. The assistant is instructed to quote the cost and get your approval before spending. Check the number before you agree.- Most generation tools accept a ceiling (1 to 100,000 credits) that stops a run from going over it. The avatar and UGC tools bill themselves and cannot be capped.
- Video editor: paid steps need a quote and your Approve in the editor tab. Through the MCP server there is a default daily cap of 2,000 credits per person, counted per UTC day.
Limits
- Rate limit: 60 requests per minute per token. Over the limit the server returns HTTP 429 with a Retry-After header.
- Changes: up to 50 per draft, drafts expire after 30 minutes, and the per-campaign limits are listed under Changing ads safely.
- Meta media upload: images up to 30 MB, videos up to 1 GB.
- Editor: quotes last 15 minutes, up to 25 steps per call, with at most 6 paid and 6 destructive steps, 60 editing calls a minute per person, and a default cap of 2,000 credits a day.
- Meta applies its own rate limits to each ad account. When one is hit, the assistant is told the request was rate limited.
Prompts
The server also offers 6 ready-made prompts. Some assistants show them as slash commands. Arguments in bold are required.
| Prompt | Title | Arguments |
|---|---|---|
| marxx_competitor_teardown | Competitor creative teardown | competitor, client_brand |
| marxx_creative_brief | Data-grounded creative brief | competitor, client_product_context |
| marxx_audience_angles | Audience voice-of-customer angles | persona, product_context |
| marxx_on_brand_concept | On-brand ad concept | product, goal |
| marxx_create_production | Autonomous creative productionAsks you to confirm expensive runs first. | request, budget_credits |
| marxx_edit_video | Edit a video in the Marxx editorOnly shown when the video editor switch is on. | request, project |
Example requests
Read
What changed across Meta and Google last week, and which creative is behind it?
Uses the account, Google Ads and creative tools. Nothing is changed.
Read
Tear down the last twenty ads our closest competitor shipped. Which hooks have we never run?
Uses the competitor tools.
Read
Audit the account. Where is budget sitting in ad sets that stopped converting?
Uses the account audit tools.
Change
Pause the three Meta ad sets with the highest cost per result this month.
Needs Meta ads changes switched on. The assistant shows a draft first and waits for your yes.
Change
Draft a Google Search campaign for our summer sale, 1,500 a day, targeting Mumbai.
Needs Google Ads changes switched on. The campaign is created paused, and only after your yes.
Credits
Make three 9:16 images for the hook we just found. Tell me the cost before you spend anything.
Needs Generation tools switched on. The assistant should quote the cost and wait for your approval.
Data and privacy
- The assistant receives only what the tools it calls return. That content is then handled by the assistant's own provider under that provider's terms.
- Marxx logs each tool call by tool name, without its arguments or results.
- Marxx keeps what the change and creative tools produce so you can use it: drafts and change history, moodboards, boards, generated media and editor projects, all inside the client's workspace.
- Tokens are bound to this server's address. There are no API keys.
Read the privacy policy and the terms for how Marxx handles personal data and the rules of use.
Errors and troubleshooting
Tool errors come back to the assistant as readable messages, which it should relay to you.
| What you see | What to do |
|---|---|
| No active subscription | The Marxx account needs an active subscription or trial, and onboarding finished. |
| Client not selected | Tell the assistant which client to work on. It calls the client picker, then retries. |
| Tool group switched off | That group is off for this client. Contact support to switch it on. |
| Fewer tools than expected | Groups that are off are hidden. See Tool access. |
| Rate limited (HTTP 429) | Wait for the Retry-After time and ask again. Meta can also rate limit an ad account. |
| Meta token expired | Reconnect Meta for that client in Marxx. |
| Draft expired or not found | Drafts last 30 minutes. Ask the assistant to draft the change again. |
| Sign-in or approval page fails | Start the connection again from the assistant. The approval link works for a short time only. |
Support
Email apurv@marxx.ai with a screenshot of what you see, or book a call. Setup help is in Use Marxx inside Claude, ChatGPT and Cursor.