Documentation

MetricPort is a remote MCP server. Your endpoint is the same for every client:

MCP endpoint
https://metricport.io/api/mcp
  1. Sign up and connect a Google account under Connections.
  2. Pick your client below. OAuth clients only need the URL; everything else uses an API key from API keys.
  3. Ask your assistant to call list_properties. It returns the ids every other tool expects.

claude.ai

Settings → Connectors → Add custom connector. Paste the endpoint URL, leave client id and secret empty, then click Connect and approve with your MetricPort login. Works on web, desktop and mobile.

Connector URL
https://metricport.io/api/mcp

Claude Desktop

Use the connector flow above (Settings → Connectors) for OAuth. If you prefer a config file, add the server with an API key through mcp-remote:

claude_desktop_config.json
{
  "mcpServers": {
    "metricport": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://metricport.io/api/mcp", "--header", "Authorization: Bearer mp_your_api_key"]
    }
  }
}

Claude Code

API key
claude mcp add --transport http metricport https://metricport.io/api/mcp --header "Authorization: Bearer mp_your_api_key"
OAuth (opens the browser on first use)
claude mcp add --transport http metricport https://metricport.io/api/mcp

Cursor, Windsurf and others

Add to .cursor/mcp.json or the equivalent config:

.cursor/mcp.json
{
  "mcpServers": {
    "metricport": {
      "url": "https://metricport.io/api/mcp",
      "headers": { "Authorization": "Bearer mp_your_api_key" }
    }
  }
}

ChatGPT

Settings → Connectors → Create (developer mode). Enter the endpoint URL and choose OAuth. ChatGPT registers itself and sends you through the MetricPort login.

Authentication

  • OAuth 2.1: the endpoint publishes /.well-known/oauth-protected-resource. Clients discover the authorization server, register dynamically and send you to the MetricPort login. Tokens are scoped to your workspace.
  • API key: send Authorization: Bearer mp_…. Keys never expire until revoked. Use one key per client so you can revoke individually.
Raw request
curl -X POST https://metricport.io/api/mcp \
  -H "Authorization: Bearer mp_your_api_key" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"list_properties","arguments":{}}}'

Tool reference

All tools are read-only. Dates are YYYY-MM-DD. Search Console data lags two to three days, so defaults end three days ago. Responses are cached for five minutes.

Core

ToolArgumentsExample prompt
list_properties

Every connected Google account with its Search Console sites, Ads accounts and AdSense accounts.

noneWhich properties do I have connected?

Google Search Console

ToolArgumentsExample prompt
gsc_search_analytics

Clicks, impressions, CTR and position by query, page, country, device, date or search appearance. Filters, search type and period comparison.

property, startDate, endDate, dimensions, filters, rowLimit, type, compareCompare clicks by country in September vs. August.
gsc_top_queries

Top queries by clicks, optionally for one page.

property, days, limit, pageTop 20 queries for /pricing in the last 90 days.
gsc_top_pages

Top pages by clicks, optionally for one query term.

property, days, limit, queryWhich pages rank for 'mcp server'?
gsc_page_queries

Every query one URL ranks for, with position.

property, url, days, limitWhat does /blog/gsc-guide rank for?
gsc_quick_wins

Striking-distance queries (positions 5-20) ranked by potential extra clicks, with the ranking page.

property, days, minPosition, maxPosition, minImpressions, limitWhich keywords are closest to page one?
gsc_ctr_opportunities

Page-one queries whose CTR is far below the expected curve: title and snippet problems with missed clicks.

property, days, minImpressions, maxPosition, limitWhere am I losing clicks to bad titles?
gsc_content_decay

Pages that lost the most clicks vs. the previous period or last year, plus the winners.

property, days, compareTo, minPreviousClicks, limitWhich articles are decaying and need a refresh?
gsc_new_and_lost_queries

Queries that appeared or disappeared between two periods.

property, days, minImpressions, limitWhat new keywords did we pick up this month?
gsc_cannibalization

Queries where several of your pages compete, with leader share and competitors.

