Mako Metrics
Measured conclusion: Alive, not deep-tested. L2 outcome: not_attempted.
Competitor Meta ads intelligence reports. List plans, create orders, Stripe checkout for humans.
| Author | com.makometrics |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Alive, not deep-tested |
| L1 liveness | alive |
| L1 latency | 282 ms |
| Last measured | 2026-10-26 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"Mako Metrics": {
"url": "https://ufupdlaxddckqxbgbhwu.supabase.co/functions/v1/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (16)
list_plansread-onlyList Mako Metrics plans with pricing, what's included, scope limits, delivery, guarantee, and links to verify the merchant. Use this to recommend a plan before ordering. Covers the competitor report plans, which are the only products orderable through this server. May, the Meta ads agent, is a monthly engagement bought at makometrics.com/meta-ads-agent.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
create_orderCreate a Mako Metrics order brief for a customer and return a Stripe checkout link for them to complete payment. After payment, we email the customer when the report is ready, typically within 24h. They download the PDF report and export ZIP (saved ad images/videos, browsable gallery, raw ad data) at makometrics.com/portal. No payment is taken by this tool. It only returns a pay link the human opens. Report plans only. For May, the Meta ads agent, send the customer to makometrics.com/meta-ads-agent.
Parameters:
plan(required) — stringemail(required) — string — Customer work email (receipt, portal invite, and report-ready notifications).company_name(required) — stringrevenue_band(required) — stringindustry_vertical(required) — stringcompetitors(required) — array — Brand or Meta Ad Library page names. Snapshot=1, Dominator=up to 5, Agency=up to 10.notes— stringcompany_website— stringclient_account_name— string — Required for the agency plan: the client this batch is for.
Hints: read-only no · destructive no · idempotent not declared · open-world yes
whoamiread-onlyShow which Mako Metrics account this key belongs to: the plan, how many competitor reports are left in the current period, and the client workspaces on the login. Call this first in any session that will use the customer tools. Requires an X-Mako-Key header from makometrics.com/portal.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
list_clientsread-onlyList the client workspaces on this account, with the id each other tool needs and whether the client's brand profile is ready for a May run. Requires an X-Mako-Key header.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
order_reportOrder a competitor Meta ads report for one competitor. On a Dominator, Agency or May plan this spends one report from the current period's allowance and queues the build. On Snapshot it returns a Stripe checkout link instead. The report is NOT generated on the spot: a person builds it and it is delivered to the portal, typically within 24 hours. Poll get_status, then list_deliverables. Requires an X-Mako-Key header.
Parameters:
competitor(required) — string — The competitor's brand name or Meta Ad Library page name. One per order.goal— string — What the customer wants to learn from the report.notes— stringtitle— stringmarket— stringfacebook_page— string — The competitor's public Facebook page URL.competitor_site— string — The competitor's website.client_account_id— string — Which client workspace this is for. Get it from list_clients.
Hints: read-only no · destructive no · idempotent not declared · open-world yes
run_mayStart a May creative run for one client: research, copy, and eight ad concepts, delivered to the portal for the customer to review and edit. Usually a few minutes. When the brand profile names a competitor May has not researched yet, it reads that competitor's website and Meta ads first, and the run shows status 'researching' for up to about 20 minutes. May builds creative and, separately in the portal, a PAUSED campaign. It never turns anything on and never spends ad budget. The client needs a confirmed brand profile first, which is filled in at makometrics.com/portal. Needs the May plan and an X-Mako-Key header.
Parameters:
client_account_id(required) — string — Which client workspace to run for. Get it from list_clients.brief(required) — string — What this round is for, in plain language. The campaign, the angle, the buyer.avoid— string — One thing the creative must not claim or show.feature— string — One thing the creative should lead with.objective— string
Hints: read-only no · destructive no · idempotent not declared · open-world yes
get_statusread-onlyCheck one report order or one May run by its id, or omit the id to list the most recent of both. Returns the status and, once finished, the deliverable id to pass to get_download_url. Requires an X-Mako-Key header.
Parameters:
id— string — A report request id or a May run id.client_account_id— string — Narrow the list to one client.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
list_deliverablesread-onlyList everything finished and ready to download on this account: competitor report bundles and May run artifacts. Requires an X-Mako-Key header.
Parameters:
kind— stringlimit— integerclient_account_id— string — Narrow to one client workspace.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
get_download_urlread-onlyMint a download link for one deliverable. The link works for 10 minutes and then expires, so fetch it when the human is ready to use it rather than in advance. Requires an X-Mako-Key header.
Parameters:
deliverable_id(required) — string — From list_deliverables.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
create_clientAdd a client workspace to the account. Each workspace holds one brand's profile, runs, creatives and campaigns. Plans include a fixed number of active clients, so this fails when the roster is full. Needs the May plan and an X-Mako-Key header.
Parameters:
name(required) — string — The client or brand name, as the customer would say it.
Hints: read-only no · destructive no · idempotent not declared · open-world no
draft_brand_from_websiteRead a client's website and fill in most of their brand profile automatically. Takes up to a minute or two. The result is a DRAFT: review it with get_brand_profile, correct it with set_brand_profile, then confirm. This is the fastest way to get a new client ready for a May run. Needs the May plan and an X-Mako-Key header.
Parameters:
client_account_id(required) — string — From list_clients or create_client.website_url(required) — string — The client's homepage.
Hints: read-only no · destructive no · idempotent not declared · open-world yes
get_brand_profileread-onlyRead one client's brand profile: what they sell, who buys it, voice, colors, and the campaign defaults. Also reports whether it is confirmed and, if not, exactly which answers are still missing before May can run. Requires an X-Mako-Key header.
Parameters:
client_account_id(required) — string — From list_clients.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
set_brand_profileWrite or update one client's brand profile. Every field is optional and only what you pass is changed, so this is safe to call repeatedly to correct a website draft. Pass confirm: true when the answers are right, which is what run_may needs. Confirming needs company_name, domain, flagship_product, offer_landing_page, target_customers and both colors. Needs the May plan and an X-Mako-Key header.
Parameters:
client_account_id(required) — string — From list_clients.notes— stringoffer— string — The standing offer, for example 20% off the variety pack.voice— string — How the brand sounds, in a sentence or two.domain— string — Bare domain, for example acme.com.confirm— boolean — Set true to mark the profile ready for runs.category— stringcolor_sky— string — Accent color as hex.known_for— string — The problem they solve.objective— string — The default campaign goal for this client.color_navy— string — Primary brand color as hex, for example #1E3A8A.objections— string — What stops people buying.competitors— array — Up to three competitor brands May studies before writing concepts.image_notes— string — Art direction for the generated images.price_range— stringwebsite_url— stringavoid_claims— string — Claims the creative must never make.company_name— stringdaily_budget— integer — Default daily budget in whole dollars.phone_number— string — Only used by a calls campaign.proof_points— array — Facts the copy is allowed to claim. Nothing outside this list is used.support_email— stringsignature_claim— string — The one thing this brand is known for.flagship_product— string — The main thing to advertise.popular_products— arraytarget_customers— array — Who buys it. One per entry.offer_landing_page— string — Where the ads should send people.competitor_websites— object — Optional website per competitor, keyed by the name in competitors. Give it for a local business or a common name, so May reads the right one.
Hints: read-only no · destructive no · idempotent not declared · open-world no
list_creativesread-onlyList the ad concepts from a May run: headline, primary text, call to action, compliance status, and a download link for each image. Returns the newest version of each concept. Use the variant_id values with build_paused_campaign. Requires an X-Mako-Key header.
Parameters:
run_id(required) — string — A May run id from get_status or run_may.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
list_meta_assetsread-onlyShow the client's connected Facebook ad account and the conversions available to optimize toward. Call this before build_paused_campaign on a leads or sales campaign, because those need a conversion to aim at. Connecting Facebook itself has to be done by a person in the portal. Requires an X-Mako-Key header.
Parameters:
client_account_id(required) — string — From list_clients.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world yes
build_paused_campaignBuild a real Meta campaign from chosen concepts, in the client's own ad account, left PAUSED. It cannot deliver and cannot spend until a person turns it on in Ads Manager, which this tool cannot do and neither can any other. Takes a minute or two. Budget floors: $6/day for leads and sales, $1/day otherwise; the ceiling is $500/day. Needs the May plan, a connected Facebook ad account, and an X-Mako-Key header.
Parameters:
run_id(required) — string — The May run the concepts came from.variant_ids(required) — array — Which concepts to build ads from. From list_creatives.goal(required) — stringdaily_budget(required) — integer — Whole dollars per day.bid_amount— integer — Whole dollars. Required unless bid_strategy is LOWEST_COST_WITHOUT_CAP.bid_strategy— stringcampaign_name— stringconversion_asset_id— string — Which conversion to optimize toward, from list_meta_assets. Needed for leads and sales.
Hints: read-only no · destructive no · idempotent not declared · open-world yes
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.