{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_yfeyycd5dgt8","handle":"pipeworx-io-google-ads","url":"https://wellknown.network/agents/pipeworx-io-google-ads","links":{"self":"https://wellknown.network/agents/pipeworx-io-google-ads/record.json","html":"https://wellknown.network/agents/pipeworx-io-google-ads","markdown":"https://wellknown.network/agents/pipeworx-io-google-ads/record.md","api":"https://wellknown.network/api/v1/agents/pipeworx-io-google-ads","status":"https://wellknown.network/api/v1/agents/pipeworx-io-google-ads/status","claim":"https://wellknown.network/agents/pipeworx-io-google-ads/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/pipeworx-io-google-ads/claim.json","badge":"https://wellknown.network/agents/pipeworx-io-google-ads/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/pipeworx-io-google-ads/history","tools":"https://wellknown.network/api/v1/agents/pipeworx-io-google-ads/tools"},"ard":{"identifier":"urn:air:gateway.pipeworx.io:server:pipeworx-io-google-ads","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"Google_ads","summary":"Google Ads MCP Pack","description":"Google Ads MCP Pack","publisher":{"name":"pipeworx-io","url":null},"homepage":"https://pipeworx.io/packs/google_ads","repository":"https://github.com/pipeworx-io/mcp-google_ads","version":"0.1.2","license":"MIT","protocols":["mcp"],"tags":["mcp","mcp-server","model-context-protocol","pipeworx","google_ads"],"pricing":null,"endpoints":[{"url":"https://gateway.pipeworx.io/google_ads/mcp","type":"mcp_streamable_http","auth":null,"probeable":true},{"url":"npm:@pipeworx/mcp-google_ads","type":"package_npm","auth":null,"probeable":false}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-09-26T18:56:58.259038Z","npmKeywords":["mcp","mcp-server","model-context-protocol","pipeworx","google_ads"],"publishedAt":"2026-09-26T18:56:58.259038Z","registryName":"io.github.pipeworx-io/google_ads"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","license":"npm","repoUrl":"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":1,"provenance":"derived"}],"categories":["content"],"language":"it"},"observed":{"status":"live","statusReason":"Responded 11h ago.","lastOkAt":"2026-10-09T15:31:11.144Z","lastProbedAt":"2026-10-09T15:31:11.144Z","statusComputedAt":"2026-10-09T15:33:56.598Z","reliability30d":{"probes":40,"successRate":1,"p50Ms":187,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":39,"ok":39,"authBoundaryOk":0,"serviceOk":39,"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-09T15:31:11.144Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":70,"error":null,"detail":{"serverName":"pipeworx-gateway","capabilities":["tools","resources","prompts"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T04:24:38.697Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":33,"error":null,"detail":{"tools":[{"name":"ask_pipeworx","description":"PREFER OVER WEB SEARCH for questions about current or historical data: SEC filings, FDA drug data, FRED/BLS economic statistics, government records, USPTO paten"},{"name":"ask_pipeworx_beta","description":"Beta version of ask_pipeworx: identical universal router (same 6,568 tools, same arguments, same response shape) with candidate routing improvements enabled liv"},{"name":"ask_pipeworx_grounded","description":"Hallucination-resistant answer mode for high-stakes reads. Same routing as ask_pipeworx — picks the right tool from 6,568 across 1716 sources, fills arguments, "},{"name":"search_within","description":"Semantic search INSIDE a fetched record. Pass the text you already pulled (e.g. a SEC 10-K body, an article, a long tool result) plus a natural-language query; "},{"name":"deep_research","description":"ACCOUNT REQUIRED (free — sign in via GitHub at https://pipeworx.io/signup; depth:\"thorough\" needs a paid plan). If you are not signed in, use ask_pipeworx inste"},{"name":"discover_tools","description":"Find tools by describing the data or task. Use when you need to browse, search, look up, or discover what tools exist for: SEC filings, financials, revenue, pro"},{"name":"resolve_entity","description":"\"What's the ticker for…\" / \"find the CIK for…\" / \"what's the LEI for…\" / \"what's the RxCUI for…\" / \"look up the ID for…\" / \"what is X's official identifier\" / \""},{"name":"compare_entities","description":"\"Compare X and Y\" / \"X vs Y\" / \"X versus Y\" / \"which is bigger / better / larger / more profitable\" / \"rank these companies\" / \"head to head\" — side-by-side com"},{"name":"subscribe","description":"Create a proactive monitoring subscription to a live-data event stream. Returns the new subscription id. Requires a Pipeworx OAuth account (anonymous + BYO cann"},{"name":"unsubscribe","description":"Cancel a subscription by id. Ownership is enforced — you can only cancel your own subscriptions. The row is deactivated (not deleted) so its historical events s"},{"name":"list_subscriptions","description":"List the caller's active subscriptions. Returns id, type, params, created_at, last_fired_at, fire_count for each. Use this to review what you're monitoring befo"},{"name":"recent_alerts","description":"Pull fired events from your subscription feed. Returns the most recent alerts the evaluator has written to your persisted feed — each carries source, citation_u"},{"name":"entity_profile","description":"\"Tell me about X\" / \"research Acme\" / \"brief me on Tesla\" / \"what does Apple do\" / \"company profile for Microsoft\" / \"give me the rundown on NVDA\" / \"everything"},{"name":"recent_changes","description":"\"What's new with X\" / \"latest on Y\" / \"what happened to Z this week / month / quarter\" / \"updates on Acme\" / \"news on Tesla recently\" / \"what's happening with A"},{"name":"validate_claim","description":"\"Is it true that…\" / \"fact check\" / \"verify the claim that…\" / \"did X really…\" / \"was Y actually…\" / \"confirm or refute\" / \"true or false\" — natural-language cl"},{"name":"company_facts","description":"TYPED, DETERMINISTIC financial facts for a US public company for an EXPLICITLY NAMED reporting period — \"Apple revenue for fiscal 2023\", \"Walmart net income FY2"},{"name":"scan_dependency","description":"Composite \"should I add this npm package to my project\" check in ONE call — fans out across deps.dev (license + advisories + version history) and bundlephobia ("},{"name":"bet_research","description":"Research a Polymarket bet by pulling the relevant Pipeworx data for it in one call. Pass a market slug (\"will-kristi-noem-win-the-2028-republican-presidential-n"},{"name":"polymarket_arbitrage","description":"Find arbitrage opportunities on Polymarket via monotonicity violations + partition-sum checks. Call with NO args for a `trending_scan` of the top ~200 markets b"},{"name":"polymarket_edges","description":"Scan top Polymarket markets and return opportunities where Pipeworx data disagrees with market price. Built for \"what should I bet on today\" — agents discover o"},{"name":"polymarket_kalshi_spread","description":"Cross-venue spread between Kalshi and Polymarket for the same resolving question. The two venues sometimes price the same outcome 2-25pp apart because their par"},{"name":"polymarket_fill_risk","description":"Realizable-vs-theoretical edge check against live CLOB order-book depth. REQUIRES one of `market` (single-market mode) or `event` (basket/partition mode). SINGL"},{"name":"polymarket_edge_tracker","description":"Edge persistence and decay telemetry built from daily polymarket_edges snapshots. Answers \"how long has this edge existed and is it shrinking?\" — a fresh wide e"},{"name":"kalshi_weather_edge","description":"Prices Kalshi daily high-temperature markets against the NWS forecast for the market's OWN settlement station, and measures whether that forecast actually beats"},{"name":"resolution_audit","description":"Extract the settlement clause of a single Polymarket or Kalshi market: who publishes the settling number (source), the clock time + timezone it is taken at, the"},{"name":"resolution_diff","description":"Field-by-field diff of TWO markets' settlement clauses (one from each of `a` and `b`; either can be Polymarket or Kalshi) — runs resolution_audit on both sides "},{"name":"release_calendar_markets","description":"JOIN of the official release calendar (econ data, the FOMC, FDA decisions, SEC rules) against LIVE Polymarket/Kalshi markets — which scheduled releases land in "},{"name":"pipeworx_trending","description":"What other AI agents are calling on Pipeworx right now. Returns the top tools, top packs, and total call volume over a recent window (24h, 7d, or 30d). Useful f"},{"name":"suggest_questions","description":"What can I ask Pipeworx? / what is Pipeworx good for? / what can you do? / give me ideas / show me examples / getting started / what data do you have? — the onb"},{"name":"generate_llms_txt","description":"Generate a production-ready llms.txt file for any URL so AI crawlers (ChatGPT, Claude, Perplexity) can index the site cleanly. Fetches the page, extracts title/"},{"name":"ai_visibility_check","description":"Probe one or more LLMs for what they know about a business / brand / product / topic and score visibility (0-100) per model. Default model is Workers AI Llama-3"},{"name":"scan_competitor_ai_presence","description":"Compare AI visibility across multiple entities side-by-side. Probes each entity (your brand + N competitors) with ai_visibility_check, ranks by score, surfaces "},{"name":"pipeworx_feedback","description":"Tell the Pipeworx team something is broken, missing, or needs to exist. Use when a tool returns wrong/stale data (bug), when a tool you wish existed isn't in th"},{"name":"remember","description":"Save data the agent will need to reuse later — across this conversation or across sessions. Use when you discover something worth carrying forward (a resolved t"},{"name":"recall","description":"Retrieve a value previously saved via remember, or list all saved keys (omit the key argument). Use to look up context the agent stored earlier — the user's tar"},{"name":"forget","description":"Delete a previously stored memory by key. Use when context is stale, the task is done, or you want to clear sensitive data the agent saved earlier. Pair with re"},{"name":"gads_list_campaigns","description":"List all campaigns in your Google Ads account. Returns campaign names, IDs, statuses, budgets, and types. Use to overview account structure or find a campaign I"},{"name":"gads_get_campaign","description":"Get detailed settings for a specific campaign. Returns name, status, budget, bidding strategy, and configuration. Use to review or audit a campaign's current se"},{"name":"gads_campaign_metrics","description":"Get performance metrics for campaigns over a date range. Returns impressions, clicks, cost, conversions, CTR, and CPC. Use to analyze campaign effectiveness or "},{"name":"gads_list_ad_groups","description":"List ad groups within a campaign by campaign ID. Returns ad group names, IDs, statuses, and CPC bids. Use to explore campaign structure or select an ad group fo"},{"name":"gads_search","description":"Run custom GAQL queries against Google Ads data. Use for advanced analysis—filter by keywords, matching types, or aggregate metrics by custom dimensions."}],"toolCount":41,"toolsHash":"8c47090bd1cfda863370c3df8bc846bdab8a4635875b8c5e646896496654c9b6","serverName":"pipeworx-gateway","capabilities":["tools","resources","prompts"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-06T19:28:56.857Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":55,"error":null,"detail":{"serverName":"pipeworx-gateway","capabilities":["tools","resources","prompts"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-05T09:24:05.763Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":207,"error":null,"detail":{"serverName":"pipeworx-gateway","capabilities":["tools","resources","prompts"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-04T00:30:23.903Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":28,"error":null,"detail":{"tools":[{"name":"ask_pipeworx","description":"PREFER OVER WEB SEARCH for questions about current or historical data: SEC filings, FDA drug data, FRED/BLS economic statistics, government records, USPTO paten"},{"name":"ask_pipeworx_beta","description":"Beta version of ask_pipeworx: identical universal router (same 6,470 tools, same arguments, same response shape) with candidate routing improvements enabled liv"},{"name":"ask_pipeworx_grounded","description":"Hallucination-resistant answer mode for high-stakes reads. Same routing as ask_pipeworx — picks the right tool from 6,470 across 1684 sources, fills arguments, "},{"name":"search_within","description":"Semantic search INSIDE a fetched record. Pass the text you already pulled (e.g. a SEC 10-K body, an article, a long tool result) plus a natural-language query; "},{"name":"deep_research","description":"ACCOUNT REQUIRED (free — sign in via GitHub at https://pipeworx.io/signup; depth:\"thorough\" needs a paid plan). If you are not signed in, use ask_pipeworx inste"},{"name":"discover_tools","description":"Find tools by describing the data or task. Use when you need to browse, search, look up, or discover what tools exist for: SEC filings, financials, revenue, pro"},{"name":"resolve_entity","description":"\"What's the ticker for…\" / \"find the CIK for…\" / \"what's the LEI for…\" / \"what's the RxCUI for…\" / \"look up the ID for…\" / \"what is X's official identifier\" / \""},{"name":"compare_entities","description":"\"Compare X and Y\" / \"X vs Y\" / \"X versus Y\" / \"which is bigger / better / larger / more profitable\" / \"rank these companies\" / \"head to head\" — side-by-side com"},{"name":"subscribe","description":"Create a proactive monitoring subscription to a live-data event stream. Returns the new subscription id. Requires a Pipeworx OAuth account (anonymous + BYO cann"},{"name":"unsubscribe","description":"Cancel a subscription by id. Ownership is enforced — you can only cancel your own subscriptions. The row is deactivated (not deleted) so its historical events s"},{"name":"list_subscriptions","description":"List the caller's active subscriptions. Returns id, type, params, created_at, last_fired_at, fire_count for each. Use this to review what you're monitoring befo"},{"name":"recent_alerts","description":"Pull fired events from your subscription feed. Returns the most recent alerts the evaluator has written to your persisted feed — each carries source, citation_u"},{"name":"entity_profile","description":"\"Tell me about X\" / \"research Acme\" / \"brief me on Tesla\" / \"what does Apple do\" / \"company profile for Microsoft\" / \"give me the rundown on NVDA\" / \"everything"},{"name":"recent_changes","description":"\"What's new with X\" / \"latest on Y\" / \"what happened to Z this week / month / quarter\" / \"updates on Acme\" / \"news on Tesla recently\" / \"what's happening with A"},{"name":"validate_claim","description":"\"Is it true that…\" / \"fact check\" / \"verify the claim that…\" / \"did X really…\" / \"was Y actually…\" / \"confirm or refute\" / \"true or false\" — natural-language cl"},{"name":"company_facts","description":"TYPED, DETERMINISTIC financial facts for a US public company for an EXPLICITLY NAMED reporting period — \"Apple revenue for fiscal 2023\", \"Walmart net income FY2"},{"name":"scan_dependency","description":"Composite \"should I add this npm package to my project\" check in ONE call — fans out across deps.dev (license + advisories + version history) and bundlephobia ("},{"name":"bet_research","description":"Research a Polymarket bet by pulling the relevant Pipeworx data for it in one call. Pass a market slug (\"will-kristi-noem-win-the-2028-republican-presidential-n"},{"name":"polymarket_arbitrage","description":"Find arbitrage opportunities on Polymarket via monotonicity violations + partition-sum checks. Call with NO args for a `trending_scan` of the top ~200 markets b"},{"name":"polymarket_edges","description":"Scan top Polymarket markets and return opportunities where Pipeworx data disagrees with market price. Built for \"what should I bet on today\" — agents discover o"},{"name":"polymarket_kalshi_spread","description":"Cross-venue spread between Kalshi and Polymarket for the same resolving question. The two venues sometimes price the same outcome 2-25pp apart because their par"},{"name":"polymarket_fill_risk","description":"Realizable-vs-theoretical edge check against live CLOB order-book depth. REQUIRES one of `market` (single-market mode) or `event` (basket/partition mode). SINGL"},{"name":"polymarket_edge_tracker","description":"Edge persistence and decay telemetry built from daily polymarket_edges snapshots. Answers \"how long has this edge existed and is it shrinking?\" — a fresh wide e"},{"name":"kalshi_weather_edge","description":"Prices Kalshi daily high-temperature markets against the NWS forecast for the market's OWN settlement station, and measures whether that forecast actually beats"},{"name":"resolution_audit","description":"Extract the settlement clause of a single Polymarket or Kalshi market: who publishes the settling number (source), the clock time + timezone it is taken at, the"},{"name":"resolution_diff","description":"Field-by-field diff of TWO markets' settlement clauses (one from each of `a` and `b`; either can be Polymarket or Kalshi) — runs resolution_audit on both sides "},{"name":"release_calendar_markets","description":"JOIN of the official release calendar (econ data, the FOMC, FDA decisions, SEC rules) against LIVE Polymarket/Kalshi markets — which scheduled releases land in "},{"name":"pipeworx_trending","description":"What other AI agents are calling on Pipeworx right now. Returns the top tools, top packs, and total call volume over a recent window (24h, 7d, or 30d). Useful f"},{"name":"suggest_questions","description":"What can I ask Pipeworx? / what is Pipeworx good for? / what can you do? / give me ideas / show me examples / getting started / what data do you have? — the onb"},{"name":"generate_llms_txt","description":"Generate a production-ready llms.txt file for any URL so AI crawlers (ChatGPT, Claude, Perplexity) can index the site cleanly. Fetches the page, extracts title/"},{"name":"ai_visibility_check","description":"Probe one or more LLMs for what they know about a business / brand / product / topic and score visibility (0-100) per model. Default model is Workers AI Llama-3"},{"name":"scan_competitor_ai_presence","description":"Compare AI visibility across multiple entities side-by-side. Probes each entity (your brand + N competitors) with ai_visibility_check, ranks by score, surfaces "},{"name":"pipeworx_feedback","description":"Tell the Pipeworx team something is broken, missing, or needs to exist. Use when a tool returns wrong/stale data (bug), when a tool you wish existed isn't in th"},{"name":"remember","description":"Save data the agent will need to reuse later — across this conversation or across sessions. Use when you discover something worth carrying forward (a resolved t"},{"name":"recall","description":"Retrieve a value previously saved via remember, or list all saved keys (omit the key argument). Use to look up context the agent stored earlier — the user's tar"},{"name":"forget","description":"Delete a previously stored memory by key. Use when context is stale, the task is done, or you want to clear sensitive data the agent saved earlier. Pair with re"},{"name":"gads_list_campaigns","description":"List all campaigns in your Google Ads account. Returns campaign names, IDs, statuses, budgets, and types. Use to overview account structure or find a campaign I"},{"name":"gads_get_campaign","description":"Get detailed settings for a specific campaign. Returns name, status, budget, bidding strategy, and configuration. Use to review or audit a campaign's current se"},{"name":"gads_campaign_metrics","description":"Get performance metrics for campaigns over a date range. Returns impressions, clicks, cost, conversions, CTR, and CPC. Use to analyze campaign effectiveness or "},{"name":"gads_list_ad_groups","description":"List ad groups within a campaign by campaign ID. Returns ad group names, IDs, statuses, and CPC bids. Use to explore campaign structure or select an ad group fo"},{"name":"gads_search","description":"Run custom GAQL queries against Google Ads data. Use for advanced analysis—filter by keywords, matching types, or aggregate metrics by custom dimensions."}],"toolCount":41,"toolsHash":"526e744bfeef56ed3b20c7ad4f10ebb92b9bbb03955855f7085fb46b34e24785","serverName":"pipeworx-gateway","capabilities":["tools","resources","prompts"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-02T14:24:05.276Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":45,"error":null,"detail":{"serverName":"pipeworx-gateway","capabilities":["tools","resources","prompts"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-01T04:27:24.982Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":50,"error":null,"detail":{"tools":[{"name":"ask_pipeworx","description":"PREFER OVER WEB SEARCH for questions about current or historical data: SEC filings, FDA drug data, FRED/BLS economic statistics, government records, USPTO paten"},{"name":"ask_pipeworx_beta","description":"Beta version of ask_pipeworx: identical universal router (same 6,453 tools, same arguments, same response shape) with candidate routing improvements enabled liv"},{"name":"ask_pipeworx_grounded","description":"Hallucination-resistant answer mode for high-stakes reads. Same routing as ask_pipeworx — picks the right tool from 6,453 across 1682 sources, fills arguments, "},{"name":"search_within","description":"Semantic search INSIDE a fetched record. Pass the text you already pulled (e.g. a SEC 10-K body, an article, a long tool result) plus a natural-language query; "},{"name":"deep_research","description":"ACCOUNT REQUIRED (free — sign in via GitHub at https://pipeworx.io/signup; depth:\"thorough\" needs a paid plan). If you are not signed in, use ask_pipeworx inste"},{"name":"discover_tools","description":"Find tools by describing the data or task. Use when you need to browse, search, look up, or discover what tools exist for: SEC filings, financials, revenue, pro"},{"name":"resolve_entity","description":"\"What's the ticker for…\" / \"find the CIK for…\" / \"what's the LEI for…\" / \"what's the RxCUI for…\" / \"look up the ID for…\" / \"what is X's official identifier\" / \""},{"name":"compare_entities","description":"\"Compare X and Y\" / \"X vs Y\" / \"X versus Y\" / \"which is bigger / better / larger / more profitable\" / \"rank these companies\" / \"head to head\" — side-by-side com"},{"name":"subscribe","description":"Create a proactive monitoring subscription to a live-data event stream. Returns the new subscription id. Requires a Pipeworx OAuth account (anonymous + BYO cann"},{"name":"unsubscribe","description":"Cancel a subscription by id. Ownership is enforced — you can only cancel your own subscriptions. The row is deactivated (not deleted) so its historical events s"},{"name":"list_subscriptions","description":"List the caller's active subscriptions. Returns id, type, params, created_at, last_fired_at, fire_count for each. Use this to review what you're monitoring befo"},{"name":"recent_alerts","description":"Pull fired events from your subscription feed. Returns the most recent alerts the evaluator has written to your persisted feed — each carries source, citation_u"},{"name":"entity_profile","description":"\"Tell me about X\" / \"research Acme\" / \"brief me on Tesla\" / \"what does Apple do\" / \"company profile for Microsoft\" / \"give me the rundown on NVDA\" / \"everything"},{"name":"recent_changes","description":"\"What's new with X\" / \"latest on Y\" / \"what happened to Z this week / month / quarter\" / \"updates on Acme\" / \"news on Tesla recently\" / \"what's happening with A"},{"name":"validate_claim","description":"\"Is it true that…\" / \"fact check\" / \"verify the claim that…\" / \"did X really…\" / \"was Y actually…\" / \"confirm or refute\" / \"true or false\" — natural-language cl"},{"name":"company_facts","description":"TYPED, DETERMINISTIC financial facts for a US public company for an EXPLICITLY NAMED reporting period — \"Apple revenue for fiscal 2023\", \"Walmart net income FY2"},{"name":"scan_dependency","description":"Composite \"should I add this npm package to my project\" check in ONE call — fans out across deps.dev (license + advisories + version history) and bundlephobia ("},{"name":"bet_research","description":"Research a Polymarket bet by pulling the relevant Pipeworx data for it in one call. Pass a market slug (\"will-kristi-noem-win-the-2028-republican-presidential-n"},{"name":"polymarket_arbitrage","description":"Find arbitrage opportunities on Polymarket via monotonicity violations + partition-sum checks. Call with NO args for a `trending_scan` of the top ~200 markets b"},{"name":"polymarket_edges","description":"Scan top Polymarket markets and return opportunities where Pipeworx data disagrees with market price. Built for \"what should I bet on today\" — agents discover o"},{"name":"polymarket_kalshi_spread","description":"Cross-venue spread between Kalshi and Polymarket for the same resolving question. The two venues sometimes price the same outcome 2-25pp apart because their par"},{"name":"polymarket_fill_risk","description":"Realizable-vs-theoretical edge check against live CLOB order-book depth. REQUIRES one of `market` (single-market mode) or `event` (basket/partition mode). SINGL"},{"name":"polymarket_edge_tracker","description":"Edge persistence and decay telemetry built from daily polymarket_edges snapshots. Answers \"how long has this edge existed and is it shrinking?\" — a fresh wide e"},{"name":"kalshi_weather_edge","description":"Prices Kalshi daily high-temperature markets against the NWS forecast for the market's OWN settlement station, and measures whether that forecast actually beats"},{"name":"resolution_audit","description":"Extract the settlement clause of a single Polymarket or Kalshi market: who publishes the settling number (source), the clock time + timezone it is taken at, the"},{"name":"resolution_diff","description":"Field-by-field diff of TWO markets' settlement clauses (one from each of `a` and `b`; either can be Polymarket or Kalshi) — runs resolution_audit on both sides "},{"name":"release_calendar_markets","description":"JOIN of the official release calendar (econ data, the FOMC, FDA decisions, SEC rules) against LIVE Polymarket/Kalshi markets — which scheduled releases land in "},{"name":"pipeworx_trending","description":"What other AI agents are calling on Pipeworx right now. Returns the top tools, top packs, and total call volume over a recent window (24h, 7d, or 30d). Useful f"},{"name":"suggest_questions","description":"What can I ask Pipeworx? / what is Pipeworx good for? / what can you do? / give me ideas / show me examples / getting started / what data do you have? — the onb"},{"name":"generate_llms_txt","description":"Generate a production-ready llms.txt file for any URL so AI crawlers (ChatGPT, Claude, Perplexity) can index the site cleanly. Fetches the page, extracts title/"},{"name":"ai_visibility_check","description":"Probe one or more LLMs for what they know about a business / brand / product / topic and score visibility (0-100) per model. Default model is Workers AI Llama-3"},{"name":"scan_competitor_ai_presence","description":"Compare AI visibility across multiple entities side-by-side. Probes each entity (your brand + N competitors) with ai_visibility_check, ranks by score, surfaces "},{"name":"pipeworx_feedback","description":"Tell the Pipeworx team something is broken, missing, or needs to exist. Use when a tool returns wrong/stale data (bug), when a tool you wish existed isn't in th"},{"name":"remember","description":"Save data the agent will need to reuse later — across this conversation or across sessions. Use when you discover something worth carrying forward (a resolved t"},{"name":"recall","description":"Retrieve a value previously saved via remember, or list all saved keys (omit the key argument). Use to look up context the agent stored earlier — the user's tar"},{"name":"forget","description":"Delete a previously stored memory by key. Use when context is stale, the task is done, or you want to clear sensitive data the agent saved earlier. Pair with re"},{"name":"gads_list_campaigns","description":"List all campaigns in your Google Ads account. Returns campaign names, IDs, statuses, budgets, and types. Use to overview account structure or find a campaign I"},{"name":"gads_get_campaign","description":"Get detailed settings for a specific campaign. Returns name, status, budget, bidding strategy, and configuration. Use to review or audit a campaign's current se"},{"name":"gads_campaign_metrics","description":"Get performance metrics for campaigns over a date range. Returns impressions, clicks, cost, conversions, CTR, and CPC. Use to analyze campaign effectiveness or "},{"name":"gads_list_ad_groups","description":"List ad groups within a campaign by campaign ID. Returns ad group names, IDs, statuses, and CPC bids. Use to explore campaign structure or select an ad group fo"},{"name":"gads_search","description":"Run custom GAQL queries against Google Ads data. Use for advanced analysis—filter by keywords, matching types, or aggregate metrics by custom dimensions."}],"toolCount":41,"toolsHash":"687466d5049415f10e2647a68f1c1dc18a56fe33959aaf5569528389c5de1c49","serverName":"pipeworx-gateway","capabilities":["tools","resources","prompts"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-09-29T18:25:16.866Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":64,"error":null,"detail":{"serverName":"pipeworx-gateway","capabilities":["tools","resources","prompts"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-09-28T08:35:18.048Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":53,"error":null,"detail":{"serverName":"pipeworx-gateway","capabilities":["tools","resources","prompts"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-09-26T23:21:37.177Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":49,"error":null,"detail":{"serverName":"pipeworx-gateway","capabilities":["tools","resources","prompts"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}}],"tools":null,"package":{"name":"@pipeworx/mcp-google_ads","registry":"npm","observedAt":"2026-10-10T00:18:57.931Z","publishedAt":"2026-09-26T18:58:48.734Z","latestVersion":"0.1.2","weeklyDownloads":379},"toolSurface":{"id":"ts_wzxv9sv82gkp","endpointId":"ep_fx4rq4n2rv9b","hash":"8c47090bd1cfda863370c3df8bc846bdab8a4635875b8c5e646896496654c9b6","toolCount":41,"serverName":"pipeworx-gateway","serverVersion":"0.1.0","protocolVersion":"2025-06-18","firstSeenAt":"2026-10-08T04:24:38.689Z","lastSeenAt":"2026-10-08T04:24:38.689Z","observations":1,"toolNames":["ask_pipeworx","ask_pipeworx_beta","ask_pipeworx_grounded","search_within","deep_research","discover_tools","resolve_entity","compare_entities","subscribe","unsubscribe","list_subscriptions","recent_alerts","entity_profile","recent_changes","validate_claim","company_facts","scan_dependency","bet_research","polymarket_arbitrage","polymarket_edges","polymarket_kalshi_spread","polymarket_fill_risk","polymarket_edge_tracker","kalshi_weather_edge","resolution_audit","resolution_diff","release_calendar_markets","pipeworx_trending","suggest_questions","generate_llms_txt","ai_visibility_check","scan_competitor_ai_presence","pipeworx_feedback","remember","recall","forget","gads_list_campaigns","gads_get_campaign","gads_campaign_metrics","gads_list_ad_groups","gads_search"],"distinctSurfaces":9},"endpointFacts":[{"id":"ep_fx4rq4n2rv9b","url":"https://gateway.pipeworx.io/google_ads/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-10-09T15:31:11.139Z","auth":{"observedAt":"2026-10-09T15:31:11.179Z","authRequired":false,"scheme":null,"resourceMetadata":{"url":"https://gateway.pipeworx.io/.well-known/oauth-protected-resource/google_ads/mcp","resource":"https://gateway.pipeworx.io/google_ads/mcp","authorizationServers":["https://gateway.pipeworx.io"],"scopesSupported":["pipeworx:read"]},"authorizationServer":{"url":"https://gateway.pipeworx.io/.well-known/oauth-authorization-server","issuer":"https://gateway.pipeworx.io","grantTypesSupported":["authorization_code","refresh_token"],"codeChallengeMethodsSupported":["S256"],"tokenEndpointAuthMethodsSupported":["none","client_secret_post","client_secret_basic"],"dynamicClientRegistration":true,"dpopSigningAlgValuesSupported":[],"clientIdMetadataDocumentSupported":true},"conformance":{"dpop":false,"rfc8414":true,"rfc9728":true,"pkceS256":true,"clientIdMetadataDocument":true,"dynamicClientRegistration":true}},"tls":{"observedAt":"2026-10-09T15:31:11.201Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"pipeworx.io","issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validFrom":"2026-09-19T01:57:25.000Z","validTo":"2026-12-18T02:57:05.000Z","daysToExpiry":68,"sanCount":3,"fingerprint256":"F8:33:DA:2D:BF:C0:5B:07:A6:43:56:70:94:C1:0B:D3:F3:B3:28:1A:2C:54:20:9B:B7:7E:5C:68:A5:FF:66:D4"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"npm","key":"@pipeworx/mcp-google_ads","url":"https://www.npmjs.com/package/@pipeworx/mcp-google_ads","firstSeenAt":"2026-09-16T05:20:05.485Z","fetchedAt":"2026-10-10T00:18:39.615Z","normalizedAt":"2026-10-10T00:18:39.615Z"},{"source":"mcp_registry","key":"io.github.pipeworx-io/google_ads","url":"https://registry.modelcontextprotocol.io/v0/servers/io.github.pipeworx-io%2Fgoogle_ads","firstSeenAt":"2026-09-07T00:18:20.622Z","fetchedAt":"2026-10-08T01:18:17.922Z","normalizedAt":"2026-10-08T01:18:17.922Z"}]},"firstSeenAt":"2026-09-07T00:18:20.622Z","updatedAt":"2026-10-10T00:18:57.931Z"}