A side-by-side look at the MCP Gads and Trillboards DOOH Advertising MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose MCP Gads for marketing work as a local process; choose Trillboards DOOH Advertising for marketing over a hosted endpoint. You can also run both side by side in one mcpServers block.
GOOGLE_ADS_DEVELOPER_TOKEN, GOOGLE_ADS_CREDENTIALS_PATH.list_accounts, get_account_currency, get_account_hierarchy.TRILLBOARDS_API_KEY.import_feedback_creative, configure_feedback_brand, create_creative_experiment.Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Marketing | Marketing |
| Quality signal | 63/100 · Good | 53/100 · Good |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Remote HTTP/SSE |
| Auth | OAuth 2.0 | Not declared |
| Pricing | BYOK (pay the provider) | Not declared |
| Required env vars | GOOGLE_ADS_DEVELOPER_TOKENGOOGLE_ADS_CREDENTIALS_PATH | TRILLBOARDS_API_KEY |
| Verified owner | Community listing | Community listing |
| GitHub stars | 1 | 1 |
| Directory activity | 9 views 0 installs 0 upvotes | 1 views 0 installs 0 upvotes |
| Tools | 36 | 83 |
| Full listing | View MCP Gads | View Trillboards DOOH Advertising |
list_accountsLists all accessible Google Ads accounts. Run this first to discover account IDs.get_account_currencyGet the currency code for a Google Ads account. Run this before analyzing cost data.get_account_hierarchyGet the MCC account tree showing manager-client relationships via customer_client resource.execute_gaql_queryExecute a custom GAQL query and return results as a table. Use this for any ad-hoc Google Ads Query Language query.run_gaqlExecute 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_group WHERE metrics.clicks > 100
Keyword analysis: SELECT keyword.text, metrics.ctr FROM keyword_view ORDER BY metrics.impressions DESC
Note: Cost values are in micros (1,000,000 = 1 unit of currency).get_gaql_helpGet a GAQL (Google Ads Query Language) reference guide with syntax, common resources, date filters, and example queries. Call this before writing custom GAQL queries.list_resourcesList valid Google Ads API resources that can be used in GAQL FROM clauses.get_campaign_performanceGet 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).get_budget_utilizationGet campaign budget amounts vs actual spend to see budget utilization. Shows whether campaigns are limited by budget.get_ad_performanceGet 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).get_ad_creativesGet ad creative details including RSA headlines, descriptions, and final URLs. Great for creative audits.get_image_assetsRetrieve all image assets in the account including their full-size URLs, dimensions, and file sizes.import_feedback_creativeImport an AI model’s image through native bytes, moderation and brand review. Provide exactly one of asset_url, source_creative_id or image_base64. Inline bytes require content_type. PNG, JPEG and WebP are staged through native ownership, actual MIME, byte-hash, brand review and moderation. The existing data_api/api_calls tariff applies.configure_feedback_brandConfigure your native brand profile and enable its booked reactive campaign. Uses your authenticated native buyer and existing funded placement.create_creative_experimentCreate an experiment on a funded native media-buy placement. Uses your authenticated native buyer and existing funded placement.get_creative_experimentRead your native experiment, policy and latest 500 owned creative recovery records. Uses your authenticated native buyer and existing funded placement.register_creative_variantsRegister approved native generated creative variants. Uses your authenticated native buyer and existing funded placement.update_creative_policyReplace native creative weights at the expected policy version. Uses your authenticated native buyer and existing funded placement.get_creative_rewardsRead a metered page of latest measured native play states. Read actual latest native plays with NULL preserved. Dates are YYYY-MM-DD, max 31 days. Poll with the returned cursor; canonical_key plus reward_revision_id identify logical changes; build_stamp is provenance. Each page uses the published data_api/api_calls tariff.stop_creative_experimentStop the native experiment at the expected policy version. Uses your authenticated native buyer and existing funded placement.generate_brand_creativeGenerate a native brand creative for explicit review and moderation. The native ad and advertiser come from the experiment. Review and AI moderation are separate. The existing data_api/api_calls tariff applies.review_feedback_creativeApprove or reject your generated creative using native brand review. Uses your authenticated native buyer and existing funded placement.register_partnerRegister a new partner organization with Trillboards.
WHEN TO USE:
- First-time setup for a new partner integration
- Creating a new partner account to manage devices
RETURNS:
- partner_id: Unique partner identifier
- api_key: API key for authenticated requests (store securely!)
- status: Account status
EXAMPLE:
User: "Register my vending machine company"
register_partner({
company_name: "Acme Vending Co",
email: "tech@acmevending.com",
industry: "vending",
expected_devices: 50
})get_partner_infoGet information about the authenticated partner account.
WHEN TO USE:
- Checking current partner status and stats
- Verifying API key is working
- Getting partner account details
RETURNS:
- partner_id: Partner identifier
- company_name: Registered company name
- status: Account status (active, suspended, etc.)
- device_count: Number of registered devices
- total_impressions: Lifetime impression count
- earnings: Earnings summary
EXAMPLE:
User: "What's my partner account status?"
get_partner_info({})Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
{
"mcpServers": {
"mcp-gads": {
"command": "npx",
"args": [
"-y",
"mcp-gads"
],
"env": {
"GOOGLE_ADS_DEVELOPER_TOKEN": "YOUR_GOOGLE_ADS_DEVELOPER_TOKEN_HERE",
"GOOGLE_ADS_CREDENTIALS_PATH": "YOUR_GOOGLE_ADS_CREDENTIALS_PATH_HERE"
}
}
}
}
{
"mcpServers": {
"trillboards-dooh-advertising": {
"url": "https://api.trillboards.com/mcp"
}
}
}