MetricPort

io.metricportPublished by metricport.ioOfficial publisherv0.1.1Updated Nov 2, 2026

Google Search Console, Ads and AdSense analytics for AI clients. Hosted, read-only, 57 tools.

Overview

AI-generated overview

Hosted, read-only MCP server that lets an assistant analyze Google Search Console, Google Ads and AdSense data through 57 reporting tools.

What you can do
  • Query Search Console performance: clicks, impressions, CTR and position by query, page, device, country and search appearance, plus quick wins, CTR gaps, content decay, cannibalization and URL index checks
  • Review Google Ads: campaigns, search terms, keywords, quality score, impression share, budget pacing, ads, geo, device, dayparting, landing pages, recommendations and change history
  • Review AdSense: earnings, custom reports, top pages, countries, ad units, platform split, sites, alerts and payments
  • Combine sources: paid versus organic search terms, page-level clicks joined with AdSense earnings, and landing page spend joined with organic clicks
  • List connected Google accounts with their…
When to use it
Useful when you want an assistant to answer SEO, paid search or publisher-monetization questions from your own Google data without building a Google Cloud project, OAuth client or developer token. Suited to recurring reporting, audits and cross-channel comparisons between organic and paid performance.
Requirements
A MetricPort account with a connected Google account; Search Console is on the free plan, Ads and AdSense require Pro. Either a MetricPort API key in METRICPORT_API_KEY or a one-time browser sign-in. Runs as a remote endpoint or locally via npx metricport-mcp (Node.js). OAuth is required; network access to metricport.io.
Before you install
The server holds your Google OAuth connection and refresh tokens on its hosted infrastructure, so you are trusting a third party with access to your Search Console, Ads and AdSense accounts. An API key (METRICPORT_API_KEY) is a credential and should be kept out of shared configs. Usage is metered by plan (500 tool calls per month on Free), and Ads or AdSense data needs a paid plan. Tools are described as read-only, but verify that before relying on it.

Installation

In SourceWeft

  1. Open MetricPort in the dashboard and add it to a workspace.
  2. Connect the required credentials. They are stored privately and never shown on public pages.
  3. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.metricport%2Fmetricport/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config. The client completes OAuth sign-in on first connect.

{
  "mcpServers": {
    "metricport": {
      "type": "http",
      "url": "https://metricport.io/api/mcp"
    }
  }
}

README

metricport-mcp

MCP server for Google Search Console, Google Ads and AdSense, usable from Claude, Cursor, Windsurf, VS Code, ChatGPT and any other MCP client.

This package is a thin local client. The server itself runs hosted at metricport.io: it holds the Google OAuth connection, talks to the three Google APIs, and exposes 57 read-only analysis tools plus daily insights, alerts and reports. You never create a Google Cloud project, OAuth client or developer token yourself.

bash
npx metricport-mcp

Quick start

  1. Create a free account at metricport.io and connect a Google account (Search Console on Free, Ads and AdSense on Pro).
  2. Add the server to your client. Either sign in once in the browser, or create an API key at https://metricport.io/app/keys.

Claude Desktop (claude_desktop_config.json):

json
{  "mcpServers": {    "metricport": {      "command": "npx",      "args": ["-y", "metricport-mcp"],      "env": { "METRICPORT_API_KEY": "mp_..." }    }  }}

Cursor (.cursor/mcp.json), Windsurf, VS Code (.vscode/mcp.json): same shape.

claude.ai, ChatGPT and other clients that support remote servers need no package at all. Add a custom connector with the URL https://metricport.io/api/mcp and sign in.

What you can ask

  • "Which pages lost the most clicks this week, and what do they have in common?"
  • "Show me striking-distance queries on positions 5 to 20 with real impressions."
  • "Which search terms in my Google Ads account spend money without converting?"
  • "Why did my AdSense earnings drop compared to last month?"
  • "Where do I pay for keywords I already rank for organically?"

Tools

