Analytics
Analytics MCP tools for traffic, visitors, sessions, events, revenue, attribution, cohorts, paths, and AI crawler data.
Analytics tools
The analytics feature is read-only. It allows an approved MCP client to inspect Faurya analytics for permitted sites without changing configuration.
Supported access levels
| Access | Supported | Allows |
|---|---|---|
| Read | Yes | Analytics queries, catalogs, visitors, sessions, events, payments, paths, attribution, cohorts, realtime snapshots, AI crawler analytics, and site context. |
| Write | No | Analytics does not expose write tools. |
Role requirements and site scoping
Analytics tools are available to connections with analytics:read for the selected site. Supply siteId when the connection has multiple permitted sites. Hidden events are excluded and public metrics, dimensions, filters, operators, event names, and goal names should be discovered with faurya_get_analytics_catalog.
Analytics query model
faurya_query_analytics, faurya_analyze_goals, faurya_analyze_revenue, faurya_analyze_cohorts, and faurya_analyze_attribution share the semantic analytics model:
| Parameter | Details |
|---|---|
mode | summary, timeseries, breakdown, distribution, top_values, compare_periods, or compare_segments; default summary. |
period | Optional object with start, end, and timezone defaulting to UTC. |
filters | Recursive public filter object using and, or, not, field, operator, value, and values. |
metrics | Up to 20 public metric names. Use faurya_get_analytics_catalog for the current list. |
dimensions | Up to 5 public dimensions, or tool-specific lower limits where documented. |
granularity | hour, day, week, month, quarter, or year. |
limit | Positive integer up to 5000 for analytics queries unless a tool specifies a smaller maximum. |
siteId | Optional when one site is permitted; required for multi-site connections. |
Tool summary
| Tool | Access | Purpose |
|---|---|---|
faurya_get_site_context | Read | Reads site context, coverage, goals, currency/timezone, capabilities, and warnings. |
faurya_get_analytics_catalog | Read | Lists public metrics, dimensions, operators, visible events, goals, properties, granularities, and capabilities. |
faurya_list_dimension_values | Read | Discovers common values for one public dimension. |
faurya_query_analytics | Read | Runs semantic analytics without SQL. |
faurya_get_realtime_snapshot | Read | Returns recent active visitor and event snapshot. |
faurya_search_visitors | Read | Cursor-paginated visitor search. |
faurya_get_visitor | Read | Reads one visitor's lifetime analytics summary. |
faurya_trace_visitor | Read | Reads a chronological visitor trace grouped by session. |
faurya_search_sessions | Read | Cursor-paginated session search. |
faurya_get_session | Read | Reads one reconstructed visible session timeline. |
faurya_search_events | Read | Cursor-paginated visible event search. |
faurya_find_journeys | Read | Finds journeys matching ordered behavior steps. |
faurya_analyze_goals | Read | Analyzes goal completions and conversion rates. |
faurya_analyze_paths | Read | Analyzes ranked paths with bounded depth. |
faurya_analyze_cohorts | Read | Analyzes cohorts and retention. |
faurya_search_payments | Read | Cursor-paginated payment event search. |
faurya_analyze_revenue | Read | Analyzes revenue and payment metrics. |
faurya_analyze_attribution | Read | Analyzes controlled attribution models. |
faurya_query_ai_crawls | Read | Queries AI crawler analytics. |
faurya_analyze_changes | Read | Compares periods and highlights changes. |
Common analytics errors
SITE_SCOPE_REQUIRED, INSUFFICIENT_SCOPE, VALIDATION_ERROR, INVALID_FILTER, INVALID_FIELD, INVALID_OPERATOR, INVALID_LIMIT, INVALID_DATE_RANGE, INVALID_CURSOR, QUERY_TOO_COMPLEX, QUERY_TIMEOUT, DATA_NOT_AVAILABLE, and RATE_LIMITED.
faurya_get_site_context
What it does
Returns authenticated site context, available date coverage, configured goals, currency/timezone, capabilities, and data-source warnings. No secrets or internal IDs are returned.
Permission required
Analytics: Read.
When to use it
Use before analysis to understand the site, time coverage, configured goals, currency, timezone, and any non-fatal data warnings.
Example prompt
Summarize the context and available date coverage for my Faurya site.Input
| Parameter | Type | Required | Description |
|---|---|---|---|
siteId | string | Conditional | Required when the connection has multiple permitted sites. |
Example MCP input
{ "siteId": "site_example" }Output
data contains safe site context, date coverage, goals, currency/timezone, capabilities, and warnings.
Example output
{
"success": true,
"requestId": "req_example",
"data": {
"site": {
"id": "site_example",
"domain": "example.com",
"timezone": "UTC",
"currency": "USD"
},
"coverage": {
"firstEventAt": "2026-07-01T00:00:00.000Z",
"lastEventAt": "2026-07-18T00:00:00.000Z"
},
"goals": ["signup"],
"capabilities": ["analytics", "revenue", "ai_crawls"],
"warnings": []
},
"meta": {
"warnings": [],
"pagination": { "nextCursor": null, "hasMore": false }
}
}Common errors
SITE_SCOPE_REQUIRED, INSUFFICIENT_SCOPE, SITE_NOT_FOUND.
Notes
This is safe to call repeatedly and does not expose secrets.
faurya_get_analytics_catalog
What it does
Lists public metrics, dimensions, semantic fields, operators, visible event names, goal names, approved property keys, granularities, attribution models, and tool capabilities. Hidden event types are excluded.
Permission required
Analytics: Read.
When to use it
Use it before constructing filters, metrics, dimensions, attribution requests, or event searches.
Example prompt
Show the analytics metrics and dimensions I can query.Input
| Parameter | Type | Required | Description |
|---|---|---|---|
siteId | string | Conditional | Required for multi-site connections. |
Example MCP input
{ "siteId": "site_example" }Output
data contains allowlisted metrics, dimensions, operators, granularities, attribution models, visible event and goal names, public property keys, and capabilities.
Example output
{
"success": true,
"requestId": "req_example",
"data": {
"metrics": ["visitors", "sessions", "pageviews", "revenue"],
"dimensions": ["country", "browser", "source", "path"],
"operators": ["equals", "contains", "in"],
"granularities": ["day", "week", "month"],
"attributionModels": ["first_touch", "last_touch", "linear"]
},
"meta": {
"warnings": [],
"pagination": { "nextCursor": null, "hasMore": false }
}
}Common errors
SITE_SCOPE_REQUIRED, INSUFFICIENT_SCOPE.
Notes
Use this as the source of truth for public analytics vocabulary. The MCP tools do not accept SQL.
faurya_list_dimension_values
What it does
Discovers values for a public dimension and returns value/count rows with optional search and limit.
Permission required
Analytics: Read.
When to use it
Use before building filters for countries, browsers, paths, campaigns, sources, events, or goals.
Example prompt
List the top campaign values for the last month.Input
| Parameter | Type | Required | Description |
|---|---|---|---|
field | enum | Yes | One of country, region, city, browser, os, device, referrer, path, hostname, source, medium, campaign, term, content, referrer_host, event_name, goal_name. |
period | object | No | start, end, timezone. |
search | string | No | Search text, max 256 chars. |
limit | integer | No | Positive integer, max 5000. |
siteId | string | Conditional | Required for multi-site connections. |
Example MCP input
{
"siteId": "site_example",
"field": "campaign",
"period": { "start": "2026-07-01", "end": "2026-07-18", "timezone": "UTC" },
"limit": 10
}Output
data contains dimension value rows with counts.
Example output
{
"success": true,
"requestId": "req_example",
"data": {
"field": "campaign",
"rows": [{ "value": "summer_launch", "count": 42 }]
},
"meta": {
"warnings": [],
"pagination": { "nextCursor": null, "hasMore": false }
}
}Common errors
VALIDATION_ERROR, INVALID_DATE_RANGE, INSUFFICIENT_SCOPE.
Notes
Values are based on visible public analytics fields.
faurya_query_analytics
What it does
Runs semantic analytics in summary, timeseries, breakdown, distribution, top-values, compare-periods, or compare-segments mode. SQL is not accepted.
Permission required
Analytics: Read.
When to use it
Use for aggregate traffic, conversion, revenue, metric, dimension, and period-comparison questions.
Example prompt
Compare visitors and conversions this week with the previous week.Input
| Parameter | Type | Required | Description |
|---|---|---|---|
mode | enum | No | summary, timeseries, breakdown, distribution, top_values, compare_periods, compare_segments; default summary. |
period | object | No | start, end, timezone. |
filters | object | No | Public semantic filter tree. |
metrics | string[] | No | 1-20 public metrics. |
dimensions | string[] | No | Up to 5 public dimensions. |
granularity | enum | No | hour, day, week, month, quarter, year. |
limit | integer | No | Max 5000. |
siteId | string | Conditional | Required for multi-site connections. |
Example MCP input
{
"siteId": "site_example",
"mode": "timeseries",
"period": { "start": "2026-07-11", "end": "2026-07-18", "timezone": "UTC" },
"metrics": ["visitors", "conversions"],
"granularity": "day"
}Output
data contains the requested semantic analytics result, such as totals, rows, timeseries buckets, or comparison objects.
Example output
{
"success": true,
"requestId": "req_example",
"data": {
"mode": "timeseries",
"period": { "start": "2026-07-11", "end": "2026-07-18", "timezone": "UTC" },
"metrics": ["visitors", "conversions"],
"rows": [{ "date": "2026-07-11", "visitors": 120, "conversions": 8 }]
},
"meta": {
"warnings": [],
"pagination": { "nextCursor": null, "hasMore": false }
}
}Common errors
INVALID_FILTER, INVALID_FIELD, INVALID_OPERATOR, INVALID_LIMIT, QUERY_TOO_COMPLEX, QUERY_TIMEOUT.
Notes
Call faurya_get_analytics_catalog first for current metric and dimension names.
faurya_get_realtime_snapshot
What it does
Returns current recent active visitor and event activity for the authenticated site using the last few minutes of visible events.
Permission required
Analytics: Read.
When to use it
Use for “what is happening now?” questions.
Example prompt
Show me current realtime activity for my site.Input
| Parameter | Type | Required | Description |
|---|---|---|---|
siteId | string | Conditional | Required for multi-site connections. |
Example MCP input
{ "siteId": "site_example" }Output
data contains active visitor counts and recent visible events.
Example output
{
"success": true,
"requestId": "req_example",
"data": {
"activeVisitors": 7,
"recentEvents": [
{
"type": "pageview",
"path": "/pricing",
"occurredAt": "2026-07-18T10:00:00.000Z"
}
]
},
"meta": {
"warnings": [],
"pagination": { "nextCursor": null, "hasMore": false }
}
}Common errors
INSUFFICIENT_SCOPE, SITE_SCOPE_REQUIRED.
Notes
This is read-only and filters hidden events.
faurya_search_visitors
What it does
Searches visitors with acquisition, device, geography, event, page, goal, revenue, and semantic filter support.
Permission required
Analytics: Read.
When to use it
Use to find visitors matching behavior or attribution criteria.
Example prompt
Find visitors from organic search who completed a signup goal last week.Input
| Parameter | Type | Required | Description |
|---|---|---|---|
period | object | No | start, end, timezone. |
filters | object | No | Semantic filters. |
limit | integer | No | Max 1000, default bounded server-side. |
cursor | string | No | Cursor from previous response. |
siteId | string | Conditional | Required for multi-site connections. |
Example MCP input
{
"siteId": "site_example",
"period": { "start": "2026-07-01", "end": "2026-07-18" },
"limit": 25
}Output
data contains visitor rows and may include nextCursor.
Example output
{
"success": true,
"requestId": "req_example",
"data": {
"visitors": [
{
"visitorId": "visitor_example",
"firstSeenAt": "2026-07-12T09:00:00.000Z",
"sessions": 3,
"revenue": 49
}
],
"nextCursor": "eyJ0cyI6IjIwMjYtMDctMTJUMDk6MDA6MDAuMDAwWiIsImlkIjoidmlzaXRvcl9leGFtcGxlIn0"
},
"meta": {
"warnings": [],
"pagination": {
"nextCursor": "eyJ0cyI6IjIwMjYtMDctMTJUMDk6MDA6MDAuMDAwWiIsImlkIjoidmlzaXRvcl9leGFtcGxlIn0",
"hasMore": true
}
}
}Common errors
INVALID_CURSOR, INVALID_FILTER, INVALID_LIMIT, INSUFFICIENT_SCOPE.
Notes
Cursors are opaque base64url JSON cursors containing timestamp and ID fields. Do not modify them.
faurya_get_visitor
What it does
Returns one visitor lifetime analytics summary including sessions, pageviews, visible events, goals, revenue, payments, acquisition, technology, geography, profile metadata, and engaged time.
Permission required
Analytics: Read.
When to use it
Use after finding a visitor ID to inspect that visitor’s complete safe summary.
Example prompt
Show the lifetime summary for visitor_example.Input
| Parameter | Type | Required | Description |
|---|---|---|---|
visitorId | string | Yes | 1-256 chars. |
siteId | string | Conditional | Required for multi-site connections. |
Example MCP input
{ "siteId": "site_example", "visitorId": "visitor_example" }Output
data contains the visitor summary and related safe analytics fields.
Example output
{
"success": true,
"requestId": "req_example",
"data": {
"visitorId": "visitor_example",
"sessions": 3,
"pageviews": 14,
"goals": ["signup"],
"revenue": 49
},
"meta": {
"warnings": [],
"pagination": { "nextCursor": null, "hasMore": false }
}
}Common errors
NOT_FOUND, INSUFFICIENT_SCOPE, VALIDATION_ERROR.
Notes
Use placeholders in prompts and avoid exposing real visitor IDs outside approved workflows.
faurya_trace_visitor
What it does
Returns a chronological visitor trace grouped by session with visible pageviews, custom events, goals, payments, milestones, and derived session data.
Permission required
Analytics: Read.
When to use it
Use to reconstruct a visitor journey across sessions.
Example prompt
Trace visitor_example and summarize their journey.Input
| Parameter | Type | Required | Description |
|---|---|---|---|
visitorId | string | Yes | 1-256 chars. |
limit | integer | No | Max 1000. |
cursor | string | No | Cursor for next trace page. |
siteId | string | Conditional | Required for multi-site connections. |
Example MCP input
{ "siteId": "site_example", "visitorId": "visitor_example", "limit": 50 }Output
data contains grouped sessions, visible timeline events, and optional nextCursor.
Example output
{
"success": true,
"requestId": "req_example",
"data": {
"visitorId": "visitor_example",
"sessions": [
{
"sessionId": "session_example",
"events": [{ "type": "pageview", "path": "/" }]
}
],
"nextCursor": null
},
"meta": {
"warnings": [],
"pagination": { "nextCursor": null, "hasMore": false }
}
}Common errors
INVALID_CURSOR, NOT_FOUND, INSUFFICIENT_SCOPE.
Notes
Hidden events never appear.
faurya_search_sessions
What it does
Searches sessions by date, entry/exit pages, technology, geography, visible event count, goals, payments, revenue, and semantic filters.
Permission required
Analytics: Read.
When to use it
Use to find sessions matching page, goal, revenue, or acquisition behavior.
Example prompt
Find sessions that entered on /pricing and completed signup.Input
| Parameter | Type | Required | Description |
|---|---|---|---|
period | object | No | start, end, timezone. |
filters | object | No | Semantic filters. |
limit | integer | No | Max 1000. |
cursor | string | No | Cursor from previous response. |
siteId | string | Conditional | Required for multi-site connections. |
Example MCP input
{
"siteId": "site_example",
"period": { "start": "2026-07-01", "end": "2026-07-18" },
"limit": 25
}Output
data contains session rows and may include nextCursor.
Example output
{
"success": true,
"requestId": "req_example",
"data": {
"sessions": [
{
"sessionId": "session_example",
"entryPage": "/pricing",
"goals": ["signup"]
}
],
"nextCursor": null
},
"meta": {
"warnings": [],
"pagination": { "nextCursor": null, "hasMore": false }
}
}Common errors
INVALID_CURSOR, INVALID_FILTER, INVALID_LIMIT.
Notes
Cursor pagination is supported.
faurya_get_session
What it does
Returns one reconstructed visible session timeline, summary metrics, payments, revenue, and engaged time.
Permission required
Analytics: Read.
When to use it
Use after finding a session ID to understand exactly what happened during that session.
Example prompt
Explain what happened in session_example.Input
| Parameter | Type | Required | Description |
|---|---|---|---|
sessionId | string | Yes | 1-256 chars. |
siteId | string | Conditional | Required for multi-site connections. |
Example MCP input
{ "siteId": "site_example", "sessionId": "session_example" }Output
data contains session summary and visible timeline.
Example output
{
"success": true,
"requestId": "req_example",
"data": {
"sessionId": "session_example",
"pageviews": 5,
"events": [{ "type": "pageview", "path": "/pricing" }],
"revenue": 0
},
"meta": {
"warnings": [],
"pagination": { "nextCursor": null, "hasMore": false }
}
}Common errors
NOT_FOUND, INSUFFICIENT_SCOPE, VALIDATION_ERROR.
Notes
Only visible events are included.
faurya_search_events
What it does
Provides cursor-paginated access to literal visible events with semantic filters across event, visitor, session, page, referrer, geography, technology, goal/payment fields, and approved properties.
Permission required
Analytics: Read.
When to use it
Use when you need event-level evidence behind an aggregate result.
Example prompt
Show recent visible signup events with their page paths.Input
| Parameter | Type | Required | Description |
|---|---|---|---|
period | object | No | start, end, timezone. |
filters | object | No | Semantic filters. |
limit | integer | No | Max 1000. |
cursor | string | No | Cursor from previous response. |
siteId | string | Conditional | Required for multi-site connections. |
Example MCP input
{
"siteId": "site_example",
"limit": 20,
"filters": { "field": "event_name", "operator": "equals", "value": "signup" }
}Output
data contains visible event rows and may include nextCursor.
Example output
{
"success": true,
"requestId": "req_example",
"data": {
"events": [
{
"eventId": "event_example",
"eventName": "signup",
"path": "/pricing",
"occurredAt": "2026-07-18T10:00:00.000Z"
}
],
"nextCursor": null
},
"meta": {
"warnings": [],
"pagination": { "nextCursor": null, "hasMore": false }
}
}Common errors
INVALID_CURSOR, INVALID_FILTER, INVALID_FIELD.
Notes
Hidden events are excluded.
faurya_find_journeys
What it does
Finds visitor or session journeys matching ordered behavioral step conditions and returns aggregate match count and bounded examples.
Permission required
Analytics: Read.
When to use it
Use to find examples of journeys that pass through a sequence of pages, events, or goals.
Example prompt
Find sessions that visited /pricing and then completed signup.Input
| Parameter | Type | Required | Description |
|---|---|---|---|
period | object | No | start, end, timezone. |
steps | array | Yes | 1-10 steps. Each step has optional type (page, event, goal) and value max 512 chars. |
scope | enum | No | visitor or session; default session. |
match | enum | No | strict or loose; default loose. |
limit | integer | No | Max 200. |
siteId | string | Conditional | Required for multi-site connections. |
Example MCP input
{
"siteId": "site_example",
"steps": [
{ "type": "page", "value": "/pricing" },
{ "type": "goal", "value": "signup" }
],
"scope": "session",
"match": "loose"
}Output
data contains counts and bounded example journeys.
Example output
{
"success": true,
"requestId": "req_example",
"data": {
"matchCount": 12,
"examples": [{ "sessionId": "session_example", "matchedSteps": 2 }]
},
"meta": {
"warnings": [],
"pagination": { "nextCursor": null, "hasMore": false }
}
}Common errors
INVALID_JOURNEY_STEPS, INVALID_JOURNEY_STEP, INVALID_JOURNEY_SCOPE, INVALID_LIMIT.
Notes
Hidden events are excluded and example output is bounded.
faurya_analyze_goals
What it does
Analyzes goal completions, unique converters, conversion rates, time series, breakdowns, and revenue per converter where data supports it.
Permission required
Analytics: Read.
When to use it
Use for goal performance, conversion rate, and revenue-per-converter questions.
Example prompt
Analyze signup goal performance by source this month.Input
Same semantic analytics fields as faurya_query_analytics: mode, period, filters, metrics, dimensions, granularity, limit, and conditional siteId.
Example MCP input
{
"siteId": "site_example",
"mode": "breakdown",
"period": { "start": "2026-07-01", "end": "2026-07-18" },
"dimensions": ["source"]
}Output
data contains goal analytics rows, rates, or time buckets.
Example output
{
"success": true,
"requestId": "req_example",
"data": {
"mode": "breakdown",
"rows": [
{ "source": "organic", "goalCompletions": 18, "conversionRate": 0.12 }
]
},
"meta": {
"warnings": [],
"pagination": { "nextCursor": null, "hasMore": false }
}
}Common errors
INVALID_FIELD, INVALID_FILTER, QUERY_TIMEOUT.
Notes
This is goal analytics, not goal setup. Use Tracking Setup tools for tracking code.
faurya_analyze_paths
What it does
Analyzes top visible paths starting from or ending at selected pages, goals, or payments with bounded depth and ranking.
Permission required
Analytics: Read.
When to use it
Use to understand navigation routes before or after a page or goal.
Example prompt
What paths lead users from the homepage to signup?Input
| Parameter | Type | Required | Description |
|---|---|---|---|
period | object | No | start, end, timezone. |
startingPage | string | No | Max 2048 chars. |
endingPage | string | No | Max 2048 chars. |
endingGoal | string | No | Max 512 chars. |
maximumDepth | integer | No | Positive integer, max 5. |
siteId | string | Conditional | Required for multi-site connections. |
Example MCP input
{
"siteId": "site_example",
"startingPage": "/",
"endingGoal": "signup",
"maximumDepth": 4
}Output
data contains ranked path rows and counts.
Example output
{
"success": true,
"requestId": "req_example",
"data": { "paths": [{ "path": ["/", "/pricing", "signup"], "count": 9 }] },
"meta": {
"warnings": [],
"pagination": { "nextCursor": null, "hasMore": false }
}
}Common errors
INVALID_PATH_DEPTH, INVALID_DATE_RANGE, INSUFFICIENT_SCOPE.
Notes
Path depth is bounded to control query cost.
faurya_analyze_cohorts
What it does
Analyzes first-seen, session, or acquisition cohorts and returns repeat visits, repeat goals/payments, and revenue retention using selected granularity.
Permission required
Analytics: Read.
When to use it
Use to inspect retention and revenue by acquisition or first-seen cohort.
Example prompt
Analyze weekly retention cohorts for visitors acquired in July.Input
Same semantic analytics fields as faurya_query_analytics.
Example MCP input
{
"siteId": "site_example",
"mode": "timeseries",
"period": { "start": "2026-07-01", "end": "2026-07-18" },
"granularity": "week"
}Output
data contains cohort rows or retention time buckets.
Example output
{
"success": true,
"requestId": "req_example",
"data": {
"cohorts": [
{
"cohort": "2026-W27",
"visitors": 200,
"returningVisitors": 48,
"revenue": 320
}
]
},
"meta": {
"warnings": [],
"pagination": { "nextCursor": null, "hasMore": false }
}
}Common errors
INVALID_FIELD, QUERY_TOO_COMPLEX, QUERY_TIMEOUT.
Notes
Use dimensions and granularity from the catalog.
faurya_search_payments
What it does
Searches payment events with transaction identifier, visitor/session, timestamp, amount, success/failure state, page, approved properties, and acquisition summary.
Permission required
Analytics: Read.
When to use it
Use to find payment events or investigate failed payments.
Example prompt
Show failed payment events from the last seven days.Input
| Parameter | Type | Required | Description |
|---|---|---|---|
period | object | No | start, end, timezone. |
filters | object | No | Semantic filters. |
limit | integer | No | Max 1000. |
cursor | string | No | Cursor from previous response. |
failed | boolean | No | Filter failed payment events. |
transactionId | string | No | Max 256 chars. |
siteId | string | Conditional | Required for multi-site connections. |
Example MCP input
{ "siteId": "site_example", "failed": true, "limit": 20 }Output
data contains payment rows and optional nextCursor.
Example output
{
"success": true,
"requestId": "req_example",
"data": {
"payments": [
{
"transactionId": "txn_example",
"amount": 49,
"currency": "USD",
"failed": true
}
],
"nextCursor": null
},
"meta": {
"warnings": [],
"pagination": { "nextCursor": null, "hasMore": false }
}
}Common errors
INVALID_CURSOR, INVALID_FILTER, INSUFFICIENT_SCOPE.
Notes
Provider secrets and private payment credentials are never returned.
faurya_analyze_revenue
What it does
Analyzes tracked revenue, successful/failed payments, paying visitors, average order value, revenue per visitor/converter, success rate, timeseries, and dimension breakdowns.
Permission required
Analytics: Read.
When to use it
Use for revenue dashboards, payment success-rate analysis, and revenue attribution follow-up.
Example prompt
Show revenue, paying visitors, and average order value by source this month.Input
Same semantic analytics fields as faurya_query_analytics.
Example MCP input
{
"siteId": "site_example",
"mode": "breakdown",
"metrics": ["revenue", "paying_visitors"],
"dimensions": ["source"]
}Output
data contains revenue metrics, rows, or time buckets.
Example output
{
"success": true,
"requestId": "req_example",
"data": {
"rows": [
{
"source": "organic",
"revenue": 320,
"payingVisitors": 8,
"averageOrderValue": 40
}
]
},
"meta": {
"warnings": [],
"pagination": { "nextCursor": null, "hasMore": false }
}
}Common errors
DATA_NOT_AVAILABLE, INVALID_FIELD, QUERY_TIMEOUT.
Notes
Revenue results depend on tracked payment data.
faurya_analyze_attribution
What it does
Analyzes controlled attribution models and returns attributed visitors, conversions, payments, and revenue by selected dimensions.
Permission required
Analytics: Read.
When to use it
Use to compare first-touch, last-touch, linear, position-based, time-decay, and session-source attribution.
Example prompt
Compare last-touch revenue attribution by campaign this month.Input
| Parameter | Type | Required | Description |
|---|---|---|---|
model | enum | No | first_touch, last_touch, linear, position_based, time_decay, session_source. |
dimension | enum | No | referrer, campaign, source, medium, landing_page, country, device. |
mode, period, filters, metrics, dimensions, granularity, limit, siteId | mixed | No/conditional | Same semantic analytics fields as faurya_query_analytics. |
Example MCP input
{
"siteId": "site_example",
"model": "last_touch",
"dimension": "campaign",
"period": { "start": "2026-07-01", "end": "2026-07-18" }
}Output
data contains attribution rows and selected model metadata.
Example output
{
"success": true,
"requestId": "req_example",
"data": {
"model": "last_touch",
"dimension": "campaign",
"rows": [{ "campaign": "summer_launch", "revenue": 220, "conversions": 6 }]
},
"meta": {
"warnings": [],
"pagination": { "nextCursor": null, "hasMore": false }
}
}Common errors
VALIDATION_ERROR, INVALID_FIELD, QUERY_TIMEOUT.
Notes
The tool distinguishes controlled attribution fields from unrestricted SQL access.
faurya_query_ai_crawls
What it does
Queries AI crawler analytics by provider, agent, category, URL/path, status, source, timeseries/page rankings, coverage, frequency, and errors where data exists.
Permission required
Analytics: Read.
When to use it
Use to inspect AI crawler activity and content coverage.
Example prompt
Which AI crawlers visited my site most often this week?Input
| Parameter | Type | Required | Description |
|---|---|---|---|
period | object | No | start, end, timezone. |
provider | string | No | Max 128 chars. |
agent | string | No | Max 256 chars. |
category | string | No | Max 128 chars. |
path | string | No | Max 2048 chars. |
source | string | No | Max 128 chars. |
limit | integer | No | Max 5000. |
siteId | string | Conditional | Required for multi-site connections. |
Example MCP input
{
"siteId": "site_example",
"period": { "start": "2026-07-11", "end": "2026-07-18" },
"limit": 10
}Output
data contains AI crawler rows, coverage, frequency, or error summaries where available.
Example output
{
"success": true,
"requestId": "req_example",
"data": {
"rows": [
{
"provider": "ExampleAI",
"agent": "ExampleBot",
"path": "/docs",
"visits": 12,
"errors": 0
}
]
},
"meta": {
"warnings": [],
"pagination": { "nextCursor": null, "hasMore": false }
}
}Common errors
INVALID_DATE_RANGE, INVALID_LIMIT, DATA_NOT_AVAILABLE.
Notes
The response does not expose detection internals.
faurya_analyze_changes
What it does
Compares periods or segments for metric increases/decreases, absolute and percentage change, contributing dimensions, and basic anomaly/spike/drop detection. It distinguishes facts from inference.
Permission required
Analytics: Read.
When to use it
Use when investigating a conversion, traffic, or revenue change.
Example prompt
Investigate why conversions dropped compared with the previous week.Input
| Parameter | Type | Required | Description |
|---|---|---|---|
period | object | No | Context period. |
baselinePeriod | object | Yes | Baseline start, end, timezone. |
comparisonPeriod | object | Yes | Comparison start, end, timezone. |
metrics | string[] | No | 1-10 public metrics. |
dimensions | string[] | No | Up to 3 public dimensions. |
siteId | string | Conditional | Required for multi-site connections. |
Example MCP input
{
"siteId": "site_example",
"baselinePeriod": { "start": "2026-07-01", "end": "2026-07-07" },
"comparisonPeriod": { "start": "2026-07-08", "end": "2026-07-14" },
"metrics": ["visitors", "conversions"],
"dimensions": ["source"]
}Output
data contains metric deltas, percentage changes, contributing dimensions, and basic anomaly notes.
Example output
{
"success": true,
"requestId": "req_example",
"data": {
"changes": [
{
"metric": "conversions",
"baseline": 40,
"comparison": 30,
"absoluteChange": -10,
"percentChange": -25
}
],
"contributors": [{ "dimension": "source", "value": "paid", "change": -8 }]
},
"meta": {
"warnings": [],
"pagination": { "nextCursor": null, "hasMore": false }
}
}Common errors
VALIDATION_ERROR, INVALID_DATE_RANGE, INVALID_FIELD, QUERY_TIMEOUT.
Notes
Treat inferred causes as hypotheses, not guaranteed explanations.
Example prompts
- “Compare visitors and conversions this week with the previous week.”
- “Find sessions that visited
/pricingand then completed signup.” - “Which campaigns drove revenue this month?”
- “Show failed payments in the last seven days.”
- “What AI crawlers visited my docs pages?”