{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_wrbdd444zzyt","handle":"ad-radar","url":"https://wellknown.network/agents/ad-radar","links":{"self":"https://wellknown.network/agents/ad-radar/record.json","html":"https://wellknown.network/agents/ad-radar","markdown":"https://wellknown.network/agents/ad-radar/record.md","api":"https://wellknown.network/api/v1/agents/ad-radar","status":"https://wellknown.network/api/v1/agents/ad-radar/status","claim":"https://wellknown.network/agents/ad-radar/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/ad-radar/claim.json","badge":"https://wellknown.network/agents/ad-radar/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/ad-radar/history","tools":"https://wellknown.network/api/v1/agents/ad-radar/tools"},"ard":{"identifier":"urn:air:app.ad-radar.dev:server:ad-radar","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"Ad Radar","summary":"Search winning Meta ads, the hooks brands are scaling, and swipe briefs, inside Claude.","description":"Search winning Meta ads, the hooks brands are scaling, and swipe briefs, inside Claude.","publisher":{"name":"dev.ad-radar","url":null},"homepage":"https://ad-radar.dev","repository":null,"version":"1.1.0","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://app.ad-radar.dev/api/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-10-03T19:37:19.331171Z","publishedAt":"2026-10-03T19:37:19.331171Z","registryName":"dev.ad-radar/ad-radar"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","homepageUrl":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"content.marketing","name":"Marketing","confidence":0.807,"provenance":"derived"},{"slug":"commerce.pricing","name":"Pricing & Quotes","confidence":0.525,"provenance":"derived"}],"categories":["commerce","content"],"language":"en"},"observed":{"status":"live","statusReason":"Responded 3h ago.","lastOkAt":"2026-10-09T23:29:11.635Z","lastProbedAt":"2026-10-09T23:29:11.635Z","statusComputedAt":"2026-10-09T23:31:07.466Z","reliability30d":{"probes":13,"successRate":1,"p50Ms":147,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":13,"ok":13,"authBoundaryOk":0,"serviceOk":13,"note":"Counted from the observation rows for the window, checks of the server only (HTTP, A2A card, MCP initialize). ok = authBoundaryOk + serviceOk. `probes` is the sum of daily rollups and includes registry checks, so it can differ from `total`."}},"latestObservations":[{"at":"2026-10-09T23:29:11.635Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":135,"error":null,"detail":{"tools":[{"name":"search_ads","description":"Search the Ad Radar board: competitor ads from the Meta Ad Library, with the same filters as the board. By default only ACTIVE ads, sorted by score. Returns com"},{"name":"get_ad","description":"Full record of one ad: headline, body, CTA, full transcript, metrics, spendEstimate (an ESTIMATE based on engagement, not real spend; spendLowerBound = it is a "},{"name":"get_swipe_prompt","description":"A ready-to-run prompt for one ad. kind='swipe' = rebuild the ad for your product: map its beats, check the fit, write a full version with the same structure, pl"},{"name":"list_taxonomy","description":"The board's taxonomy dimensions (awareness, angle, hook_pattern, vformat, pformat, landing...) with their valid values: the slugs to use in the tags filter of s"},{"name":"advertiser_hooks","description":"The hooks, hook mechanisms and angles an advertiser uses most, aggregated over all of its ads: the pattern worth swiping, not a single ad. advertiserId comes fr"},{"name":"winning_patterns","description":"The 'What to do now' block of the analytics page: for each taxonomy value, how many times more often it produces winners than average (lift), with adoption (ads"}],"toolCount":6,"toolsHash":"2381e6a372052c8f3c90124ff5cee1c0ff3f43f677a62ca45c3a111a3841028e","serverName":"ad-radar","capabilities":["tools"],"serverVersion":"1.2.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T16:32:04.754Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":157,"error":null,"detail":{"tools":[{"name":"search_ads","description":"Search the Ad Radar board: competitor ads from the Meta Ad Library, with the same filters as the board. By default only ACTIVE ads, sorted by score. Returns com"},{"name":"get_ad","description":"Full record of one ad: headline, body, CTA, full transcript, metrics, spendEstimate (an ESTIMATE based on engagement, not real spend; spendLowerBound = it is a "},{"name":"get_swipe_prompt","description":"A ready-to-run prompt for one ad. kind='swipe' = rebuild the ad for your product: map its beats, check the fit, write a full version with the same structure, pl"},{"name":"list_taxonomy","description":"The board's taxonomy dimensions (awareness, angle, hook_pattern, vformat, pformat, landing...) with their valid values: the slugs to use in the tags filter of s"},{"name":"advertiser_hooks","description":"The hooks, hook mechanisms and angles an advertiser uses most, aggregated over all of its ads: the pattern worth swiping, not a single ad. advertiserId comes fr"},{"name":"winning_patterns","description":"The 'What to do now' block of the analytics page: for each taxonomy value, how many times more often it produces winners than average (lift), with adoption (ads"}],"toolCount":6,"toolsHash":"565f6cefdb0f1e767f201f68ce84e1f966d8e73f6277ebe7f5ee4c94b7be948c","serverName":"ad-radar","capabilities":["tools"],"serverVersion":"1.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T09:27:19.094Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":279,"error":null,"detail":{"tools":[{"name":"search_ads","description":"Search the Ad Radar board: competitor ads from the Meta Ad Library, with the same filters as the board. By default only ACTIVE ads, sorted by score. Returns com"},{"name":"get_ad","description":"Full record of one ad: headline, body, CTA, full transcript, metrics, spendEstimate (an ESTIMATE based on engagement, not real spend; spendLowerBound = it is a "},{"name":"get_swipe_prompt","description":"A ready-to-run prompt for one ad. kind='swipe' = rebuild the ad for your product: map its beats, check the fit, write a full version with the same structure, pl"},{"name":"list_taxonomy","description":"The board's taxonomy dimensions (awareness, angle, hook_pattern, vformat, pformat, landing...) with their valid values: the slugs to use in the tags filter of s"},{"name":"advertiser_hooks","description":"The hooks, hook mechanisms and angles an advertiser uses most, aggregated over all of its ads: the pattern worth swiping, not a single ad. advertiserId comes fr"},{"name":"winning_patterns","description":"The 'What to do now' block of the analytics page: for each taxonomy value, how many times more often it produces winners than average (lift), with adoption (ads"}],"toolCount":6,"toolsHash":"565f6cefdb0f1e767f201f68ce84e1f966d8e73f6277ebe7f5ee4c94b7be948c","serverName":"ad-radar","capabilities":["tools"],"serverVersion":"1.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T02:26:21.104Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":144,"error":null,"detail":{"tools":[{"name":"search_ads","description":"Search the Ad Radar board: competitor ads from the Meta Ad Library, with the same filters as the board. By default only ACTIVE ads, sorted by score. Returns com"},{"name":"get_ad","description":"Full record of one ad: headline, body, CTA, full transcript, metrics, spendEstimate (an ESTIMATE based on engagement, not real spend; spendLowerBound = it is a "},{"name":"get_swipe_prompt","description":"A ready-to-run prompt for one ad. kind='swipe' = rebuild the ad for your product: map its beats, check the fit, write a full version with the same structure, pl"},{"name":"list_taxonomy","description":"The board's taxonomy dimensions (awareness, angle, hook_pattern, vformat, pformat, landing...) with their valid values: the slugs to use in the tags filter of s"},{"name":"advertiser_hooks","description":"The hooks, hook mechanisms and angles an advertiser uses most, aggregated over all of its ads: the pattern worth swiping, not a single ad. advertiserId comes fr"},{"name":"winning_patterns","description":"The 'What to do now' block of the analytics page: for each taxonomy value, how many times more often it produces winners than average (lift), with adoption (ads"}],"toolCount":6,"toolsHash":"565f6cefdb0f1e767f201f68ce84e1f966d8e73f6277ebe7f5ee4c94b7be948c","serverName":"ad-radar","capabilities":["tools"],"serverVersion":"1.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T19:22:23.937Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":140,"error":null,"detail":{"tools":[{"name":"search_ads","description":"Search the Ad Radar board: competitor ads from the Meta Ad Library, with the same filters as the board. By default only ACTIVE ads, sorted by score. Returns com"},{"name":"get_ad","description":"Full record of one ad: headline, body, CTA, full transcript, metrics, spendEstimate (an ESTIMATE based on engagement, not real spend; spendLowerBound = it is a "},{"name":"get_swipe_prompt","description":"A ready-to-run prompt for one ad. kind='swipe' = rebuild the ad for your product: map its beats, check the fit, write a full version with the same structure, pl"},{"name":"list_taxonomy","description":"The board's taxonomy dimensions (awareness, angle, hook_pattern, vformat, pformat, landing...) with their valid values: the slugs to use in the tags filter of s"},{"name":"advertiser_hooks","description":"The hooks, hook mechanisms and angles an advertiser uses most, aggregated over all of its ads: the pattern worth swiping, not a single ad. advertiserId comes fr"},{"name":"winning_patterns","description":"The 'What to do now' block of the analytics page: for each taxonomy value, how many times more often it produces winners than average (lift), with adoption (ads"}],"toolCount":6,"toolsHash":"565f6cefdb0f1e767f201f68ce84e1f966d8e73f6277ebe7f5ee4c94b7be948c","serverName":"ad-radar","capabilities":["tools"],"serverVersion":"1.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T12:25:22.989Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":147,"error":null,"detail":{"tools":[{"name":"search_ads","description":"Search the Ad Radar board: competitor ads from the Meta Ad Library, with the same filters as the board. By default only ACTIVE ads, sorted by score. Returns com"},{"name":"get_ad","description":"Full record of one ad: headline, body, CTA, full transcript, metrics, spendEstimate (an ESTIMATE based on engagement, not real spend; spendLowerBound = it is a "},{"name":"get_swipe_prompt","description":"A ready-to-run prompt for one ad. kind='swipe' = rebuild the ad for your product: map its beats, check the fit, write a full version with the same structure, pl"},{"name":"list_taxonomy","description":"The board's taxonomy dimensions (awareness, angle, hook_pattern, vformat, pformat, landing...) with their valid values: the slugs to use in the tags filter of s"},{"name":"advertiser_hooks","description":"The hooks, hook mechanisms and angles an advertiser uses most, aggregated over all of its ads: the pattern worth swiping, not a single ad. advertiserId comes fr"},{"name":"winning_patterns","description":"The 'What to do now' block of the analytics page: for each taxonomy value, how many times more often it produces winners than average (lift), with adoption (ads"}],"toolCount":6,"toolsHash":"565f6cefdb0f1e767f201f68ce84e1f966d8e73f6277ebe7f5ee4c94b7be948c","serverName":"ad-radar","capabilities":["tools"],"serverVersion":"1.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T05:22:18.165Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":194,"error":null,"detail":{"tools":[{"name":"search_ads","description":"Search the Ad Radar board: competitor ads from the Meta Ad Library, with the same filters as the board. By default only ACTIVE ads, sorted by score. Returns com"},{"name":"get_ad","description":"Full record of one ad: headline, body, CTA, full transcript, metrics, spendEstimate (an ESTIMATE based on engagement, not real spend; spendLowerBound = it is a "},{"name":"get_swipe_prompt","description":"A ready-to-run prompt for one ad. kind='swipe' = rebuild the ad for your product: map its beats, check the fit, write a full version with the same structure, pl"},{"name":"list_taxonomy","description":"The board's taxonomy dimensions (awareness, angle, hook_pattern, vformat, pformat, landing...) with their valid values: the slugs to use in the tags filter of s"},{"name":"advertiser_hooks","description":"The hooks, hook mechanisms and angles an advertiser uses most, aggregated over all of its ads: the pattern worth swiping, not a single ad. advertiserId comes fr"},{"name":"winning_patterns","description":"The 'What to do now' block of the analytics page: for each taxonomy value, how many times more often it produces winners than average (lift), with adoption (ads"}],"toolCount":6,"toolsHash":"565f6cefdb0f1e767f201f68ce84e1f966d8e73f6277ebe7f5ee4c94b7be948c","serverName":"ad-radar","capabilities":["tools"],"serverVersion":"1.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-07T23:25:49.568Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":163,"error":null,"detail":{"tools":[{"name":"search_ads","description":"Search the Ad Radar board: competitor ads from the Meta Ad Library, with the same filters as the board. By default only ACTIVE ads, sorted by score. Returns com"},{"name":"get_ad","description":"Full record of one ad: headline, body, CTA, full transcript, metrics, spendEstimate (an ESTIMATE based on engagement, not real spend; spendLowerBound = it is a "},{"name":"get_swipe_prompt","description":"A ready-to-run prompt for one ad. kind='swipe' = rebuild the ad for your product: map its beats, check the fit, write a full version with the same structure, pl"},{"name":"list_taxonomy","description":"The board's taxonomy dimensions (awareness, angle, hook_pattern, vformat, pformat, landing...) with their valid values: the slugs to use in the tags filter of s"},{"name":"advertiser_hooks","description":"The hooks, hook mechanisms and angles an advertiser uses most, aggregated over all of its ads: the pattern worth swiping, not a single ad. advertiserId comes fr"},{"name":"winning_patterns","description":"The 'What to do now' block of the analytics page: for each taxonomy value, how many times more often it produces winners than average (lift), with adoption (ads"}],"toolCount":6,"toolsHash":"565f6cefdb0f1e767f201f68ce84e1f966d8e73f6277ebe7f5ee4c94b7be948c","serverName":"ad-radar","capabilities":["tools"],"serverVersion":"1.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-07T17:29:55.947Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":132,"error":null,"detail":{"tools":[{"name":"search_ads","description":"Search the Ad Radar board: competitor ads from the Meta Ad Library, with the same filters as the board. By default only ACTIVE ads, sorted by score. Returns com"},{"name":"get_ad","description":"Full record of one ad: headline, body, CTA, full transcript, metrics, spendEstimate (an ESTIMATE based on engagement, not real spend; spendLowerBound = it is a "},{"name":"get_swipe_prompt","description":"A ready-to-run prompt for one ad. kind='swipe' = rebuild the ad for your product: map its beats, check the fit, write a full version with the same structure, pl"},{"name":"list_taxonomy","description":"The board's taxonomy dimensions (awareness, angle, hook_pattern, vformat, pformat, landing...) with their valid values: the slugs to use in the tags filter of s"},{"name":"advertiser_hooks","description":"The hooks, hook mechanisms and angles an advertiser uses most, aggregated over all of its ads: the pattern worth swiping, not a single ad. advertiserId comes fr"},{"name":"winning_patterns","description":"The 'What to do now' block of the analytics page: for each taxonomy value, how many times more often it produces winners than average (lift), with adoption (ads"}],"toolCount":6,"toolsHash":"565f6cefdb0f1e767f201f68ce84e1f966d8e73f6277ebe7f5ee4c94b7be948c","serverName":"ad-radar","capabilities":["tools"],"serverVersion":"1.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-07T10:47:40.188Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":214,"error":null,"detail":{"tools":[{"name":"search_ads","description":"Search the Ad Radar board: competitor ads from the Meta Ad Library, with the same filters as the board. By default only ACTIVE ads, sorted by score. Returns com"},{"name":"get_ad","description":"Full record of one ad: headline, body, CTA, full transcript, metrics, spendEstimate (an ESTIMATE based on engagement, not real spend; spendLowerBound = it is a "},{"name":"get_swipe_prompt","description":"A ready-to-run prompt for one ad. kind='swipe' = rebuild the ad for your product: map its beats, check the fit, write a full version with the same structure, pl"},{"name":"list_taxonomy","description":"The board's taxonomy dimensions (awareness, angle, hook_pattern, vformat, pformat, landing...) with their valid values: the slugs to use in the tags filter of s"},{"name":"advertiser_hooks","description":"The hooks, hook mechanisms and angles an advertiser uses most, aggregated over all of its ads: the pattern worth swiping, not a single ad. advertiserId comes fr"},{"name":"winning_patterns","description":"The 'What to do now' block of the analytics page: for each taxonomy value, how many times more often it produces winners than average (lift), with adoption (ads"}],"toolCount":6,"toolsHash":"565f6cefdb0f1e767f201f68ce84e1f966d8e73f6277ebe7f5ee4c94b7be948c","serverName":"ad-radar","capabilities":["tools"],"serverVersion":"1.1.0","protocolVersion":"2025-06-18"}}],"tools":[{"name":"search_ads","description":"Search the Ad Radar board: competitor ads from the Meta Ad Library, with the same filters as the board. By default only ACTIVE ads, sorted by score. Returns com"},{"name":"get_ad","description":"Full record of one ad: headline, body, CTA, full transcript, metrics, spendEstimate (an ESTIMATE based on engagement, not real spend; spendLowerBound = it is a "},{"name":"get_swipe_prompt","description":"A ready-to-run prompt for one ad. kind='swipe' = rebuild the ad for your product: map its beats, check the fit, write a full version with the same structure, pl"},{"name":"list_taxonomy","description":"The board's taxonomy dimensions (awareness, angle, hook_pattern, vformat, pformat, landing...) with their valid values: the slugs to use in the tags filter of s"},{"name":"advertiser_hooks","description":"The hooks, hook mechanisms and angles an advertiser uses most, aggregated over all of its ads: the pattern worth swiping, not a single ad. advertiserId comes fr"},{"name":"winning_patterns","description":"The 'What to do now' block of the analytics page: for each taxonomy value, how many times more often it produces winners than average (lift), with adoption (ads"}],"package":null,"toolSurface":{"id":"ts_m7p2cux44rb5","endpointId":"ep_gffvscq28rwh","hash":"2381e6a372052c8f3c90124ff5cee1c0ff3f43f677a62ca45c3a111a3841028e","toolCount":6,"serverName":"ad-radar","serverVersion":"1.2.0","protocolVersion":"2025-06-18","firstSeenAt":"2026-10-09T23:29:11.624Z","lastSeenAt":"2026-10-09T23:29:11.624Z","observations":1,"toolNames":["search_ads","get_ad","get_swipe_prompt","list_taxonomy","advertiser_hooks","winning_patterns"],"distinctSurfaces":3},"endpointFacts":[{"id":"ep_gffvscq28rwh","url":"https://app.ad-radar.dev/api/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-10-09T16:32:04.766Z","auth":{"observedAt":"2026-10-09T16:32:05.005Z","authRequired":false,"scheme":null,"resourceMetadata":null,"authorizationServer":null,"conformance":{"dpop":false,"rfc8414":false,"rfc9728":false,"pkceS256":false,"clientIdMetadataDocument":false,"dynamicClientRegistration":false}},"tls":{"observedAt":"2026-10-09T16:32:05.032Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"app.ad-radar.dev","issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validFrom":"2026-09-30T13:00:09.000Z","validTo":"2026-12-29T13:00:08.000Z","daysToExpiry":80,"sanCount":1,"fingerprint256":"88:CA:24:73:75:06:2E:42:F0:9B:D1:F4:6E:DD:F0:11:F1:33:87:D2:F6:1F:4A:DA:37:61:1E:69:80:41:A4:FE"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"dev.ad-radar/ad-radar","url":"https://registry.modelcontextprotocol.io/v0/servers/dev.ad-radar%2Fad-radar","firstSeenAt":"2026-10-06T14:19:13.697Z","fetchedAt":"2026-10-09T13:21:47.654Z","normalizedAt":"2026-10-09T13:21:47.654Z"}]},"firstSeenAt":"2026-10-06T14:19:13.697Z","updatedAt":"2026-10-09T23:31:48.824Z"}