A modern JavaScript/TypeScript client library for Matomo Analytics.
This monorepo contains JavaScript/TypeScript libraries for interacting with Matomo Analytics. Built with TypeScript and structured as an Nx monorepo for optimal development experience.
A TypeScript client for the Matomo Reporting API with strongly typed interfaces. This package provides a convenient way to interact with Matomo's Reporting API endpoints.
- Modern, Promise-based API
- TypeScript support with full type definitions
- Modular design for flexible usage
- Tree-shakable (import only what you need)
The reporting client includes modules for all major Matomo API endpoints, including:
- Core - Core reporting functionality (
core
) - API - General API operations (
api
) - SitesManager - Methods for managing sites (
sitesManager
) - AbTesting - Methods for A/B testing features (
abTesting
) - Actions - Page views, content tracking (
actions
) - ActivityLog - User activity logs (
activityLog
) - AdvertisingConversionExport - Advertising conversion exports (
advertisingConversionExport
) - Annotations - Managing annotations (
annotations
) - ConnectAccounts - Integration with other platforms (
connectAccounts
) - Contents - Content interaction data (
contents
) - CoreAdminHome - Administrative tasks (
coreAdminHome
) - CrashAnalytics - JavaScript error tracking (
crashAnalytics
) - CustomAlerts - Custom alert definitions (
customAlerts
) - CustomDimensions - Custom dimensions tracking (
customDimensions
) - CustomJsTracker - Custom JS tracker functionality (
customJsTracker
) - CustomReports - Custom report management (
customReports
) - CustomVariables - Custom variables data (
customVariables
) - Dashboard - Dashboard management (
dashboard
) - DevicePlugins - Browser plugin statistics (
devicePlugins
) - DevicesDetection - Visitor device reports (
devicesDetection
) - Events - Event tracking and analysis (
events
) - Feedback - User feedback submission (
feedback
) - FormAnalytics - Form interaction data (
formAnalytics
) - Funnels - Conversion funnel analysis (
funnels
) - Goals - Conversion goals and ecommerce (
goals
) - HeatmapSessionRecording - Heatmaps and session recordings (
heatmapSessionRecording
) - ImageGraph - Static PNG graph generation (
imageGraph
) - Insights - Analytical insights generation (
insights
) - LanguagesManager - Translations and language settings (
languagesManager
) - Live - Real-time visitor data (
live
) - Login - Authentication methods (
login
) - MarketingCampaignsReporting - Marketing campaign data (
marketingCampaignsReporting
) - MediaAnalytics - Media engagement stats (
mediaAnalytics
) - MobileMessaging - Mobile messaging integration (
mobileMessaging
) - MultiChannelConversionAttribution - Multi-channel attribution (
multiChannelConversionAttribution
) - MultiSites - Multi-site summary data (
multiSites
) - Overlay - Page overlay reports (
overlay
) - PagePerformance - Page load metrics (
pagePerformance
) - PrivacyManager - Data privacy management (
privacyManager
) - Referrers - Traffic sources (
referrers
) - Resolution - Screen resolution reports (
resolution
) - RollUpReporting - Roll-up reporting features (
rollUpReporting
) - ScheduledReports - Scheduled report management (
scheduledReports
) - SearchEngineKeywordsPerformance - SEO keywords (
searchEngineKeywordsPerformance
) - SegmentEditor - Segment management (
segmentEditor
) - Seo - SEO ranking reports (
seo
) - TagManager - Tag manager functionality (
tagManager
) - Tour - Guided tour features (
tour
) - Transitions - Visitor navigation paths (
transitions
) - TwoFactorAuth - Two-factor authentication management (
twoFactorAuth
) - UserCountry - Geographic data (
userCountry
) - UserId - User ID tracking (
userId
) - UserLanguage - Visitor language reports (
userLanguage
) - UsersFlow - User flow visualization (
usersFlow
) - UsersManager - User management (
usersManager
) - VisitFrequency - Visitor frequency metrics (
visitFrequency
) - VisitTime - Visitor time reports (
visitTime
) - VisitorInterest - Engagement metrics (
visitorInterest
) - VisitsSummary - Visit metrics and statistics (
visitsSummary
)
And many more modules for comprehensive Matomo API coverage.
A Model Context Protocol (MCP) server that acts as a bridge between AI agents (like large language models) and Matomo analytics. This package exposes Matomo Reporting API functionalities as MCP tools.
- Implements the Model Context Protocol specification
- Provides AI agents with direct access to Matomo data
- Easy configuration via environment variables
- Modular design mirroring the Matomo API structure
Currently, the MCP server has implemented 4 out of 47 Matomo API modules (8.5% complete):
- SitesManager
- TagManager
- Tour
- UserId
More modules are being actively implemented.
- Node.js (v18 or later recommended)
- npm, yarn, or pnpm
# Install the reporting client
npm install @mj-kiwi/matomo-client
# Or with yarn
yarn add @mj-kiwi/matomo-client
# Or with pnpm
pnpm add @mj-kiwi/matomo-client
import { ReportingClient } from '@mj-kiwi/matomo-client';
// Create a reporting client instance
const client = new ReportingClient({
baseUrl: 'https://your-matomo-instance.com',
apiKey: 'your-api-key', // if using token-auth
});
// Fetch site analytics data
const siteData = await client.core.getVisits({
idSite: 1,
period: 'day',
date: 'yesterday',
});
MIT