Skip to main content
Glama

Proxy — Google Ads Library Hosted MCP

Google Ads Library MCP Server

This is a Model Context Protocol (MCP) server for the Google Ads Transparency Center.

With this you can search Google's public ads transparency center for any company or brand, see what they're currently running and analyze their advertising. You can analyze ad images/text, analyze video ads with comprehensive insights, compare companies' strategies, and get insights into what's working in their campaigns.

Here's an example of what you can do when it's connected to Claude.

https://github.com/user-attachments/assets/a47aa689-e89d-4d4b-9df7-6eb3a81937ee


The easiest way to use the Google Ads Library MCP is the hosted version from Proxy (useproxy.dev). No API keys, no Gemini key, no Python, no server to run — just connect and start querying.

  • Zero setup — nothing to install, configure, or maintain

  • 🔑 No API keys — skip the ScrapeCreators and Gemini keys entirely

  • 🔌 Works everywhere — ChatGPT, Claude, Cursor, Manus, and anywhere else that supports MCP

  • 🚀 Always up to date — new tools and fixes ship automatically

👉 Get started for free at useproxy.dev →

Prefer to run it yourself? The full self-host setup is documented below.

Hosted vs. Self-Host

Hosted — Proxy (useproxy.dev)

Self-Host

Setup time

None — connect and go

Python env + config

API keys required

None

ScrapeCreators + Gemini

Infrastructure

Fully managed

You run and maintain it

Updates

Automatic

Manual git pull

Works in ChatGPT, Claude, Cursor, Manus

Best for

Most users who just want the data

Developers who want to customize the code

For most people, the hosted version is the fastest path. Choose self-host if you specifically want to modify or extend the server yourself.


Related MCP server: Google Search MCP Server

Example Prompts

How many ads is 'AnthropicAI' running? What's their split across video and image?
What messaging is 'AnthropicAI' running right now in their ads?
Analyze the video ads from 'Nike' and extract their visual storytelling strategy, pacing, and brand messaging techniques.
Do a deep comparison to the messaging between 'AnthropicAI', 'Perplexity AI' and 'OpenAI'. Give it a nice forwardable summary.

Installation

Prerequisites

  • Python 3.12+

  • Anthropic Claude Desktop app (or Cursor)

  • Pip (Python package manager), install with python -m pip install

  • An API key for an ads data provider, set as SCRAPECREATORS_API_KEY (see configuration below)

  • A Google Gemini API key for video analysis (optional, only needed for video ads)

Prefer not to deal with API keys? See the Hosted Version above to skip setup entirely.

  1. Clone and run the install script

    git clone https://github.com/proxy-intell/google-ads-library-mcp.git
    cd google-ads-library-mcp
    
    # For macOS/Linux:
    ./install.sh
    
    # For Windows:
    install.bat
  2. Configure your API keys

    Edit the .env file that was created and add your API keys:

    • Set your ads data API key as SCRAPECREATORS_API_KEY

    • Get your Gemini API key at Google AI Studio (optional, for video analysis)

  3. Follow the displayed MCP configuration

    The install script will show you the exact configuration to add to Claude Desktop or Cursor.

Manual Install

If you prefer to install manually:

  1. Clone this repository

    git clone https://github.com/proxy-intell/google-ads-library-mcp.git
    cd google-ads-library-mcp
  2. Install dependencies

    pip install -r requirements.txt
  3. Configure API keys

    Copy the template and configure your API keys:

    cp .env.template .env
    # Then edit .env with your actual API keys

    To obtain API keys:

    • Set your ads data API key as SCRAPECREATORS_API_KEY in the .env file

    • Get a Google Gemini API key here (optional, for video analysis)

  4. Connect to the MCP server

    Add the MCP server configuration to your Claude Desktop or Cursor config:

    {
      "mcpServers": {
        "google_ad_library": {
        "command": "/usr/local/opt/python@3.13/bin/python3",
          "args": [
            "{{PATH_TO_PROJECT}}/google-ads-library-mcp/mcp_server.py"
          ]
        }
      }
    }

    Replace {{PATH_TO_PROJECT}} with the full path to where you cloned this repository.

    Note: API keys are automatically loaded from the .env file. Command line arguments are still supported and take priority over environment variables if provided.

    For Claude Desktop:

    Save this as claude_desktop_config.json in your Claude Desktop configuration directory at:

    ~/Library/Application Support/Claude/claude_desktop_config.json

    For Cursor:

    Save this as mcp.json in your Cursor configuration directory at:

    ~/.cursor/mcp.json
  5. Restart Claude Desktop / Cursor

    Open Claude Desktop and you should now see the Google Ads Library as an available integration.

    Or restart Cursor.


