Inside Ads
Server Details
Telegram ad exchange: estimate reach and cost with no account, then create and run campaigns.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Available Tools
3 toolscreate_campaign_draftAInspect
Build a ready-to-launch ad campaign for a product WITHOUT the user having an account yet. Parses the landing page, generates ad creatives, and returns a single checkout link. Give that link to the user: they sign in there, the campaign moves to their account, they pay, and it starts. Use this after estimate_campaign, once the user agreed to advertise. Do NOT ask them to register first.
| Name | Required | Description | Default |
|---|---|---|---|
| geo | No | Optional ISO-2 country target, e.g. "US" | |
| url | Yes | Landing page URL of the product to promote (required) | |
| lang | No | Optional audience language, e.g. "en" | |
| budget | No | Intended budget in USD, used for the estimate shown to the user | |
| description | No | What the product does, in your own words — improves topic matching |
Output Schema
| Name | Required | Description |
|---|---|---|
| draftId | Yes | Poll get_draft_status with this to see whether the user paid. |
| estimate | No | Same shape as estimate_campaign, for the budget given. |
| expiresAt | Yes | ISO timestamp after which the link stops working. |
| adsCreated | No | How many ad variants were generated. |
| campaignId | No | |
| checkoutUrl | Yes | THE link to give the user. One click: sign in, review creatives, pay. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses key behaviors: parsing the landing page, generating ad creatives, returning a checkout link, and the post-flow authentication. However, it omits details about idempotency, error scenarios, or potential side effects like rate limits or resource cleanup, leaving a small gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (about 80 words) and structured well. The first sentence immediately states the core purpose and key constraint. Each sentence adds necessary information without redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the parameter complexity (5 params, all optional except url), the presence of an output schema, and two sibling tools, the description covers the essential workflow and integration points. It does not detail the output schema (unnecessary due to its existence) but could briefly mention expected return type or edge cases. Still, it is nearly complete for the tool's role.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds mild context beyond schema: it links 'url' to page parsing and 'description' to topic matching. It does not add new semantics for 'geo', 'lang', or 'budget' beyond their schema descriptions, so it only marginally enhances understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Build a ready-to-launch ad campaign' and specifies the resource 'for a product'. It explicitly differentiates from siblings by noting this tool is used after 'estimate_campaign' and that it works without a user account, avoiding confusion with 'get_draft_status'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit context: 'Use this after estimate_campaign, once the user agreed to advertise. Do NOT ask them to register first.' It clearly states the ordering and the condition under which this tool should be invoked, leaving no ambiguity about its place in the workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
estimate_campaignAInspect
Estimate reach, clicks and cost of advertising a product to Telegram audiences — no account or authorization required. Call this FIRST, before asking the user to connect an account: it tells you whether inside.ad has relevant inventory for this product and what a given budget would buy. Describe the product yourself (you know it better than any crawler); the URL alone is a weak signal.
| Name | Required | Description | Default |
|---|---|---|---|
| geo | No | Optional ISO-2 country filter, e.g. "US" | |
| url | No | Product landing page URL | |
| lang | No | Optional audience language filter, e.g. "en" | |
| budget | No | Budget in USD to estimate against (default 100) | |
| keywords | No | Optional topic keywords, e.g. ["devtool","ai"] | |
| description | No | What the product does, in your own words. Strongest signal for topic matching. |
Output Schema
| Name | Required | Description |
|---|---|---|
| budget | Yes | Budget the estimate was computed for, in USD |
| cpmUsd | No | Reach-weighted average CPM across matched segments |
| cpcRange | No | Implied cost per click in USD, derived from CPM and the CTR band. |
| currency | Yes | |
| dailyReach | No | Total daily impressions available in matched segments |
| assumptions | No | |
| deliveryDays | No | Roughly how many days it takes to deliver estimatedImpressions at the current daily reach. |
| sampleSegments | No | Matched inventory segments. Individual channels are deliberately not disclosed. |
| estimatedClicks | Yes | Range, not a point estimate. Report both ends to the user. |
| inventoryIsThin | Yes | 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 | No | 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 | No | |
| estimatedImpressions | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description correctly states that no account or authorization is required, which is critical behavioral context. It implies the tool is a read-only estimation (no side effects mentioned), but could explicitly state idempotency or that it does not create any resource. The presence of an output schema partially covers return values, but the description could be slightly more explicit about safety.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences each serve a distinct purpose: defining the tool, specifying when to call it and what it returns, and offering practical advice. No redundant or wasted content; every sentence is essential and front-loaded with key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (6 optional parameters, output schema present, sibling tools), the description covers core purpose, usage order, and a critical parameter hint. It does not detail error scenarios or behavior when filters yield no results, but the output schema likely covers the return structure. Overall, it provides sufficient context for effective selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each parameter is already documented. The description adds meaning by emphasizing the 'description' parameter as the strongest signal and warning that 'the URL alone is a weak signal', which guides proper usage. This extra context raises the value above the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool estimates 'reach, clicks and cost' for 'advertising a product to Telegram audiences', using specific verbs and a clear resource. It distinguishes itself from siblings by positioning it as the first step before account connection, effectively differentiating from create_campaign_draft and get_draft_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit guidance is provided: 'Call this FIRST, before asking the user to connect an account'. It explains what the tool tells you (inventory relevance and budget capabilities) and advises on best practice ('Describe the product yourself...the URL alone is a weak signal'), leaving no ambiguity about when and how to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_draft_statusAInspect
Check what happened to a campaign draft you created with create_campaign_draft: whether the user opened the link, signed in and paid. Poll this instead of asking the user to report back.
| Name | Required | Description | Default |
|---|---|---|---|
| draftId | Yes | draftId returned by create_campaign_draft |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | What to tell the user next. |
| status | Yes | '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 | Yes | |
| claimedAt | No | |
| createdAt | No | |
| expiresAt | No | |
| campaignId | No | |
| previewedAt | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description bears full responsibility. It discloses the tool is meant for polling and returns status about user actions (opened, signed in, paid). However, it does not describe side effects, idempotency, or rate limits. While adequate, it could be more transparent about safe repeated calls.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: first states purpose and details, second gives usage guidance. No filler words, front-loaded with action and resource. Every sentence contributes meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (1 param, output schema present) and sibling tools, the description completely covers what the tool does, when to poll, and what outcomes to expect. No gaps for an agent to select or invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (one parameter with schema description). The description adds value by specifying that draftId is the one 'returned by create_campaign_draft', providing origin context beyond the schema. This enhances understanding of how to obtain the identifier.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks the status of a campaign draft (opened link, signed in, paid). It uses a specific verb 'check' and resource 'campaign draft status'. It distinguishes from siblings: create_campaign_draft (creates) and estimate_campaign (estimates), making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises to 'Poll this instead of asking the user to report back', indicating when to use (after creation, via polling). It implies not to rely on user reports but doesn't explicitly contrast with siblings or state when not to use. The context is clear enough for correct selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
3 tool updates
- First observed
create_campaign_draft - First observed
estimate_campaign - First observed
get_draft_status
Frequently Asked Questions
Claiming proves that you control a remote MCP connector. It does not move, proxy, or interrupt the server.
Open the connector listing, choose Claim ownership, and sign in to Glama.
Complete one verification method:
GitHub identity — fastest for official registry listings. For a namespace such as
io.github.alice/server, link the matching GitHub user, then choose Claim with GitHub. An organization namespace such asio.github.acme/serveralso needs that organization to have installed the Glama AI GitHub App and approved its permissions, because GitHub discloses organization membership only to apps it has installed. Use HTTP or DNS when it has not.HTTP challenge — works when you can deploy a public file. Generate a token, publish the exact JSON Glama shows at
/.well-known/glama.jsonon the same origin as the connector, then choose Check HTTP challenge.DNS challenge — works when you control DNS but cannot change the server. Generate a token, create the exact TXT record Glama shows, wait for it to propagate, then choose Check DNS challenge.
After verification, Glama sends a confirmation email and gives you access to listing details, thumbnails, health checks, and analytics. Keep the HTTP file or DNS record in place: Glama periodically checks it and ownership remains verified while the token is discoverable.
The HTTP ownership file has this structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"claim": "glama_claim_..."
}Claim tokens are opaque, stable, and bound to the signed-in Glama account. They contain no email address or other personal information. If Glama can no longer discover a verified HTTP or DNS token, it starts a seven-day grace period before removing claim-based access. Restore the same token during that period to keep ownership verified. Never publish an email address, Glama session token, GitHub token, or connector credential as ownership proof.
If verification fails, confirm that you copied the current token exactly. The HTTP file must be public, return valid JSON with a successful HTTP response, and stay on the connector's origin. DNS changes may need more time to propagate. A claim cannot transfer to a different origin or hostname: if the connector target changes, Glama starts the grace period and the new target must be claimed separately after the previous claim is released.
For a connector linked to the official MCP Registry, registry updates continue to replace its name, description, and URL by default. After claiming, open Manage connector and enable Use Glama listing details as the source of truth if edits made on Glama should be preserved. Categories and thumbnails are always managed on Glama; registry linkage and technical connection settings continue to sync.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
To improve your MCP server's ranking:
Claim ownership of the server listing
Complete the server profile with an accurate description and thumbnail
Provide a test profile so Glama can connect to and evaluate the server
Keep tool definitions clear and complete to earn a high Tool Definition Quality Score (TDQS)
Route real usage through the Glama Gateway; more recorded successful server uses also improve the ranking
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Connectors
Ad marketplace: search Telegram/VK/Max channels by topic, geo, price; reach, ER, CPV stats.
Telegram channels you administer: analytics, content plans, scheduled publishing. No userbot
Telegram CRM: manage contacts, conversations, tickets, campaigns and analytics.
- adsOAuthcom.promtpress
Buy Telegram subscribers and website traffic, billed per verified result.
Related MCP Servers
- FlicenseBqualityAmaintenanceEnables AI agents to create, target, pause, and read stats for Telegram Ads campaigns through ads.telegram.org using a logged-in session, with tools for managing ads, creatives, targeting, and account settings.25-
- AlicenseNot gradedqualityBmaintenanceProvides typed tools for ads.telegram.org, enabling login via Playwright and a read-only watcher through a local stdio MCP server.MIT
- AlicenseNot gradedqualityCmaintenanceMCP server for buying advertising outcomes such as Telegram subscribers and website traffic from a prepaid balance. Provides tools for campaign management, forecasting, and budget control, with guardrails so agents can spend but not fund or withdraw.MIT
- AlicenseAqualityBmaintenanceAn MCP server that lets AI agents read and manage Telegram Ads campaigns, including listing accounts and ads, reading stats and budgets, and creating/updating ads, CPM, status, and budget by driving the real ads.telegram.org web UI through Playwright with a reused cookie-based login session.111MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.
TDQS
Each tool targets a distinct phase of the campaign workflow: estimate_campaign for initial feasibility, create_campaign_draft for generating the draft, and get_draft_status for tracking progress. There is no overlap in purpose.
All tools follow a consistent verb_noun pattern in snake_case (estimate_campaign, create_campaign_draft, get_draft_status), making the action and object immediately clear.
Three tools is appropriately scoped for the service: a pre-flight estimate, a creation step, and a status check. No tool feels redundant or missing for the agent's role.
The tools cover the core workflow (estimate → create → check status) completely for the agent's interaction. The only minor gap is lacking a way to modify or cancel a draft before the user acts, but the designed flow is linear and doesn't require it.