{"name":"AdHub for advertisers","version":"1.0.0","endpoint":"https://adhub.plus/mcp","transport":"Streamable HTTP","authorization":"OAuth authorization code with PKCE S256; read and optional write scope","resource_metadata":"https://adhub.plus/.well-known/oauth-protected-resource/mcp","documentation":"https://adhub.plus/integrations/mcp","tools":[{"name":"getAccountOverview","description":"Get advertiser account overview. Only the authenticated advertiser’s own account and resources are accessible.","write":false,"input_schema":{"type":"object","properties":{},"additionalProperties":false}},{"name":"getBalanceSummary","description":"Get current balance and total topups. Only the authenticated advertiser’s own account and resources are accessible.","write":false,"input_schema":{"type":"object","properties":{},"additionalProperties":false}},{"name":"getCampaignTypeCatalog","description":"Get public campaign type settings. Only the authenticated advertiser’s own account and resources are accessible. Deliveries are technical sends, not views or unique people. Conversion scenarios are assumptions, not promised results.","write":false,"input_schema":{"type":"object","properties":{},"additionalProperties":false}},{"name":"estimateCampaignBudget","description":"Estimate sends and cost from budget. Only the authenticated advertiser’s own account and resources are accessible. Deliveries are technical sends, not views or unique people. Conversion scenarios are assumptions, not promised results.","write":false,"input_schema":{"type":"object","properties":{"campaign_type":{"type":"string","enum":["mass_24h","mass_3d","mass_7d","mass_30d","all_users"],"description":"mass_24h targets users active in the last 24 hours; mass_3d, mass_7d, and mass_30d target progressively broader recent activity windows; all_users targets the broad database."},"budget_usd":{"type":"number"},"cpm":{"type":"number"},"conversion_rate_percent":{"type":"number"}},"additionalProperties":false,"required":["campaign_type","budget_usd"]}},{"name":"compareCampaignTypes","description":"Compare public campaign types for a budget. Only the authenticated advertiser’s own account and resources are accessible. Deliveries are technical sends, not views or unique people. Conversion scenarios are assumptions, not promised results.","write":false,"input_schema":{"type":"object","properties":{"budget_usd":{"type":"number"},"conversion_rate_percent":{"type":"number"}},"additionalProperties":false}},{"name":"getSpendOverview","description":"Get spend overview for the current user. Only the authenticated advertiser’s own account and resources are accessible.","write":false,"input_schema":{"type":"object","properties":{"from":{"type":"string","format":"date"},"to":{"type":"string","format":"date"},"granularity":{"type":"string","enum":["day","week","month"]}},"additionalProperties":false}},{"name":"getSpendTimeSeries","description":"Get payments, spend, and CPM time series. Only the authenticated advertiser’s own account and resources are accessible.","write":false,"input_schema":{"type":"object","properties":{"from":{"type":"string","format":"date"},"to":{"type":"string","format":"date"},"granularity":{"type":"string","enum":["day","week","month"]}},"additionalProperties":false}},{"name":"getSpendByCampaignType","description":"Get spend totals by public campaign type. Only the authenticated advertiser’s own account and resources are accessible.","write":false,"input_schema":{"type":"object","properties":{"from":{"type":"string","format":"date"},"to":{"type":"string","format":"date"},"granularity":{"type":"string","enum":["day","week","month"]}},"additionalProperties":false}},{"name":"listAdverts","description":"List current user's adverts. Only the authenticated advertiser’s own account and resources are accessible.","write":false,"input_schema":{"type":"object","properties":{"page":{"type":"integer","minimum":1},"per_page":{"type":"integer","minimum":1,"maximum":100},"admitted":{"type":"boolean"}},"additionalProperties":false}},{"name":"createAdvert","description":"Create an advert. Only the authenticated advertiser’s own account and resources are accessible. Requires explicit advertiser confirmation; do not retry automatically after an uncertain result.","write":true,"input_schema":{"type":"object","properties":{"advert":{"type":"object","properties":{"name":{"type":"string"},"text":{"type":"string"},"pic_url":{"type":["string","null"]},"video_url":{"type":["string","null"]},"button_caption":{"type":["string","null"]},"button_url":{"type":["string","null"]},"parse_mode":{"type":"string","enum":["HTML","Markdown"]}},"additionalProperties":false},"confirmed":{"type":"boolean","const":true,"description":"Set true only after the advertiser explicitly approved this exact change."}},"additionalProperties":false,"required":["advert","confirmed"]}},{"name":"listAvailableAdvertsForCampaign","description":"List adverts not attached to a campaign. Only the authenticated advertiser’s own account and resources are accessible.","write":false,"input_schema":{"type":"object","properties":{"page":{"type":"integer","minimum":1},"per_page":{"type":"integer","minimum":1,"maximum":100}},"additionalProperties":false}},{"name":"getAdvert","description":"Get one advert. Only the authenticated advertiser’s own account and resources are accessible.","write":false,"input_schema":{"type":"object","properties":{"id":{"type":"integer","minimum":1}},"additionalProperties":false,"required":["id"]}},{"name":"updateAdvert","description":"Update an advert. Only the authenticated advertiser’s own account and resources are accessible. Requires explicit advertiser confirmation; do not retry automatically after an uncertain result.","write":true,"input_schema":{"type":"object","properties":{"id":{"type":"integer","minimum":1},"advert":{"type":"object","properties":{"name":{"type":"string"},"text":{"type":"string"},"pic_url":{"type":["string","null"]},"video_url":{"type":["string","null"]},"button_caption":{"type":["string","null"]},"button_url":{"type":["string","null"]},"parse_mode":{"type":"string","enum":["HTML","Markdown"]}},"additionalProperties":false},"confirmed":{"type":"boolean","const":true,"description":"Set true only after the advertiser explicitly approved this exact change."}},"additionalProperties":false,"required":["id","advert","confirmed"]}},{"name":"copyAdvert","description":"Copy an advert. Only the authenticated advertiser’s own account and resources are accessible. Requires explicit advertiser confirmation; do not retry automatically after an uncertain result.","write":true,"input_schema":{"type":"object","properties":{"id":{"type":"integer","minimum":1},"confirmed":{"type":"boolean","const":true,"description":"Set true only after the advertiser explicitly approved this exact change."}},"additionalProperties":false,"required":["id","confirmed"]}},{"name":"listCampaigns","description":"List public GPT campaign types. Only the authenticated advertiser’s own account and resources are accessible.","write":false,"input_schema":{"type":"object","properties":{"campaign_type":{"type":"string","enum":["mass_24h","mass_3d","mass_7d","mass_30d","all_users"],"description":"mass_24h targets users active in the last 24 hours; mass_3d, mass_7d, and mass_30d target progressively broader recent activity windows; all_users targets the broad database."},"page":{"type":"integer","minimum":1},"per_page":{"type":"integer","minimum":1,"maximum":100}},"additionalProperties":false}},{"name":"createCampaignFromBudget","description":"Create a campaign and calculate sending limit from budget. Only the authenticated advertiser’s own account and resources are accessible. Requires explicit advertiser confirmation; do not retry automatically after an uncertain result. This creates and may enable a campaign; show the budget, CPM, ad and audience before confirmation.","write":true,"input_schema":{"type":"object","properties":{"campaign_type":{"type":"string","enum":["mass_24h","mass_3d","mass_7d","mass_30d","all_users"],"description":"mass_24h targets users active in the last 24 hours; mass_3d, mass_7d, and mass_30d target progressively broader recent activity windows; all_users targets the broad database."},"budget_usd":{"type":"number"},"campaign":{"type":"object","properties":{"name":{"type":"string"},"advert_id":{"type":"integer"},"cpm":{"type":"number"},"auto_cpm_max":{"type":["number","null"]},"sending_limit":{"type":"integer","minimum":1},"enabled":{"type":"boolean"}},"additionalProperties":false},"confirmed":{"type":"boolean","const":true,"description":"Set true only after the advertiser explicitly approved this exact change."}},"additionalProperties":false,"required":["campaign_type","budget_usd","campaign","confirmed"]}},{"name":"getCampaign","description":"Get one public GPT campaign. Only the authenticated advertiser’s own account and resources are accessible.","write":false,"input_schema":{"type":"object","properties":{"id":{"type":"integer","minimum":1}},"additionalProperties":false,"required":["id"]}},{"name":"updateCampaignSettings","description":"Update campaign settings. Only the authenticated advertiser’s own account and resources are accessible. Requires explicit advertiser confirmation; do not retry automatically after an uncertain result.","write":true,"input_schema":{"type":"object","properties":{"id":{"type":"integer","minimum":1},"campaign":{"type":"object","properties":{"name":{"type":"string"},"advert_id":{"type":"integer"},"cpm":{"type":"number"},"auto_cpm_max":{"type":["number","null"]},"sending_limit":{"type":"integer","minimum":1},"enabled":{"type":"boolean"}},"additionalProperties":false},"confirmed":{"type":"boolean","const":true,"description":"Set true only after the advertiser explicitly approved this exact change."}},"additionalProperties":false,"required":["id","campaign","confirmed"]}},{"name":"setCampaignStatus","description":"Start or stop one campaign. Only the authenticated advertiser’s own account and resources are accessible. Requires explicit advertiser confirmation; do not retry automatically after an uncertain result.","write":true,"input_schema":{"type":"object","properties":{"id":{"type":"integer","minimum":1},"status":{"type":"string","enum":["start","stop"]},"confirmed":{"type":"boolean","const":true,"description":"Set true only after the advertiser explicitly approved this exact change."}},"additionalProperties":false,"required":["id","status","confirmed"]}},{"name":"updateCampaignCpm","description":"Update campaign CPM. Only the authenticated advertiser’s own account and resources are accessible. Requires explicit advertiser confirmation; do not retry automatically after an uncertain result.","write":true,"input_schema":{"type":"object","properties":{"id":{"type":"integer","minimum":1},"cpm":{"type":"number"},"confirmed":{"type":"boolean","const":true,"description":"Set true only after the advertiser explicitly approved this exact change."}},"additionalProperties":false,"required":["id","cpm","confirmed"]}},{"name":"updateCampaignAutoCpm","description":"Enable, update, or disable auto CPM. Only the authenticated advertiser’s own account and resources are accessible. Requires explicit advertiser confirmation; do not retry automatically after an uncertain result.","write":true,"input_schema":{"type":"object","properties":{"id":{"type":"integer","minimum":1},"enabled":{"type":"boolean"},"auto_cpm_max":{"type":["number","null"]},"confirmed":{"type":"boolean","const":true,"description":"Set true only after the advertiser explicitly approved this exact change."}},"additionalProperties":false,"required":["id","confirmed"]}},{"name":"getCampaignPerformanceSummary","description":"Get campaign progress, spend, and errors. Only the authenticated advertiser’s own account and resources are accessible.","write":false,"input_schema":{"type":"object","properties":{"id":{"type":"integer","minimum":1}},"additionalProperties":false,"required":["id"]}}]}