This document provides a complete reference of all MCP tools available in the Piwik PRO MCP Server.
tools_parameters_get(tool_name)- Get JSON schema for any tool's parameters
apps_list(limit, offset, search)- List all apps with filtering and paginationapps_get(app_id)- Get detailed information about a specific appapps_create(attributes)- Create a new app using JSON attributesapps_update(app_id, attributes)- Update existing app using JSON attributes
analytics_annotations_list(app_id, date_from, date_to, source, limit, offset)- List annotations for an app; supports user and system annotations. Usesourceto filter: "all", "user", or "system".analytics_annotations_get(annotation_id, app_id)- Get a specific user annotation by IDanalytics_annotations_create(app_id, content, date, visibility)- Create a user annotation (default visibility is "private")analytics_annotations_update(annotation_id, app_id, content, date, visibility)- Update an existing user annotation (default visibility is "private")analytics_annotations_delete(annotation_id, app_id)- Delete a user annotation by ID
analytics_goals_list(website_id, limit, offset)- List all goals for a website with paginationanalytics_goals_get(goal_id, website_id)- Get detailed information about a specific goalanalytics_goals_create(website_id, name, trigger, revenue, description?, pattern_type?, pattern?, allow_multiple?, case_sensitive?)- Create a new goal. Supports triggers: url, title, event_name, event_category, event_action, file, external_website, manually. For non-manual triggers, pattern_type and pattern are required.analytics_goals_update(goal_id, website_id, name, trigger, revenue, description?, pattern_type?, pattern?, allow_multiple?, case_sensitive?)- Update an existing goal. Required fields: name, trigger, revenue, website_id. For non-manual triggers, pattern_type and pattern are required.
analytics_custom_dimensions_list(website_id, scope?, limit, offset)- List custom dimensions with optional scope filter. When scope is None, returns both standard and product dimensions separately. Supports filtering by "session", "event", or "product".analytics_custom_dimensions_get(dimension_id, website_id, scope)- Get a specific custom dimension by ID. Scope parameter ("session", "event", or "product") is required for API routing.analytics_custom_dimensions_create(website_id, name, scope, description?, slot?, active?, case_sensitive?, extractions?)- Create a custom dimension with specified scopeanalytics_custom_dimensions_update(dimension_id, website_id, name, scope, description?, slot?, active?, case_sensitive?, extractions?)- Update an existing custom dimensionanalytics_custom_dimensions_get_slots(website_id)- Get slot availability statistics for all dimension types (session, event, and product). Returns available, used, and remaining slots for each scope.
analytics_query_execute(website_id, columns, date_from, date_to, filters?, offset?, limit?, metric_filters?, order_by?, order_direction?)- Execute analytics queries with metrics, dimensions, filters, and flexible date ranges. Supports both absolute dates (YYYY-MM-DD) and relative dates (today, yesterday, last_7_days, etc.)analytics_dimensions_list(website_id)- List all available dimensions for a website, excluding deprecated dimensionsanalytics_metrics_list(website_id)- List all available metrics for a website, separating standard metrics from calculated metricsanalytics_dimensions_details_list(website_id, dimensions)- Get detailed information about specific dimensions including data types, available transformations, and enum values where applicableanalytics_metrics_details_list(website_id, metrics)- Get detailed information about specific metrics including data types and available transformations
container_settings_get_installation_code(app_id)- Get installation code snippet for embedding the containercontainer_settings_list(app_id)- Get app container settings (JSON:API list with pagination)
tags_list(app_id, limit, offset, filters)- List tagstags_get(app_id, tag_id)- Get specific tag detailstags_create(app_id, attributes)- Create new tag using JSON attributestags_update(app_id, tag_id, attributes)- Update existing tag using JSON attributestags_delete(app_id, tag_id)- Delete tag (irreversible)tags_copy(app_id, tag_id, target_app_id?, name?, with_triggers=false)- Copy a tag within the same app or to another app. Supports optional rename and copying attached triggers (setwith_triggers=true).tags_list_triggers(app_id, tag_id, limit, offset, sort, name, trigger_type)- List triggers attached to a tag
triggers_list(app_id, limit, offset, filters)- List triggerstriggers_get(app_id, trigger_id)- Get specific trigger detailstriggers_create(app_id, attributes)- Create new trigger using JSON attributestriggers_copy(app_id, trigger_id, target_app_id?, name?)- Copy a trigger within the same app to another app. Supports optional rename.triggers_list_tags(app_id, trigger_id, limit, offset, sort, name, is_active, template, consent_type, is_prioritized)- List tags assigned to a trigger
variables_list(app_id, limit, offset, filters)- List variablesvariables_get(app_id, variable_id)- Get specific variable detailsvariables_create(app_id, attributes)- Create new variable using JSON attributesvariables_update(app_id, variable_id, attributes)- Update an existing variable using JSON attributesvariables_copy(app_id, variable_id, target_app_id?, name?)- Copy a variable within the same app or to another app. Supports optional rename.
Tag Templates:
adroll- AdRoll pixel for remarketing campaignsbing_ads- Microsoft Universal Event Tracking (Bing Ads)cookie_information_cmp_integration- Cookie Information consent popup integrationcrazy_egg- Crazy Egg heatmap tracking scriptcustom_content- Contextual content injection (banners, info boxes, ads)custom_popup- Custom popup display for marketing campaignscustom_tag- Flexible asynchronous tag for custom HTML/JavaScript/CSS code injectiondoubleclick_floodlight- DoubleClick Floodlight conversion trackingecommerce_add_to_cart- E-commerce add to cart trackingecommerce_cart_update- E-commerce cart update trackingecommerce_order- E-commerce order trackingecommerce_product_detail_view- E-commerce product detail view trackingecommerce_remove_from_cart- E-commerce remove from cart trackingfacebook_retargeting_pixel- Facebook/Meta retargeting pixelgoogle_adwords- Google Ads conversion trackinggoogle_analytics- Google Analytics trackingheatmaps- Piwik PRO heatmap trackinghot_jar- Hotjar behavior analyticshub_spot- HubSpot tracking codelinkedin- LinkedIn Insight Tagmarketo- Marketo Munchkin trackingmautic- Mautic marketing automation trackingpiwik- Piwik PRO analytics tagpiwik_custom_dimension- Piwik PRO custom dimension trackingpiwik_event- Piwik PRO event trackingpiwik_goal_conversion- Piwik PRO goal conversion trackingpiwik_virtual_page_view- Piwik PRO virtual page view trackingqualaroo- Qualaroo survey and feedbacksales_manago- SALESmanago marketing automationsalesforce_pardot- Salesforce Pardot trackingvideo_html5- HTML5 video trackingvideo_youtube- YouTube video tracking
Trigger Templates:
capturing_click- Capturing click event triggerscdp_audience_detection- CDP audience detection triggersclick- Click event triggers with element targeting and condition filteringdebounced_history- Debounced history change triggersdom_ready- DOM ready event triggerselement_presence- Element presence detection triggersevent- Custom event triggersform_submission- Form submission triggershistory- History change triggersleave_content- Leave content/page boundary triggerspage_load- Page load triggerspage_scroll- Page scroll depth triggerspage_view- Page view triggers with URL pattern matchingtime_on_website- Time on website triggerstrigger_group- Trigger group (combine multiple triggers)
Variable Templates:
constant- Static value variables for reusable constants across tagscookie- Read values from cookiescustom_javascript- Dynamic variables using custom JavaScript code executiondata_layer- Read values from data layer objects for enhanced tracking datadocument- Extract values from the document objectdom_element- Extract values from DOM elements using CSS selectors or XPathlookup_table- Map input values to output values using a lookup tablerandom- Generate random numeric valuesurl- Extract parts of the current URL
templates_list_tags()- List available tag templatestemplates_get_tag(template_name)- Get detailed documentation for a tag templatetemplates_list_triggers()- List available trigger templatestemplates_get_trigger(template_name)- Get detailed documentation for a trigger templatetemplates_list_variables()- List available variable templatestemplates_get_variable(template_name)- Get detailed documentation for a variable template
versions_list(app_id, limit, offset)- List all versionsversions_get_draft(app_id)- Get current draft versionversions_get_published(app_id)- Get published/live versionversions_publish_draft(app_id)- Publish draft to make it live
audiences_list(app_id)- List all audiences for an appaudiences_get(app_id, audience_id)- Get detailed audience informationaudiences_create(app_id, attributes)- Create new audience using JSON attributesaudiences_update(app_id, audience_id, attributes)- Update existing audience using JSON attributesactivations_attributes_list(app_id)- List all available CDP attributes for audience creation
tracker_settings_global_get()- Get raw global tracker settings used as defaults across appstracker_settings_global_update(attributes)- Update global tracker settings using JSON attributestracker_settings_app_get(app_id, detailed?)- Get effective tracker settings for an app. Returns resolvedsettings; whendetailed=true, also includes rawapp_settingsandglobal_settingstracker_settings_app_update(app_id, attributes)- Update app tracker settings using JSON attributestracker_settings_app_delete(app_id, setting)- Delete a specific app-level tracker setting override so the effective value can fall back to global settings