{
  "ok": true,
  "resource": {
    "id": "RES_2E862C801FEA",
    "resource_type": "mcp_server",
    "canonical_url": "https://registry.modelcontextprotocol.io/v0.1/servers/ad.inside%2Finside-ads/versions/1.0.0",
    "name": "Inside Ads",
    "summary_en": "Telegram ad exchange: estimate reach and cost with no account, then create and run campaigns.",
    "summary_zh": "Telegram 广告交易平台：无需账户即可估算覆盖人数和费用，然后创建并投放广告活动。",
    "description_en": "Inside Ads is an MCP server that provides a Telegram ad exchange. It allows users to estimate the reach and cost of advertising a product to Telegram audiences without requiring an account, and then create and run campaigns. The server exposes three tools: estimate_campaign, create_campaign_draft, and get_draft_status. The estimate_campaign tool provides estimates for impressions, clicks, cost per click, and daily reach based on product description, URL, budget, and optional geo/language filters. The create_campaign_draft tool generates a ready-to-launch campaign draft with a checkout link, without requiring prior registration. The get_draft_status tool allows polling the status of a draft to see if the user has opened the link, signed in, and paid. The server uses streamable HTTP and was verified as healthy with protocol version 2025-06-18.",
    "description_zh": "Inside Ads 是一个 MCP 服务器，提供 Telegram 广告交易平台。它允许用户无需账户即可估算向 Telegram 受众投放广告的覆盖范围和费用，然后创建并运行广告活动。该服务器公开了三个工具：estimate_campaign、create_campaign_draft 和 get_draft_status。estimate_campaign 工具根据产品描述、URL、预算以及可选的地区/语言过滤器，提供展示次数、点击次数、每次点击费用和每日覆盖人数的估算。create_campaign_draft 工具无需事先注册即可生成带有结账链接的、可随时启动的广告活动草稿。get_draft_status 工具允许轮询草稿状态，以查看用户是否打开了链接、登录并支付。该服务器使用流式 HTTP，经验证健康，协议版本为 2025-06-18。",
    "provider_name": "ad.inside",
    "homepage_url": "https://inside.ad/",
    "endpoint_url": "https://app.inside.ad/api/mcp",
    "source_url": "https://registry.modelcontextprotocol.io/v0.1/servers/ad.inside%2Finside-ads/versions/1.0.0",
    "icon_url": null,
    "cover_image_url": null,
    "capabilities": [
      "marketing.campaign-planning",
      "marketing.campaign-creation",
      "marketing.campaign-monitoring"
    ],
    "categories": [
      "other"
    ],
    "industries": [
      "general"
    ],
    "protocols": [
      "mcp"
    ],
    "auth": {
      "type": "unknown"
    },
    "pricing": {
      "model": "unknown"
    },
    "input_schema": {},
    "output_schema": {},
    "metadata": {
      "content_language": "en",
      "translation_status": "original-only",
      "official_registry": {
        "version": "1.0.0",
        "packages": [],
        "remotes": []
      },
      "review_gate": {
        "passed": true,
        "reasons": [],
        "policy_version": "review-gate-v1",
        "evaluated_at": "2026-09-03T06:21:58.573Z"
      }
    },
    "latest_version": "1.0.0",
    "status": "listed",
    "health_status": "healthy",
    "source_kind": "imported",
    "source_agent": "registry.modelcontextprotocol.io",
    "trust": {
      "signal": "none",
      "reason": "No suspicious or malicious evidence found.",
      "signals": {
        "yellow": 0,
        "red": 0
      }
    },
    "review_summary": {
      "method_version": "capability-evidence-v2",
      "capability_definition": "strong",
      "contract_completeness": "strong",
      "access_friction": "low",
      "operational_transparency": "partial",
      "evidence_strength": "protocol_inspected",
      "use_readiness": "guided_use",
      "reviewed_at": "2026-09-03T06:21:59.461Z"
    },
    "experience_count": 0,
    "verified_experience_count": 0,
    "usage_count": 0,
    "success_rate": null,
    "first_seen_at": "2026-09-03T02:49:20.697Z",
    "last_seen_at": "2026-09-03T06:21:58.790Z",
    "published_at": "2026-09-03T06:21:58.790Z",
    "created_at": "2026-09-03T02:49:20.697Z",
    "updated_at": "2026-09-03T06:21:59.461Z",
    "api_url": "https://aiworkshub.io/api/v1/resources/RES_2E862C801FEA",
    "reviews_url": "https://aiworkshub.io/api/v1/resources/RES_2E862C801FEA/reviews",
    "public_url": "https://aiworkshub.io/resources/RES_2E862C801FEA",
    "distribution": {
      "canonical_identity": "https://registry.modelcontextprotocol.io/v0.1/servers/ad.inside%2Finside-ads/versions/1.0.0",
      "syndicatable": true,
      "origins": [
        {
          "registry_url": "https://registry.modelcontextprotocol.io/",
          "upstream_resource_id": "ad.inside/inside-ads@1.0.0",
          "upstream_record_url": "https://registry.modelcontextprotocol.io/v0.1/servers/ad.inside%2Finside-ads/versions/1.0.0",
          "relation": "syndicated",
          "metadata": {
            "source": "official-mcp-registry"
          },
          "first_seen_at": "2026-09-03T02:49:20.697Z",
          "last_seen_at": "2026-09-03T06:21:58.790Z"
        }
      ]
    },
    "tools": [
      {
        "name": "create_campaign_draft",
        "title_en": "Create Campaign Draft",
        "title_zh": "创建广告活动草稿",
        "description_en": "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.",
        "description_zh": "在用户尚未拥有账户的情况下，为产品构建一个可随时启动的广告活动。解析着陆页，生成广告创意，并返回一个结账链接。将该链接提供给用户：他们在此登录，广告活动将转移到他们的账户，他们付款后活动即开始。在 estimate_campaign 之后、用户同意投放广告时使用此工具。不要要求他们先注册。",
        "input_schema": {
          "type": "object",
          "properties": {
            "url": {
              "type": "string",
              "description": "Landing page URL of the product to promote (required)"
            },
            "description": {
              "type": "string",
              "description": "What the product does, in your own words — improves topic matching"
            },
            "budget": {
              "type": "number",
              "description": "Intended budget in USD, used for the estimate shown to the user"
            },
            "geo": {
              "type": "string",
              "description": "Optional ISO-2 country target, e.g. \"US\""
            },
            "lang": {
              "type": "string",
              "description": "Optional audience language, e.g. \"en\""
            }
          },
          "required": [
            "url"
          ],
          "additionalProperties": false
        },
        "output_schema": {
          "type": "object",
          "properties": {
            "draftId": {
              "type": "string",
              "description": "Poll get_draft_status with this to see whether the user paid."
            },
            "checkoutUrl": {
              "type": "string",
              "description": "THE link to give the user. One click: sign in, review creatives, pay."
            },
            "expiresAt": {
              "type": "string",
              "description": "ISO timestamp after which the link stops working."
            },
            "campaignId": {
              "type": "number"
            },
            "adsCreated": {
              "type": "number",
              "description": "How many ad variants were generated."
            },
            "estimate": {
              "type": "object",
              "additionalProperties": true,
              "description": "Same shape as estimate_campaign, for the budget given."
            }
          },
          "required": [
            "draftId",
            "checkoutUrl",
            "expiresAt"
          ]
        },
        "unit_kind": "mcp_tool",
        "effect": "unknown",
        "open_world": false,
        "idempotency": "not_idempotent",
        "confirmation": "explicit policy",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "estimate_campaign",
        "title_en": "Estimate Campaign",
        "title_zh": "估算广告活动",
        "description_en": "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.",
        "description_zh": "估算向 Telegram 受众投放产品广告的覆盖人数、点击次数和费用——无需账户或授权。请先调用此工具，再询问用户连接账户：它会告诉你 inside.ad 是否有该产品的相关库存，以及给定预算能买到什么。请自行描述产品（你比任何爬虫都更了解它）；仅凭 URL 是弱信号。",
        "input_schema": {
          "type": "object",
          "properties": {
            "url": {
              "type": "string",
              "description": "Product landing page URL"
            },
            "description": {
              "type": "string",
              "description": "What the product does, in your own words. Strongest signal for topic matching."
            },
            "keywords": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Optional topic keywords, e.g. [\"devtool\",\"ai\"]"
            },
            "budget": {
              "type": "number",
              "description": "Budget in USD to estimate against (default 100)"
            },
            "geo": {
              "type": "string",
              "description": "Optional ISO-2 country filter, e.g. \"US\""
            },
            "lang": {
              "type": "string",
              "description": "Optional audience language filter, e.g. \"en\""
            }
          },
          "additionalProperties": false
        },
        "output_schema": {
          "type": "object",
          "properties": {
            "currency": {
              "type": "string"
            },
            "budget": {
              "type": "number",
              "description": "Budget the estimate was computed for, in USD"
            },
            "estimatedImpressions": {
              "type": "number"
            },
            "estimatedClicks": {
              "type": "object",
              "description": "Range, not a point estimate. Report both ends to the user.",
              "properties": {
                "low": {
                  "type": "number"
                },
                "high": {
                  "type": "number"
                }
              }
            },
            "cpcRange": {
              "type": "object",
              "description": "Implied cost per click in USD, derived from CPM and the CTR band.",
              "properties": {
                "low": {
                  "type": "number"
                },
                "high": {
                  "type": "number"
                }
              }
            },
            "cpmUsd": {
              "type": "number",
              "description": "Reach-weighted average CPM across matched segments"
            },
            "dailyReach": {
              "type": "number",
              "description": "Total daily impressions available in matched segments"
            },
            "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."
            },
            "deliveryDays": {
              "type": [
                "number",
                "null"
              ],
              "description": "Roughly how many days it takes to deliver estimatedImpressions at the current daily reach."
            },
            "matchedCategories": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "sampleSegments": {
              "type": "array",
              "description": "Matched inventory segments. Individual channels are deliberately not disclosed.",
              "items": {
                "type": "object",
                "properties": {
                  "category": {
                    "type": "string"
                  },
                  "country": {
                    "type": "string"
                  },
                  "dailyReach": {
                    "type": "number"
                  }
                }
              }
            },
            "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."
            },
            "assumptions": {
              "type": "object",
              "additionalProperties": true
            }
          },
          "required": [
            "currency",
            "budget",
            "estimatedImpressions",
            "estimatedClicks",
            "inventoryIsThin"
          ]
        },
        "unit_kind": "mcp_tool",
        "effect": "unknown",
        "open_world": false,
        "idempotency": "idempotent",
        "confirmation": "explicit policy",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "get_draft_status",
        "title_en": "Get Draft Status",
        "title_zh": "获取草稿状态",
        "description_en": "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.",
        "description_zh": "检查您使用 create_campaign_draft 创建的广告活动草稿的状态：用户是否打开了链接、登录并支付。轮询此工具，而不是要求用户反馈。",
        "input_schema": {
          "type": "object",
          "properties": {
            "draftId": {
              "type": "string",
              "description": "draftId returned by create_campaign_draft"
            }
          },
          "required": [
            "draftId"
          ],
          "additionalProperties": false
        },
        "output_schema": {
          "type": "object",
          "properties": {
            "draftId": {
              "type": "string"
            },
            "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."
            },
            "campaignId": {
              "type": [
                "number",
                "null"
              ]
            },
            "createdAt": {
              "type": "string"
            },
            "previewedAt": {
              "type": [
                "string",
                "null"
              ]
            },
            "claimedAt": {
              "type": [
                "string",
                "null"
              ]
            },
            "expiresAt": {
              "type": "string"
            },
            "hint": {
              "type": "string",
              "description": "What to tell the user next."
            }
          },
          "required": [
            "draftId",
            "status"
          ]
        },
        "unit_kind": "mcp_tool",
        "effect": "read",
        "open_world": false,
        "idempotency": "idempotent",
        "confirmation": "explicit policy",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      }
    ],
    "review_profile": {
      "schema_version": "aiworkshub.resource-review/0.2",
      "method_version": "capability-evidence-v2",
      "review_state": {
        "identity": "verified",
        "source": "verified",
        "connectivity": "verified",
        "contract": "strong",
        "safe_use": "untested",
        "real_use": "unobserved"
      },
      "assessment": {
        "capability_definition": "strong",
        "contract_completeness": "strong",
        "access_friction": "low",
        "operational_transparency": "partial",
        "evidence_strength": "protocol_inspected",
        "use_readiness": "guided_use"
      },
      "profile": {
        "capabilities": [
          {
            "id": "marketing.campaign-planning",
            "weight": 90,
            "confidence": 90,
            "evidence_ids": [
              "source-record",
              "protocol-tools"
            ]
          },
          {
            "id": "marketing.campaign-creation",
            "weight": 90,
            "confidence": 90,
            "evidence_ids": [
              "source-record",
              "protocol-tools"
            ]
          },
          {
            "id": "marketing.campaign-monitoring",
            "weight": 70,
            "confidence": 90,
            "evidence_ids": [
              "source-record",
              "protocol-tools"
            ]
          }
        ],
        "domains": [
          {
            "id": "marketing",
            "weight": 100,
            "confidence": 90,
            "evidence_ids": [
              "source-record"
            ]
          }
        ],
        "workflow_roles": [
          "analyze",
          "design",
          "execute",
          "monitor",
          "transact"
        ]
      },
      "capability_units": [
        {
          "id": "tool:estimate_campaign",
          "kind": "mcp_tool",
          "capability_id": "marketing.campaign-planning",
          "effect": "unknown",
          "open_world": false,
          "idempotency": "idempotent",
          "confirmation": "explicit policy",
          "input_contract": "typed",
          "output_contract": "typed",
          "accepts": [
            "url",
            "description",
            "keywords",
            "budget",
            "geo",
            "lang"
          ],
          "produces": [
            "estimate report"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:create_campaign_draft",
          "kind": "mcp_tool",
          "capability_id": "marketing.campaign-creation",
          "effect": "unknown",
          "open_world": false,
          "idempotency": "not_idempotent",
          "confirmation": "explicit policy",
          "input_contract": "typed",
          "output_contract": "typed",
          "accepts": [
            "url",
            "description",
            "budget",
            "geo",
            "lang"
          ],
          "produces": [
            "draftId",
            "checkoutUrl",
            "expiresAt",
            "campaignId",
            "adsCreated",
            "estimate"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:get_draft_status",
          "kind": "mcp_tool",
          "capability_id": "marketing.campaign-monitoring",
          "effect": "read",
          "open_world": false,
          "idempotency": "idempotent",
          "confirmation": "explicit policy",
          "input_contract": "typed",
          "output_contract": "typed",
          "accepts": [
            "draftId"
          ],
          "produces": [
            "draft status"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        }
      ],
      "access": {
        "distribution_license": {},
        "runtime_auth": {},
        "runtime_pricing": {},
        "dependencies": []
      },
      "operational_flags": [],
      "trust": {
        "signal": "none",
        "evidence_ids": [],
        "reason": "No suspicious or malicious evidence found."
      },
      "fit": {
        "good_for": [
          "Estimating Telegram ad reach and cost without an account",
          "Creating campaign drafts with a single checkout link",
          "Monitoring draft status via polling"
        ],
        "not_for": [
          "Managing existing campaigns beyond draft status",
          "Detailed audience segmentation beyond geo/language",
          "Ad creative generation beyond initial draft"
        ]
      },
      "evidence": [
        {
          "id": "source-record",
          "type": "registry_record",
          "source": "https://registry.modelcontextprotocol.io/v0.1/servers/ad.inside%2Finside-ads/versions/1.0.0",
          "observation": "MCP source record for Inside Ads; version 1.0.0.",
          "observed_at": null,
          "payload": {}
        },
        {
          "id": "protocol-tools",
          "type": "protocol_observation",
          "source": "https://app.inside.ad/api/mcp#tools/list",
          "observation": "3 tools were returned by MCP discovery; 3 were retained for review.",
          "observed_at": "2026-09-03T06:21:46.878Z",
          "payload": {}
        }
      ],
      "unknowns": [
        "Authentication mechanism details",
        "Pricing model details",
        "Actual usage in production",
        "Effect of tools on external systems beyond stated descriptions"
      ],
      "id": "REV_15B99E07332A",
      "resource_id": "RES_2E862C801FEA",
      "evaluator_type": "platform_ai",
      "provider": "deepseek",
      "model": "deepseek-v4-flash",
      "review_scope": "protocol-inspected-mcp",
      "created_at": "2026-09-03T06:21:59.461Z"
    }
  }
}