MCP Supported Tools
Learn what you can do with Amethyst MCP tools.
Amethyst MCP exposes tools that AI clients can call through the Model Context Protocol. These tools let you read analytics data, manage projects and workspaces, and configure Index Workers — all from natural language prompts.
The tools work together. With a single prompt, you can list workspaces, pick a project, fetch aggregated data, and create a view from the results.
Each section below is organized by feature area. Read tools (safe to call repeatedly) and mutating tools (require confirmation) are grouped together so you can see everything available in each domain.
Workspace and projects
Section titled “Workspace and projects”list_workspaces
Section titled “list_workspaces”Lists workspaces available to the current user.
Use when the AI client needs to know which workspaces exist before calling workspace-scoped tools.
Parameters: none
Example prompts:
- “List the Amethyst workspaces I can access”
- “Which workspaces do I have?”
list_projects
Section titled “list_projects”Lists projects in a workspace.
Use when a user needs project IDs or names before calling project-scoped tools.
| Parameter | Type | Required | Description |
|---|---|---|---|
workspaceId | string | Yes | Target workspace ID. |
Example prompts:
- “Show all projects in this workspace”
- “What Search Analytics projects do I have?”
list_bigquery
Section titled “list_bigquery”Lists all BigQuery configurations for a workspace, covering both Search Analytics and User Analytics.
| Parameter | Type | Required | Description |
|---|---|---|---|
organizationId | string | Yes | Target workspace ID. |
only | "sa" | "ua" | No | Filter to SA or UA only. When omitted, both are returned. |
Example prompts:
- “Show the BigQuery datasets configured in this workspace”
create_search_analytics_bigquery
Section titled “create_search_analytics_bigquery”Registers a Search Analytics BigQuery table configuration for a workspace.
| Parameter | Type | Required | Description |
|---|---|---|---|
projectID | string | Conditional | Google Cloud project ID for BigQuery. Required when manageType is SELF. |
datasetName | string | Conditional | BigQuery dataset name. Required when manageType is SELF. |
manageType | "SELF" | "JADE" | No | Default SELF. Use SELF when the user provides a GCP project/dataset. |
organizationId | string | Conditional | Workspace ID. Required unless projectId is provided. |
projectId | string | Conditional | Search Analytics Project ID (resolves organization automatically). |
Example prompts:
- “Connect my BigQuery dataset to Search Analytics”
- “Register BigQuery project my-gcp-project dataset search_data for SA”
create_user_analytics_bigquery
Section titled “create_user_analytics_bigquery”Registers a User Analytics BigQuery table configuration for a workspace.
| Parameter | Type | Required | Description |
|---|---|---|---|
projectID | string | Yes | Google Cloud project ID for BigQuery. |
datasetName | string | Yes | BigQuery dataset name. |
organizationId | string | Conditional | Workspace ID. Required unless projectId is provided. |
projectId | string | Conditional | User Analytics Project ID (resolves organization automatically). |
Example prompts:
- “Connect my BigQuery dataset to User Analytics”
- “Register BigQuery project my-gcp-project dataset ua_events for UA”
create_project
Section titled “create_project”Creates a new project (Index Worker, Search Analytics, or User Analytics).
| Parameter | Type | Required | Description |
|---|---|---|---|
organizationId | string | Yes | Workspace ID. |
name | string | Yes | Project name. |
kind | string | Yes | INDEX_WORKER, SEARCH_ANALYTICS, or USER_ANALYTICS. |
color | string | No | Hex color #RRGGBB (e.g. #4F46E5). |
description | string | No | Project description. |
bigQueryId | string | Conditional | BigQuery config ID. Required for SA and UA projects. |
keyEvents | string[] | No | UA only: key events to track. Default: ["purchase"]. |
Example prompts:
- “Create a new Search Analytics project called ‘Blog’”
- “Add an Index Worker project for monitoring sitemaps”
edit_project
Section titled “edit_project”Renames a project, changes its color, or updates its description. At least one of name, color, or description must be provided.
| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | Project ID to update. |
name | string | No | New project name. |
color | string | No | New color in #RRGGBB format. |
description | string | No | New description. |
organizationId | string | No | Workspace ID for building result path. |
Example prompts:
- “Rename this project to ‘Main Site’”
- “Change the project color to blue”
duplicate_project
Section titled “duplicate_project”Duplicates an existing project.
| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | Source Project ID. |
organizationId | string | No | Workspace ID for building the URL path. |
Example prompts:
- “Make a copy of this project”
delete_project
Section titled “delete_project”Deletes an entire project. Use only when the user explicitly requests deletion of a project container.
| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | Project ID to delete. |
Example prompts:
- “Delete the ‘Old Site’ project”
Dashboard
Section titled “Dashboard”list_dashboards
Section titled “list_dashboards”Lists dashboards for a workspace.
Use when a user asks which dashboards exist or wants to choose one.
| Parameter | Type | Required | Description |
|---|---|---|---|
organizationId | string | Yes | Workspace ID. |
Example prompts:
- “Show my dashboards”
- “Which dashboards are in this workspace?”
create_dashboard
Section titled “create_dashboard”Creates a new dashboard in a workspace.
| Parameter | Type | Required | Description |
|---|---|---|---|
organizationId | string | Yes | Workspace ID. |
name | string | Yes | Dashboard name. |
Example prompts:
- “Create a dashboard called ‘Weekly Overview‘“
edit_dashboard
Section titled “edit_dashboard”Renames or updates a dashboard’s description. At least one of name or description must be provided.
| Parameter | Type | Required | Description |
|---|---|---|---|
dashboardId | string | Yes | Dashboard ID. |
name | string | No | New dashboard name. |
description | string | No | New description. |
organizationId | string | No | Workspace ID for navigation links. |
Example prompts:
- “Rename this dashboard to ‘Monthly Report‘“
delete_dashboard
Section titled “delete_dashboard”Deletes a workspace dashboard. This operation is destructive.
| Parameter | Type | Required | Description |
|---|---|---|---|
dashboardId | string | Yes | Dashboard ID to delete. |
Example prompts:
- “Delete the ‘Test Dashboard‘“
create_dashboard_item
Section titled “create_dashboard_item”Adds a metric card to an existing dashboard.
| Parameter | Type | Required | Description |
|---|---|---|---|
dashboardId | string | Yes | Dashboard ID. |
type | string | Yes | Item type: IW_CRAWL, IW_INDEX, IW_NOT_INDEX, SA_CLICK, SA_IMP, SA_CTR, SA_RANK, SA_UNIQ_QUERY, SA_UNIQ_URL, UA_SESSION_COUNT, UA_UNIQUE_USER_COUNT, UA_CONVERSION_RATE, UA_SURF_RATE, UA_ENGAGEMENT_RATE, UA_CONVERSION_COUNT, UA_PAGE_VIEW_EVENT_COUNT. |
featureId | string | Yes | Feature ID (base64-encoded). Accepts IndexWorker, SearchAnalytics, UserAnalytics, or view IDs. |
Example prompts:
- “Add a clicks card to this dashboard”
- “Add an Index Worker crawl metric to the dashboard”
edit_dashboard_item
Section titled “edit_dashboard_item”Updates a dashboard item’s title, description, or linked feature. At least one of name, description, or featureId must be provided.
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Dashboard item ID. |
name | string | No | New item name. |
description | string | No | New description. |
featureId | string | No | New feature/view/job ID. |
Example prompts:
- “Rename this card to ‘Weekly Clicks‘“
delete_dashboard_item
Section titled “delete_dashboard_item”Removes a card or widget from a dashboard.
| Parameter | Type | Required | Description |
|---|---|---|---|
dashboardId | string | Yes | Dashboard ID containing the item. |
dashboardItemId | string | Yes | Dashboard item ID to delete. |
Example prompts:
- “Remove this metric from the dashboard”
Index Worker
Section titled “Index Worker”list_index_workers
Section titled “list_index_workers”Retrieves all Index Workers belonging to a specific Index Worker project.
| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | Index Worker project ID. |
Example prompts:
- “Show every Index Worker inside project X”
- “List the IW jobs in this project”
get_indexing_job_details
Section titled “get_indexing_job_details”Retrieves recent Index Worker jobs for a specific Index Worker, including per-task crawl/index status and Google coverage results.
| Parameter | Type | Required | Description |
|---|---|---|---|
indexWorkerId | string | Yes | Index Worker ID. |
jobId | string | No | Specific job ID. When provided, only this job is returned. |
jobsLimit | number | No | Max jobs to fetch (1–50). Default: 5. |
tasksLimit | number | No | Max tasks per job (1–2000). Default: 50. |
crawledOnly | boolean | No | Filter to crawled tasks only. |
indexedOnly | boolean | No | Filter to indexed tasks only. |
notIndexedOnly | boolean | No | Filter to non-indexed tasks only. |
Example prompts:
- “Show the latest job results for this Index Worker”
- “Check if the last crawl had any indexing errors”
get_index_worker_export_data
Section titled “get_index_worker_export_data”Prepares Index Worker export parameters for downloading trend or URL data as CSV, Excel, or JSON.
| Parameter | Type | Required | Description |
|---|---|---|---|
indexWorkerId | string | Yes | Index Worker ID (GraphQL global ID). |
exportTarget | string | Yes | trends (chart data) or urls (URL table). |
format | string | Yes | csv, excel, or json. Only csv allowed when exportTarget is trends. |
dateRange | object | No | { start?, end } in ISO-8601 UTC. start defaults to 2000-01-01. |
isComparing | boolean | No | Set true for comparison export. |
comparingDateRange | object | No | Comparison range. Enables comparison mode. |
Example prompts:
- “Export the trend CSV for this Index Worker”
- “Download the URL table as Excel”
create_index_worker
Section titled “create_index_worker”Creates an Index Worker with configurable fields matching the GUI form — URL source, schedule, filters, and more.
| Parameter | Type | Required | Description |
|---|---|---|---|
organizationId | string | Yes | Workspace ID. |
name | string | Yes | Index Worker name. |
urlType | string | Yes | SITEMAP, RSS, or MANUAL. |
projectId | string | No | Index Worker project ID (preferred when known). |
projectName | string | No | Project name (resolved within workspace). |
note | string | No | Optional note/description. |
propertyId | string | No | Search Console property ID. Required to execute. |
samplingCount | number | No | Sample size (1–2000). Default: 500. |
schedule | object | No | Schedule: { type } where type is run-once, not-set, daily, weekly, or custom. Default: not-set. |
sitemap | string | Conditional | Sitemap URL. Required when urlType is SITEMAP. |
rssFeed | string | Conditional | RSS feed URL. Required when urlType is RSS. |
rssFeedSamplingPeriod | number | Conditional | RSS sampling period: 0 (all), 1, 3, 7, 28, 365. Required when urlType is RSS. |
urls | string | string[] | Conditional | Manual URLs. Required when urlType is MANUAL. |
urlGroup | object | No | { op, patterns[] } — URL group filter with AND/OR operator. |
ignoreURLParameters | string | string[] | No | URL parameters to ignore. |
Example prompts:
- “Create a new Index Worker using the sitemap for example.com”
- “Set up a daily Index Worker for the RSS feed”
edit_index_worker
Section titled “edit_index_worker”Updates Index Worker settings such as name, note, sample size, and schedule.
| Parameter | Type | Required | Description |
|---|---|---|---|
organizationId | string | Yes | Workspace ID. |
indexWorkerId | string | No | Target Index Worker ID (preferred). |
indexWorkerName | string | No | Target Index Worker name. |
projectId | string | No | Index Worker project ID. |
projectName | string | No | Project name. |
name | string | No | New Index Worker name. |
note | string | No | New note. |
propertyId | string | No | Search Console property ID. |
urlType | string | No | SITEMAP, RSS, or MANUAL. |
samplingCount | number | No | New sample size (1–2000). |
schedule | object | No | Schedule update. Use not-set to pause. |
sitemap | string | Conditional | Sitemap URL (required when urlType is SITEMAP). |
rssFeed | string | Conditional | RSS feed URL (required when urlType is RSS). |
rssFeedSamplingPeriod | number | Conditional | RSS sampling period (required when urlType is RSS). |
urls | string | string[] | Conditional | Manual URLs (required when urlType is MANUAL). |
urlGroup | object | null | No | URL group filter. Set null to clear. |
ignoreURLParameters | string | string[] | No | URL parameters to ignore. |
Example prompts:
- “Pause this Index Worker’s schedule”
- “Change the sample size to 1000”
duplicate_index_worker
Section titled “duplicate_index_worker”Duplicates an existing Index Worker.
| Parameter | Type | Required | Description |
|---|---|---|---|
indexWorkerId | string | Yes | Source Index Worker ID. |
currentProjectId | string | Conditional | Current project ID (one of currentProjectId / targetProjectId required). |
targetProjectId | string | Conditional | Destination project ID. |
organizationId | string | No | Workspace ID hint. |
Example prompts:
- “Duplicate this Index Worker into another project”
delete_index_worker
Section titled “delete_index_worker”Deletes an Index Worker job. This is the default for ambiguous phrases like “delete IW”.
| Parameter | Type | Required | Description |
|---|---|---|---|
indexWorkerId | string | Yes | Index Worker ID to delete. |
Example prompts:
- “Delete this Index Worker”
move_index_worker_project
Section titled “move_index_worker_project”Moves an Index Worker job to another project.
| Parameter | Type | Required | Description |
|---|---|---|---|
indexWorkerId | string | Yes | Index Worker ID. |
targetProjectId | string | Yes | Destination project ID. |
Example prompts:
- “Move this Index Worker to the ‘Main Site’ project”
rerun_index_worker_job
Section titled “rerun_index_worker_job”Triggers a one-time rerun for an Index Worker.
| Parameter | Type | Required | Description |
|---|---|---|---|
indexWorkerId | string | Yes | Index Worker ID. |
projectId | string | No | Project ID for cache revalidation. |
Example prompts:
- “Rerun this Index Worker now”
Search Console and service accounts
Section titled “Search Console and service accounts”list_service_accounts
Section titled “list_service_accounts”Lists all service accounts registered for a workspace.
| Parameter | Type | Required | Description |
|---|---|---|---|
organizationId | string | Yes | Target workspace ID. |
Example prompts:
- “Which service accounts are registered?”
add_search_console_property
Section titled “add_search_console_property”Registers a Google Search Console property to a workspace so Index Workers can use it.
| Parameter | Type | Required | Description |
|---|---|---|---|
workspaceId | string | No | Workspace ID. |
property | string | No | Search Console property string (e.g. https://example.com/ or sc-domain:example.com). |
type | string | No | USER or SERVICE_ACCOUNT. |
serviceAccountId | string | Conditional | Required for SERVICE_ACCOUNT registrations. |
Example prompts:
- “Add a Search Console property”
- “Register sc-domain:example.com”
delete_search_console_property
Section titled “delete_search_console_property”Removes a registered Search Console property from the workspace.
| Parameter | Type | Required | Description |
|---|---|---|---|
workspaceId | string | No | Workspace ID. |
propertyId | string | No | Property ID to unregister. |
Example prompts:
- “Remove the Search Console property for example.com”
delete_service_account
Section titled “delete_service_account”Unregisters a service account from a workspace. Provide either serviceAccountId or both organizationId and serviceAccountEmail.
| Parameter | Type | Required | Description |
|---|---|---|---|
serviceAccountId | string | Conditional | Service account ID. |
serviceAccountEmail | string | Conditional | Service account email. |
organizationId | string | Conditional | Workspace ID. Required when using serviceAccountEmail. |
Example prompts:
- “Delete the service account for Index Worker”
Search Analytics
Section titled “Search Analytics”list_search_analytics_views
Section titled “list_search_analytics_views”Lists saved Search Analytics views for a project, including each view’s filter conditions and default period.
| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | Search Analytics project ID. |
Example prompts:
- “Show me the views in this Search Analytics project”
list_query_groups
Section titled “list_query_groups”Lists Query Groups for a Search Analytics project.
| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | Target project ID. |
Example prompts:
- “Show all Query Groups in this project”
get_search_analytics_aggregated_data
Section titled “get_search_analytics_aggregated_data”Fetches daily aggregated Search Analytics data for a project or a saved view.
Metrics include clicks, impressions, CTR, average rank, distinct queries, and distinct URLs.
| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | One of projectId / viewId | SA Project ID. |
viewId | string | One of projectId / viewId | SA View ID. |
movingAverage | string | Yes | Moving average window: none, 7d, 28d, both. |
dateRange | object | No | { start, end } in ISO-8601. |
comparingDateRange | object | No | Comparison time range in ISO-8601. Enables comparison mode. |
isComparing | boolean | No | Set true to retrieve comparison series. Default: false. |
limit | number | No | Row limit (1–1000). |
groupBy | string | No | QUERY_GROUP or URL_GROUP. |
timeGroupBy | string | No | DATE, WEEK, MONTH, AUTO. |
metrics | string[] | No | Metrics to include: CLICKS, IMPRESSIONS, CTR, AVERAGE_OF_RANK, DISTINCT_QUERIES, DISTINCT_URLS. |
Filter parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
query | string | No | Query filter value. |
queryFilterType | FilterEnum | No | Query filter operator. |
queryGroupIDs | string[] | No | Query group IDs. |
url | string | No | URL filter value. |
urlFilterType | FilterEnum | No | URL filter operator. |
urlGroupIDs | string[] | No | URL group IDs. |
devices | string[] | No | Device filter. |
countries | string[] | No | Country filter. |
searchTypes | string[] | No | WEB, IMAGE, VIDEO, NEWS, DISCOVER, GOOGLE_NEWS. Default: ["WEB"]. |
rawKinds | string[] | No | Search appearance kinds. |
isAnonymousQuery | boolean | No | Filter anonymous queries. |
FilterEnum values:
CONTAINS,NOT_CONTAINS,EQUALS,STARTS_WITH,ENDS_WITH,REGEX,NOT_REGEX,INCLUDE
Example prompts:
- “Show me the last 28 days of search performance”
- “Compare this month’s clicks vs last month”
- “Show Search Analytics trends grouped by URL Group”
get_search_analytics_raw_data
Section titled “get_search_analytics_raw_data”Fetches raw Search Analytics rows with per-query/per-URL breakdowns.
Use when precise numbers or detailed reasons behind changes are needed — do not infer those from aggregated data.
| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | Search Analytics Project ID. |
dateRange | object | No | { start, end } in ISO-8601 UTC. |
comparingDateRange | object | No | Comparison time range. Enables comparison mode. |
isComparing | boolean | No | Set true to retrieve comparing rows. |
limit | number | No | Page size (1–500). Default: 100. |
after | string | No | Pagination cursor. |
orderBy | object | No | { field, direction }. Fields: CLICKS, IMPRESSIONS, CTR, AVERAGE_OF_RANK, DISTINCT_URLS, DISTINCT_QUERIES, DATE, WEEK, MONTH. |
comparingOrderBy | object | No | Ordering for comparing rows. Includes *_DIFFERENCE fields. |
groupBy | string[] | No | QUERY, QUERY_GROUP, URL, URL_GROUP, DATE, WEEK, MONTH, SEARCH_TYPE, DEVICE, COUNTRY, IS_ANONYMIZED_QUERY, IS_ANONYMIZED_DISCOVER. |
metrics | string[] | No | Metrics to include in output rows. |
includeEdges | boolean | No | Include raw GraphQL connection edges. |
Filter and range parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
query | string | No | Query filter value. |
queryFilterType | FilterEnum | No | Query filter operator. |
queryGroupIDs | string[] | No | Query group IDs. |
url | string | No | URL filter value. |
urlFilterType | FilterEnum | No | URL filter operator. |
urlGroupIDs | string[] | No | URL group IDs. |
devices | string[] | No | Device filter. |
countries | string[] | No | Country filter. |
searchTypes | string[] | No | Default: ["WEB"]. |
rawKinds | string[] | No | Search appearance kinds. |
isAnonymousQuery | boolean | No | Filter anonymous queries. |
clicksRange | IntRange | No | { min?, max? } filter on clicks. |
impressionsRange | IntRange | No | { min?, max? } filter on impressions. |
ctrRange | FloatRange | No | { min?, max? } filter on CTR. |
avgOfRankRange | FloatRange | No | { min?, max? } filter on average rank. |
distinctQueriesRange | IntRange | No | { min?, max? } filter on distinct queries. |
distinctURLsRange | IntRange | No | { min?, max? } filter on distinct URLs. |
Example prompts:
- “Which queries had the most impressions last week?”
- “Show the top 20 URLs by clicks for this project”
create_search_analytics_view
Section titled “create_search_analytics_view”Creates a saved Search Analytics view with specified filters and conditions.
| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Conditional | SA Project ID (one of projectId / searchAnalyticsId required). |
searchAnalyticsId | string | Conditional | Search Analytics ID. |
name | string | Yes | View name. |
description | string | No | View description. |
dataDate | object | No | { type, dateRange? }. Types: LATEST, DAYS_7, DAYS_28, DAYS_90, DAYS_180, DAYS_365, DAYS_480, CUSTOM. |
rawDataGroupBy | string[] | No | RawData groupings. Default: ["QUERY", "QUERY_GROUP", "URL", "URL_GROUP"]. |
Filter parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
query | string | No | Query filter. |
queryFilterType | FilterEnum | No | Query filter operator. |
queryGroupIDs | string[] | No | Query group IDs. |
url | string | No | URL filter. |
urlFilterType | FilterEnum | No | URL filter operator. |
urlGroupIDs | string[] | No | URL group IDs. |
devices | string[] | No | DESKTOP, MOBILE, TABLET. |
countries | string[] | No | Country filter. |
searchTypes | string[] | No | Default: ["WEB"]. |
rawKinds | string[] | No | Search appearance kinds. |
isAnonymousQuery | boolean | No | Anonymous query filter. |
Example prompts:
- “Save the current filters as a Search Analytics view called ‘Mobile Only‘“
update_search_analytics_view
Section titled “update_search_analytics_view”Edits a saved Search Analytics view’s name, filters, or date range.
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Search Analytics View ID. |
name | string | No | New name. |
description | string | No | New description. |
dataDate | object | No | { type, dateRange? }. |
rawDataOrderBy | object | No | { field, direction }. |
rawDataGroupBy | string[] | No | RawData groupings. |
Filter parameters (nullable to clear)
| Parameter | Type | Required | Description |
|---|---|---|---|
query | string | null | No | Query filter. Set null to clear. |
queryFilterType | FilterEnum | null | No | Query filter operator. |
queryGroupIDs | string[] | null | No | Query group IDs. |
url | string | null | No | URL filter. |
urlFilterType | FilterEnum | null | No | URL filter operator. |
urlGroupIDs | string[] | null | No | URL group IDs. |
devices | string[] | null | No | Device filter. |
countries | string[] | null | No | Country filter. |
searchTypes | string[] | null | No | Search types. |
rawKinds | string[] | null | No | Search appearance kinds. |
isAnonymousQuery | boolean | null | No | Anonymous query filter. |
Example prompts:
- “Rename this view to ‘Desktop Traffic’”
- “Update the date range on this view”
delete_search_analytics_view
Section titled “delete_search_analytics_view”Deletes a saved Search Analytics view.
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | Yes | View ID to delete. |
Example prompts:
- “Delete this view”
create_search_analytics_query_group
Section titled “create_search_analytics_query_group”Creates a Query Group under a Search Analytics project.
| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Conditional | SA Project ID (one of projectId / searchAnalyticsId required). |
searchAnalyticsId | string | Conditional | Search Analytics ID. |
name | string | Yes | Group name. |
op | string | Yes | AND or OR. |
patterns | object[] | Yes | [{ type, pattern }]. Types: INCLUDES, NOT_INCLUDES, CONTAINS, NOT_CONTAINS, STARTS_WITH, ENDS_WITH, EQUALS, REGEX, NOT_REGEX. |
description | string | No | Group description. |
prepend | boolean | No | Insert at top of list. |
Example prompts:
- “Create a query group for branded keywords”
update_query_group
Section titled “update_query_group”Updates an existing Query Group’s name, description, operator, or patterns. At least one field must be provided.
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Query Group ID. |
name | string | No | New name. |
description | string | null | No | New description. |
op | string | No | AND or OR. |
patterns | object[] | No | [{ type, pattern }]. |
Example prompts:
- “Add new patterns to the ‘Brand’ query group”
update_query_group_order
Section titled “update_query_group_order”Updates the display order of Search Analytics Query Groups.
| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | SearchAnalyticsProject ID. |
ids | string[] | Yes | Ordered list of query group IDs. |
create_search_analytics_url_group
Section titled “create_search_analytics_url_group”Creates a URL Group under a Search Analytics project.
| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Conditional | SA Project ID (one of projectId / searchAnalyticsId required). |
searchAnalyticsId | string | Conditional | Search Analytics ID. |
name | string | Yes | Group name. |
op | string | Yes | AND or OR. |
patterns | object[] | Yes | [{ type, pattern }]. Types include CONTAINS, NOT_CONTAINS, STARTS_WITH, ENDS_WITH, EQUALS, REGEX, NOT_REGEX, SUB_DOMAIN, DEPTH1, DEPTH2, DEPTH3, INCLUDES, NOT_INCLUDES. |
description | string | No | Group description. |
prepend | boolean | No | Insert at top of list. |
Example prompts:
- “Create a URL group for all /blog/ pages”
update_search_analytics_url_group
Section titled “update_search_analytics_url_group”Updates an existing Search Analytics URL Group’s name, description, operator, or patterns. At least one field must be provided.
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | Yes | URL Group ID. |
name | string | No | New name. |
description | string | null | No | New description. |
op | string | No | AND or OR. |
patterns | object[] | No | [{ type, pattern }]. |
Example prompts:
- “Add a new pattern to the ‘News’ URL group”
delete_search_analytics_query_group
Section titled “delete_search_analytics_query_group”Deletes a Search Analytics Query Group.
| Parameter | Type | Required | Description |
|---|---|---|---|
queryGroupId | string | Yes | Query Group ID to delete. |
searchAnalyticsId | string | No | Parent Search Analytics ID. |
projectId | string | No | Project ID. |
name | string | No | Display name for confirmation. |
Example prompts:
- “Remove the ‘Temp’ query group”
delete_search_analytics_url_group
Section titled “delete_search_analytics_url_group”Deletes a Search Analytics URL Group.
| Parameter | Type | Required | Description |
|---|---|---|---|
urlGroupId | string | Yes | URL Group ID to delete. |
searchAnalyticsId | string | No | Parent Search Analytics ID. |
projectId | string | No | Project ID. |
name | string | No | Display name for confirmation. |
Example prompts:
- “Delete the ‘Old Blog’ URL group”
update_search_analytics_daily_export_setting
Section titled “update_search_analytics_daily_export_setting”Updates the Google Spreadsheet used for daily export in Search Analytics.
| Parameter | Type | Required | Description |
|---|---|---|---|
spreadsheetId | string | Yes | Spreadsheet ID from the Google Sheets URL. |
viewId | string | Conditional | SA View ID. Provide one of viewId, searchAnalyticsId, or projectId. |
searchAnalyticsId | string | Conditional | Search Analytics ID (default view). |
projectId | string | Conditional | SA Project ID (resolved to SA ID). |
Example prompts:
- “Set the daily export spreadsheet for this view”
User Analytics
Section titled “User Analytics”list_user_analytics_views
Section titled “list_user_analytics_views”Lists saved User Analytics views for a project, including each view’s filter conditions.
| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | User Analytics project ID. |
Example prompts:
- “Show me the views in this User Analytics project”
list_sessions
Section titled “list_sessions”Lists GA4 sessions for a User Analytics project with filter support.
Use when the AI client needs concrete session rows (not aggregated metrics).
| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | User Analytics Project ID. |
dateRange | object | No | { start, end } in ISO-8601. |
limit | number | No | Number of sessions to fetch (1–50). Default: 10. |
offset | number | No | Pagination offset. Default: 0. |
Filter parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
firstPageLocation | string | No | First page URL filter value. |
firstPageLocationFilterType | FilterEnum | No | Filter operator for first page URL. |
firstPageLocationUrlGroupIds | string[] | No | First page URL group IDs. |
firstPageTitle | string | No | First page title filter value. |
firstPageTitleFilterType | FilterEnum | No | Filter operator for first page title. |
secondPageLocation | string | No | Second page URL filter value. |
secondPageLocationFilterType | FilterEnum | No | Filter operator for second page URL. |
secondPageLocationUrlGroupIds | string[] | No | Second page URL group IDs. |
secondPageTitle | string | No | Second page title filter value. |
secondPageTitleFilterType | FilterEnum | No | Filter operator for second page title. |
visitedPage | string | No | Visited page filter value. |
visitedPageFilterType | FilterEnum | No | Filter operator for visited page. |
os | string[] | No | OS filter: ANDROID, IOS, WINDOWS, MACOS, LINUX, CHROME_OS, OTHER. |
devices | string[] | No | Device filter: MOBILE, TABLET, DESKTOP, SMART_TV, OTHER. |
browsers | string[] | No | Browser filter: CHROME, FIREFOX, SAFARI, EDGE, etc. |
sources | string[] | No | Traffic source filter. |
mediums | string[] | No | Traffic medium filter. |
campaigns | string[] | No | Campaign filter. |
campaignsFilterType | FilterEnum[] | No | Per-campaign filter operators (length must match campaigns). |
events | string[] | No | Include events. |
eventsNotIn | string[] | No | Exclude events. |
expVariantString | string[] | No | Experiment variant strings. |
defaultChannelGroup | string[] | No | Default channel groups. |
isSessionWithNavigation | boolean | No | Filter by navigation sessions. |
pageLocationCount | IntRange | No | { min?, max? } range for page location count. |
gaSessionNumber | IntRange | No | { min?, max? } range for GA session number. |
FilterEnum values:
CONTAINS,NOT_CONTAINS,STARTS_WITH,ENDS_WITH,EQUALS,REGEX,NOT_REGEX
Example prompts:
- “Show me recent sessions filtered by mobile devices”
- “List sessions from the last 7 days with purchase events”
get_user_analytics_aggregated_data
Section titled “get_user_analytics_aggregated_data”Returns daily aggregated User Analytics data (sessions, conversions, engagement, surf rate, etc.) for a project or a saved view.
| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | User Analytics project ID. |
dateRange | object | Yes | { start, end } in ISO-8601. |
movingAverage | string | Yes | Moving average window: none, 7d, 28d, both. |
viewId | string | No | UA View ID to reuse saved filters. |
comparingDateRange | object | No | Comparison time range. Enables comparison mode. |
isComparing | boolean | No | Set true for comparison series. Default: false. |
groupBy | string | No | FIRST_PAGE_LOCATION_URL_GROUP, SECOND_PAGE_LOCATION_URL_GROUP, FIRST_PAGE_TITLE, SECOND_PAGE_TITLE, SOURCE_MEDIUM, CAMPAIGN, DEFAULT_CHANNEL_GROUP, EXP_VARIANT_STRING. |
timeGroupBy | string | No | DATE, WEEK, MONTH, AUTO. |
metrics | string[] | No | SESSION_COUNT, UNIQUE_USER_COUNT, CONVERSION_RATE, CONVERSION_COUNT, SURF_RATE, SURF_COUNT, ENGAGEMENT_RATE, ENGAGEMENT_COUNT, PAGE_VIEW_EVENT_COUNT. |
Filter parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
firstPageLocation | string | No | First page URL filter. |
firstPageLocationFilterType | FilterEnum | No | First page URL filter operator. |
firstPageLocationURLGroupIDs | string[] | No | First page URL group IDs. |
secondPageLocation | string | No | Second page URL filter. |
secondPageLocationFilterType | FilterEnum | No | Second page URL filter operator. |
secondPageLocationURLGroupIDs | string[] | No | Second page URL group IDs. |
firstPageTitle | string | No | First page title filter. |
firstPageTitleFilterType | FilterEnum | No | First page title filter operator. |
secondPageTitle | string | No | Second page title filter. |
secondPageTitleFilterType | FilterEnum | No | Second page title filter operator. |
os | string[] | No | OS filter. |
devices | string[] | No | Device filter. |
browsers | string[] | No | Browser filter. |
sources | string[] | No | Traffic source filter. |
mediums | string[] | No | Traffic medium filter. |
campaigns | string[] | No | Campaign filter. |
campaignsFilterType | FilterEnum[] | No | Per-campaign filter operators. |
events | string[] | No | Include events. |
eventsNotIn | string[] | No | Exclude events. |
expVariantString | string[] | No | Experiment variant strings. |
defaultChannelGroup | string[] | No | Default channel groups. |
isSessionWithNavigation | boolean | No | Filter by navigation sessions. |
pageLocationCount | IntRange | No | { min?, max? } range. |
gaSessionNumber | IntRange | No | { min?, max? } range. |
visitedPage | string | No | Visited page filter. |
visitedPageFilterType | FilterEnum | No | Visited page filter operator. |
Example prompts:
- “Show UA session trends for the last 28 days”
- “Compare conversion rates this month vs last month”
get_user_analytics_raw_data
Section titled “get_user_analytics_raw_data”Fetches raw User Analytics session performance rows.
Use when the user asks for exact conversion/purchase counts or their increase/decrease reasons.
| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | User Analytics Project ID. |
dateRange | object | No | { start, end } in ISO-8601 UTC. |
comparingDateRange | object | No | Comparison time range. Enables comparison mode. |
isComparing | boolean | No | Set true to retrieve comparing rows. |
groupBy | string[] | No | Grouping dimensions: DATE, WEEK, MONTH, DEFAULT_CHANNEL_GROUP, SOURCE_MEDIUM, CAMPAIGN, FIRST_PAGE_LOCATION, FIRST_PAGE_LOCATION_URL_GROUP, FIRST_PAGE_TITLE, SECOND_PAGE_LOCATION, SECOND_PAGE_LOCATION_URL_GROUP, SECOND_PAGE_TITLE, DEVICE, OS, BROWSER, EXP_VARIANT_STRING. |
orderBy | object | No | { field, direction }. Fields: DATE, WEEK, MONTH, SESSION_COUNT, UNIQUE_USER_COUNT, FIRST_SESSION_RATE, CONVERSION_RATE, CONVERSION_COUNT, SURF_RATE, AVG_SESSION_DURATION, ENGAGEMENT_RATE, ENGAGEMENT_COUNT, AVG_PAGE_LOCATION_COUNT, PAGE_VIEW_EVENT_COUNT. |
limit | number | No | Row limit (1–500). Default: 100. |
offset | number | No | Pagination offset. Default: 0. |
metrics | string[] | No | Metrics to include in output rows. |
Filter parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
firstPageLocation | string | No | First page URL filter. |
firstPageLocationFilterType | FilterEnum | No | Filter operator. |
firstPageLocationUrlGroupIds | string[] | No | First page URL group IDs. |
firstPageTitle | string | No | First page title filter. |
firstPageTitleFilterType | FilterEnum | No | Filter operator. |
secondPageLocation | string | No | Second page URL filter. |
secondPageLocationFilterType | FilterEnum | No | Filter operator. |
secondPageLocationUrlGroupIds | string[] | No | Second page URL group IDs. |
secondPageTitle | string | No | Second page title filter. |
secondPageTitleFilterType | FilterEnum | No | Filter operator. |
visitedPage | string | No | Visited page filter. |
visitedPageFilterType | FilterEnum | No | Filter operator. |
os | string[] | No | OS filter. |
devices | string[] | No | Device filter. |
browsers | string[] | No | Browser filter. |
sources | string[] | No | Traffic source filter. |
mediums | string[] | No | Traffic medium filter. |
campaigns | string[] | No | Campaign filter. |
campaignsFilterType | FilterEnum[] | No | Per-campaign filter operators. |
events | string[] | No | Include events. |
eventsNotIn | string[] | No | Exclude events. |
expVariantString | string[] | No | Experiment variant strings. |
defaultChannelGroup | string[] | No | Default channel groups. |
isSessionWithNavigation | boolean | No | Filter by navigation sessions. |
pageLocationCount | IntRange | No | { min?, max? } range. |
gaSessionNumber | IntRange | No | { min?, max? } range. |
Example prompts:
- “Show me sessions grouped by channel for the last 7 days”
- “Why did purchases change compared to last month?”
get_user_analytics_key_events
Section titled “get_user_analytics_key_events”Fetches which key events (conversions) are configured for a User Analytics project.
| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | User Analytics project ID. |
Example prompts:
- “Which key events are set up in this UA project?”
get_session_detail
Section titled “get_session_detail”Gets GA4 session details for a specific user and session in User Analytics.
| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | Project ID. |
gaSessionId | number | Yes | GA4 session ID. |
userPseudoId | string | Yes | User pseudo ID (user ID). |
Example prompts:
- “Show me the details for this session”
create_user_analytics_view
Section titled “create_user_analytics_view”Creates a saved User Analytics view with specified filters and conditions.
| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Conditional | UA Project ID (one of projectId / userAnalyticsId required). |
userAnalyticsId | string | Conditional | User Analytics ID. |
name | string | Yes | View name. |
detailGroupBy | string[] | Yes | Grouping dimensions for detail table. |
detailOrderBy | object | Yes | { field, direction }. |
description | string | No | View description. |
defaultDateRange | object | No | { type, dateRange? }. Types: LATEST, DAYS_7, DAYS_28, DAYS_90, DAYS_180, DAYS_365, DAYS_480, CUSTOM, MONTHS_3, MONTHS_6, MONTHS_12, MONTHS_16. |
Filter parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
visitedPage | string | No | Visited page filter. |
visitedPageFilterType | FilterEnum | No | Filter operator. |
firstPageLocationURLGroupIDs | string[] | No | First page URL group IDs. |
firstPageLocationURL | string | No | First page URL filter. |
firstPageLocationFilterType | FilterEnum | No | Filter operator. |
firstPageTitle | string | No | First page title filter. |
firstPageTitleFilterType | FilterEnum | No | Filter operator. |
secondPageLocationURLGroupIDs | string[] | No | Second page URL group IDs. |
secondPageLocationURL | string | No | Second page URL filter. |
secondPageLocationFilterType | FilterEnum | No | Filter operator. |
secondPageTitle | string | No | Second page title filter. |
secondPageTitleFilterType | FilterEnum | No | Filter operator. |
devices | string[] | No | MOBILE, TABLET, DESKTOP, SMART_TV, OTHER. |
os | string[] | No | ANDROID, IOS, WINDOWS, MACOS, LINUX, CHROME_OS, OTHER. |
browsers | string[] | No | CHROME, FIREFOX, SAFARI, EDGE, etc. |
sources | string[] | No | Traffic source filter. |
mediums | string[] | No | Traffic medium filter. |
countries | string[] | No | Country filter. |
regions | string[] | No | Region filter. |
cities | string[] | No | City filter. |
campaigns | string[] | No | Campaign filter. |
campaignsFilterType | FilterEnum[] | No | Per-campaign filter operators. |
defaultChannelGroup | string[] | No | Default channel groups. |
events | string[] | No | Include events. |
eventsNotIn | string[] | No | Exclude events. |
expVariantString | string[] | No | Experiment variant strings. |
isSessionWithNavigation | boolean | No | Filter by navigation sessions. |
pageLocationCount | IntRange | No | { min?, max? } range. |
gaSessionNumber | IntRange | No | { min?, max? } range. |
Example prompts:
- “Save these filters as a UA view called ‘Organic Sessions‘“
update_user_analytics_view
Section titled “update_user_analytics_view”Edits a saved User Analytics view’s name, filters, or date range.
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | Yes | User Analytics View ID. |
name | string | No | New name. |
description | string | No | New description. |
defaultDateRange | object | No | { type, dateRange? }. |
detailGroupBy | string[] | No | Grouping dimensions. |
detailOrderBy | object | No | { field, direction }. |
Filter parameters (nullable to clear)
| Parameter | Type | Required | Description |
|---|---|---|---|
visitedPage | string | null | No | Visited page filter. |
visitedPageFilterType | FilterEnum | null | No | Filter operator. |
firstPageLocationURLGroupIDs | string[] | null | No | First page URL group IDs. |
firstPageLocationURL | string | null | No | First page URL filter. |
firstPageLocationFilterType | FilterEnum | null | No | Filter operator. |
firstPageTitle | string | null | No | First page title filter. |
firstPageTitleFilterType | FilterEnum | null | No | Filter operator. |
secondPageLocationURLGroupIDs | string[] | null | No | Second page URL group IDs. |
secondPageLocationURL | string | null | No | Second page URL filter. |
secondPageLocationFilterType | FilterEnum | null | No | Filter operator. |
secondPageTitle | string | null | No | Second page title filter. |
secondPageTitleFilterType | FilterEnum | null | No | Filter operator. |
devices | string[] | null | No | Device filter. |
os | string[] | null | No | OS filter. |
browsers | string[] | null | No | Browser filter. |
sources | string[] | null | No | Traffic source filter. |
mediums | string[] | null | No | Traffic medium filter. |
countries | string[] | null | No | Country filter. |
regions | string[] | null | No | Region filter. |
cities | string[] | null | No | City filter. |
campaigns | string[] | null | No | Campaign filter. |
campaignsFilterType | FilterEnum[] | null | No | Per-campaign filter operators. |
defaultChannelGroup | string[] | null | No | Default channel groups. |
events | string[] | null | No | Include events. |
eventsNotIn | string[] | null | No | Exclude events. |
expVariantString | string[] | null | No | Experiment variant strings. |
isSessionWithNavigation | boolean | null | No | Navigation sessions filter. |
pageLocationCount | IntRange | null | No | Page location count range. |
gaSessionNumber | IntRange | null | No | GA session number range. |
Example prompts:
- “Add a device filter to this view”
delete_user_analytics_view
Section titled “delete_user_analytics_view”Deletes a saved User Analytics view.
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | Yes | View ID to delete. |
Example prompts:
- “Delete this UA view”
create_user_analytics_url_group
Section titled “create_user_analytics_url_group”Creates a URL Group under a User Analytics project.
| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Conditional | UA Project ID (one of projectId / userAnalyticsId required). |
userAnalyticsId | string | Conditional | User Analytics ID. |
name | string | Yes | Group name. |
op | string | Yes | AND or OR. |
patterns | object[] | Yes | [{ type, pattern }]. |
description | string | No | Group description. |
prepend | boolean | No | Insert at top of list. |
Example prompts:
- “Create a URL group for /products/ pages”
update_user_analytics_url_group
Section titled “update_user_analytics_url_group”Updates an existing User Analytics URL Group’s name, description, operator, or patterns. At least one field must be provided.
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | Yes | URL Group ID. |
name | string | No | New name. |
description | string | null | No | New description. |
op | string | No | AND or OR. |
patterns | object[] | No | [{ type, pattern }]. |
Example prompts:
- “Update the patterns for this URL group”
delete_user_analytics_url_group
Section titled “delete_user_analytics_url_group”Deletes a User Analytics URL Group.
| Parameter | Type | Required | Description |
|---|---|---|---|
urlGroupId | string | Yes | URL Group ID to delete. |
userAnalyticsId | string | No | Parent User Analytics ID. |
projectId | string | No | Project ID. |
name | string | No | Display name for confirmation. |
Example prompts:
- “Remove this URL group”
update_user_analytics_key_events
Section titled “update_user_analytics_key_events”Sets which events are treated as key events (conversions) for a User Analytics project. This replaces the entire key events list.
| Parameter | Type | Required | Description |
|---|---|---|---|
keyEvents | string[] | Yes | Event names (e.g. ["purchase", "sign_up"]). Replaces the entire list. |
userAnalyticsId | string | Conditional | User Analytics node ID. Required unless projectId is provided. |
projectId | string | Conditional | User Analytics Project ID. Required unless userAnalyticsId is provided. |
Example prompts:
- “Set purchase and sign_up as key events”
- “Change the key events to only purchase”
URL Groups (shared)
Section titled “URL Groups (shared)”These tools work across both Search Analytics and User Analytics projects.
list_url_groups
Section titled “list_url_groups”Lists URL Groups for a project (works with both Search Analytics and User Analytics).
| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | Target project ID. |
Example prompts:
- “Show URL Groups for this project”
update_url_group_order
Section titled “update_url_group_order”Updates the display order of URL Groups (works with both Search Analytics and User Analytics).
| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | SA or UA project ID. |
ids | string[] | Yes | Ordered list of URL group IDs. |
target | string | No | sa or ua. |
Notifications
Section titled “Notifications”list_notifications
Section titled “list_notifications”Lists inbox notifications for the authenticated user.
| Parameter | Type | Required | Description |
|---|---|---|---|
workspaceId | string | Yes | Workspace ID to scope notifications. |
limit | number | No | Number of notifications to fetch (1–50). Default: 10. |
after | string | No | Pagination cursor. |
unread | boolean | No | When true, fetch only unread notifications. |
archived | boolean | No | Filter by archived state. |
type | string | No | Filter by type: ANNOUNCEMENT, REPORT, ERROR, ANOMALY_DETECTED, NEW_DATA. |
severity | string | No | Filter by severity: HIGH, MIDDLE, LOW. |
Example prompts:
- “Show my latest notifications”
- “Are there any unread notifications?”