{"name":"io.github.pijusz/mcp-gads","slug":"pijusz-mcp-gads","title":null,"description":"Google Ads MCP server — query campaigns, keywords, assets & more via natural language","url":"https://mcp.market/server/pijusz-mcp-gads","rating":null,"grade":"B","score":80,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":13,"stars":1,"forks":0,"downloads_week":null,"last_push_at":"2026-07-31T13:24:27.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/pijusz/mcp-gads","website":null,"version":"0.5.4","remotes":[],"packages":[{"registryType":"npm","identifier":"mcp-gads","version":"0.5.4","transport":{"type":"stdio"}}],"tools":[{"name":"add_negative_keywords","description":"⚠️ WRITE OPERATION: Add negative keywords to a campaign to prevent ads from showing for those search terms. This modifies your Google Ads account.","write_action":false,"price_micros":0,"input_schema":null},{"name":"analyze_image_assets","description":"Analyze image asset performance with metrics like impressions, clicks, conversions, and CTR across campaigns.","write_action":false,"price_micros":0,"input_schema":null},{"name":"download_image_asset","description":"Download a specific image asset by ID to a local directory.","write_action":false,"price_micros":0,"input_schema":null},{"name":"execute_gaql_query","description":"Execute a custom GAQL query and return results as a table. Use this for any ad-hoc Google Ads Query Language query.","write_action":true,"price_micros":0,"input_schema":null},{"name":"generate_keyword_ideas","description":"Generate keyword ideas using Google Ads Keyword Planner. Returns search volume estimates and keyword suggestions based on seed keywords.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_account_currency","description":"Get the currency code for a Google Ads account. Run this before analyzing cost data.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_account_hierarchy","description":"Get the MCC account tree showing manager-client relationships via customer_client resource.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_account_summary","description":"Quick account dashboard: total metrics + top 5 campaigns by spend.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_ad_creatives","description":"Get ad creative details including RSA headlines, descriptions, and final URLs. Great for creative audits.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_ad_group_performance","description":"Get ad group performance metrics. Optionally filter by campaign ID.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_ad_performance","description":"Get ad-level performance metrics for the specified time period. RECOMMENDED WORKFLOW: 1. First run list_accounts() to get available account IDs 2. Then run get_account_currency() to see what currency the account uses 3. Finally run this command to get ad performance Note: Cost values are in micros (1,000,000 = 1 unit of currency).","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_ad_schedule_performance","description":"Performance breakdown by hour of day or day of week.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_asset_group_performance","description":"Performance Max asset group metrics including ad strength and status.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_asset_usage","description":"Find where specific assets are being used in campaigns and ad groups.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_audience_performance","description":"Performance breakdown by age range and gender demographics.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_budget_utilization","description":"Get campaign budget amounts vs actual spend to see budget utilization. Shows whether campaigns are limited by budget.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_campaign_performance","description":"Get campaign performance metrics for the specified time period. RECOMMENDED WORKFLOW: 1. First run list_accounts() to get available account IDs 2. Then run get_account_currency() to see what currency the account uses 3. Finally run this command to get campaign performance Note: Cost values are in micros (1,000,000 = 1 unit of currency).","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_change_history","description":"Get recent account changes (campaign updates, bid changes, ad modifications, etc.) from the change_event resource.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_conversion_actions","description":"List conversion actions with their settings and recent performance metrics.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_device_performance","description":"Get campaign performance broken down by device type (desktop, mobile, tablet).","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_gaql_help","description":"Get a GAQL (Google Ads Query Language) reference guide with syntax, common resources, date filters, and example queries. Call this before writing custom GAQL queries.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_geographic_performance","description":"Get campaign performance broken down by geographic location (country, region, city).","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_image_assets","description":"Retrieve all image assets in the account including their full-size URLs, dimensions, and file sizes.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_impression_share","description":"Get competitive position metrics: impression share, top/absolute top IS, and lost IS (budget & rank).","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_keyword_volumes","description":"Get historical search volume metrics for specific keywords. Returns exact volume data (unlike generate_keyword_ideas which suggests related keywords).","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_labels","description":"List labels and their assignments to campaigns or ad groups.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_landing_page_performance","description":"Landing page URLs with performance metrics.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_placement_performance","description":"Where Display and Performance Max ads appeared (websites, apps, YouTube channels).","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_quality_scores","description":"Get keyword quality scores with component breakdown (expected CTR, ad relevance, landing page experience).","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_recommendations","description":"Get Google's AI-powered optimization recommendations for the account (bid adjustments, keyword suggestions, budget changes, etc.).","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_search_terms","description":"Get actual search queries that triggered your ads (search term report). Shows what users are really searching for.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_video_performance","description":"YouTube and video ad performance metrics including view rates and quartile completion.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_accounts","description":"Lists all accessible Google Ads accounts. Run this first to discover account IDs.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_resources","description":"List valid Google Ads API resources that can be used in GAQL FROM clauses.","write_action":false,"price_micros":0,"input_schema":null},{"name":"run_gaql","description":"Execute any GAQL query with output format options (table, json, csv). The most powerful tool for custom Google Ads data queries. EXAMPLE QUERIES: Campaign metrics: SELECT campaign.name, metrics.clicks, metrics.impressions, metrics.cost_micros FROM campaign WHERE segments.date DURING LAST_7_DAYS Ad group perf: SELECT ad_group.name, metrics.conversions, metrics.cost_micros, campaign.name FROM ad_gro","write_action":true,"price_micros":0,"input_schema":null},{"name":"update_ad_group_status","description":"⚠️ WRITE OPERATION: Pause or enable an ad group. This modifies your Google Ads account.","write_action":true,"price_micros":0,"input_schema":null},{"name":"update_ad_status","description":"⚠️ WRITE OPERATION: Pause or enable an ad. This modifies your Google Ads account.","write_action":true,"price_micros":0,"input_schema":null},{"name":"update_campaign_budget","description":"⚠️ WRITE OPERATION: Change the daily budget amount for a campaign. Amount is in micros (1,000,000 = 1 unit of currency). This modifies your Google Ads account.","write_action":true,"price_micros":0,"input_schema":null},{"name":"update_campaign_status","description":"⚠️ WRITE OPERATION: Pause or enable a campaign. This modifies your Google Ads account.","write_action":true,"price_micros":0,"input_schema":null}],"scan":{"score":80,"grade":"B","scanned_at":"2026-09-27T23:35:09.935Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-09-27T23:35:09.874Z","components":{"code":{"score":20,"max":25,"notes":["2 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":12,"max":15,"notes":["local package, no credentials required"]},"maintenance":{"score":12,"max":15,"notes":["last push 58 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[{"id":"exec.eval","severity":"medium","component":"code","title":"eval / new Function used","evidence":"dist/index.js: …eCode, sch); const makeValidate = new Function(`${names_1.default.self}`, `${names_1.de…"}],"inputs":{"packages":[{"registryType":"npm","identifier":"mcp-gads","version":"0.5.4","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":3,"publishedAt":"2026-03-23T09:52:28.397Z","repositoryUrl":"git+https://github.com/pijusz/mcp-gads.git"}],"repo":{"found":true,"owner":"pijusz","repo":"mcp-gads","archived":false,"pushedAt":"2026-07-31T13:24:27Z","stars":1,"forks":0,"openIssues":1,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/20190386?v=4","ownerCreatedAt":"2016-06-28T15:41:44Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/20190386?v=4&s=128","source":"github"},"presence":{"stars":1,"forks":0,"downloadsWeek":null,"license":"MIT","lastPushAt":"2026-07-31T13:24:27.000Z","score":13}}}},"grade_history":[],"reviews":[]}