property, days, minImpressions, limitDo I have keyword cannibalization?
gsc_brand_split

Brand vs. non-brand totals, click share, trend and top non-brand queries via regex.

property, brandPattern, days, compareHow is non-brand traffic developing?
gsc_query_clusters

Groups queries into topic clusters with totals and examples.

property, days, minQueries, limitWhich topics drive my organic traffic?
gsc_question_queries

Question-shaped queries (how, what, why, wie, was…) for FAQs and snippets.

property, days, limitWhich questions do people search that lead to my site?
gsc_zero_click_pages

Pages with impressions but no clicks.

property, days, minImpressions, limitWhich pages show up but never get clicked?
gsc_daily_trend

Daily clicks and impressions with 7-day average and flagged drops or spikes.

property, days, thresholdPct, query, pageDid traffic drop after the last core update?
gsc_device_country_breakdown

Performance per device and country with the mobile vs. desktop CTR gap.

property, days, countriesWhich countries underperform on CTR?
gsc_search_appearance

Search appearance types plus Discover and Google News traffic.

property, daysHow much traffic comes from Discover?
gsc_inspect_url

Index status, crawl date, canonical and rich result status for one URL.

property, urlIs /blog/new-post indexed?
gsc_index_check

Batch inspection of up to 10 URLs with canonical mismatch and blocker flags.

property, urlsCheck if these 8 URLs are indexed.
gsc_sitemaps

Submitted sitemaps with errors, warnings and URL counts.

propertyDo any sitemaps have errors?
gsc_weekly_report

One-call weekly summary: totals, winners, losers, new queries, quick wins, anomalies.

property, endDate, brandPatternGive me this week's SEO report.

Google Ads

ToolArgumentsExample prompt
ads_list_accounts

Customer accounts including MCC managers and child accounts.

noneList my Google Ads accounts.
ads_query

Run any GAQL SELECT.

property, querySELECT ad_group.name, metrics.clicks FROM ad_group WHERE segments.date DURING LAST_7_DAYS
ads_campaign_performance

Campaigns with cost, clicks, CTR, conversions, CPA, ROAS and impression share.

property, startDate, endDate, statusHow did campaigns perform last month?
ads_search_terms

Search terms that triggered ads, with match type, cost and conversions.

property, startDate, endDate, limit, campaignShow the most expensive search terms.
ads_wasted_spend

Non-converting search terms aggregated across campaigns with negative keyword suggestions.

property, startDate, endDate, minCost, minClicks, limit, campaignWhere am I wasting budget?
ads_keyword_performance

Keywords with quality score, cost, conversions, CPA and impression share.

property, startDate, endDate, limit, campaignWhich keywords have the worst CPA?
ads_quality_score_audit

Weighted quality score, distribution and low-QS keywords with their weakest component.

property, startDate, endDate, maxScore, limitAudit my quality scores.
ads_impression_share

Impression share per search campaign with share lost to budget and to rank.

property, startDate, endDateWhere would more budget unlock volume?
ads_budget_pacing

Month-to-date spend vs. expected with month-end projection per campaign.

property, monthlyBudgetAre we on track with this month's budget?
ads_ad_performance

Responsive search ads with ad strength, headlines, CTR, cost and conversions.

property, startDate, endDate, limit, campaignWhich ads should I rewrite?
ads_geo_performance

Cost, conversions and CPA by country, region or city.

property, startDate, endDate, level, limitWhich regions convert worst?
ads_device_performance

Cost, CTR, conversion rate and CPA per device.

property, startDate, endDate, campaignMobile vs. desktop CPA?
ads_dayparting

Performance by hour of day and weekday for ad schedules.

property, startDate, endDate, campaignWhen do conversions happen?
ads_landing_pages

Landing pages with cost, conversions, CPA, mobile-friendly rate and speed score.

property, startDate, endDate, limitWhich landing pages burn money?
ads_recommendations

Google's open optimization recommendations with impact estimates.

propertyWhat does Google recommend for this account?
ads_change_history

