← Back to AutoAdy

Web analytics MCP server

The part of web analytics that is worth having an assistant for: getting the tracking installed correctly, and finding out when it has quietly stopped working.

Last updated: September 24, 2026

AutoAdy measures a site first-party: a small script, events stored by AutoAdy rather than by an ad network, and conversion signals forwarded to Meta so optimisation has something honest to learn from.

Two jobs in that flow are genuinely better in a chat. Getting the tracking installed, because the assistant can read the actual HTML file in your repository and write the exact diff. And checking that it still works, because nothing about a broken pixel is visible until a month of reporting is wrong.

With the Organic add-on, the connector also reads what AutoAdy has already stored for a verified site: the Search Console queries and pages it captured, the crawl's page verdicts and score, which answer engines cite the site, and which AI assistants sent it visits. Every one of those is a stored read with its window stated, never a live call.

General traffic and revenue reporting (sessions, sources, funnels) is not exposed over the connector. Those surfaces live in the AutoAdy app, and this page does not pretend otherwise.

Tools

What your assistant can call

16 tools: 14 that read and change nothing, 2 that make a change, and 0 that stop live delivery and are annotated destructive so a well-behaved assistant asks first.

Installing the tracking (3)

Reads a connected GitHub repository and prepares a reviewable change. No tool here commits anything.

list_analytics_websites

read

The analytics websites this workspace can read.

get_website_installation

read

The GitHub connection and latest installation job status for one analytics website.

prepare_website_installation

write

Inspect a connected GitHub HTML file and prepare an analytics installation preview. An editor must review and apply it in AutoAdy; this tool never commits.

Conversion tracking health (3)

Whether the events you are optimising against are actually arriving, and arriving once.

audit_tracking

read

Audit the account's conversion tracking health (read-only): Meta Pixel presence + freshness (last fired), server-side/Conversions-API event detection (via pixel stats by source), and UTM hygiene on ad URLs. Returns a 0-100 score with prioritized findings. USE THIS as part of an account audit, or BEFORE trusting a performance drop — a tracking break looks exactly like a real drop. Pairs with the Audit and Diagnose skills.

list_pixels

read

List the Meta Pixels (datasets) on the ad account: id, name, and when each last fired (read-only). USE THIS to find the pixel_id for create_adset with OFFSITE_CONVERSIONS — e.g. building a website-conversion Leads campaign — so the user never has to dig it out of Events Manager. A pixel that has NEVER fired, or not fired recently, is a warning: Meta optimizes poorly against an event it hasn't seen — verify the installation (audit_tracking) before launching on it.

send_pixel_event

write

Send ONE server-side conversion event to a pixel via the Conversions API. USE THIS to (a) verify CAPI plumbing with a test_event_code (shows in Events Manager → Test Events, does NOT enter optimization/reporting), or (b) make an event EXIST on the pixel — Meta won't optimize cleanly toward an event it has never seen, so a brand-new "Lead"/custom event needs one real fire before launching an ad set on it. A provided email is SHA-256 hashed before sending, never sent raw. Real events (no test code) enter reporting — send them only for genuine conversions or a deliberate one-off unblock the user approved.

Organic: SEO, GEO and AI visibility (7)

Stored reads for a site registered and verified in AutoAdy's Organic section. Everything past the site list needs the Organic add-on, and nothing here changes the website.

list_organic_sites

read

List the websites this workspace has registered for Organic (SEO, GEO and AI visibility), with their verification state, crawl budget and when each was last crawled. Every other organic tool takes a site_id, so CALL THIS FIRST when the user asks about their website, their SEO, whether AI can read their site, or which pages need work.

get_organic_score

read

Get a registered site's 0 to 100 Organic score with the arithmetic behind it: a subscore per dimension (technical, indexation, content, structured data, crawler access, internal links, AI citation, rankings), the published weight of each, and the counted facts each came from. A dimension nothing has measured yet reports as not measured rather than zero, and the caveat sentence names which. USE THIS for 'how is my SEO', 'score my site', or 'what is my visibility like'.

get_page_verdicts

read

Get the pages of a registered site that the last crawl read, worst first, with every technical and GEO issue found on each and the evidence behind it: title and meta length, H1 count, canonical, structured data types, indexability and word count. USE THIS for 'which pages need work', 'what is wrong with my site', or a question about one URL.

get_organic_visibility

read

Get which answer engines (ChatGPT, Perplexity, Google AI Overviews, Claude, Gemini) cite a registered site for its tracked buyer questions, how often, and which competitors were cited instead. An engine that could not be asked reports as not asked with the reason, NEVER as not citing: do not describe an unasked engine as one that ignored the site. USE THIS for 'does ChatGPT recommend us', 'AI visibility', or 'who do assistants mention instead of us'.

get_organic_rankings

read

Get the tracked keyword positions for a registered site, with the movement against the last day the provider actually answered. A day the provider could not be reached is a gap, not a fall, and a keyword outside the tracked results says so rather than reporting a position it does not have. USE THIS for 'where do we rank', 'did we drop', or 'what moved this week'.

get_ai_traffic

read

Get which AI assistants (ChatGPT, Claude, Perplexity, Gemini, Copilot and others) sent visits to a registered site, the pages they linked to, and how those visits converted against search and direct. Visits with no referrer are reported as unattributed rather than folded into direct, because assistants strip referrers. USE THIS for 'is ChatGPT sending me traffic', 'AI traffic', or 'are people finding us through AI'.

generate_llms_txt

read

Generate an llms.txt index for a registered site from the pages the last crawl read, grouped into product, pricing, documentation, writing, company and legal. Only pages that answered with a 200 are linked, so the file can never point an assistant at a dead URL. Returns the file to save at the root of the domain. USE THIS for 'make me an llms.txt', 'help assistants understand my site', or 'GEO setup'.

Search Console (3)

The queries, pages and audits from the Search Console capture AutoAdy already stored, with the window they cover. Needs a Search Console property connected in the Organic section.

get_search_queries

read

Get the search queries a registered site actually gets impressions for, from its Search Console capture: clicks, impressions, click-through rate and average position per query, most impressions first, with the exact window the numbers cover. USE THIS for 'what do people search to find us', 'which keywords do we rank for', or before advising on content. Returns the captured snapshot, never a live call, so it costs nothing and reports its own age.

get_search_pages

read

Get the pages of a registered site that search actually sends people to, from its Search Console capture: clicks, impressions, click-through rate and average position per URL, most impressions first. USE THIS for 'which pages get traffic', 'what is working', or to find the pages worth improving first. Returns the captured snapshot, never a live call.

get_organic_audits

read

Get the four Search Console audits for a registered site: queries in striking distance of page one, the site's own pages competing for one query, pages losing clicks against the matched previous window, and the four indexation gaps. Each says whether it could run at all, so an audit with no data reports that rather than reporting nothing found. USE THIS for 'what should I fix first', 'why is traffic down', or 'what is the quickest SEO win'.

This table is generated from the server's own tool registry, so it is what your assistant sees. Check it yourself by pointing any MCP client at the endpoint and reading the tools list.

Connect

Two controls, then ask it something

Claude (claude.ai)

Signs in with OAuth

Opens Claude's add-custom-connector dialog with the name and URL already filled in. Claude still asks you to press Add, then signs you in to AutoAdy with OAuth.

Add AutoAdy to Claude (claude.ai)

If you would rather do it by hand: Settings, Connectors, Add custom connector, and paste this.

https://www.autoady.io/api/mcp

Claude Code

Needs an API key

Paste into your terminal, then run /mcp to confirm autoady is connected.

claude mcp add --transport http autoady https://www.autoady.io/api/mcp --header "Authorization: Bearer YOUR_KEY"

Replace YOUR_KEY with a key from Settings, API Keys. Keys are shown once and can be revoked at any time.

Everywhere else

Claude Desktop

Needs an API key

Open the downloaded file and Claude Desktop installs the extension, including the interactive views.

Download the extension

Or edit claude_desktop_config.json by hand and restart Claude Desktop.

{
  "mcpServers": {
    "autoady": {
      "type": "http",
      "url": "https://www.autoady.io/api/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_KEY"
      }
    }
  }
}

Replace YOUR_KEY with a key from Settings, API Keys. Keys are shown once and can be revoked at any time.

ChatGPT

Signs in with OAuth

Availability depends on your ChatGPT account and workspace policy. ChatGPT's custom MCP connections use OAuth and cannot present your manual API key. See Settings → Agents for current steps and the conditional OpenAI dot path.

Create a custom MCP connection in ChatGPT developer mode, paste this URL and sign in to AutoAdy through OAuth. Choose dynamic client registration (DCR) if prompted.

https://www.autoady.io/api/mcp

Grok

Signs in with OAuth

Grok web, Grok Build and Grok Bot have different setup flows. These artifacts cover web and Build. Settings → Agents documents the conditional Grok Bot path with official sources; live client sign-in has not been tested here.

On grok.com/connectors, choose New Connector → Custom, paste this URL and complete AutoAdy account sign-in.

https://www.autoady.io/api/mcp

For Grok Build: add the remote server, authenticate when prompted and check grok mcp doctor autoady.

grok mcp add --transport http autoady https://www.autoady.io/api/mcp

Muse Code

Signs in with OAuth

This configuration is for Meta's Muse Code. It does not establish custom connector support in the personal Muse app. Settings → Agents explains the distinction and links Meta's exact configuration and OAuth documentation.

Add this hosted endpoint to your Muse Code user settings, then run muse mcp login autoady.

https://www.autoady.io/api/mcp

Merge into ~/.config/muse/settings.json, preserving your settings. Keep one root MCP spelling and start a new Muse Code process after editing.

{
  "schema_version": 1,
  "mcpServers": {
    "autoady": {
      "type": "streamable-http",
      "url": "https://www.autoady.io/api/mcp"
    }
  }
}

Cursor

Needs an API key

Paste into Cursor's MCP settings, then reload the window.

{
  "mcpServers": {
    "autoady": {
      "type": "http",
      "url": "https://www.autoady.io/api/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_KEY"
      }
    }
  }
}

Replace YOUR_KEY with a key from Settings, API Keys. Keys are shown once and can be revoked at any time.

VS Code

Needs an API key

Paste into your MCP servers settings and reload the window.

{
  "servers": {
    "autoady": {
      "type": "http",
      "url": "https://www.autoady.io/api/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_KEY"
      }
    }
  }
}

Replace YOUR_KEY with a key from Settings, API Keys. Keys are shown once and can be revoked at any time.

Step by step

How to connect Claude to AutoAdy web analytics

  1. 1

    Add a website in AutoAdy

    Open autoady.io, add the site you want to measure, and connect the GitHub repository that serves it if you want the assisted install path.

  2. 2

    Add the connector

    On claude.ai, Settings, Connectors, Add custom connector, and paste https://www.autoady.io/api/mcp. Approve access with OAuth. In Claude Code, add the same URL with an API key header.

  3. 3

    Ask it to prepare the install

    Say "prepare the analytics install for my site". The tool inspects the HTML file in the connected repository and produces a preview. It never commits: an editor reviews and applies it in AutoAdy.

  4. 4

    Ask it to check the tracking

    Say "audit my conversion tracking". You get pixel presence and freshness, server-side event coverage, and the duplicate or stale signals that quietly corrupt reporting.

What it costs

Reading is free. Changing your account is not.

  • Read tools change nothing and work on the free plan, with these exceptions: diagnose_drop needs a Solo, Growth or Agency plan; run_gaql and run_graph_read are not available on the free plan; and a free key can call analyze_winning_ad 25 times a day, because it reaches a language model. Every other read is unmetered.
  • A free key is read-only: every write tool needs a paid plan (Solo, Growth or Agency), including tools that only change AutoAdy such as switch_account and prepare_website_installation. On a free key they refuse with a message naming the upgrade.
  • Clients with MCP account sign-in can use OAuth without creating a key. Other clients send an AutoAdy key in an Authorization header. Follow the client-specific steps in Settings → Agents.
  • New AutoAdy accounts start a seven-day trial with 50 credits for a $1 setup fee. A card is required for the trial, and cancelling before it ends means the subscription never starts. See pricing.
  • Advertising spend is paid to the ad platform directly and is separate.

The alternatives

What else you could use

AlternativeWhat it isWhere it beats AutoAdyWhere AutoAdy is the better choice
Google Analytics 4The default web analytics install, free, with its own reporting UI and API.Far broader reporting, an enormous ecosystem, and it is already installed on most sites. If you want funnels, cohorts and audience exploration, that is GA4's job and not this connector's.First-party storage, a conversion-tracking audit written for advertisers rather than analysts, and an assisted install that reads your actual repository instead of telling you to paste a snippet.
Meta's Events Manager and the Conversions API directlyMeta's own tooling for pixel health and server-side events.It is the source of truth for what Meta received, including deduplication keys and event match quality that no third party can see as clearly.Events Manager tells you what arrived. It does not tell you that the tag fell off a template three weeks ago, and it is not reachable from the chat.
Pasting the tracking snippet by handCopy the script, open the site's template, paste it before the closing head tag.Nothing to connect, and for a one-page site it takes a minute. No repository access is granted to anyone.It reliably goes wrong on sites with several templates, on staging that never matches production, and after any theme update. The prepared install shows you the exact file and the exact diff before an editor applies it.

We sell one of the options in that table, so the column that cost us something to write is the third one. If a row is wrong or out of date, tell us and we will correct it.

Where AutoAdy falls short here

Limits worth knowing before you connect anything.

  • −No general traffic reporting over MCP. Sessions, sources and funnels are app surfaces; the assistant reads only the Organic figures described above.
  • −The Organic tools answer from what the crawl, the Search Console capture and the citation checks stored. They never fetch live, so a site that has not been crawled or captured yet reports that instead of numbers.
  • −The Organic tools need no Meta ad account, over MCP or in the app: they read only what AutoAdy stored for the verified site.
  • −AI traffic over MCP comes from AutoAdy's own collector. The GA4 and PostHog cross-checks for it are shown in the app, not through these tools.
  • −The assisted install needs a connected GitHub repository. Sites on a hosted page builder have to paste the snippet themselves.
  • −The install tool prepares a change and stops. It cannot commit, open a pull request, or deploy.
  • −Conversion tracking auditing is Meta-first. GA4 and Google Ads conversion coverage is read in the app, not through these tools.

FAQ

Common questions

Can the assistant read my website traffic?

Not general traffic. Session, source and funnel reporting is in the AutoAdy app only. With the Organic add-on it can read two narrow slices: the Search Console queries and pages AutoAdy captured, and which AI assistants sent visits, from AutoAdy's own collector. If a page tells you an MCP connector can answer any analytics question, check which tools it actually serves.

What does prepare_website_installation actually do?

It reads a specific HTML file from the GitHub repository you connected, works out where the tracking script belongs, and returns a preview of the change. Applying it is a separate action taken by an editor inside AutoAdy, so a misread never lands in your repository.

Do I need a Meta ad account for this?

Not for the installation tools. Website setup is workspace-scoped and works before any ad account is connected, and the connector handles those tools before it tries to resolve a Meta account, so an analytics-only workspace is a supported case. The Organic tools need no Meta ad account either, over MCP or in the app.

Is send_pixel_event safe to call?

It sends one server-side conversion event to a pixel through the Conversions API, which is how you verify the plumbing works end to end. It changes no campaign and pauses nothing, but it does write a real event, so use a test event rather than inventing a purchase.

Try it on your own account

Connect the account, ask your assistant what is wrong with it, and read the evidence behind the answer before anything changes.