Technical Details

  1. Claude sends requests to the Python MCP server

  2. The MCP server queries the ads data API for Google Ads Transparency Center data

  3. Data flows back through the chain to Claude

Google Ads

This server connects to Google's Ads Transparency Center:

  • Google Ads: Uses company domain (e.g., "nike.com") or advertiser ID for search

  • Response Format: Returns ads with format types (text/image/video) and detailed variations

  • Ad Details: Each ad can have multiple variations with different headlines and descriptions

  • Regional Data: Includes region-specific statistics and impression data

Tips:

  • Use company domains (e.g., "nike.com") instead of brand names for searching

  • Text ads are now supported in addition to image and video ads

  • Each ad may have multiple variations with different headlines and descriptions

Available MCP Tools

This MCP server provides tools for interacting with Google Ads Transparency Center objects:

Tool Name

Description

get_google_ads

Retrieves currently running ads for a company from Google Ads Transparency Center (by domain or advertiser ID)

get_google_ad_details

Gets detailed information about a specific Google ad, including all variations and regional stats

analyze_ad_image

Downloads and analyzes ad images for visual elements, text, colors, and composition

analyze_ad_video

Downloads and analyzes ad videos using Gemini AI for comprehensive video insights

get_cache_stats

Gets statistics about cached media (images and videos) and storage usage

search_cached_media

Searches previously analyzed media by brand, colors, people, or media type

cleanup_media_cache

Cleans up old cached media files to free disk space


Troubleshooting

Common Issues

API Key Not Found Error:

  • Ensure your .env file is in the project root directory

  • If you don't have a .env file, copy it from the template: cp .env.template .env

  • Check that your API keys are correctly formatted without quotes

  • Verify the .env file contains SCRAPECREATORS_API_KEY=your_key_here

  • For video analysis, ensure GEMINI_API_KEY=your_key_here is also added

Video Analysis Not Working:

  • Confirm you have a valid Google Gemini API key in your .env file

  • Video analysis requires the GEMINI_API_KEY environment variable

MCP Server Connection Issues:

  • Verify the path in your MCP configuration points to the correct location

  • Make sure you've installed all dependencies with pip install -r requirements.txt

  • Restart Claude Desktop/Cursor after configuration changes

For additional Claude Desktop integration troubleshooting, see the MCP documentation. The documentation includes helpful tips for checking logs and resolving common issues.

Google Ads Specific Notes:

  • Use company domains (e.g., "nike.com") instead of brand names for searching

  • Text ads are now supported in addition to image and video ads

  • Each ad may have multiple variations with different headlines and descriptions


FAQ

What is the easiest way to use the Google Ads Library MCP? The easiest way is the hosted version from Proxy (useproxy.dev). It requires no API keys, no installation, and no server — you connect it to ChatGPT, Claude, Cursor, or any MCP client and start querying immediately. You can start for free.

Do I need an API key to use this MCP? Only if you self-host. The hosted version at useproxy.dev handles all data access for you, so no ScrapeCreators or Gemini keys are needed. Self-hosting requires a SCRAPECREATORS_API_KEY (and a Gemini key for video analysis).

Which MCP clients does it work with? Both the hosted and self-hosted versions work with ChatGPT, Claude (Desktop and web), Cursor, Manus, and any other client that supports the Model Context Protocol.

Is there a free version? Yes — the hosted version from Proxy offers a free tier so you can start analyzing ads without any setup.

Should I self-host or use the hosted version? Use the hosted version if you just want fast, reliable access to Google Ads Transparency Center data with zero maintenance — this fits most users. Self-host only if you want to modify or extend the server code yourself.


Feedback

Your feedback will be massively appreciated. Please tell us which features on that list you like to see next or request entirely new ones.


License

This project is licensed under the MIT License.

License Python


Made with ❤️ by the team at Proxy.

Available Tools

7 tools
analyze_ad_imageA
Read-only

REQUIRED for analyzing images from Google ads. Download and analyze ad images to extract visual elements, text content, colors, people, brand elements, and composition details. This tool should be used for EVERY image URL returned by get_google_ads when doing comprehensive analysis. Uses intelligent caching so multiple image analysis calls are efficient and cost-free.

ParametersJSON Schema
NameRequiredDescriptionDefault
ad_idNo
media_urlYes
brand_nameNo

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and openWorldHint, lowering the bar. The description adds caching behavior and cost-free repeated calls, giving useful context beyond annotations, though it doesn't detail download side effects or error behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with 'REQUIRED', providing purpose, usage, and caching behavior with no redundant wording.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Strong on purpose and usage, but lacks parameter explanation and output format description, especially given no output schema. The 3-param schema with 0% description coverage and no return value details leaves notable gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has no parameter descriptions (0% coverage). The description only indirectly mentions media_url via 'image URL returned by get_google_ads' but leaves ad_id and brand_name unexplained, so it does not compensate for the schema gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool analyzes ad images and enumerates specific extraction targets (visual elements, text, colors, people, brand, composition), distinguishing it from siblings like analyze_ad_video.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly mandates use for every image URL returned by get_google_ads during comprehensive analysis, providing strong when-to-use guidance and indirectly excluding video analysis.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

analyze_ad_videoA
Read-only

REQUIRED for analyzing video ads from Google. Download and analyze ad videos using Gemini's advanced video understanding capabilities. Extracts visual storytelling, audio elements, pacing, scene transitions, brand messaging, and marketing strategy insights. Uses intelligent caching for efficiency and includes comprehensive video analysis.

ParametersJSON Schema
NameRequiredDescriptionDefault
ad_idNo
media_urlYes
brand_nameNo

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide readOnlyHint=true, indicating safe read-only behavior. The description adds behavioral context beyond that: it downloads videos, uses Gemini's video understanding, employs intelligent caching, and provides comprehensive analysis. It doesn't mention rate limits, failure modes, or output format, but with no mutation risk and moderate added context, a 4 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is brief and front-loaded with 'REQUIRED', immediately conveying importance. It's composed of two sentences with minimal fluff. However, the final phrase 'includes comprehensive video analysis' is somewhat redundant given the previous list of insights, making it slightly less concise than it could be.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool analyzes videos from Google, which is a complex task with no output schema and sparse annotations. The description gives a good overview of capabilities and insights but lacks details about input prerequisites (e.g., what form media_url should take) and what exactly the output consists of. It does mention caching and specific analysis dimensions, but misses edge cases and more concrete usage guidance. Overall, it's functional but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0% description coverage, so the description must compensate by explaining the parameters. It only implicitly suggests that media_url is the video to download, but says nothing about ad_id or brand_name. The meanings of these optional parameters remain unclear, making it difficult for an agent to know what values to provide. This is a significant gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: analyzing video ads from Google using Gemini. It lists specific extractable insights (visual storytelling, audio, pacing, etc.), which distinguishes it from sibling tools like analyze_ad_image (images vs. videos) and get_google_ads (listing vs. analyzing). The verb 'analyze' and resource 'video ads' are specific and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states it is 'REQUIRED for analyzing video ads from Google', providing clear context for when to use this tool. It doesn't explicitly mention alternatives or when not to use it, but the strong 'REQUIRED' phrasing and the contrast with analyze_ad_image imply the appropriate use case. No exclusions or alternatives are named, so it's slightly below a perfect score.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cleanup_media_cacheA

REQUIRED for cleaning up old cached media files (images and videos) and freeing disk space. Use this tool when users want to remove old cached media, clean up storage space, or when cache becomes too large. Essential for cache maintenance and storage management.

ParametersJSON Schema
NameRequiredDescriptionDefault
max_age_daysNo

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=false, so it is known to be a mutation. The description adds that it targets old cached media and frees disk space, but does not disclose irreversibility, whether files are permanently deleted, or any side effects beyond freeing space. This is minimal but not contradictory.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is brief and front-loaded with the action. However, the closing phrase 'Essential for cache maintenance and storage management' is somewhat redundant and does not add meaningful value beyond the first sentence.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one parameter, the description covers purpose and usage, but lacks information about return values or specific outcomes like the number of files deleted or space reclaimed. Since there is no output schema, the description should explain what the tool returns or what happens after cleanup.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not mention the max_age_days parameter or explain how it affects cleanup. The parameter name and default are in the schema, but the description does not compensate for the lack of schema-level descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool cleans up old cached media files and frees disk space, using a specific verb and resource. It naturally distinguishes itself from sibling read-only tools like get_cache_stats and search_cached_media.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit context for when to use the tool: when users want to remove old cached media, clean storage space, or when cache becomes too large. It does not mention alternatives or when not to use it, but the primary use cases are clearly defined.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_cache_statsA
Read-only

REQUIRED for checking media cache status and storage usage. Use this tool when users ask about cache statistics, storage space used by cached media (images and videos), or how many files have been analyzed and cached. Essential for cache management and monitoring.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, covering the safety profile. The description adds meaningful behavioral context beyond annotations by specifying that the tool reports on media cache (images/videos), storage usage, and file counts. It does not contradict annotations, and it gives a clear picture of what the tool returns.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, consisting of three short sentences with no redundant information. It front-loads the purpose with 'REQUIRED for checking media cache status and storage usage' and then gives actionable guidance on when to use it. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool is simple (0 params, no output schema), the description covers the essential usage scenarios and what the tool reports. It is complete enough for an agent to decide when to invoke it. It could mention potential limitations or whether stats are global, but these are not critical for basic usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the schema Description coverage is fully satisfied. The description adds no parameter-specific semantics, but with no parameters required, no additional explanation is necessary. Baseline for 0 params is 4, and the description does not introduce confusion about inputs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific verb+resource: 'checking media cache status and storage usage' and elaborates on what is measured ('how many files have been analyzed and cached'). This distinguishes it from sibling tools like search_cached_media and cleanup_media_cache, which focus on searching or deleting cached media.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit usage scenarios: 'Use this tool when users ask about cache statistics, storage space used by cached media, or how many files have been analyzed and cached.' It is marked as 'REQUIRED' for these cases. However, it does not explicitly mention when not to use it or name alternative tools such as search_cached_media or cleanup_media_cache for other cache-related tasks.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_google_ad_detailsA
Read-only

Get detailed information about a specific Google ad including variations, regional stats, and impressions. Use this tool with the adUrl from get_google_ads to retrieve full ad details including all text variations, image URLs, headlines, and descriptions. Essential for analyzing ad content and extracting media URLs for visual analysis.

ParametersJSON Schema
NameRequiredDescriptionDefault
ad_urlYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description expands beyond the readOnlyHint annotation by detailing the returned data (text variations, image URLs, headlines, descriptions). This adds valuable context about the tool's scope and output, though it doesn't address edge cases or response structure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three well-structured sentences front-load the purpose, then provide usage guidance and rationale. Each sentence adds value with no redundancy or filler, making it concise and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given a single parameter, read-only annotations, and no output schema, the description adequately covers what the tool does, where the input comes from, and expected data content. It also mentions practical use cases like media extraction and visual analysis, leaving little ambiguity for typical usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With ad_url having no schema description (0% coverage), the description compensates by specifying the parameter's source ('adUrl from get_google_ads') and its role in identifying a specific ad. This provides meaningful semantic context, though exact formatting or validation rules are not mentioned.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'Get' and resource 'detailed information about a specific Google ad,' listing concrete data types like variations, regional stats, and impressions. This clearly distinguishes it from siblings like get_google_ads (which lists ads) and analyze_ad_image (which analyzes images).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly instructs to use this tool with the adUrl from get_google_ads, providing a clear integration path and use case ('analyzing ad content and extracting media URLs'). While it doesn't explicitly state when not to use alternatives, the context is clear and actionable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_google_adsA
Read-only

