MCP tool · Brand and research
update_business_profile
Saves what you told the assistant about the brand, so it does not ask again. Apogee's data only.
What it does
Persist or update fields on the business profile (user_id + ad_account_id is implicit). Call this AFTER the user tells you a value (website URL, margin, CAC target, ROAS target, brand name, etc.) so we do not have to ask again next time. Pass only the fields you are updating; others stay as-is. Numeric fields: product_margin_pct, target_cac, target_roas, target_mer, ltv, repeat_purchase_rate_pct, avg_order_value, shipping_cost. Text fields: website_url, brand_name, category, business_type (ecommerce/lead_gen/saas/b2b/awareness), trustpilot_url, primary_objective (scale/profit/break_even/awareness), free_notes. JSONB arrays: reddit_subreddits, competitor_pages.
Parameters
-
fieldsobject requiredObject with one or more writable fields. Example: { "website_url": "https://mybrand.com", "product_margin_pct": 35, "target_roas": 2.5 }
-
ad_account_idstring requiredMeta ad account id (act_…), from list_ad_accounts
Example
Your assistant calls it for you when you ask in your own words. What it sends (MCP tools/call, JSON-RPC 2.0):
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "update_business_profile",
"arguments": {
"fields": {},
"ad_account_id": "act_1234567890"
}
}
} The same call over HTTP with an API key, for an MCP client of your own (an assistant that signs in sends its OAuth token instead):
curl -X POST https://app.apogee.ad/mcp \
-H "Authorization: Bearer $APOGEE_API_KEY" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"update_business_profile","arguments":{"fields":{},"ad_account_id":"act_1234567890"}}}' Access and cost
| Plans | Pro and Scale. |
|---|---|
| Scope | actions: a connection or an API key without it does not see this tool (scopes). |
| Effect | Changes Apogee only (imports, uploads, settings, comment syncs, AI drafts): nothing on the ad account. |
| Credits | Free up to the daily free reads (5,000 a day on Pro, 10,000 on Scale), then 1 credit per read. A call that fails costs nothing (credits). |
| Rate limit | 600 MCP requests per 15 minutes on Pro, 1,200 on Scale (rate limits). |
| Daily cap | Counts 2 units toward the 2,000 units one API key or assistant connection can use in 24 hours. |
Related tools
Brand and research: Context for creative strategy: your business profile, your comments, reviews and competitors.
get_business_profile: What Apogee knows about the brand of this ad account: website, margin, targets (CAC, ROAS).fetch_website_content: Reads the brand's website: voice, positioning, persona, claims.fetch_ad_comments: The comments of your ads, as Comment Analysis stores them.trigger_comment_sync: Fetches fresh comments from Meta (1 to 5 minutes).fetch_customer_reviews: Public reviews of the brand, positive or negative.search_reddit: Reddit threads on a topic: the customers' own words and pain points.search_meta_ad_library: Competitors' ads in the Meta Ad Library (texts only).load_reference: Loads one of Apogee's reference documents (audit frameworks, checklists, benchmarks).