Connectors · Observability & analytics
Matomo MCP server for AI agents.
actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to Matomo and the rest of your systems. It gives your agent 620 Matomo actions (458 reads, 126 writes and 36 that wait for a confirmation) and holds the Matomo credential itself, so the agent never does. It paces Matomo's limits and records every call.
100,000 free calls a month. No card, no email, no password: press Start a free sandbox on the next screen and keep the key it shows you.
claude mcp add --transport http actionlake https://connect.actionlake.com/mcpdo { action: "matomo.users_manager.get_users", intent: "check which Matomo account is connected"}# Users manager: get users · read · 1 upstream call- 620actionsin one signed file
- 458readlook, never change
- 126writecreate and update
- 36wait for a yesdestructive, confirmed first
Set up
Connect Matomo in three steps.
- 01
Add actionlake to Claude.
Run the command once in Claude Code; its consent page can create a free sandbox: 100,000 calls a month, no card. In the Claude app, add a custom connector with the URL below and paste your key on the consent page. Creating a new sandbox from the Claude app is not yet tested by us.
https://connect.actionlake.com/mcp - 02
Connect Matomo.
API key. No consent screen: your agent can connect it for you, but the key then passes through your chat. To keep it out of the model's context, paste it in the console instead. actionlake stores what you paste write-only, sealed under your tenant's key.
token_authMatomo personal auth token (token_auth)hostWhere your Matomo lives: your host
account { op: "connections.requirements", service: "matomo" } # free: exactly what to paste, and what is found for you - 03
Make the first call. Check before a write.
Ask in plain words; Claude picks the action. Before anything changes,
checkvalidates the call and prices it, for free.do { action: "matomo.users_manager.get_users" }# users manager: get users · read · 1 upstream callcheck { action: "matomo.users_manager.add_user", input: { … } }# free: inputs, permissions, cost and confirmations, nothing sent
Matomo at a glance
- Sign-in
- API key. No consent screen: your agent can connect it for you, but the key then passes through your chat. To keep it out of the model's context, paste it in the console instead.
- You provide
token_auth- Setup fields
host- Limits we pace to
- 10 calls a second, per connection
- API covered
- Matomo Reporting API (HTTP index.php?module=API), Matomo 5.4+ for bearer-header auth, at your Matomo instance's API base URL, which you enter when connecting
- Built from
- Matomo's documentation, read 23 October 2026developer.matomo.orgdeveloper.matomo.org
- Service file
- Version 1.0.0, signed (Ed25519)
- Cached reads
- 457 of 458 reads, for up to 5 minutes; a write clears what it affects
- Shared entities
- 2, so ask can line Matomo up with your other systems
- Data
- Processed and stored in Sydney, Australia. No US region yet
Capabilities
What an AI agent can do in Matomo.
620 actions in 72 areas. Every one carries its effect, so a key can allow the reads and hold the rest.
- 458readlook, never change
- 126writecreate and update
- 36destructivewait for a confirmation
Sites manager
5339 read · 13 write · 1 destructive
Sites manager: add site · Sites manager: add site alias urls · Sites manager: get all sites · Sites manager: get javascript tag
Tag manager
4724 read · 18 write · 5 destructive
Tag manager: add container · Tag manager: add container tag · Tag manager: add container trigger · Tag manager: add container variable
Crash analytics
3229 read · 3 write · 0 destructive
Crash analytics: merge crashes · Crash analytics: get · Crash analytics: get all crash messages · Crash analytics: get all crashes
Heatmap session recording
3216 read · 11 write · 5 destructive
Heatmap session recording: add heatmap · Heatmap session recording: add session recording · Heatmap session recording: duplicate heatmap · Heatmap session recording: get heatmaps
Users manager
3218 read · 12 write · 2 destructive
Users manager: get users · Users manager: add user · Users manager: get user · Users manager: update user
Form analytics
2621 read · 4 write · 1 destructive
Form analytics: add form · Form analytics: get forms · Form analytics: archive form · Form analytics: get
Referrers
2323 read · 0 write · 0 destructive
Referrers: get · Referrers: get ai assistants · Referrers: get all · Referrers: get campaigns
Custom reports
1910 read · 7 write · 2 destructive
Custom reports: add custom metric · Custom reports: add custom report · Custom reports: duplicate custom report · Custom reports: get configured reports
64 more areas · 356 actions
- Funnels 19
- Ab testing 18
- Actions 18
- API 17
- Goals 15
- Media analytics 15
- Mobile messaging 12
- Search engine keywords performance 12
- Bot tracking 11
- Marketing campaigns reporting 11
- Visits summary 10
- Events 9
- Languages manager 9
- Segment editor 9
- Devices detection 8
- Oauth2 8
- User country 8
- Annotations 7
- Custom alerts 7
- Custom dimensions 7
- Advertising conversion export 6
- Live 6
- Login ldap 6
- Privacy manager 6
- Scheduled reports 6
- Dashboard 5
- Insights 5
- Multi channel conversion attribution 5
- Log viewer 4
- Open API docs 4
- Transitions 4
- Users flow 4
- Visitor interest 4
- Activity log 3
- API reference 3
- Cohorts 3
- Connect accounts 3
- Core admin home 3
- Custom translations 3
- Custom variables 3
- Feedback 3
- Multi sites 3
- Roll up reporting 3
- Tour 3
- Visit time 3
- Contents 2
- JS tracker install check 2
- Marketplace 2
- Overlay 2
- Resolution 2
- User language 2
- AI agents 1
- Bandwidth 1
- Custom JS tracker 1
- Device plugins 1
- Github analytics 1
- Login 1
- Page performance 1
- Provider 1
- Seo 1
- Treemap visualization 1
- Two factor auth 1
- User id 1
- Visit frequency 1
Top actions
The Matomo API, shaped for agents.
The ids your agent types, what each does, and the one name it shares with other systems. 23 of Matomo's 25 action names are shared with at least one other connector, so an agent learns them once.
| Action | What it does | Effect | Same name in |
|---|---|---|---|
matomo.users_manager.get_usersUsers manager: get users | Returns users visible to the current requester. | read | identity.user.list474 connectors |
matomo.users_manager.add_userUsers manager: add user | Creates a new user account. | write | identity.user.create262 connectors |
matomo.users_manager.delete_userUsers manager: delete user | Deletes a user account and all of its access assignments. | destructive | identity.user.delete253 connectors |
matomo.scheduled_reports.get_reportsScheduled reports: get reports | Returns scheduled reports that match the supplied filters. | read | analytics.report.list37 connectors |
matomo.scheduled_reports.add_reportScheduled reports: add report | Creates and schedules a new report. | write | analytics.report.create27 connectors |
matomo.segment_editor.get_allSegment editor: get all | Returns all stored segments. | read | analytics.segment.list17 connectors |
matomo.ab_testing.add_experimentAb testing: add experiment | Creates a new experiment with variations, targeting rules, and success metrics. | write | analytics.experiment.create12 connectors |
matomo.ab_testing.get_all_experimentsAb testing: get all experiments | Returns all experiments configured for a site. | read | analytics.experiment.list12 connectors |
matomo.segment_editor.addSegment editor: add | Adds a new stored segment. | write | analytics.segment.create10 connectors |
matomo.funnels.get_all_activated_funnels_for_siteFunnels: get all activated funnels for site | Returns all activated funnels for a site. | read | analytics.funnel.list2 connectors |
matomo.funnels.get_funnelFunnels: get funnel | Returns a funnel definition by funnel ID. | read | this connector |
matomo.goals.add_goalGoals: add goal | Creates a goal for a website. | write | this connector |
Try it
Prompts to paste into Claude.
Each one names the Matomo actions it will call, so you know what it reads and what it changes before you send it.
- Readread
Who has access in Matomo? List every user and their role.
calls
matomo.users_manager.get_users - Writewrite
Users manager: add user in Matomo. Show me exactly what you will send before you save it.
calls
matomo.users_manager.add_user
Governance for Matomo
Destructive actions wait for a yes.
36 Matomo actions are destructive. The first 10:
- Users manager: delete user
matomo.users_manager.delete_user - Scheduled reports: delete report
matomo.scheduled_reports.delete_report - Segment editor: delete
matomo.segment_editor.delete - Ab testing: delete experiment
matomo.ab_testing.delete_experiment - Funnels: delete non goal funnel
matomo.funnels.delete_non_goal_funnel - Goals: delete goal
matomo.goals.delete_goal - Annotations: delete
matomo.annotations.delete - OAuth2: delete client
matomo.oauth2.delete_client - OAuth2: rotate secret
matomo.oauth2.rotate_secret - Annotations: delete all
matomo.annotations.delete_all
A destructive action runs only with confirm: true. Under the human policy the agent cannot confirm for itself: the run stops until a named person approves, in the console or from a signed link in an email. The cap on a key is refused before the call is sent, never after.
Users manager: delete user?
intent: the user asked me to users manager: delete user
account { op: "keys.create", name: "matomo-agent", allowed_actions: ["matomo.*"], cap_calls: 2000, confirm_policy: "human_for_writes", approval_rules: [ { match: "matomo.users_manager.delete_user", approver: "[email protected]" }, { match: "matomo.scheduled_reports.delete_report", approver: "[email protected]" }, { match: "matomo.segment_editor.delete", approver: "[email protected]" } ]}Cost
What Matomo costs on actionlake.
Every Matomo action is one upstream call, the only thing actionlake bills. Searching, check, cost, account and any call Matomo refused with 401, 403, 429 or a 5xx are free. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.
- 1upstream call per actionall 620 Matomo actions
- 620actions pageeach page of a long list is one call
- 457reads can be cacheda cache hit costs nothing
- 100,000calls a month, freepaid plans from US$49 a month for 250,000
Action index
Every Matomo action.
620 actions by area: the id your agent calls, what it does, and its effect.
Sites manager53
matomo.sites_manager.add_siteSites manager: add sitewritematomo.sites_manager.add_site_alias_urlsSites manager: add site alias urlswritematomo.sites_manager.get_all_sitesSites manager: get all sitesreadmatomo.sites_manager.get_javascript_tagSites manager: get javascript tagreadmatomo.sites_manager.delete_siteSites manager: delete sitedestructivematomo.sites_manager.get_all_sites_idSites manager: get all sites idread- and 47 more in this area
Tag manager47
matomo.tag_manager.add_containerTag manager: add containerwritematomo.tag_manager.add_container_tagTag manager: add container tagwritematomo.tag_manager.add_container_triggerTag manager: add container triggerwritematomo.tag_manager.add_container_variableTag manager: add container variablewritematomo.tag_manager.change_debug_urlTag manager: change debug urlwritematomo.tag_manager.create_container_versionTag manager: create container versionwrite- and 41 more in this area
Crash analytics32
matomo.crash_analytics.getCrash analytics: getreadmatomo.crash_analytics.get_all_crash_messagesCrash analytics: get all crash messagesreadmatomo.crash_analytics.get_all_crashesCrash analytics: get all crashesreadmatomo.crash_analytics.merge_crashesCrash analytics: merge crasheswritematomo.crash_analytics.get_crash_groupsCrash analytics: get crash groupsreadmatomo.crash_analytics.get_crash_messagesCrash analytics: get crash messagesread- and 26 more in this area
Heatmap session recording32
matomo.heatmap_session_recording.add_heatmapHeatmap session recording: add heatmapwritematomo.heatmap_session_recording.add_session_recordingHeatmap session recording: add session recordingwritematomo.heatmap_session_recording.duplicate_heatmapHeatmap session recording: duplicate heatmapwritematomo.heatmap_session_recording.get_heatmapsHeatmap session recording: get heatmapsreadmatomo.heatmap_session_recording.delete_heatmapHeatmap session recording: delete heatmapdestructivematomo.heatmap_session_recording.delete_heatmap_screenshotHeatmap session recording: delete heatmap screenshotdestructive- and 26 more in this area
Users manager32
matomo.users_manager.add_userUsers manager: add userwritematomo.users_manager.get_userUsers manager: get userreadmatomo.users_manager.get_usersUsers manager: get usersreadmatomo.users_manager.update_userUsers manager: update userwritematomo.users_manager.add_capabilitiesUsers manager: add capabilitieswritematomo.users_manager.create_app_specific_token_authUsers manager: create app specific token authwrite- and 26 more in this area
Form analytics26
matomo.form_analytics.add_formForm analytics: add formwritematomo.form_analytics.archive_formForm analytics: archive formwritematomo.form_analytics.getForm analytics: getreadmatomo.form_analytics.get_formsForm analytics: get formsreadmatomo.form_analytics.delete_formForm analytics: delete formdestructivematomo.form_analytics.get_all_goalsForm analytics: get all goalsread- and 20 more in this area
Referrers23
matomo.referrers.getReferrers: getreadmatomo.referrers.get_ai_assistantsReferrers: get ai assistantsreadmatomo.referrers.get_allReferrers: get allreadmatomo.referrers.get_campaignsReferrers: get campaignsreadmatomo.referrers.get_entry_page_titles_for_ai_assistantReferrers: get entry page titles for ai assistantreadmatomo.referrers.get_entry_page_urls_for_ai_assistantReferrers: get entry page urls for ai assistantread- and 17 more in this area
Custom reports19
matomo.custom_reports.add_custom_metricCustom reports: add custom metricwritematomo.custom_reports.add_custom_reportCustom reports: add custom reportwritematomo.custom_reports.duplicate_custom_reportCustom reports: duplicate custom reportwritematomo.custom_reports.get_configured_reportsCustom reports: get configured reportsreadmatomo.custom_reports.delete_custom_metricCustom reports: delete custom metricdestructivematomo.custom_reports.delete_custom_reportCustom reports: delete custom reportdestructive- and 13 more in this area
Funnels19
matomo.funnels.delete_non_goal_funnelFunnels: delete non goal funneldestructivematomo.funnels.get_all_activated_funnels_for_siteFunnels: get all activated funnels for sitereadmatomo.funnels.get_funnelFunnels: get funnelreadmatomo.funnels.save_non_goal_funnelFunnels: save non goal funnelwritematomo.funnels.delete_goal_funnelFunnels: delete goal funneldestructivematomo.funnels.get_available_pattern_matchesFunnels: get available pattern matchesread- and 13 more in this area
Ab testing18
matomo.ab_testing.add_experimentAb testing: add experimentwritematomo.ab_testing.get_all_experimentsAb testing: get all experimentsreadmatomo.ab_testing.get_experimentAb testing: get experimentreadmatomo.ab_testing.update_experimentAb testing: update experimentwritematomo.ab_testing.archive_experimentAb testing: archive experimentwritematomo.ab_testing.delete_experimentAb testing: delete experimentdestructive- and 12 more in this area
Actions18
matomo.actions.getActions: getreadmatomo.actions.get_downloadActions: get downloadreadmatomo.actions.get_downloadsActions: get downloadsreadmatomo.actions.get_entry_page_titlesActions: get entry page titlesreadmatomo.actions.get_entry_page_urlsActions: get entry page urlsreadmatomo.actions.get_exit_page_titlesActions: get exit page titlesread- and 12 more in this area
API17
matomo.api.getAPI: getreadmatomo.api.get_bulk_requestAPI: get bulk requestreadmatomo.api.get_metadataAPI: get metadatareadmatomo.api.get_processed_reportAPI: get processed reportreadmatomo.api.get_glossary_metricsAPI: get glossary metricsreadmatomo.api.get_glossary_reportsAPI: get glossary reportsread- and 11 more in this area
Goals15
matomo.goals.add_goalGoals: add goalwritematomo.goals.dismiss_recommended_goalGoals: dismiss recommended goalwritematomo.goals.get_goalsGoals: get goalsreadmatomo.goals.run_goal_recommendation_scanGoals: run goal recommendation scanwritematomo.goals.delete_goalGoals: delete goaldestructivematomo.goals.dismiss_recommended_goalsGoals: dismiss recommended goalswrite- and 9 more in this area
Media analytics15
matomo.media_analytics.getMedia analytics: getreadmatomo.media_analytics.get_audio_hoursMedia analytics: get audio hoursreadmatomo.media_analytics.get_audio_resourcesMedia analytics: get audio resourcesreadmatomo.media_analytics.get_audio_titlesMedia analytics: get audio titlesreadmatomo.media_analytics.get_current_most_playsMedia analytics: get current most playsreadmatomo.media_analytics.get_current_num_playsMedia analytics: get current num playsread- and 9 more in this area
Mobile messaging12
matomo.mobile_messaging.add_phone_numberMobile messaging: add phone numberwritematomo.mobile_messaging.are_smsapi_credential_providedMobile messaging: are smsapi credential providedreadmatomo.mobile_messaging.get_credit_leftMobile messaging: get credit leftreadmatomo.mobile_messaging.resend_verification_codeMobile messaging: resend verification codewritematomo.mobile_messaging.delete_smsapi_credentialMobile messaging: delete smsapi credentialdestructivematomo.mobile_messaging.get_delegated_managementMobile messaging: get delegated managementread- and 6 more in this area
Search engine keywords performance12
matomo.search_engine_keywords_performance.get_crawling_error_examples_bingSearch engine keywords performance: get crawling error examples bingreadmatomo.search_engine_keywords_performance.get_crawling_overview_bingSearch engine keywords performance: get crawling overview bingreadmatomo.search_engine_keywords_performance.get_crawling_overview_yandexSearch engine keywords performance: get crawling overview yandexreadmatomo.search_engine_keywords_performance.get_keywordsSearch engine keywords performance: get keywordsreadmatomo.search_engine_keywords_performance.get_keywords_bingSearch engine keywords performance: get keywords bingreadmatomo.search_engine_keywords_performance.get_keywords_googleSearch engine keywords performance: get keywords googleread- and 6 more in this area
Bot tracking11
matomo.bot_tracking.getBot tracking: getreadmatomo.bot_tracking.get_ai_chatbot_ai_favoured_pagesBot tracking: get ai chatbot ai favoured pagesreadmatomo.bot_tracking.get_ai_chatbot_broken_contentBot tracking: get ai chatbot broken contentreadmatomo.bot_tracking.get_ai_chatbot_content_documentsBot tracking: get ai chatbot content documentsreadmatomo.bot_tracking.get_ai_chatbot_content_pagesBot tracking: get ai chatbot content pagesreadmatomo.bot_tracking.get_ai_chatbot_human_favoured_pagesBot tracking: get ai chatbot human favoured pagesread- and 5 more in this area
Marketing campaigns reporting11
matomo.marketing_campaigns_reporting.get_contentMarketing campaigns reporting: get contentreadmatomo.marketing_campaigns_reporting.get_groupMarketing campaigns reporting: get groupreadmatomo.marketing_campaigns_reporting.get_idMarketing campaigns reporting: get idreadmatomo.marketing_campaigns_reporting.get_keywordMarketing campaigns reporting: get keywordreadmatomo.marketing_campaigns_reporting.get_keyword_content_from_name_idMarketing campaigns reporting: get keyword content from name idreadmatomo.marketing_campaigns_reporting.get_mediumMarketing campaigns reporting: get mediumread- and 5 more in this area
Visits summary10
matomo.visits_summary.getVisits summary: getreadmatomo.visits_summary.get_actionsVisits summary: get actionsreadmatomo.visits_summary.get_bounce_countVisits summary: get bounce countreadmatomo.visits_summary.get_max_actionsVisits summary: get max actionsreadmatomo.visits_summary.get_sum_visits_lengthVisits summary: get sum visits lengthreadmatomo.visits_summary.get_sum_visits_length_prettyVisits summary: get sum visits length prettyread- and 4 more in this area
Events9
matomo.events.get_actionEvents: get actionreadmatomo.events.get_action_from_category_idEvents: get action from category idreadmatomo.events.get_action_from_name_idEvents: get action from name idreadmatomo.events.get_categoryEvents: get categoryreadmatomo.events.get_category_from_action_idEvents: get category from action idreadmatomo.events.get_category_from_name_idEvents: get category from name idread- and 3 more in this area
Languages manager9
matomo.languages_manager.get_available_language_namesLanguages manager: get available language namesreadmatomo.languages_manager.get_available_languagesLanguages manager: get available languagesreadmatomo.languages_manager.get_available_languages_infoLanguages manager: get available languages inforeadmatomo.languages_manager.get_language_for_userLanguages manager: get language for userreadmatomo.languages_manager.get_translations_for_languageLanguages manager: get translations for languagereadmatomo.languages_manager.is_language_availableLanguages manager: is language availableread- and 3 more in this area
Segment editor9
matomo.segment_editor.addSegment editor: addwritematomo.segment_editor.getSegment editor: getreadmatomo.segment_editor.get_allSegment editor: get allreadmatomo.segment_editor.updateSegment editor: updatewritematomo.segment_editor.deleteSegment editor: deletedestructivematomo.segment_editor.get_segment_dataSegment editor: get segment dataread- and 3 more in this area
Devices detection8
matomo.devices_detection.get_brandDevices detection: get brandreadmatomo.devices_detection.get_browser_enginesDevices detection: get browser enginesreadmatomo.devices_detection.get_browser_versionsDevices detection: get browser versionsreadmatomo.devices_detection.get_browsersDevices detection: get browsersreadmatomo.devices_detection.get_modelDevices detection: get modelreadmatomo.devices_detection.get_os_familiesDevices detection: get os familiesread- and 2 more in this area
Oauth28
matomo.oauth2.create_clientOAuth2: create clientwritematomo.oauth2.get_clientOAuth2: get clientreadmatomo.oauth2.get_clientsOAuth2: get clientsreadmatomo.oauth2.get_scopesOAuth2: get scopesreadmatomo.oauth2.delete_clientOAuth2: delete clientdestructivematomo.oauth2.rotate_secretOAuth2: rotate secretdestructive- and 2 more in this area
User country8
matomo.user_country.get_cityUser country: get cityreadmatomo.user_country.get_continentUser country: get continentreadmatomo.user_country.get_countryUser country: get countryreadmatomo.user_country.get_country_code_mappingUser country: get country code mappingreadmatomo.user_country.get_location_from_ipUser country: get location from ipreadmatomo.user_country.get_number_of_distinct_countriesUser country: get number of distinct countriesread- and 2 more in this area
Annotations7
matomo.annotations.addAnnotations: addwritematomo.annotations.getAnnotations: getreadmatomo.annotations.get_allAnnotations: get allreadmatomo.annotations.get_annotation_count_for_datesAnnotations: get annotation count for datesreadmatomo.annotations.deleteAnnotations: deletedestructivematomo.annotations.delete_allAnnotations: delete alldestructive- and 1 more in this area
Custom alerts7
matomo.custom_alerts.add_alertCustom alerts: add alertwritematomo.custom_alerts.edit_alertCustom alerts: edit alertwritematomo.custom_alerts.get_alertCustom alerts: get alertreadmatomo.custom_alerts.get_alertsCustom alerts: get alertsreadmatomo.custom_alerts.delete_alertCustom alerts: delete alertdestructivematomo.custom_alerts.get_triggered_alertsCustom alerts: get triggered alertsread- and 1 more in this area
Custom dimensions7
matomo.custom_dimensions.configure_existing_custom_dimensionCustom dimensions: configure existing custom dimensionwritematomo.custom_dimensions.configure_new_custom_dimensionCustom dimensions: configure new custom dimensionwritematomo.custom_dimensions.get_available_extraction_dimensionsCustom dimensions: get available extraction dimensionsreadmatomo.custom_dimensions.get_configured_custom_dimensionsCustom dimensions: get configured custom dimensionsreadmatomo.custom_dimensions.get_available_scopesCustom dimensions: get available scopesreadmatomo.custom_dimensions.get_configured_custom_dimensions_having_scopeCustom dimensions: get configured custom dimensions having scoperead- and 1 more in this area
Advertising conversion export6
matomo.advertising_conversion_export.add_conversion_exportAdvertising conversion export: add conversion exportwritematomo.advertising_conversion_export.get_conversion_exportAdvertising conversion export: get conversion exportreadmatomo.advertising_conversion_export.get_conversion_exportsAdvertising conversion export: get conversion exportsreadmatomo.advertising_conversion_export.regenerate_access_tokenAdvertising conversion export: regenerate access tokenwritematomo.advertising_conversion_export.delete_conversion_exportAdvertising conversion export: delete conversion exportdestructivematomo.advertising_conversion_export.update_conversion_exportAdvertising conversion export: update conversion exportwrite
Live6
matomo.live.get_countersLive: get countersreadmatomo.live.get_last_visits_detailsLive: get last visits detailsreadmatomo.live.get_most_recent_visitor_idLive: get most recent visitor idreadmatomo.live.get_most_recent_visits_date_timeLive: get most recent visits date timereadmatomo.live.get_visitor_profileLive: get visitor profilereadmatomo.live.is_visitor_profile_enabledLive: is visitor profile enabledread
Login ldap 6Privacy manager 6Scheduled reports 6Dashboard 5Insights 5Multi channel conversion attribution 5Log viewer 4Open API docs 4Transitions 4Users flow 4Visitor interest 4Activity log 3API reference 3Cohorts 3Connect accounts 3Core admin home 3Custom translations 3Custom variables 3Feedback 3Multi sites 3Roll up reporting 3Tour 3Visit time 3Contents 2JS tracker install check 2Marketplace 2Overlay 2Resolution 2User language 2AI agents 1Bandwidth 1Custom JS tracker 1Device plugins 1Github analytics 1Login 1Page performance 1Provider 1Seo 1Treemap visualization 1Two factor auth 1User id 1Visit frequency 1
This index shows a sample of each area. All 620 actions, with their inputs and prices, are in the catalogue, which a free sandbox key can search.
Questions
The Matomo MCP server, answered.
Is there a Matomo MCP server for Claude?
Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 620 Matomo actions across sites manager, tag manager, crash analytics and heatmap session recording, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by Matomo.
What do I need to connect Matomo?
Matomo personal auth token (token_auth). Plus your host. The free call account { op: "connections.requirements", service: "matomo" } lists exactly what to paste.
Can an AI agent delete or change things in Matomo?
Only if its key allows it, and only with an explicit confirmation. 36 Matomo actions are destructive, including users manager: delete user, scheduled reports: delete report and segment editor: delete. Each runs only with confirm: true. Under the human confirm policy, or an approval rule on the key, the run waits until a named person approves it.
Will an AI agent use up my Matomo API limit?
actionlake paces every call to the limits in the Matomo service file: 10 calls a second per connection. Repeated reads are answered from cache (457 Matomo actions can be), which never reaches Matomo.
What does a Matomo action cost?
One upstream call, the only unit actionlake bills. A list that pages bills one call per page (620 Matomo actions page). Cache hits, searches, dry runs and calls Matomo refused with 401, 403, 429 or a 5xx are free. The Free plan includes 100,000 calls a month with no card. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.
Which Matomo API does it cover?
The Matomo Reporting API (HTTP index.php?module=API), Matomo 5.4+ for bearer-header auth at your Matomo instance's API base URL, which you enter when connecting. It is built from Matomo's documentation as read on 23 October 2026. 620 actions in 72 areas, each one in the signed service file (version 1.0.0).
Does actionlake keep my Matomo data, and where?
actionlake processes and stores data in Sydney, Australia; there is no US region yet. Reads may be cached for up to 5 minutes, and a write clears the reads it affects. Each run's request and response is kept, sealed, for your plan's trace window: 1 day on Free, 3 days on Starter, 7 days on Pro, 14 days on Team, 30 days on Business and 30 days on Enterprise. Your Matomo credential is sealed under your tenant's key, never logged and never returned. Your traffic is not used to train models.
Which AI clients can use it?
Claude Code, tested by us end to end, and the Claude app as a custom connector, tested by us with an existing key. Other MCP clients that support remote servers over Streamable HTTP (MCP revisions 2025-06-18 and 2025-11-25) and OAuth dynamic client registration, or a bearer header, should connect the same way; we have not tested them. Or plain REST, under the same action names.
Give your agent Matomo today.
Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.