Retrieve currently running ads for a company from Google Ads Transparency Center. Use this tool to get ads for a company using their domain (e.g., 'nike.com') or advertiser ID. You can filter by topic (including political ads) and region. For complete analysis of visual elements, colors, design, or image content, you MUST also use analyze_ad_image on the imageUrl from each ad's details.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
topicNo
cursorNo
domainNo
regionNo
advertiser_idNo

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already include readOnlyHint: true, so the description needs to add behavioral context beyond that. It does add useful details: the tool filters by topic and region, returns 'currently running ads' (implying real-time data), and each ad includes an imageUrl that can be passed to analyze_ad_image. However, it doesn't describe pagination behavior (cursor) or limits, and it doesn't mention any potential caveats like missing advertisers or incomplete data from the external source.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, each earning its place: purpose, usage, and cross-reference to a sibling tool. It is front-loaded with a clear verb and resource, and contains no fluff. This is a model of efficient, structured tool description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 6 optional parameters, no output schema, and no required params, the description covers the core scope well: what it retrieves, how to identify the company, and how to filter. It references imageUrl from details, which hints at the return shape. It doesn't explicitly mention pagination or result limits, but the presence of cursor and limit parameters and the lack of an output schema make that less critical. The description is complete enough for typical invocation, though a brief note about pagination would improve it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate. It explains domain and advertiser_id ('using their domain (e.g., 'nike.com') or advertiser ID'), and it explains topic and region ('filter by topic (including political ads) and region'). However, it does not mention limit or cursor, which have no schema descriptions. Given that 4 of 6 parameters are semantically explained, it provides substantial value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Retrieve currently running ads for a company from Google Ads Transparency Center.' This specifies the verb (retrieve), resource (ads), and scope (currently running ads for a company), distinguishing it from siblings like analyze_ad_image and get_google_ad_details. The example 'e.g., 'nike.com'' further clarifies the intended input.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly instructs when to use this tool: 'Use this tool to get ads for a company using their domain ... or advertiser ID.' It also provides a clear directive for an alternative tool: 'For complete analysis of visual elements ... you MUST also use analyze_ad_image on the imageUrl from each ad's details.' This gives the agent explicit guidance on complementary usage and when to invoke a different tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_cached_mediaA
Read-only

REQUIRED for finding previously analyzed ad media (images and videos) in cache. Use this tool when users want to search for cached media by brand name, find media with people, search by colors, or filter by media type. Essential for retrieving past analysis results without re-downloading media.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
brand_nameNo
has_peopleNo
media_typeNo
color_containsNo

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, so the description's burden is reduced. It adds useful context that this searches the cache and avoids re-downloading media, but does not disclose return format, pagination behavior, or matching semantics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded, conveying the tool's necessity and usage in three short sentences. Some redundancy exists between 'REQUIRED' and 'Essential', but overall it is well-organized and free of fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the moderate complexity of a filtered search tool with no output schema, the description adequately communicates what the tool searches and why it matters. It does not explain the returned data structure, but the phrase 'past analysis results' gives a reasonable expectation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema descriptions are absent, but the description maps four of the five parameters to concrete user intents: brand_name, has_people, color_contains, and media_type. The limit parameter is not described, though it has a default value in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'search' and the resource 'cached media', specifying that it finds previously analyzed ad media (images and videos). It differentiates from sibling tools like analyze_ad_image/video and cleanup_media_cache by emphasizing retrieval of cached analysis results.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says when to use the tool: 'when users want to search for cached media by brand name, find media with people, search by colors, or filter by media type.' It provides practical context but does not mention when not to use it or explicitly name alternative tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A4.3/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: fetching ads, fetching details, analyzing images/videos, and managing cache. No overlapping functionality; the cache-related tools are separate from ad-fetching and analysis tools.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with lowercase and underscores (get_, analyze_, search_, cleanup_, etc.). The naming is uniform and predictable across the entire set.

Tool Count5/5

With 7 tools, the server is well-scoped for its purpose: fetching and analyzing Google Ads with associated cache management. Each tool serves a necessary function without redundancy or excess.

Completeness5/5

The tool set covers the full lifecycle of ad analysis: retrieving ads, getting details, analyzing image and video content, and managing cached media. There are no obvious dead ends or missing operations for the stated purpose.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    F
    maintenance
    A powerful MCP server that enables parallel Google searching with multiple keywords simultaneously, providing structured results while handling CAPTCHAs and simulating user browsing patterns.
    1
    98
    272
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    An MCP server that provides Google Search functionality with automatic API key rotation and intelligent quota management, enabling natural language search queries with advanced filtering options.
    1
    24
    1
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    An MCP server that provides structured Google Search capabilities including web, images, news, videos, maps, and local places via the AceDataCloud SERP API. It enables AI clients to perform localized searches and retrieve detailed information from the Google Knowledge Graph.
    11
    1
    MIT
  • A
    license
    A
    quality
    F
    maintenance
    An MCP server that lets AI assistants look up any advertiser's Google ads. Search by domain or company name, retrieve ad creatives, and decode text ad content from Google's Ads Transparency Center.
    4
    6
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/proxy-intell/google-ads-library-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server