{
  "schema": 1,
  "app": "Run My Ads",
  "address": "https://app.runmyads.com/mcp/rma",
  "read_only_address": "https://app.runmyads.com/mcp/rma/read",
  "sign_in": "OAuth 2.1: add the address as a custom connector in Claude or ChatGPT, then log in and approve. A personal key link from Connect AI agent also works.",
  "note": "Built from the live tool list of a new account. turned_on_by names the account switch an admin turns on in Connect AI agent; changes_or_spends tools always run through the account's own limits and consent rules.",
  "tools": [
    {
      "name": "brief_me",
      "summary": "Returns one read-only answer with the live state of the ad accounts this connection covers: spend and the alerts against their targets.",
      "reads_only": true,
      "changes_or_spends": false,
      "on_for_new_accounts": true,
      "needs_full_permission": false,
      "turned_on_by": [],
      "on_read_only_address": true
    },
    {
      "name": "change_setting",
      "summary": "Changes one setting, or does one action, by key, through the app's page logic as this person.",
      "reads_only": false,
      "changes_or_spends": true,
      "on_for_new_accounts": false,
      "needs_full_permission": false,
      "turned_on_by": [
        "connector_actions"
      ],
      "on_read_only_address": false
    },
    {
      "name": "check_store_status",
      "summary": "Returns each connected store: status, a plain status line, the last event and when, events and sales in the last 30 days, and the fix when it needs one.",
      "reads_only": true,
      "changes_or_spends": false,
      "on_for_new_accounts": true,
      "needs_full_permission": false,
      "turned_on_by": [],
      "on_read_only_address": true
    },
    {
      "name": "check_tracking_status",
      "summary": "Returns whether the tracking code has been seen, on which domains and when, the tracking health line (share of ad leads that carry their ad, results matched from their own system, last result), and `missing`: each gap with one plain fix,...",
      "reads_only": true,
      "changes_or_spends": false,
      "on_for_new_accounts": true,
      "needs_full_permission": false,
      "turned_on_by": [],
      "on_read_only_address": true
    },
    {
      "name": "explain_setting",
      "summary": "One setting by its key from list_settings: what it does, where it lives, who may change it, the current value and how to change it.",
      "reads_only": true,
      "changes_or_spends": false,
      "on_for_new_accounts": false,
      "needs_full_permission": false,
      "turned_on_by": [
        "connector_actions"
      ],
      "on_read_only_address": true
    },
    {
      "name": "find_existing_solution",
      "summary": "Before building or suggesting something new, checks whether the app already does it: give the goal in plain words; returns up to three built matches, whether each is ready here, and the tools to use in order.",
      "reads_only": true,
      "changes_or_spends": false,
      "on_for_new_accounts": true,
      "needs_full_permission": false,
      "turned_on_by": [],
      "on_read_only_address": true
    },
    {
      "name": "get_account_summary",
      "summary": "Returns spend, leads, cost per lead, clicks and rates for the whole ad account over a window, with the period before it, yesterday and a usual day.",
      "reads_only": true,
      "changes_or_spends": false,
      "on_for_new_accounts": true,
      "needs_full_permission": false,
      "turned_on_by": [],
      "on_read_only_address": true
    },
    {
      "name": "get_alerts_and_targets",
      "summary": "Returns the account's open ad alerts, the targets its ads are judged against (cost per click, opt-in rate, cost per lead, kill line), and Ados's daily ads watch (`cost_watch`): yesterday's cost per lead vs the 7 days before, and what eac...",
      "reads_only": true,
      "changes_or_spends": false,
      "on_for_new_accounts": true,
      "needs_full_permission": false,
      "turned_on_by": [],
      "on_read_only_address": true
    },
    {
      "name": "get_breakdown",
      "summary": "Returns spend and leads split by placement, region or device over the last synced 7 days, for the whole account or one campaign, ad set or ad.",
      "reads_only": true,
      "changes_or_spends": false,
      "on_for_new_accounts": true,
      "needs_full_permission": false,
      "turned_on_by": [],
      "on_read_only_address": true
    },
    {
      "name": "get_capability",
      "summary": "One catalog entry by id: what it does, whether it is ready on this connection, and how to use it.",
      "reads_only": true,
      "changes_or_spends": false,
      "on_for_new_accounts": true,
      "needs_full_permission": false,
      "turned_on_by": [],
      "on_read_only_address": true
    },
    {
      "name": "get_crm_postback_setup",
      "summary": "Returns how the person's own system (GoHighLevel, Zapier or any webhook) sends results back so cost per booked and per sale count: postback_url, how results match a lead (our lead_id, then the Meta leadgen_id, then email, then phone), wh...",
      "reads_only": true,
      "changes_or_spends": false,
      "on_for_new_accounts": true,
      "needs_full_permission": false,
      "turned_on_by": [],
      "on_read_only_address": true
    },
    {
      "name": "get_goal_status",
      "summary": "Where a goal from plan_goal stands, each step rechecked live: state (planned, running, waiting_on_person, done), steps with counts, the one thing needed from the person, when to check again.",
      "reads_only": true,
      "changes_or_spends": false,
      "on_for_new_accounts": true,
      "needs_full_permission": false,
      "turned_on_by": [],
      "on_read_only_address": true
    },
    {
      "name": "get_one",
      "summary": "Returns one campaign, ad set or ad by name or id: its numbers over the window, day by day, what is under it, its settings and its copy.",
      "reads_only": true,
      "changes_or_spends": false,
      "on_for_new_accounts": true,
      "needs_full_permission": false,
      "turned_on_by": [],
      "on_read_only_address": true
    },
    {
      "name": "get_playbook",
      "summary": "The steps of one playbook from list_playbooks, to follow with this connection's tools; the person decides any change.",
      "reads_only": true,
      "changes_or_spends": false,
      "on_for_new_accounts": true,
      "needs_full_permission": false,
      "turned_on_by": [],
      "on_read_only_address": true
    },
    {
      "name": "get_price_book",
      "summary": "What this product charges: each item's unit, US-dollar price and a note.",
      "reads_only": true,
      "changes_or_spends": false,
      "on_for_new_accounts": true,
      "needs_full_permission": false,
      "turned_on_by": [],
      "on_read_only_address": true
    },
    {
      "name": "get_store_setup",
      "summary": "Returns how to connect Shopify, Stripe, WooCommerce or any store that can send a signed webhook so every sale, checkout and refund counts back to the ad that brought the buyer (revenue, ROAS, new vs repeat buyers).",
      "reads_only": true,
      "changes_or_spends": false,
      "on_for_new_accounts": true,
      "needs_full_permission": false,
      "turned_on_by": [],
      "on_read_only_address": true
    },
    {
      "name": "get_tracking_setup",
      "summary": "Returns how to make every lead carry the ad that found it: ai_prompt, snippet, link_params, intake_url, builders and meta_results.",
      "reads_only": true,
      "changes_or_spends": false,
      "on_for_new_accounts": true,
      "needs_full_permission": false,
      "turned_on_by": [],
      "on_read_only_address": true
    },
    {
      "name": "get_wallet_topup_link",
      "summary": "Link to the app's own wallet page where the person adds money, and the minimum.",
      "reads_only": true,
      "changes_or_spends": false,
      "on_for_new_accounts": true,
      "needs_full_permission": false,
      "turned_on_by": [],
      "on_read_only_address": true
    },
    {
      "name": "list_ad_accounts",
      "summary": "Returns every ad account connected to this workspace: its id, its name and whether it is connected.",
      "reads_only": true,
      "changes_or_spends": false,
      "on_for_new_accounts": true,
      "needs_full_permission": false,
      "turned_on_by": [],
      "on_read_only_address": true
    },
    {
      "name": "list_ad_sets",
      "summary": "Returns the ad sets that spent in the window, biggest spender first, with spend, leads, cost per lead and a health verdict.",
      "reads_only": true,
      "changes_or_spends": false,
      "on_for_new_accounts": true,
      "needs_full_permission": false,
      "turned_on_by": [],
      "on_read_only_address": true
    },
    {
      "name": "list_ads",
      "summary": "Returns the ads that spent in the window: top spenders, the worst by cost per lead, the ones with no leads, a short line for every ad, and each shown ad's copy.",
      "reads_only": true,
      "changes_or_spends": false,
      "on_for_new_accounts": true,
      "needs_full_permission": false,
      "turned_on_by": [],
      "on_read_only_address": true
    },
    {
      "name": "list_campaigns",
      "summary": "Returns every campaign that spent in the window, biggest spender first, with spend, leads, cost per lead and a health verdict.",
      "reads_only": true,
      "changes_or_spends": false,
      "on_for_new_accounts": true,
      "needs_full_permission": false,
      "turned_on_by": [],
      "on_read_only_address": true
    },
    {
      "name": "list_capabilities",
      "summary": "What the app can do for this person, 20 at a time, each marked ready on this connection or not.",
      "reads_only": true,
      "changes_or_spends": false,
      "on_for_new_accounts": true,
      "needs_full_permission": false,
      "turned_on_by": [],
      "on_read_only_address": true
    },
    {
      "name": "list_docs",
      "summary": "Every Run My Ads help page: slug, title, section and a one-line summary.",
      "reads_only": true,
      "changes_or_spends": false,
      "on_for_new_accounts": true,
      "needs_full_permission": false,
      "turned_on_by": [],
      "on_read_only_address": true
    },
    {
      "name": "list_playbooks",
      "summary": "Ready-made routines for this connection, such as a weekly ads review: id, title, what each does and its options.",
      "reads_only": true,
      "changes_or_spends": false,
      "on_for_new_accounts": true,
      "needs_full_permission": false,
      "turned_on_by": [],
      "on_read_only_address": true
    },
    {
      "name": "list_recent_changes",
      "summary": "Returns budget, status, bid, targeting and creative changes, newest first, for the whole account or one campaign, ad set or ad.",
      "reads_only": true,
      "changes_or_spends": false,
      "on_for_new_accounts": true,
      "needs_full_permission": false,
      "turned_on_by": [],
      "on_read_only_address": true
    },
    {
      "name": "list_settings",
      "summary": "Every setting, action and onboarding step: key, what it does, where it lives, who may change it, and whether change_setting can do it or the person opens the page.",
      "reads_only": true,
      "changes_or_spends": false,
      "on_for_new_accounts": false,
      "needs_full_permission": false,
      "turned_on_by": [
        "connector_actions"
      ],
      "on_read_only_address": true
    },
    {
      "name": "onboarding_status",
      "summary": "Returns where this account's onboarding stands: the products this connection covers; every setup step we perform with its state (done, pending, waiting_on_agent, failed) and, when it waits on the person, what they still owe in plain word...",
      "reads_only": true,
      "changes_or_spends": false,
      "on_for_new_accounts": true,
      "needs_full_permission": false,
      "turned_on_by": [],
      "on_read_only_address": true
    },
    {
      "name": "plan_goal",
      "summary": "Turn what the person wants, in their own words (for example \"finish setting up my account\" or \"why did my cost per lead go up\"), into a plan.",
      "reads_only": true,
      "changes_or_spends": false,
      "on_for_new_accounts": true,
      "needs_full_permission": false,
      "turned_on_by": [],
      "on_read_only_address": true
    },
    {
      "name": "provide_onboarding_facts",
      "summary": "Hands us the onboarding facts the person told you, by the field names onboarding_status listed under facts_missing, and returns what was taken, what was refused and why, and what is still missing.",
      "reads_only": false,
      "changes_or_spends": false,
      "on_for_new_accounts": true,
      "needs_full_permission": true,
      "turned_on_by": [],
      "on_read_only_address": false
    },
    {
      "name": "read_doc",
      "summary": "One Run My Ads help page as markdown, by slug from list_docs or search_docs.",
      "reads_only": true,
      "changes_or_spends": false,
      "on_for_new_accounts": true,
      "needs_full_permission": false,
      "turned_on_by": [],
      "on_read_only_address": true
    },
    {
      "name": "request_full_management",
      "summary": "Returns the link where an admin of the account turns on \"Full permission to manage your ads: pause, resume, budgets, new ads\" for this same connection, with a sentence to give the person word for word.",
      "reads_only": true,
      "changes_or_spends": false,
      "on_for_new_accounts": true,
      "needs_full_permission": false,
      "turned_on_by": [],
      "on_read_only_address": true
    },
    {
      "name": "search_docs",
      "summary": "Help pages best matching some words, best first, with slug and matched line; read_doc has the page.",
      "reads_only": true,
      "changes_or_spends": false,
      "on_for_new_accounts": true,
      "needs_full_permission": false,
      "turned_on_by": [],
      "on_read_only_address": true
    }
  ]
}
