Inside Ads
What this MCP does
Estimates Telegram advertising reach and cost, creates campaign drafts, and reports campaign draft status.
Tools
Input schema
{'type': 'object', 'required': ['url'], 'properties': {'geo': {'type': 'string', 'description': 'Optional ISO-2 country target, e.g. "US"'}, 'url': {'type': 'string', 'description': 'Landing page URL of the product to promote (required)'}, 'lang': {'type': 'string', 'description': 'Optional audience language, e.g. "en"'}, 'budget': {'type': 'number', 'description': 'Intended budget in USD, used for the estimate shown to the user'}, 'description': {'type': 'string', 'description': 'What the product does, in your own words — improves topic matching'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['draftId', 'checkoutUrl', 'expiresAt'], 'properties': {'draftId': {'type': 'string', 'description': 'Poll get_draft_status with this to see whether the user paid.'}, 'estimate': {'type': 'object', 'description': 'Same shape as estimate_campaign, for the budget given.', 'additionalProperties': True}, 'expiresAt': {'type': 'string', 'description': 'ISO timestamp after which the link stops working.'}, 'adsCreated': {'type': 'number', 'description': 'How many ad variants were generated.'}, 'campaignId': {'type': 'number'}, 'checkoutUrl': {'type': 'string', 'description': 'THE link to give the user. One click: sign in, review creatives, pay.'}}}
Input schema
{'type': 'object', 'properties': {'geo': {'type': 'string', 'description': 'Optional ISO-2 country filter, e.g. "US"'}, 'url': {'type': 'string', 'description': 'Product landing page URL'}, 'lang': {'type': 'string', 'description': 'Optional audience language filter, e.g. "en"'}, 'budget': {'type': 'number', 'description': 'Budget in USD to estimate against (default 100)'}, 'keywords': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Optional topic keywords, e.g. ["devtool","ai"]'}, 'description': {'type': 'string', 'description': 'What the product does, in your own words. Strongest signal for topic matching.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['currency', 'budget', 'estimatedImpressions', 'estimatedClicks', 'inventoryIsThin'], 'properties': {'budget': {'type': 'number', 'description': 'Budget the estimate was computed for, in USD'}, 'cpmUsd': {'type': 'number', 'description': 'Reach-weighted average CPM across matched segments'}, 'cpcRange': {'type': 'object', 'properties': {'low': {'type': 'number'}, 'high': {'type': 'number'}}, 'description': 'Implied cost per click in USD, derived from CPM and the CTR band.'}, 'currency': {'type': 'string'}, 'dailyReach': {'type': 'number', 'description': 'Total daily impressions available in matched segments'}, 'assumptions': {'type': 'object', 'additionalProperties': True}, 'deliveryDays': {'type': ['number', 'null'], 'description': 'Roughly how many days it takes to deliver estimatedImpressions at the current daily reach.'}, 'sampleSegments': {'type': 'array', 'items': {'type': 'object', 'properties': {'country': {'type': 'string'}, 'category': {'type': 'string'}, 'dailyReach': {'type': 'number'}}}, 'description': 'Matched inventory segments. Individual channels are deliberately not disclosed.'}, 'estimatedClicks': {'type': 'object', 'properties': {'low': {'type': 'number'}, 'high': {'type': 'number'}}, 'description': 'Range, not a point estimate. Report both ends to the user.'}, 'inventoryIsThin': {'type': 'boolean', 'description': 'true = there is no matching inventory at all, OR the budget exceeds what the matched inventory can deliver. Say so plainly instead of promising results, and use spendableBudget as the realistic figure.'}, 'spendableBudget': {'type': 'number', 'description': 'How much of the budget this inventory can actually absorb within 30 days. If it is lower than budget, tell the user to either lower the budget or widen targeting — do not promise the full budget will be spent.'}, 'matchedCategories': {'type': 'array', 'items': {'type': 'string'}}, 'estimatedImpressions': {'type': 'number'}}}
Input schema
{'type': 'object', 'required': ['draftId'], 'properties': {'draftId': {'type': 'string', 'description': 'draftId returned by create_campaign_draft'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['draftId', 'status'], 'properties': {'hint': {'type': 'string', 'description': 'What to tell the user next.'}, 'status': {'type': 'string', 'description': "'created' — link not opened yet; 'previewed' — user opened it but has not finished; 'claimed' — campaign is on the user's account; 'expired' — link is dead, build a new draft."}, 'draftId': {'type': 'string'}, 'claimedAt': {'type': ['string', 'null']}, 'createdAt': {'type': 'string'}, 'expiresAt': {'type': 'string'}, 'campaignId': {'type': ['number', 'null']}, 'previewedAt': {'type': ['string', 'null']}}}
Recent tool changes
Similar MCP servers
AdAdvisor MCP Server
Manages Meta advertising campaigns, creatives, audiences, lead forms, budgets, statuses, and performance reporting.
goji
Searches and explains GOJI material about SEO, AEO, websites, AI builds, branding, services, and related marketing topics, and ca…
beauty
Finds and recommends sponsored beauty products, brands, and skincare routines based on shopper preferences and skin profiles.
AI-Advisors
Provides read-only AI search visibility data, including citations, answer-engine optimization audits, and advisor insights.
AdWeave — Meta Ads MCP Server
Provides tools for managing Meta advertising campaigns, creatives, audiences, and performance insights.
google-ads
Reports on and manages Google Ads campaigns, with newly created items starting paused.
adside
Enables AI agents to manage paid advertising campaigns on Meta, LinkedIn, and Google Ads.
Pre-Trip compliance scanner
Screens regulated-health marketing copy against source-cited compliance rules for all 50 U.S. states.