ToolWhat it does
gsc_search_analyticsSearch performance (clicks, impressions, CTR, position) grouped by dimensions with optional filters
gsc_top_queriesTop search queries by clicks over the last N days (default 28)
gsc_top_pagesTop pages by clicks over the last N days (default 28)
gsc_page_queriesAll queries a single URL ranks for, with clicks, impressions, CTR and position
gsc_quick_winsQueries ranking in striking distance (default positions 5-20) with real impressions, ranked by estimated extra clicks if pushed up ~3 positions
gsc_ctr_opportunitiesQueries on page one whose CTR is far below the expected CTR for their position
gsc_content_decayPages that lost the most clicks versus the previous period (or the same period last year with compareTo=year)
gsc_new_and_lost_queriesQueries that appeared this period but not in the previous one, and queries that disappeared
gsc_cannibalizationQueries where two or more of your pages compete for the same keyword
gsc_brand_splitSplits queries into brand and non-brand using a regex (e.g
gsc_query_clustersGroups queries by shared terms into topic clusters with total clicks, impressions and example queries
gsc_question_queriesQueries phrased as questions (how, what, why, wie, was, warum…) sorted by impressions
gsc_zero_click_pagesPages that get impressions but no clicks
gsc_daily_trendDaily clicks and impressions with a 7-day moving average, flagged drops or spikes (≥30% vs
gsc_device_country_breakdownClicks, impressions, CTR and position per device and per country, with the CTR gap between mobile and desktop
gsc_search_appearancePerformance by search appearance (rich results, video, AMP…) plus Discover and Google News traffic for the same period
gsc_inspect_urlGoogle index status for one URL: verdict, coverage state, last crawl, canonical, mobile usability, rich results
gsc_index_checkInspects up to 10 URLs and returns a compact table: indexed or not, coverage state, last crawl, Google-selected canonical vs
gsc_sitemapsSubmitted sitemaps with status, errors, warnings and URL counts
gsc_weekly_reportOne call for a client-ready weekly summary: totals vs
ads_list_accountsConnected Google Ads customer accounts including manager (MCC) accounts and their direct child accounts
ads_queryRun a Google Ads Query Language (GAQL) SELECT against a customer account
ads_campaign_performanceCampaigns with cost, clicks, impressions, CTR, conversions, cost per conversion, ROAS and status for a date range (default last 30 days)
ads_search_termsActual search terms that triggered ads, with cost, clicks, impressions and conversions
ads_wasted_spendSearch terms that cost money or clicks but never converted in the period (default 30 days), aggregated across campaigns, with negative keyword suggestions (phrase for recurring words, exact for one-offs)
ads_keyword_performanceKeywords with match type, status, quality score, cost, clicks, conversions, CPA and impression share
ads_quality_score_auditImpression-weighted quality score, distribution 1-10, and the keywords at or below a threshold with their weakest component (expected CTR, ad relevance, landing page experience) and the money spent on them
ads_impression_shareSearch impression share per campaign with the share lost to budget and lost to rank, plus top-of-page and absolute-top rates
ads_budget_pacingMonth-to-date spend per campaign versus the expected spend from its daily budget, with month-end projection
ads_ad_performanceResponsive search ads with ad strength, final URL, headlines count, CTR, cost, conversions
ads_geo_performanceCost, clicks, conversions and CPA by country (or by region/city with level)
ads_device_performanceCost, clicks, CTR, conversions and CPA per device (mobile, desktop, tablet) for the account or one campaign
ads_daypartingCost, clicks, conversions and CPA by hour of day and by day of week
ads_landing_pagesLanding pages with cost, clicks, conversions, CPA and mobile-friendly click rate
ads_recommendationsGoogle's own optimization recommendations for the account (keywords, budgets, ad suggestions, bidding), with the estimated impact where available
ads_change_historyWho changed what in the account in the last N days (max 30): resource type, operation, user, timestamp
ads_conversion_actionsConfigured conversion actions with status, category, counting type, attribution model and the conversions each produced in the period
ads_pmax_asset_groupsAsset groups of Performance Max campaigns with ad strength, cost, conversions and value
ads_daily_trendDaily cost, clicks, conversions and CPA for the account with flagged spend spikes or drops (≥30% vs
ads_metadataDescribes selectable fields of a Google Ads resource (e.g
ads_account_auditOne call that runs the key checks: campaign totals vs
adsense_earningsEarnings summary: totals for the range (default last 30 days) plus a daily breakdown
adsense_reportCustom report with chosen dimensions and metrics for a date range (default last 30 days)
adsense_top_pagesPages by estimated earnings with page views and RPM
adsense_by_countryEarnings, page views, RPM and CTR per country
adsense_ad_unit_performanceAd units with earnings, impressions, RPM, CTR and viewability
adsense_platform_splitEarnings, page views, RPM and CTR by platform (desktop, high-end mobile, tablet)
adsense_daily_trendDaily earnings, page views and RPM with flagged drops or spikes (≥30% vs
adsense_sitesSites in the AdSense account with approval state
adsense_alertsPolicy and account alerts for the AdSense account
adsense_paymentsUnpaid balance and payment history for the AdSense account
adsense_ad_unitsAd units per ad client in the AdSense account
adsense_monthly_reportOne call: calendar month to date vs
paid_vs_organicMatches Google Ads search terms against Search Console queries for the same period
content_monetizationJoins Search Console clicks per page with AdSense earnings per page URL
landing_page_overviewJoins Google Ads landing page spend and conversions with Search Console clicks for the same URLs
list_propertiesLists every connected Google account with its Search Console sites, Google Ads customer accounts and AdSense accounts

All tools are read-only. MetricPort never changes anything in your Google accounts.

Options

npx metricport-mcp                      sign in with your MetricPort accountnpx metricport-mcp --key mp_xxx         use an API keyMETRICPORT_API_KEY=mp_xxx npx metricport-mcpMETRICPORT_URL=...                      override the server URL (self-hosted or staging)

Pricing and data

Free plan: 1 Google account, Search Console, 500 tool calls per month. Pro and Agency add Google Ads, AdSense, more accounts, daily insights, alerts and shareable reports. See https://metricport.io/pricing.

Hosted in Frankfurt (EU). Refresh tokens are encrypted at rest, raw API responses are cached in memory for five minutes and never written to disk. Privacy policy: https://metricport.io/privacy.

License

MIT for this client package. The hosted service is governed by the terms.

Source: README.md at commit 4d7f27b

Tools

0
This server asks you to sign in, so SourceWeft could not read its tools without an account and has not indexed them. What a connected account sees can depend on that account and its permissions.

Version history

1
  1. v0.1.1LatestOct 18, 2026

Score

85% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts