protogrid

Search / ad.inside/inside-ads

Inside Ads

R0· no sign-in

Telegram ad exchange: estimate reach and cost with no account, then create and run campaigns.

v1.0.0 · active · website · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality79good
Trust80of 100
Uptime, 30 days100%
Latency p50535 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "inside-ads": {
      "type": "http",
      "url": "https://app.inside.ad/api/mcp"
    }
  }
}
claude mcp add --transport http inside-ads https://app.inside.ad/api/mcp
[mcp_servers.inside-ads]
url = "https://app.inside.ad/api/mcp"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "inside-ads": {
      "type": "remote",
      "url": "https://app.inside.ad/api/mcp",
      "enabled": true
    }
  }
}
{
  "mcpServers": {
    "inside-ads": {
      "type": "http",
      "url": "https://app.inside.ad/api/mcp"
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=inside-ads&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vYXBwLmluc2lkZS5hZC9hcGkvbWNwIn0%3D"
}
{
  "servers": {
    "inside-ads": {
      "type": "http",
      "url": "https://app.inside.ad/api/mcp"
    }
  }
}
{
  "mcpServers": {
    "inside-ads": {
      "httpUrl": "https://app.inside.ad/api/mcp"
    }
  }
}
extensions:
  "inside-ads":
    enabled: true
    name: "inside-ads"
    type: streamable_http
    uri: "https://app.inside.ad/api/mcp"
    timeout: 300

Quality 79 / 100good

protocol75 · weight 25
  • warn
    protocol.modernnewest supported version is 2025-06-18; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
  • n/a
    protocol.statelessonly applies to 2026-07-28 servers
  • pass
    protocol.transportstreamable HTTP
  • n/a
    protocol.list_ttlonly applies to 2026-07-28 servers
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene71 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • pass
    tools.description_lengthdescriptions are concise
  • pass
    tools.schemasevery tool has an object input schema
  • fail
    tools.annotationsno tool declares readOnlyHint or destructiveHint, so clients cannot tell safe calls from risky ones
  • fail
    tools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: estimate_campaign (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); create_campaign_draft (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); get_draft_status (readOnlyHint, destructiveHint, idempotentHint, openWorldHint)
  • pass
    tools.token_costabout 599 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability100 · weight 15
  • pass
    stability.changesno tool changes in 30 days
  • pass
    stability.rug_pullno tool changed its meaning under the same name
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

3 tools, about 599 tokens to load them all · tool set 04ae41f4ba8e · checked 2026-10-19 10:52 UTC

Tool changes

No tool definition changes recorded. A server's first observation is its baseline; later probes record what changes.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 80 / 100

no-repository
provenance55
liveness100
freshness85
hygiene80

+dns-namespace +website +reachable +uptime-100% ~updated-62d-ago -no-repository

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://app.inside.ad/api/mcp streamable-httpnoneyes100%535 ms2025-06-182026-10-19

Tools (3)

create_campaign_draftBuild 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.
estimate_campaignEstimate 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.
get_draft_statusCheck 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.

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "ad.inside/inside-ads",
  "title": "Inside Ads",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://app.inside.ad/api/mcp",
      "type": "streamable-http"
    }
  ],
  "version": "1.0.0",
  "websiteUrl": "https://inside.ad",
  "description": "Telegram ad exchange: estimate reach and cost with no account, then create and run campaigns."
}