Agency Analytics MCP
Vendor MCP35 toolsOAuth 2.1/DCRAnalyticsMarketingMonitoringAgency Analytics is a marketing reporting platform that enables digital agencies to monitor SEO, PPC, social media, and other channel performance in...
Agency Analytics MCP connector
-
Install the SDK
Section titled “Install the SDK”Terminal window npm install @scalekit-sdk/nodeTerminal window pip install scalekit -
Set your credentials
Section titled “Set your credentials”Add your Scalekit credentials to your
.envfile. Find values in app.scalekit.com > Developers > API Credentials..env SCALEKIT_ENVIRONMENT_URL=<your-environment-url>SCALEKIT_CLIENT_ID=<your-client-id>SCALEKIT_CLIENT_SECRET=<your-client-secret> -
Authorize and make your first call
Section titled “Authorize and make your first call”quickstart.ts import { ScalekitClient } from '@scalekit-sdk/node'import 'dotenv/config'const scalekit = new ScalekitClient(process.env.SCALEKIT_ENV_URL,process.env.SCALEKIT_CLIENT_ID,process.env.SCALEKIT_CLIENT_SECRET,)const actions = scalekit.actionsconst connector = 'agencyanalyticsmcp'const identifier = 'user_123'// Generate an authorization link for the userconst { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })console.log('Authorize Agency Analytics MCP:', link)process.stdout.write('Press Enter after authorizing...')await new Promise(r => process.stdin.once('data', r))// Make your first callconst result = await actions.executeTool({connector,identifier,toolName: 'agencyanalyticsmcp_read_client_ad_manager',toolInput: {},})console.log(result)quickstart.py import osfrom scalekit.client import ScalekitClientfrom dotenv import load_dotenvload_dotenv()scalekit_client = ScalekitClient(env_url=os.getenv("SCALEKIT_ENV_URL"),client_id=os.getenv("SCALEKIT_CLIENT_ID"),client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),)actions = scalekit_client.actionsconnection_name = "agencyanalyticsmcp"identifier = "user_123"# Generate an authorization link for the userlink_response = actions.get_authorization_link(connection_name=connection_name,identifier=identifier,)print("Authorize Agency Analytics MCP:", link_response.link)input("Press Enter after authorizing...")# Make your first callresult = actions.execute_tool(tool_input={},tool_name="agencyanalyticsmcp_read_client_ad_manager",connection_name=connection_name,identifier=identifier,)print(result)
What you can do
Section titled “What you can do”Connect this agent connector to let your agent:
- Read client site audit, client reputation, client forms — Fetch a client’s technical site-audit data for a specific connected provider
- Search web, users, clients — Search the live web and return a compact keyword-research result set: organic results (position, title, link, domain, snippet), related searches, People Also Ask questions, and the answer box when present
- Fetch web — Fetch a single public web page or document by URL and return its readable text
- Create mcp feedback — Record user feedback explicitly directed at the AgencyAnalytics MCP server experience — its tools, ergonomics, or quality of results
- Clients browse — Browse or enumerate clients
- Reports browse client — List all reports for a client/campaign
Tool list
Section titled “Tool list”Use the exact tool names from the Tool list below when you call execute_tool. If you’re not sure which name to use, list the tools available for the current user first.
agencyanalyticsmcp_browse_client_custom_metrics#List the custom metrics available for a single client — both campaign-level and account-level — so you can discover which formula-driven KPIs exist (e.g. 'Cost per Lead', 'ROAS'). Returns one row per custom metric with its id, name, data_type, change_format, scope, formula, and description. Use the returned ids with read_client_custom_metrics to fetch computed values.1 param
List the custom metrics available for a single client — both campaign-level and account-level — so you can discover which formula-driven KPIs exist (e.g. 'Cost per Lead', 'ROAS'). Returns one row per custom metric with its id, name, data_type, change_format, scope, formula, and description. Use the returned ids with read_client_custom_metrics to fetch computed values.
clientIdintegeroptionalThe client (campaign) ID.agencyanalyticsmcp_browse_client_dashboards#List all dashboards for a client/campaign. Returns paginated dashboards (10 per page). If the user does not see what they are looking for, increment page and call again. Requires client_id on every call.2 params
List all dashboards for a client/campaign. Returns paginated dashboards (10 per page). If the user does not see what they are looking for, increment page and call again. Requires client_id on every call.
client_idintegeroptionalThe client (campaign) ID. Required on every call.pageintegeroptionalPage number for pagination (default 1).agencyanalyticsmcp_browse_client_data_sources#Discover connected providers and available metric data sources for a campaign. Pass message (the user's question) to filter returned data sources to only those relevant to the question. Returns providers (connected slugs) and data_sources (AAQL data source definitions with available fields and pre-hydrated filters).2 params
Discover connected providers and available metric data sources for a campaign. Pass message (the user's question) to filter returned data sources to only those relevant to the question. Returns providers (connected slugs) and data_sources (AAQL data source definitions with available fields and pre-hydrated filters).
clientIdintegeroptionalThe client (campaign) ID.messagestringoptionalThe user's original question — used to filter relevant data sources.agencyanalyticsmcp_browse_client_reports#List all reports for a client/campaign. Use this when no specific report was named and you need to present options or pick the most relevant one. Requires client_id on every call.1 param
List all reports for a client/campaign. Use this when no specific report was named and you need to present options or pick the most relevant one. Requires client_id on every call.
client_idintegeroptionalThe client (campaign) ID. Required on every call.agencyanalyticsmcp_browse_clients#Browse or enumerate clients. Two modes: Folder mode (omit groupId) returns all folders with their client counts plus ungrouped clients. Drill-down mode (groupId provided) returns all clients inside the specified folder. Results are paginated via limit and offset.5 params
Browse or enumerate clients. Two modes: Folder mode (omit groupId) returns all folders with their client counts plus ungrouped clients. Drill-down mode (groupId provided) returns all clients inside the specified folder. Results are paginated via limit and offset.
groupIdintegeroptionalFolder ID to drill into. Omit to list all folders and ungrouped clients.limitintegeroptionalMaximum number of items to return (default 50, max 200).offsetintegeroptionalZero-based pagination offset (default 0).searchstringoptionalOptional text filter applied to client name or URL.statusstringoptionalOptional status filter — e.g. "active" or "inactive". Omit to return all statuses.agencyanalyticsmcp_create_mcp_feedback#Record user feedback explicitly directed at the AgencyAnalytics MCP server experience — its tools, ergonomics, or quality of results. Only call this when the user clearly intends to leave feedback about the MCP.2 params
Record user feedback explicitly directed at the AgencyAnalytics MCP server experience — its tools, ergonomics, or quality of results. Only call this when the user clearly intends to leave feedback about the MCP.
messagestringrequiredThe user's feedback in their own words. 1-2000 characters.sentimentstringrequiredOverall sentiment of the feedback.agencyanalyticsmcp_fetch_web#Fetch a single public web page or document by URL and return its readable text. HTML is reduced to plain text; JSON, plain-text, and XML responses are returned as-is. Output is truncated to maxLength characters (default 30000).2 params
Fetch a single public web page or document by URL and return its readable text. HTML is reduced to plain text; JSON, plain-text, and XML responses are returned as-is. Output is truncated to maxLength characters (default 30000).
urlstringrequiredAbsolute http(s) URL to fetch, e.g. 'https://example.com/article'.maxLengthintegeroptionalMaximum characters of extracted text to return. Defaults to 30000; clamped to [1000, 100000].agencyanalyticsmcp_read_client_ad_manager#Fetch a client's Google Ad Manager (sell-side / publisher ad-serving) analytics, broken down by a dimension. Returns one row per dimension value with the publisher's ad-revenue metrics (revenue, impressions, clicks, CTR, eCPM, fill rate, and more). This is the client-as-PUBLISHER earning ad revenue — NOT the client buying ads (use read_client_ads for spend-side campaign performance). Supported providers (1): google-ad-manager-v1.8 params
Fetch a client's Google Ad Manager (sell-side / publisher ad-serving) analytics, broken down by a dimension. Returns one row per dimension value with the publisher's ad-revenue metrics (revenue, impressions, clicks, CTR, eCPM, fill rate, and more). This is the client-as-PUBLISHER earning ad revenue — NOT the client buying ads (use read_client_ads for spend-side campaign performance). Supported providers (1): google-ad-manager-v1.
applyMarkupbooleanoptionalWhether to apply the client's agency markup to revenue and eCPM figures.clientIdintegeroptionalThe client (campaign) ID.endDatestringoptionalEnd date in YYYY-MM-DD format.entityTypestringoptionalThe dimension to break down Ad Manager revenue by.limitintegeroptionalMaximum rows to return (default 50).providerstringoptionalThe Ad Manager provider slug.startDatestringoptionalStart date in YYYY-MM-DD format.testModebooleanoptionalSet to true to return sample data without a live API call.agencyanalyticsmcp_read_client_ads#Fetch ad data broken down by campaign, ad group, or ad for a specific platform. Returns one row per entity — NOT a time series. Use ONLY when the user asks for a per-entity breakdown. Supported platforms (21): googleadwords, facebook-ads, linked-in-ads, snapchat-ads, tiktok-ads, adroll, amazon-ads, bing-ads, twitter-ads, spotify-ads, stack-adapt, google-display-video360, pinterest-ads, reddit-ads-v1, simpli-fi, centro, centro-basis, choozle, adform, yelp-ads, ground-truth-v1.8 params
Fetch ad data broken down by campaign, ad group, or ad for a specific platform. Returns one row per entity — NOT a time series. Use ONLY when the user asks for a per-entity breakdown. Supported platforms (21): googleadwords, facebook-ads, linked-in-ads, snapchat-ads, tiktok-ads, adroll, amazon-ads, bing-ads, twitter-ads, spotify-ads, stack-adapt, google-display-video360, pinterest-ads, reddit-ads-v1, simpli-fi, centro, centro-basis, choozle, adform, yelp-ads, ground-truth-v1.
applyMarkupbooleanoptionalWhether to apply the client's agency markup to cost/spend figures.clientIdintegeroptionalThe client (campaign) ID.endDatestringoptionalEnd date in YYYY-MM-DD format.entityTypestringoptionalThe entity type to break down by.limitintegeroptionalMaximum rows to return (default 50).providerstringoptionalThe ad platform provider slug.startDatestringoptionalStart date in YYYY-MM-DD format.testModebooleanoptionalSet to true to return sample data without a live API call.agencyanalyticsmcp_read_client_ai_tracker#Fetch a client's AI Tracker analytics — how visible the brand is inside AI assistants' answers (ChatGPT, Google AI Overview, Google AI Mode, Claude, Perplexity, Gemini), broken down by a dimension. Returns one row per dimension value with AI-visibility metrics (visibility, citations, position, sentiment, citation_rate, prompts). This is AI-answer visibility — NOT Google SERP keyword rankings (use read_client_keywords for that). Supported providers (1): agency-analytics-ai-tracker-v1.7 params
Fetch a client's AI Tracker analytics — how visible the brand is inside AI assistants' answers (ChatGPT, Google AI Overview, Google AI Mode, Claude, Perplexity, Gemini), broken down by a dimension. Returns one row per dimension value with AI-visibility metrics (visibility, citations, position, sentiment, citation_rate, prompts). This is AI-answer visibility — NOT Google SERP keyword rankings (use read_client_keywords for that). Supported providers (1): agency-analytics-ai-tracker-v1.
clientIdintegeroptionalThe client (campaign) ID.endDatestringoptionalEnd date in YYYY-MM-DD format.entityTypestringoptionalThe dimension to break down AI visibility by.limitintegeroptionalMaximum rows to return (default 50).providerstringoptionalThe AI Tracker provider slug.startDatestringoptionalStart date in YYYY-MM-DD format.testModebooleanoptionalSet to true to return sample data without a live API call.agencyanalyticsmcp_read_client_audience#Fetch a client's audience demographics broken down by a demographic dimension for a specific connected platform. Returns one row per segment with the platform's audience metric. Use for 'who is the audience?' questions such as audience by age, gender, or country. Not a time-series tool and not ad performance by demographic. Supported platforms (5): instagram, youtube, tiktok-v1, pinterest-ads, linked-in.7 params
Fetch a client's audience demographics broken down by a demographic dimension for a specific connected platform. Returns one row per segment with the platform's audience metric. Use for 'who is the audience?' questions such as audience by age, gender, or country. Not a time-series tool and not ad performance by demographic. Supported platforms (5): instagram, youtube, tiktok-v1, pinterest-ads, linked-in.
clientIdintegeroptionalThe client (campaign) ID.endDatestringoptionalEnd date in YYYY-MM-DD format.entityTypestringoptionalThe demographic dimension to break audience down by.limitintegeroptionalMaximum rows to return (default 50).providerstringoptionalThe audience platform provider slug.startDatestringoptionalStart date in YYYY-MM-DD format.testModebooleanoptionalSet to true to return sample data without a live API call.agencyanalyticsmcp_read_client_calls#Fetch call analytics grouped by an entity type for a connected call-tracking integration. Returns one row per entity type. Supported providers (10): marchex, twilio, what-converts, callrail, call-tracking-metrics, call-source, googleadwords, avanser, delacon, wild-jar.7 params
Fetch call analytics grouped by an entity type for a connected call-tracking integration. Returns one row per entity type. Supported providers (10): marchex, twilio, what-converts, callrail, call-tracking-metrics, call-source, googleadwords, avanser, delacon, wild-jar.
clientIdintegeroptionalThe client (campaign) ID.endDatestringoptionalEnd date in YYYY-MM-DD format.entityTypestringoptionalThe dimension to group calls by.limitintegeroptionalMaximum rows to return (default 50).providerstringoptionalThe call tracking provider slug.startDatestringoptionalStart date in YYYY-MM-DD format.testModebooleanoptionalSet to true to return sample data.agencyanalyticsmcp_read_client_content#Fetch content analytics broken down by individual post, reel, pin, or video item for a specific social platform. Returns one row per content item — NOT a time series. Supported platforms (7): facebook, instagram, pinterest, youtube, linked-in, tiktok-v1, vimeo.7 params
Fetch content analytics broken down by individual post, reel, pin, or video item for a specific social platform. Returns one row per content item — NOT a time series. Supported platforms (7): facebook, instagram, pinterest, youtube, linked-in, tiktok-v1, vimeo.
clientIdintegeroptionalThe client (campaign) ID.endDatestringoptionalEnd date in YYYY-MM-DD format.entityTypestringoptionalThe type of content: 'posts', 'reels', 'pins', or 'videos'.limitintegeroptionalMaximum rows to return (default 50).providerstringoptionalThe social platform provider slug.startDatestringoptionalStart date in YYYY-MM-DD format.testModebooleanoptionalSet to true to return sample data.agencyanalyticsmcp_read_client_conversions#Fetch conversion analytics broken down by conversion type for a specific platform connected to a client. Returns one row per conversion type with counts and (where the platform tracks it) value/cost. Not a time-series tool — use read_client_metrics for conversions over time, or read_client_ads for per-campaign totals. Supported platforms (6): google-analytics4, facebook-ads, stack-adapt, google-local-services-ads, bing-ads, simpli-fi.7 params
Fetch conversion analytics broken down by conversion type for a specific platform connected to a client. Returns one row per conversion type with counts and (where the platform tracks it) value/cost. Not a time-series tool — use read_client_metrics for conversions over time, or read_client_ads for per-campaign totals. Supported platforms (6): google-analytics4, facebook-ads, stack-adapt, google-local-services-ads, bing-ads, simpli-fi.
applyMarkupbooleanoptionalWhether to apply the client's agency markup to cost/value figures.clientIdintegeroptionalThe client (campaign) ID.endDatestringoptionalEnd date in YYYY-MM-DD format.limitintegeroptionalMaximum rows to return (default 50).providerstringoptionalThe conversion platform provider slug.startDatestringoptionalStart date in YYYY-MM-DD format.testModebooleanoptionalSet to true to return sample data without a live API call.agencyanalyticsmcp_read_client_crm#Fetch CRM data for a specific platform connected to a client. Returns one row per entity (deal stage, company, contact segment, campaign, appointment, etc.). Use for sales-pipeline / CRM questions such as deals by stage, pipeline value, or contacts by lifecycle stage. Not a time-series tool — use read_client_metrics for pipeline/revenue trends over time. Supported platforms (5): hub-spot, salesforce, keap, high-level, sharp-spring.7 params
Fetch CRM data for a specific platform connected to a client. Returns one row per entity (deal stage, company, contact segment, campaign, appointment, etc.). Use for sales-pipeline / CRM questions such as deals by stage, pipeline value, or contacts by lifecycle stage. Not a time-series tool — use read_client_metrics for pipeline/revenue trends over time. Supported platforms (5): hub-spot, salesforce, keap, high-level, sharp-spring.
clientIdintegeroptionalThe client (campaign) ID.endDatestringoptionalEnd date in YYYY-MM-DD format.entityTypestringoptionalThe CRM entity type to fetch.limitintegeroptionalMaximum rows to return (default 50).providerstringoptionalThe CRM provider slug.startDatestringoptionalStart date in YYYY-MM-DD format.testModebooleanoptionalSet to true to return sample data without a live API call.agencyanalyticsmcp_read_client_custom_metrics#Fetch the computed output of a single client's custom metrics (formula-driven KPIs such as 'Cost per Lead' or 'ROAS') over a date range. Provide customMetricIds to read specific metrics; omit it to read every custom metric available for the client. Use browse_client_custom_metrics first to discover the available metric ids.5 params
Fetch the computed output of a single client's custom metrics (formula-driven KPIs such as 'Cost per Lead' or 'ROAS') over a date range. Provide customMetricIds to read specific metrics; omit it to read every custom metric available for the client. Use browse_client_custom_metrics first to discover the available metric ids.
byDatebooleanoptionalSet to true to return values broken down by date.clientIdintegeroptionalThe client (campaign) ID.customMetricIdsarrayoptionalList of custom metric IDs to fetch. Omit to fetch all.endDatestringoptionalEnd date in YYYY-MM-DD format.startDatestringoptionalStart date in YYYY-MM-DD format.agencyanalyticsmcp_read_client_dashboard#Fetch data for a specific dashboard. Step 1 (no section_name): resolves a dashboard container by dashboard_id or dashboard_name and returns the list of available dashboards. Step 2 (with section_name): fetches provider data for the named dashboard. Requires client_id on every call.6 params
Fetch data for a specific dashboard. Step 1 (no section_name): resolves a dashboard container by dashboard_id or dashboard_name and returns the list of available dashboards. Step 2 (with section_name): fetches provider data for the named dashboard. Requires client_id on every call.
client_idintegeroptionalThe client (campaign) ID. Required on every call.dashboard_idintegeroptionalID of the dashboard to fetch.dashboard_namestringoptionalName of the dashboard to fetch.end_datestringoptionalEnd date in YYYY-MM-DD format.section_namestringoptionalName of the section to fetch data for. Omit for Step 1 (list sections).start_datestringoptionalStart date in YYYY-MM-DD format.agencyanalyticsmcp_read_client_data_source#Run a raw AAQL read query for one client and return the raw connector rows as CSV. Use this ONLY when the user explicitly asks to export raw data. For normal analytics use the entity and metric tools — they are far more token-efficient.11 params
Run a raw AAQL read query for one client and return the raw connector rows as CSV. Use this ONLY when the user explicitly asks to export raw data. For normal analytics use the entity and metric tools — they are far more token-efficient.
assetstringoptionalThe AAQL asset/table name.clientIdintegeroptionalThe client (campaign) ID.confirmedbooleanoptionalSet to true to confirm the export.fieldsarrayoptionalFields to include in the output.filtersobjectoptionalKey-value filter map.groupByarrayoptionalFields to group by.limitintegeroptionalMaximum rows (default 50).offsetintegeroptionalPagination offset.providerstringoptionalThe integration provider slug.sortobjectoptionalSort configuration.testModebooleanoptionalServe the provider's demo data instead of the client's live data, so a source can be read without a live integration.agencyanalyticsmcp_read_client_ecommerce#Fetch ecommerce data for a specific platform connected to a client. Returns one row per entity (product, order status, channel, subscription, payment, etc.). Use for online-store questions such as best-selling products, orders by status, sales by channel, or subscription revenue. Not a time-series tool — use read_client_metrics for revenue/sales trends over time. Metrics are provider-native and not directly comparable across platforms. Supported platforms (6): shopify, woocommerce, big-commerce-v1, stripe, keap, google-analytics4.7 params
Fetch ecommerce data for a specific platform connected to a client. Returns one row per entity (product, order status, channel, subscription, payment, etc.). Use for online-store questions such as best-selling products, orders by status, sales by channel, or subscription revenue. Not a time-series tool — use read_client_metrics for revenue/sales trends over time. Metrics are provider-native and not directly comparable across platforms. Supported platforms (6): shopify, woocommerce, big-commerce-v1, stripe, keap, google-analytics4.
clientIdintegeroptionalThe client (campaign) ID.endDatestringoptionalEnd date in YYYY-MM-DD format.entityTypestringoptionalThe ecommerce entity type to fetch.limitintegeroptionalMaximum rows to return (default 50).providerstringoptionalThe ecommerce provider slug.startDatestringoptionalStart date in YYYY-MM-DD format.testModebooleanoptionalSet to true to return sample data without a live API call.agencyanalyticsmcp_read_client_email#Fetch email-campaign performance for a specific platform connected to a client. Returns one row per email campaign with engagement metrics (sent, delivered, opens, clicks, open_rate, click_rate, unsubscribes, bounce_rate). Not a time-series tool — use read_client_metrics for email metrics over time. Sendinblue/Brevo ignores the date range and always returns all campaigns. Supported platforms (3): mail-chimp, hub-spot, sendinblue.6 params
Fetch email-campaign performance for a specific platform connected to a client. Returns one row per email campaign with engagement metrics (sent, delivered, opens, clicks, open_rate, click_rate, unsubscribes, bounce_rate). Not a time-series tool — use read_client_metrics for email metrics over time. Sendinblue/Brevo ignores the date range and always returns all campaigns. Supported platforms (3): mail-chimp, hub-spot, sendinblue.
clientIdintegeroptionalThe client (campaign) ID.endDatestringoptionalEnd date in YYYY-MM-DD format.limitintegeroptionalMaximum rows to return (default 50).providerstringoptionalThe email platform provider slug.startDatestringoptionalStart date in YYYY-MM-DD format.testModebooleanoptionalSet to true to return sample data without a live API call.agencyanalyticsmcp_read_client_forms#Fetch web-form submission analytics for a specific platform connected to a client. Returns one row per form with its submission count (and, for HubSpot, views + submission/clickthrough rates). Not a time-series tool, call tracking, or conversions-by-type data — use read_client_metrics, read_client_calls, or read_client_conversions respectively. GravityForms reports an all-time count per form (its date range is ignored); HubSpot honors the date range. Supported platforms (2): gravity-forms-v1, hub-spot.6 params
Fetch web-form submission analytics for a specific platform connected to a client. Returns one row per form with its submission count (and, for HubSpot, views + submission/clickthrough rates). Not a time-series tool, call tracking, or conversions-by-type data — use read_client_metrics, read_client_calls, or read_client_conversions respectively. GravityForms reports an all-time count per form (its date range is ignored); HubSpot honors the date range. Supported platforms (2): gravity-forms-v1, hub-spot.
clientIdintegeroptionalThe client (campaign) ID.endDatestringoptionalEnd date in YYYY-MM-DD format.limitintegeroptionalMaximum rows to return (default 50).providerstringoptionalThe form platform provider slug.startDatestringoptionalStart date in YYYY-MM-DD format.testModebooleanoptionalSet to true to return sample data without a live API call.agencyanalyticsmcp_read_client_insights#Return a single client's biggest-moving metrics (trend signals), ranked by the magnitude of their percent change — biggest movers first, whether up or down. Use this to answer 'what changed the most for this client?'. These are pre-computed trend signals refreshed once daily — NOT real-time.6 params
Return a single client's biggest-moving metrics (trend signals), ranked by the magnitude of their percent change — biggest movers first, whether up or down. Use this to answer 'what changed the most for this client?'. These are pre-computed trend signals refreshed once daily — NOT real-time.
clientIdintegeroptionalThe client (campaign) ID.comparisonTypestringoptionalThe comparison type.directionstringoptionalFilter to only gains ('up'), only declines ('down'), or flat metrics ('flat').limitintegeroptionalMaximum number of results (default 50).minPercentageChangeMagnitudenumberoptionalMinimum absolute percent change to include.periodintegeroptionalComparison window in days. Allowed values: 30 or 90.agencyanalyticsmcp_read_client_keywords#Fetch keyword data for a specific platform connected to a client. Returns one row per keyword. Supported platforms (9): googleadwords, bing-ads, amazon-ads, pinterest-ads, simpli-fi, bing-webmaster-tools, google-search-console, rank-tracker, se-ranking-v1.7 params
Fetch keyword data for a specific platform connected to a client. Returns one row per keyword. Supported platforms (9): googleadwords, bing-ads, amazon-ads, pinterest-ads, simpli-fi, bing-webmaster-tools, google-search-console, rank-tracker, se-ranking-v1.
applyMarkupbooleanoptionalWhether to apply the client's agency markup to cost/cpc figures (ad-platform providers only; no effect on organic/rank providers).clientIdintegeroptionalThe client (campaign) ID.endDatestringoptionalEnd date in YYYY-MM-DD format.limitintegeroptionalMaximum rows to return (default 50).providerstringoptionalThe keyword platform provider slug.startDatestringoptionalStart date in YYYY-MM-DD format.testModebooleanoptionalSet to true to return sample data.agencyanalyticsmcp_read_client_knowledge#Answer questions grounded in a client's uploaded documents — contracts, invoices, statements of work, proposals, briefs, meeting notes, reports — or the account's shared docs (brand guidelines, templates, policies). Pass clientId to scope to one client; omit it to search all accessible clients plus shared docs. Returns a grounded, source-cited answer.2 params
Answer questions grounded in a client's uploaded documents — contracts, invoices, statements of work, proposals, briefs, meeting notes, reports — or the account's shared docs (brand guidelines, templates, policies). Pass clientId to scope to one client; omit it to search all accessible clients plus shared docs. Returns a grounded, source-cited answer.
clientIdintegeroptionalOptional. The client (campaign) whose documents to search. Omit to search across all accessible clients plus shared account-level documents.promptstringoptionalThe natural-language question about the uploaded documents.agencyanalyticsmcp_read_client_metrics#Fetch aggregated time-series metrics for a single client over a date range, scoped to one connected integration provider. Returns one row per day or month — NOT one row per campaign or keyword. Use this for trend questions. Responses are limited to a maximum of 200 rows. Supported providers: adroll, bing-ads, facebook, facebook-ads, google-analytics4, google-local-services-ads, google-my-business, google-search-console, googleadwords, ground-truth-v1, high-level, instagram, linked-in, linked-in-ads, pinterest-ads, reddit-ads-v1, simpli-fi, spotify-ads, stack-adapt, tiktok-ads, twitter-ads.5 params
Fetch aggregated time-series metrics for a single client over a date range, scoped to one connected integration provider. Returns one row per day or month — NOT one row per campaign or keyword. Use this for trend questions. Responses are limited to a maximum of 200 rows. Supported providers: adroll, bing-ads, facebook, facebook-ads, google-analytics4, google-local-services-ads, google-my-business, google-search-console, googleadwords, ground-truth-v1, high-level, instagram, linked-in, linked-in-ads, pinterest-ads, reddit-ads-v1, simpli-fi, spotify-ads, stack-adapt, tiktok-ads, twitter-ads.
clientIdintegeroptionalThe client (campaign) ID.endDatestringoptionalEnd date in YYYY-MM-DD format.incrementstringoptionalTime grouping: 'day' or 'month'.providerstringoptionalThe integration provider slug.startDatestringoptionalStart date in YYYY-MM-DD format.agencyanalyticsmcp_read_client_pages#Fetch page data for a specific platform connected to a client. Returns one row per page. Supported platforms (5): google-analytics4, google-search-console, hub-spot, unbounce, agency-analytics-auditor-4.7 params
Fetch page data for a specific platform connected to a client. Returns one row per page. Supported platforms (5): google-analytics4, google-search-console, hub-spot, unbounce, agency-analytics-auditor-4.
clientIdintegeroptionalThe client (campaign) ID.endDatestringoptionalEnd date in YYYY-MM-DD format.entityTypestringoptionalThe entity type: 'pages' or 'blog_posts'.limitintegeroptionalMaximum rows to return (default 50).providerstringoptionalThe page analytics provider slug.startDatestringoptionalStart date in YYYY-MM-DD format.testModebooleanoptionalSet to true to return sample data.agencyanalyticsmcp_read_client_report#Read a specific scheduled report for a client/campaign. Requires report_id or report_name. Step 1 (no section_name): resolves the report and returns its list of sections. Step 2 (with section_name): fetches provider data for one specific section. Requires client_id on every call.6 params
Read a specific scheduled report for a client/campaign. Requires report_id or report_name. Step 1 (no section_name): resolves the report and returns its list of sections. Step 2 (with section_name): fetches provider data for one specific section. Requires client_id on every call.
client_idintegeroptionalThe client (campaign) ID. Required on every call.end_datestringoptionalEnd date in YYYY-MM-DD format.report_idintegeroptionalID of the report to read.report_namestringoptionalName of the report to read.section_namestringoptionalName of the section to fetch. Omit for Step 1 (list sections).start_datestringoptionalStart date in YYYY-MM-DD format.agencyanalyticsmcp_read_client_reputation#Fetch a client's aggregate review/reputation analytics for a specific connected review platform. Returns review counts broken down by a dimension, or an overall rating summary. This is aggregate reputation analytics, NOT the individual reviews themselves (use read_client_reviews for review text/authors) and not a time-series tool. TrustPilot and Yelp return the current snapshot regardless of the requested dates. Supported platforms (5): bird-eye, trust-pilot, grade-us, gather-up, yelp.7 params
Fetch a client's aggregate review/reputation analytics for a specific connected review platform. Returns review counts broken down by a dimension, or an overall rating summary. This is aggregate reputation analytics, NOT the individual reviews themselves (use read_client_reviews for review text/authors) and not a time-series tool. TrustPilot and Yelp return the current snapshot regardless of the requested dates. Supported platforms (5): bird-eye, trust-pilot, grade-us, gather-up, yelp.
clientIdintegeroptionalThe client (campaign) ID.endDatestringoptionalEnd date in YYYY-MM-DD format.entityTypestringoptionalThe dimension to break reputation data down by. 'overall' is the only option that returns average_rating.limitintegeroptionalMaximum rows to return (default 50).providerstringoptionalThe reputation/review platform provider slug.startDatestringoptionalStart date in YYYY-MM-DD format.testModebooleanoptionalSet to true to return sample data without a live API call.agencyanalyticsmcp_read_client_reviews#Fetch individual customer reviews for a specific review platform connected to a client. Returns one row per review. Supported platforms (7): google-my-business, vendasta, bird-eye, gather-up, grade-us, trust-pilot, yelp.6 params
Fetch individual customer reviews for a specific review platform connected to a client. Returns one row per review. Supported platforms (7): google-my-business, vendasta, bird-eye, gather-up, grade-us, trust-pilot, yelp.
clientIdintegeroptionalThe client (campaign) ID.endDatestringoptionalEnd date in YYYY-MM-DD format.limitintegeroptionalMaximum rows to return (default 50).providerstringoptionalThe review platform provider slug.startDatestringoptionalStart date in YYYY-MM-DD format.testModebooleanoptionalSet to true to return sample data.agencyanalyticsmcp_read_client_site_audit#Fetch a client's technical site-audit data for a specific connected provider. Returns page-speed / Lighthouse scores and audit findings, or Search Console sitemap health. This is technical site health — NOT keyword rankings (use read_client_keywords) or page traffic (use read_client_pages), and not a time-series tool. startDate/endDate are ignored — results are always the current snapshot. Supported providers (2): google-page-speed-v1, google-search-console.7 params
Fetch a client's technical site-audit data for a specific connected provider. Returns page-speed / Lighthouse scores and audit findings, or Search Console sitemap health. This is technical site health — NOT keyword rankings (use read_client_keywords) or page traffic (use read_client_pages), and not a time-series tool. startDate/endDate are ignored — results are always the current snapshot. Supported providers (2): google-page-speed-v1, google-search-console.
clientIdintegeroptionalThe client (campaign) ID.endDatestringoptionalEnd date in YYYY-MM-DD format. Ignored by this tool — site-audit results are always the current snapshot.entityTypestringoptionalThe site-audit breakdown to fetch.limitintegeroptionalMaximum rows to return (default 50).providerstringoptionalThe site-audit provider slug.startDatestringoptionalStart date in YYYY-MM-DD format. Ignored by this tool — site-audit results are always the current snapshot.testModebooleanoptionalSet to true to return sample data without a live API call.agencyanalyticsmcp_read_client_traffic#Fetch traffic analytics grouped by an entity type for a specific traffic platform. Returns one row per entity value (e.g. per device type, per country). Supported providers (6): google-analytics4, youtube, google-my-business, matomo-v1, clarity-v1, hub-spot.7 params
Fetch traffic analytics grouped by an entity type for a specific traffic platform. Returns one row per entity value (e.g. per device type, per country). Supported providers (6): google-analytics4, youtube, google-my-business, matomo-v1, clarity-v1, hub-spot.
clientIdintegeroptionalThe client (campaign) ID.endDatestringoptionalEnd date in YYYY-MM-DD format.entityTypestringoptionalThe dimension to group traffic by.limitintegeroptionalMaximum rows to return (default 50).providerstringoptionalThe traffic analytics provider slug.startDatestringoptionalStart date in YYYY-MM-DD format.testModebooleanoptionalSet to true to return sample data.agencyanalyticsmcp_read_knowledge_base#Search the AgencyAnalytics knowledge base for how-to articles and platform documentation. Use this to answer questions about how to use the AgencyAnalytics platform itself.1 param
Search the AgencyAnalytics knowledge base for how-to articles and platform documentation. Use this to answer questions about how to use the AgencyAnalytics platform itself.
searchstringoptionalSearch term to look up in the knowledge base.agencyanalyticsmcp_search_clients#Look up ONE specific client by name fragment, brand token, or domain. Returns the single best-matching client (highest cosine similarity over `company`+`url`) with a `providers` field — use that to confirm a provider is connected before calling any entity tool. If the user wants to list, browse, or enumerate clients — use `browse_clients` instead.1 param
Look up ONE specific client by name fragment, brand token, or domain. Returns the single best-matching client (highest cosine similarity over `company`+`url`) with a `providers` field — use that to confirm a provider is connected before calling any entity tool. If the user wants to list, browse, or enumerate clients — use `browse_clients` instead.
querystringrequiredA substantive client identifier the user actually provided — a name fragment, brand token, or domain (e.g. "acme", "shopify", ".io"). NOT a search engine query. Empty, whitespace-only, single-character, or generic-word queries will be rejected.agencyanalyticsmcp_search_users#Search the teammates and contacts in your own AgencyAnalytics account by name or email. Returns users you are allowed to contact with id, name, email, and role.2 params
Search the teammates and contacts in your own AgencyAnalytics account by name or email. Returns users you are allowed to contact with id, name, email, and role.
querystringrequiredRequired. A name or email fragment to search for, e.g. "john", "smith", "john@acme.com".limitintegeroptionalOptional. Maximum number of users to return (default 10, max 50).agencyanalyticsmcp_search_web#Search the live web and return a compact keyword-research result set: organic results (position, title, link, domain, snippet), related searches, People Also Ask questions, and the answer box when present. Use for keyword research, SERP inspection, and competitor discovery. Not client-scoped — no clientId required.6 params
Search the live web and return a compact keyword-research result set: organic results (position, title, link, domain, snippet), related searches, People Also Ask questions, and the answer box when present. Use for keyword research, SERP inspection, and competitor discovery. Not client-scoped — no clientId required.
querystringrequiredThe search query — a keyword phrase to research.countryCodestringoptionalOptional two-letter Google country code (gl), e.g. 'ca'.enginestringoptionalSearch engine to use: 'google' (desktop, default), 'google_mobile', or 'bing'.languagestringoptionalOptional language code (hl for Google, bing_language for Bing), e.g. 'en'.limitintegeroptionalMaximum organic results to return (1-100). Defaults to 10.locationstringoptionalOptional free-form location to localize results, e.g. 'Toronto, Ontario, Canada'.