Platforms How it connects Presets Setup FAQ

MCP server for ChatGPT & Claude BETA

Ask your marketing data anything.

Marketing Data MCP is a remote MCP server that lets ChatGPT and Claude query GA4, Search Console, Google Ads, Merchant Center, Meta and CallRail in plain language, through 72 tools and 125 expert presets.

MCP URL https://ga4mcpjs.vercel.app/mcp
Works with Claude ChatGPT any MCP client
  • 6platforms
  • 72tools
  • 125expert presets
  • 0databases
J
Which of my pages are close to page one on Google?
Request
{
  "preset": "striking_distance",
  "siteUrl": "sc-domain:example.com",
  "startDate": "2026-08-27",
  "endDate": "2026-09-23",
  "minPosition": 5,
  "maxPosition": 20
}
Response
{
  "rows": [ { "query": "ga4 mcp server", "position": 6.2, "impressions": 2140 }, … ],
  "rowCount": 14,
  "requestCount": 1,
  "notes": ["Positions are averages; they cannot be summed."]
}

I found 14 searches where you rank between positions 5 and 20 with real impressions. The three closest to page one:

SearchPositionImpressions
ga4 mcp server6.22,140
search console api limits8.91,380
google ads search terms report11.43,020

“ga4 mcp server” is the quickest win. The page already ranks, so a sharper title and two internal links should lift it onto page one.

Try:

Illustration with sample data. Claude and ChatGPT interfaces recreated to show the connector in use.

72 tools the assistant can call

run_ga4_preset compare_search_console_periods google_ads_keyword_planner get_merchant_product_status_summary search_meta_ad_library run_callrail_preset run_ga4_funnel_report normalize_marketing_records
run_google_ads_across_accounts inspect_search_console_url run_meta_insights run_ga4_multi_property_report search_merchant_reports list_marketing_guardrails get_callrail_call_timeseries search_google_ads_fields

01 Platforms

Six platforms. One protocol.

One connector puts six marketing APIs behind the same conversation. Pick a platform to see the tools the assistant gets, what the platform is good at, and the limits the server states out loud.

Google Analytics 4

17 tools · 24 presets

Standard, realtime, pivot, funnel and cohort reports, batches, and one report across up to 10 properties. The Admin API adds key events, custom definitions, data streams, audiences, product links and change history.

  • run_ga4_preset
  • run_ga4_report
  • run_ga4_realtime_report
  • run_ga4_pivot_report
  • run_ga4_funnel_report
  • run_ga4_cohort_report
  • batch_run_ga4_reports
  • run_ga4_multi_property_report
  • get_ga4_metadata
  • check_ga4_compatibility
  • list_ga4_key_events
  • list_ga4_custom_definitions
  • list_ga4_data_streams
  • get_ga4_admin_resource
  • run_ga4_access_report
  • run_ga4_audience_export
  • list_ga4_properties

Good at

Channels, landing pages, ecommerce and event-driven key events.

Says out loud

Thresholding and sampling can suppress small segments.

Google Search Console

8 tools · 14 presets

Queries, pages, countries, devices and search appearance; striking-distance opportunities; Discover and Google News; period-over-period deltas; sitemaps and URL Inspection, across up to 10 sites.

  • run_search_console_preset
  • query_search_console
  • query_search_console_advanced
  • compare_search_console_periods
  • inspect_search_console_url
  • list_search_console_sites
  • list_search_console_sitemaps
  • get_search_console_sitemap

Good at

Authoritative organic query and page performance.

Says out loud

25,000 rows per request, and anonymised queries sum below the site total.

Google Ads

10 tools · 34 presets

Campaigns down to search terms and assets, Shopping and Performance Max, impression share and Quality Score, Keyword Planner and Reach Planner, and one GAQL query across every client of a manager account.

  • run_google_ads_preset
  • query_google_ads
  • search_stream_google_ads
  • run_google_ads_across_accounts
  • google_ads_keyword_planner
  • google_ads_reach_planner
  • search_google_ads_fields
  • get_google_ads_field
  • list_google_ads_accessible_customers
  • list_google_ads_customer_clients

Good at

Paid performance, search terms and conversion reporting.

Says out loud

Auction Insights is not in the API. One call is one request, never a silent quota drain.

Google Merchant Center

14 tools · 13 presets

Product status and item issues, free listing and Shopping performance by product, brand, category and country, price competitiveness and insights, best sellers and competitive visibility.

  • run_merchant_preset
  • search_merchant_reports
  • get_merchant_product_status_summary
  • get_merchant_account_issues
  • list_merchant_products
  • get_merchant_product
  • get_merchant_resource
  • describe_merchant_report_fields
  • list_merchant_accounts
  • get_merchant_account
  • list_merchant_subaccounts
  • list_merchant_data_sources
  • get_merchant_developer_registration
  • register_merchant_developer

