MCP Server

Your ad accounts, in any AI client.

One endpoint, added once, and the assistant you already use can answer from your live ad data — spend, search terms, auction insights, raw GAQL. 57 tools sit behind it. 45 of them are reads, granted the moment you connect. Changes are a separate scope your client asks you to approve.

Server URL

https://adscriptly.com/api/mcp

One server, every client

The same URL, the same OAuth handshake, the same tools. Pick the client you already work in — the steps differ, the server does not.

Install

Connect it in one click, or one copy

Pick your client. Where the vendor publishes a one-click install link, that is the button. Where they do not, one press copies the exact string and opens the screen you paste it into — never a page of setup.

Server URL

https://adscriptly.com/api/mcp

Claude

One click opens Claude with the connector dialog already filled in.

Signed out? Claude signs you in first and returns you to the filled-in dialog. Team and Enterprise admins add it once for everyone from Organization settings → Connectors.

  1. Select Add to Claude. The Add custom connector dialog opens with the name and URL already filled in.

  2. Review the values and select Add.

  3. Sign in to Adscriptly when the OAuth window opens.

Or add it by hand

https://adscriptly.com/api/mcp
Editing a config file instead? ↓

Every client that reads MCP servers from a JSON file takes this block. The server name is adscriptly; the transport is Streamable HTTP.

{ "mcpServers": { "adscriptly": { "type": "http", "url": "https://adscriptly.com/api/mcp" } } }

Also one click, in your editor

What happens next

Connecting is free. Your first query starts the trial.

Adding the server needs no plan. New here? You create a free Adscriptly account and there is a short profile step on the way through, then you land back in the connector with nothing to redo. Either way the connector comes back healthy and your client lists every tool it can run.

The first time you actually ask it something, the server replies with an activation link instead of the data, because that answer is read out of your live ad account and that is the part a plan pays for. It arrives as an ordinary answer, not an error — a sentence and a link your assistant reads out to you, rather than the red failure an expired key would produce.

Start the trial and ask again. The connection stays exactly as it is — nothing to reinstall, nothing to reconnect.

Free for 7 days, then $129/mo. We'll remind you 3 days before your first charge. Cancel anytime. Card required.

57 tools behind one endpoint

Every name below is a tool the server actually exposes. The model picks the one your question needs; you never learn the names.

Ask anything

Raw GAQL, resource discovery, and queued report generation with bounded status checks.

  • run_gaql
  • execute_gaql_query
  • list_gaql_resources
  • list_accounts
  • get_account_currency
  • generate_report_file
  • get_report_file_status

Where the money went

Spend and outcomes at every level, without exporting a single CSV.

  • get_campaign_performance
  • get_ad_group_report
  • get_keyword_report
  • get_keyword_performance
  • get_search_terms_report
  • get_landing_page_report
  • get_placement_report

Who saw it

Every segment Google will break performance down by.

  • get_device_report
  • get_location_report
  • get_user_location_report
  • get_age_report
  • get_gender_report
  • get_income_report
  • get_parental_report
  • get_schedule_report

Creative and assets

Down to which RSA headline is carrying the ad group.

  • get_ad_performance
  • get_ad_creatives
  • get_rsa_ad_performance_report
  • get_asset_performance_report
  • get_image_assets
  • get_image_asset_urls
  • get_asset_usage
  • analyze_image_assets
  • get_extension_inventory

Competitive and diagnostic

Impression share, overlap, and who changed what, when.

  • get_auction_insights
  • get_keyword_metrics
  • get_keyword_ideas
  • get_keyword_kpis
  • get_change_history
  • get_campaign_settings
  • get_live_campaign_statuses
  • get_live_ad_group_statuses

Conversions

Including the outcomes Adscriptly sent back, not just the ones Google counted.

  • get_conversion_analytics
  • get_conversion_stats
  • get_conversion_action_report
  • get_call_details_report
  • get_dashboard_analytics
  • get_adscriptly_search_terms

Changes, behind approvalapproval

A separate scope, annotated destructive, surfaced by the client for approval.

  • execute_mutate
  • execute_gtm_mutate
  • apply_negative_keywords
  • approve_negative_keywords
  • approve_positive_keywords
  • dismiss_negative_keywords
  • get_pending_negative_keywords
  • get_pending_positive_keywords
  • get_negative_keyword_agent_status
  • get_gtm_tags
  • get_sync_status
  • trigger_sync

What it is allowed to do

Read and write are different scopes, and the client is told which is which.

Authentication
OAuth 2.1, Dynamic Client Registration, S256 PKCE. No API keys in a config file.
Google credentials
Never handed to the model. The server holds the connection; the client holds a token for Adscriptly.
Reads
Available as soon as you pick an account for the conversation.
Writes
A separate scope. Annotated as destructive so the client asks before it runs.
Entitlement
Connecting is free. Tools run on an active plan or trial; without one the assistant is handed a link to start one instead of an error.

Questions

Do I need an Adscriptly account to connect?

An account, yes. A plan, no — and that holds whether or not you have used Adscriptly before. With an existing account, connecting is the sign-in you already have and nothing else. If you are new, you create the account during that same sign-in — there is a short profile step — and then connect, still without picking a plan. Either way the handshake completes and the client lists all 57 tools. Entitlement is checked only when a tool actually runs, so the first query is where a free trial or a plan is needed, and the tool hands back a link to start one instead of an error.

Which clients can connect to it?

Any client that speaks remote MCP over HTTP. Claude, Cursor and VS Code publish an install link, so one click opens their connector dialog with the name and URL already filled in — you still review and confirm it, and nothing installs silently. Claude Code, ChatGPT, Open Claw, Grok and Hermes take one copy and a paste, because their vendors publish no such link. Anything else that accepts a server URL connects the same way: there is one endpoint and it is the same for every client.

How does it authenticate?

OAuth 2.1 with Dynamic Client Registration and S256 PKCE. The client registers itself, you sign in to Adscriptly once from inside it, and no API key is ever pasted into a config file. Your Google credentials are not handed to the model: the server holds the connection, the client holds a token for Adscriptly.

Does the model get write access to my ad account?

Not by default. Reads and writes are separate scopes, and a connected client is granted the read scope — that is 45 of the 57 tools. Writes run through execute_mutate, which is annotated as a destructive operation, so the client surfaces it for approval before anything changes in the account.

Does it cover Meta as well as Google Ads?

The tool catalogue is Google Ads. For Meta, Adscriptly delivers conversions through the Conversions API and reads accessible accounts with the ads_read permission — it does not request campaign-management permission, so Meta campaigns cannot be edited from a chat. /claude-meta-ads covers exactly what is and is not available there.

What does it cost?

There is no separate charge for the MCP server — it is included with any paid plan and with an unexpired free trial. Every tool call checks entitlement, so an expired trial stops answering and hands back a reactivation link rather than degrading quietly.

Ask your ad account a question.

Free for 7 days, then $129/mo. We'll remind you 3 days before your first charge. Cancel anytime.