Who changed what in the last N days.

property, days, limitWhat changed last week that could explain the drop?
ads_conversion_actions

Conversion actions with status, counting, attribution and conversions produced.

property, startDate, endDateIs conversion tracking set up correctly?
ads_pmax_asset_groups

Performance Max asset groups with ad strength, cost and ROAS.

property, startDate, endDateHow are my PMax asset groups doing?
ads_daily_trend

Daily cost, clicks, conversions, CPA with flagged spend or conversion anomalies.

property, days, thresholdPct, campaignDid spend spike last week?
ads_metadata

Selectable fields of a resource, to build GAQL queries.

property, resourceWhat fields does keyword_view have?
ads_account_audit

One-call audit: totals vs. previous period, wasted spend, impression share, quality score, pacing, recommendations, prioritized findings.

property, daysAudit this account.

Google AdSense

ToolArgumentsExample prompt
adsense_earnings

Earnings totals and daily breakdown, optional previous period with change.

property, startDate, endDate, compareAdSense earnings this month vs. last month.
adsense_report

Custom report by any dimension and metric with filters.

property, dimensions, metrics, startDate, endDate, limit, orderBy, filtersEarnings per domain in the last 30 days.
adsense_top_pages

Pages by earnings with RPM, plus high-traffic pages with weak RPM.

property, startDate, endDate, limit, domainWhich pages earn the most? Which underperform?
adsense_by_country

Earnings, page views, RPM and CPC per country.

property, startDate, endDate, limitWhich countries have the best RPM?
adsense_ad_unit_performance

Ad units with earnings, RPM, CTR, viewability and coverage.

property, startDate, endDate, limitWhich ad units should I remove?
adsense_platform_split

Desktop vs. mobile vs. tablet earnings and RPM.

property, startDate, endDateIs mobile monetizing worse than desktop?
adsense_daily_trend

Daily earnings and page views with flagged anomalies.

property, days, thresholdPctDid earnings drop suddenly?
adsense_sites

Sites with approval state.

propertyWhich sites are approved?
adsense_alerts

Policy and account alerts.

propertyAny policy warnings?
adsense_payments

Unpaid balance and payment history.

propertyWhen was my last payout?
adsense_ad_units

Ad units per ad client.

propertyList my ad units.
adsense_monthly_report

One-call monthly review: month over month, best day, top pages, countries, platforms, alerts, anomalies.

property, endDateGive me the AdSense monthly review.

Cross-source

ToolArgumentsExample prompt
paid_vs_organic

Paid search terms vs. organic queries: cannibalized spend, content gaps and pages to push.

gsc_property, ads_property, days, organicPositionThreshold, limitWhere am I paying for clicks I would get for free?
content_monetization

Organic clicks per page joined with AdSense earnings per page: earnings per click, weak monetizers, pages to push.

gsc_property, adsense_property, days, limitWhich organic pages earn the most per click?
landing_page_overview

Ads landing page cost and conversions joined with organic clicks for the same URLs.

gsc_property, ads_property, days, limitWhich paid landing pages already rank organically?

Prompts

Ready-made workflows exposed as MCP prompts. In Claude Desktop pick them from the prompt menu (the + button), in Claude Code type / and the prompt name.

weekly_seo_reportClient-ready weekly Search Console summary.
seo_quick_winsPrioritized to-do list from quick wins, CTR gaps and decay.
cannibalization_checkConsolidate or differentiate competing pages.
ads_account_auditFull read-only Google Ads audit.
negative_keywordsNegative keyword list from wasted spend.
adsense_monthly_reviewMonth-over-month AdSense review with actions.
paid_organic_overlapCut cannibalized spend, find content gaps.

Limits

  • 60 tool calls per minute per workspace.
  • Monthly call quota and Google account count depend on your plan. Exceeding a limit returns a tool error with an upgrade link, never a silent failure.
  • GAQL queries are SELECT only and capped at 1,000 returned rows.
  • Google’s own quotas apply (Search Console: 1,200 queries per minute per site).