Good at

Feed health and product-level visibility, with or without Google Ads.

Says out loud

The Cloud project must be registered once per account; that is the only write tool.

Meta

10 tools · 22 presets

Meta Ads insights with age, gender, country, platform, device and placement breakdowns; Facebook Page and Instagram organic insights; creatives, pixels and audiences; and competitor ads from the Ad Library. Connected as an optional second sign-in.

  • run_meta_preset
  • run_meta_insights
  • describe_meta_insights_fields
  • get_meta_assets
  • search_meta_ad_library
  • query_meta_graph
  • list_meta_ad_accounts
  • list_meta_pages
  • list_meta_instagram_accounts
  • get_meta_token_info

Good at

Delivery, spend and organic reach across Facebook and Instagram.

Says out loud

Meta's attribution windows differ, so compare trends with GA4, not totals.

CallRail

9 tools · 18 presets

Calls by source, campaign, keyword, landing page and tracker; answered versus missed; first-time versus repeat callers; and daily trends, normalized so calls join Google Ads, GA4 and Search Console rows. CallRail uses an API key set on the server, so it suits self-hosted deployments.

  • run_callrail_preset
  • list_callrail_calls
  • get_callrail_call
  • get_callrail_call_summary
  • get_callrail_call_timeseries
  • list_callrail_trackers
  • list_callrail_accounts
  • list_callrail_companies
  • get_callrail_resource

Good at

Phone-call attribution that joins the rest of the funnel.

Says out loud

Presets aggregate one page of calls; check fetched against total.

Plus four cross-platform tools: list_marketing_presets get_marketing_schema list_marketing_guardrails normalize_marketing_records

02 How it connects

From one URL to your first answer.

You paste one address. The client registers itself, you sign in with Google, and the server hands back an encrypted token. No API keys to copy and no database behind it.

  1. STEP 01

    Paste one URL

    Add the MCP URL as a custom connector in Claude or ChatGPT, or with one command in Claude Code.

    connector url
    https://ga4mcpjs.vercel.app/mcp

    GET /mcp → 401 + resource metadata
  2. STEP 02

    The client registers itself

    Dynamic client registration (RFC 7591) at /register returns a client_id. Redirect URIs must match what was registered.

    POST /register
    { "client_id": "mcp_7f3c…",
      "token_endpoint_auth_method": "none" }
  3. STEP 03

    Sign in with Google

    Authorization code with PKCE (S256). The account chooser always appears, so you pick which Google account the assistant can read.

    choose an account
    you@company.com
    agency@partner.com
  4. STEP 04

    Add Meta, or skip

    An optional second step for Facebook and Instagram. Skipping still leaves a fully working Google connection; nobody is sent to Facebook without choosing to.

    Add Meta too?
    Connect MetaSkip

    both paths finish connected
  5. STEP 05

    A sealed token comes back

    The server mints its own encrypted MCP token with the Google refresh token sealed inside. A serverless cold start never signs you out.

    POST /oauth/token → access_token
    issuer · resource · scope · expiry · sealed
  6. STEP 06

    Ask in plain language

    The model picks a tool, the server calls the platform API, and you get rows, the request it made, notes and guardrails.

    tools/call run_ga4_preset
    { preset: "landing_pages" }

    ✓ 24 rows · normalized · notes

03 Ready-made answers

125 questions it already knows how to answer.

You don't need to know report names or metrics. Ask in your own words; behind each of these questions is a ready-made expert report the assistant can run. Pick a platform, or search, and click a question to copy it into Claude or ChatGPT.

125questions across six platforms

Google Analytics 4

Where visitors come from 6

Pages and content 3

Engagement and conversions 5

Online store 5

Who my visitors are 5

Google Search Console

Rankings 4

Who finds me, and how 5

Trends 3

Discover and News 2

Google Ads

Performance 7

Competition and quality 2

Shopping and Performance Max 4

Audience and targeting 7

Conversions and landing pages 3

Account setup 5

Video and calls 2

Audits 4

Google Merchant Center

Product performance 5

Feed health 1

Pricing 2

Market and competitors 5

Meta (Facebook and Instagram)

Facebook and Instagram ads 7

Who sees my ads 6

Facebook Page 4

Instagram 5

CallRail

Calls at a glance 3

What makes the phone ring 7

Who calls 4

Call quality 4

No question matches that. Try “revenue”, “mobile” or “calls”.

The numbersStraight from the platform, never estimated.
The report it ranSo anyone can check exactly what was asked.
Rows that line upGoogle Ads, Meta and GA4 side by side.
Honest notesWhat the data can and can't tell you.

04 Guardrails

It tells you what it can't do.

Every response carries platform guardrails, so the assistant states an API's limits instead of filling the gap with a confident guess.

You ask

Show me Auction Insights for my top campaign.

A guess

competitor-a.com · IS 41%
competitor-b.com · IS 33%
overlap rate · 27%

This server

Auction Insights isn't exposed by the Google Ads API, so no tool here can return it. Impression share is available instead, through the impression_share preset.

You ask

What was my keyword Quality Score last March?

A guess

Mar · QS 6
Apr · QS 7
May · QS 7

This server

Quality Score is a current attribute, not a history. The quality_score preset returns today's snapshot and says it ignored the date range.

You ask

Add up clicks from all my Search Console queries.

A guess

Σ query clicks = site total
48,210 clicks

This server

Search Console anonymises some queries, so query rows add up to less than the site total. Use the page or site total for that number.

You ask

Why don't Meta conversions match GA4?

A guess

tracking is broken
fix your pixel

This server

Meta attributes conversions on its own windows, so the counts won't tie out with GA4 or Google Ads. Compare trends, not totals.

You ask

Pull every call we got last year, grouped by source.

A guess

google / cpc · 1,204
direct · 880
(all calls counted)

This server

Presets aggregate one page of calls and report callsFetched against totalRecords. If they differ, it pages rather than pretending the total is complete.

05 One schema

Six schemas in. One table out.

Every platform names things differently. Presets emit rows in one normalized schema, so an answer can compare Google Ads spend, Meta spend, GA4 sessions and CallRail calls side by side. get_marketing_schema documents it, and normalize_marketing_records maps anything else into it.

metrics.cost_microsGoogle Ads
spendMeta
sessionSourceMediumGA4
sourceCallRail
keys[0]Search Console
offer_idMerchant Center
cost
source_medium
source
query
product_id
platformdatecampaign_namecostclicksconversions
google_ads2026-09-21Brand · Search412.801,09638
meta2026-09-21Retargeting · Reels265.1074221
ga42026-09-21Brand · Search——41
callrail2026-09-21Brand · Search——9

Rows are illustrative. Field names on the left are each platform's own.

06 Security

Stateless by design.

There is no database. Your connection lives inside an encrypted token that only this server can open, and every tool but one only reads.

  • OAuth with dynamic client registration and PKCE (S256); a redirect URI is accepted only if it was registered, or is a loopback address for native apps.
  • Read-only everywhere except register_merchant_developer, which registers the server's Cloud project on a Merchant Center account.
  • /mcp accepts only tokens this server issued, never raw Google tokens.
  • Meta requests are signed with appsecret_proof, Page tokens are never returned, and tokens are stripped from logs.
  • Quota-safe: one tool call is one API request, with no silent auto-pagination.
issuerhttps://ga4mcpjs.vercel.app
resourcehttps://ga4mcpjs.vercel.app/mcp
scopeanalytics.readonly · webmasters.readonly · …
expiryshort-lived · refreshable
google credentials████████████ sealed

An illustration of what the encrypted token carries.

07 Setup

Connect in under a minute.

  1. Add the server with this command. -s user makes it available in every project.

  2. Open /mcp in Claude Code and choose Authenticate next to ga4mcp.

  3. Sign in with Google, then connect Meta or skip it.

  4. Ask: “Which landing pages lost the most organic clicks this month?”

terminal
$ claude mcp add --transport http -s user ga4mcp https://ga4mcpjs.vercel.app/mcp
Added HTTP MCP server ga4mcp
> /mcp
ga4mcp · needs authentication → Authenticate
  1. Open Settings → Connectors and choose Add custom connector.

  2. Paste the MCP URL and give it a name such as “Marketing Data”.

  3. Connect: sign in with Google, then connect Meta or skip it.

  4. In a chat, enable the connector and ask your question.

connector url
Name          Marketing Data
Remote MCP URL  https://ga4mcpjs.vercel.app/mcp
Auth          OAuth · discovered automatically
  1. Add a custom connector in ChatGPT's connector settings.

  2. Paste the MCP URL. ChatGPT reads the OAuth settings from the server's discovery endpoints.

  3. Sign in with Google, then connect Meta or skip it.

  4. Use the connector in a chat and ask in plain language.

discovery
MCP URL     https://ga4mcpjs.vercel.app/mcp
metadata    /.well-known/oauth-protected-resource
auth server /.well-known/oauth-authorization-server
PKCE        S256 · grant authorization_code, refresh_token

08 Reference

Marketing Data MCP at a glance

Key facts

What
A remote MCP server for marketing analytics
Endpoint
https://ga4mcpjs.vercel.app/mcp
Status
Public beta
Clients
Claude Code, Claude Desktop, claude.ai, ChatGPT and other MCP clients
Platforms
GA4, Search Console, Google Ads, Merchant Center, Meta, CallRail
Tools
72, plus optional Tag Manager audit and BigQuery GA4-export tools on self-hosted deployments
Presets
125 expert reports
Auth
OAuth, dynamic client registration, PKCE (S256)
Storage
None: stateless encrypted tokens
Built by
Jayant Solanki

Tools per platform

PlatformToolsPresets
Google Analytics 41724
Google Merchant Center1413
Google Ads1034
Meta1022
CallRail918
Google Search Console814
Cross-platform4—
Total72125

Compared with other ways to get marketing answers

CapabilityMarketing Data MCPCSV exports and dashboardsSingle-platform MCP serversAsking an AI with no data
Answers questions in plain languageYesNoYesYes
Live data from six platforms in one chatYesWith manual joinsOne eachNo
Cross-platform rows in one schemaYesBy handVariesNo
States API limits instead of guessingBuilt-in guardrailsNot applicableVariesOften guesses
Ready-made expert reports125 presetsIf someone built themVariesNo
SetupOne URL and a Google sign-inExports or connectorsOne per platformNone

09 FAQ

Questions about Marketing Data MCP

What is Marketing Data MCP?

Marketing Data MCP is a remote MCP server built by Jayant Solanki. It lets ChatGPT, Claude and other MCP clients query Google Analytics 4, Google Search Console, Google Ads, Google Merchant Center, Meta and CallRail in plain language, through 72 tools and 125 expert presets.

What is an MCP server?

MCP, the Model Context Protocol, is an open standard for connecting AI assistants to tools and data. An MCP server publishes a list of tools; the assistant decides which tool to call, the server runs it against a real API and returns the result, and the assistant answers from that result.

Which AI clients work with it?

Claude Code, Claude Desktop, claude.ai and ChatGPT custom connectors, plus any MCP client that supports remote servers over HTTP with OAuth. Point the client at https://ga4mcpjs.vercel.app/mcp.

How do I connect it to Claude?

In Claude Code run: claude mcp add --transport http -s user ga4mcp https://ga4mcpjs.vercel.app/mcp, then open /mcp and choose Authenticate. In Claude Desktop or claude.ai go to Settings, Connectors, Add custom connector, and paste the same URL.

How do I connect it to ChatGPT?

Add https://ga4mcpjs.vercel.app/mcp as a custom connector in ChatGPT. ChatGPT discovers the server's OAuth settings automatically, registers itself and sends you to Google sign-in.

Does it change anything in my accounts?

Every tool reads data except one: register_merchant_developer, which registers the server's Google Cloud project on a Merchant Center account so the Merchant API can be used. Nothing is written to Analytics, Search Console, Google Ads, Meta or CallRail.

Is my data or login stored?

The server has no database. It issues its own encrypted MCP token with the Google refresh token sealed inside, so nothing about your connection is written to storage. Report results go back to your AI client and are not kept by the server.

What are presets?

Presets are ready-made expert reports: 34 for Google Ads, 24 for GA4, 22 for Meta, 18 for CallRail, 14 for Search Console and 13 for Merchant Center. Each returns the raw API output, the request it made, rows in a normalized cross-platform schema and the platform guardrails.

Why do Meta conversions not match GA4 or Google Ads?

Meta attributes conversions on its own attribution windows, so its counts will not tie out exactly with GA4 or Google Ads. The server says this in its guardrails and recommends comparing trends rather than absolute totals.

Can it query several properties or sites at once?

Yes. run_ga4_multi_property_report runs one report across up to 10 GA4 properties, query_search_console_advanced covers up to 10 Search Console sites, and run_google_ads_across_accounts runs one GAQL query across the clients of a manager account.

What does public beta mean here?

The server is live and in active development. Some platforms depend on outside approvals, such as Meta App Review and the Google Ads developer token's access level, so availability can vary by account and features may change.

Who built Marketing Data MCP?

It was designed and built by Jayant Solanki, an AI-ready SEO strategist and marketing technologist based in India.

Your data already has the answers. Let it talk.

Copy the URL, add it to Claude or ChatGPT, sign in once. Then ask the question you usually build a report for.

See setup steps
Jayant Solanki

Built by Jayant SolankiAI-ready SEO strategist and marketing technologist. This server grew out of the reports I kept rebuilding for clients across GA4, Search Console and Google Ads. See the portfolio or try TagSpy.

Last updated