Matomo MCP Server
Supports configuration through .env files for storing Matomo instance URLs and authentication tokens.
Allows obtaining the server code through git clone commands from a repository.
Provides comprehensive tools for interacting with Matomo Analytics API, enabling management of sites, users, goals, and segments, as well as fetching analytics reports like visit summaries, top pages, keywords, referrers, and visitor logs.
Supports installation, building, and running of the server using npm commands for package management.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Matomo MCP Servershow me the top 10 pages for site 123 yesterday"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Matomo MCP Server
MCP (Model Context Protocol) server để quản trị Matomo Analytics. Server này cung cấp các công cụ để tương tác với Matomo API thông qua giao diện MCP.
Tính năng
Quản lý Sites
Lấy danh sách tất cả sites
Lấy thông tin chi tiết của một site
Thêm site mới
Cập nhật thông tin site
Xóa site
Quản lý Users
Lấy danh sách tất cả users
Lấy thông tin chi tiết của một user
Thêm user mới
Cập nhật thông tin user
Xóa user
Thiết lập quyền truy cập cho user
Quản lý Goals
Lấy danh sách goals của site
Thêm goal mới
Cập nhật goal
Xóa goal
Quản lý Segments
Lấy danh sách segments
Thêm segment mới
Cập nhật segment
Xóa segment
Báo cáo Analytics
Tổng quan lượt truy cập
Top pages được truy cập nhiều nhất
Top keywords
Top referrers
Visitor log
Quản lý Hệ thống
Thông tin hệ thống
Quản lý plugins
Kích hoạt/vô hiệu hóa plugins
Related MCP server: Yandex Metrika MCP
Cài đặt
Clone repository:
git clone <repository-url>
cd matomo-mcpCài đặt dependencies:
npm installBuild project:
npm run buildCấu hình
Tạo file .env trong thư mục gốc:
MATOMO_BASE_URL=https://your-matomo-instance.com
MATOMO_TOKEN_AUTH=your-api-tokenSử dụng
Chạy server:
npm startChạy trong chế độ development:
npm run devCác Tools có sẵn
1. matomo_connect
Kết nối đến Matomo instance.
Tham số:
baseUrl: URL của Matomo instancetokenAuth: Token xác thực API
2. matomo_get_sites
Lấy danh sách tất cả sites.
3. matomo_get_site
Lấy thông tin chi tiết của một site.
Tham số:
siteId: ID của site
4. matomo_add_site
Thêm site mới.
Tham số:
name: Tên siteurls: Danh sách URLstimezone: Múi giờ (tùy chọn, mặc định: UTC)
5. matomo_get_users
Lấy danh sách tất cả users.
6. matomo_add_user
Thêm user mới.
Tham số:
userLogin: Tên đăng nhậpemail: Emailpassword: Mật khẩualias: Bí danh (tùy chọn)
7. matomo_get_goals
Lấy danh sách goals của site.
Tham số:
siteId: ID của site
8. matomo_add_goal
Thêm goal mới.
Tham số:
siteId: ID của sitename: Tên goaldescription: Mô tảmatchAttribute: Thuộc tính khớppattern: Mẫu khớppatternType: Loại mẫu
9. matomo_get_visits_summary
Lấy tổng quan lượt truy cập.
Tham số:
siteId: ID của sitedate: Ngày (YYYY-MM-DD)period: Chu kỳ (day, week, month, year)
10. matomo_get_top_pages
Lấy top pages.
Tham số:
siteId: ID của sitedate: Ngày (YYYY-MM-DD)period: Chu kỳ (tùy chọn)limit: Số lượng kết quả (tùy chọn)
11. matomo_get_system_info
Lấy thông tin hệ thống.
Ví dụ sử dụng
Kết nối đến Matomo:
{
"name": "matomo_connect",
"arguments": {
"baseUrl": "https://analytics.example.com",
"tokenAuth": "your-api-token"
}
}Lấy danh sách sites:
{
"name": "matomo_get_sites",
"arguments": {}
}Thêm site mới:
{
"name": "matomo_add_site",
"arguments": {
"name": "My Website",
"urls": ["https://example.com", "https://www.example.com"],
"timezone": "Asia/Ho_Chi_Minh"
}
}Lưu ý
Đảm bảo bạn có quyền truy cập API với token xác thực hợp lệ
Một số chức năng có thể yêu cầu quyền admin
Luôn kiểm tra kết nối trước khi sử dụng các tools khác
Đóng góp
Mọi đóng góp đều được chào đón! Vui lòng tạo issue hoặc pull request.
License
MIT License
Available Tools
11 toolsmatomo_add_goalC
Thêm một goal mới cho site
| Name | Required | Description | Default |
|---|---|---|---|
| siteId | Yes | ID của site | |
| name | Yes | Tên của goal | |
| description | Yes | Mô tả của goal | |
| matchAttribute | Yes | Thuộc tính khớp (url, title, event, etc.) | |
| pattern | Yes | Mẫu khớp | |
| patternType | Yes | Loại mẫu (exact, contains, regex, etc.) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It implies a write operation ('Thêm' means add), but doesn't disclose behavioral traits such as required permissions, whether the operation is idempotent, error handling, or what happens on success/failure. This is a significant gap for a mutation tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence in Vietnamese that directly states the tool's purpose with zero waste. It's appropriately sized and front-loaded, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a write operation with 6 required parameters and no annotations or output schema, the description is incomplete. It lacks crucial context such as return values, error conditions, or behavioral details, leaving significant gaps for an AI agent to use the tool effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all 6 parameters. The description adds no additional meaning beyond what's in the schema (e.g., no examples, constraints, or context for parameters like matchAttribute or patternType). Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Thêm một goal mới cho site' clearly states the action (add/Thêm) and resource (goal for a site) in Vietnamese, making the purpose understandable. It distinguishes from siblings like matomo_get_goals (read vs. write) but doesn't explicitly differentiate from other add tools like matomo_add_site or matomo_add_user beyond the resource type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an existing site), exclusions, or comparisons to sibling tools like matomo_get_goals for retrieval or matomo_add_site for site creation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
matomo_add_siteC
Thêm một site mới vào Matomo
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Tên của site | |
| urls | Yes | Danh sách URLs của site | |
| timezone | No | Múi giờ của site (mặc định: UTC) | UTC |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool adds a new site, implying a write operation, but fails to mention critical aspects like required permissions, potential side effects (e.g., if duplicate sites are allowed), error handling, or response format. This leaves significant gaps in understanding the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It is front-loaded and wastes no space, making it easy to parse quickly. This exemplifies optimal conciseness for a simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity as a write operation with no annotations and no output schema, the description is insufficient. It lacks details on behavioral traits (e.g., authentication needs, error cases), usage context, and what the tool returns. For a mutation tool, this minimal description does not provide enough information for an AI agent to use it effectively and safely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with clear documentation for each parameter (name, urls, timezone). The description does not add any semantic details beyond what the schema provides, such as examples or constraints not in the schema. Given the high schema coverage, a baseline score of 3 is appropriate, as the description does not compensate but also does not detract.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Thêm một site mới' - 'Add a new site') and the resource ('vào Matomo' - 'to Matomo'), making the purpose unambiguous. However, it does not differentiate this tool from its siblings (e.g., matomo_add_goal, matomo_add_user), which are also creation tools but for different resources, so it falls short of a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, such as needing authentication or connectivity, nor does it specify scenarios where this tool is appropriate over other sibling tools like matomo_get_sites or matomo_get_site. This lack of contextual direction limits its utility for an AI agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
matomo_add_userC
Thêm một user mới vào Matomo
| Name | Required | Description | Default |
|---|---|---|---|
| userLogin | Yes | Tên đăng nhập của user | |
| Yes | Email của user | ||
| password | Yes | Mật khẩu của user | |
| alias | No | Bí danh của user (tùy chọn) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states this is an 'add' operation, implying a write/mutation, but doesn't disclose any behavioral traits like required permissions, whether the operation is idempotent, what happens on duplicate user creation, or any rate limits. For a user creation tool with zero annotation coverage, this leaves significant gaps in understanding how the tool behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without any fluff or redundant information. It's appropriately sized and front-loaded, making it easy for an agent to parse quickly. Every word earns its place in conveying the core functionality.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given this is a mutation tool (adding users) with no annotations and no output schema, the description is incomplete. It doesn't explain what happens after invocation (e.g., success/failure responses, what data is returned), behavioral constraints, or how it integrates with the broader Matomo ecosystem shown in sibling tools. The agent lacks critical context for safe and effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with all parameters clearly documented in the schema itself (e.g., 'userLogin' as login name, 'email', 'password', optional 'alias'). The description adds no additional parameter semantics beyond what's already in the schema, so it meets the baseline score of 3 for high schema coverage without adding value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Thêm một user mới' - Add a new user) and the target resource ('vào Matomo' - to Matomo), making the purpose immediately understandable. However, it doesn't differentiate this tool from sibling tools like 'matomo_get_users' or explain how it fits within the broader Matomo user management context, which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. There's no mention of prerequisites (e.g., authentication status), when not to use it, or how it relates to sibling tools like 'matomo_get_users' for viewing users or 'matomo_connect' for establishing a connection. The agent must infer usage context entirely from the tool name and schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
matomo_connectC
Kết nối đến Matomo instance với URL và token xác thực
| Name | Required | Description | Default |
|---|---|---|---|
| baseUrl | Yes | URL của Matomo instance (ví dụ: https://analytics.example.com) | |
| tokenAuth | Yes | Token xác thực Matomo API |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states this is a connection tool but doesn't disclose behavioral traits: whether it establishes a session, validates credentials, returns a connection handle, has side effects like caching, or requires specific permissions. For a tool with zero annotation coverage, this leaves critical gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence in Vietnamese that directly states the tool's purpose. It's appropriately sized and front-loaded with zero wasted words, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (connection tool likely required for other operations), lack of annotations, and no output schema, the description is incomplete. It doesn't explain what happens after connection (e.g., returns a session ID, enables subsequent calls) or error handling. For a foundational tool in this server, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both parameters (baseUrl, tokenAuth) well-documented in the schema. The description adds no additional meaning beyond implying these are for authentication, which the schema already covers. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Kết nối đến Matomo instance với URL và token xác thực' (Connect to Matomo instance with URL and authentication token). It specifies the verb (connect) and resource (Matomo instance), but doesn't differentiate from siblings like matomo_get_system_info or matomo_add_site, which likely require an established connection first.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., must be called before other Matomo tools), exclusions, or contextual cues. The agent must infer usage from the tool name and sibling list alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
matomo_get_goalsC
Lấy danh sách goals của một site
| Name | Required | Description | Default |
|---|---|---|---|
| siteId | Yes | ID của site |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states it retrieves a list, implying a read-only operation, but doesn't cover aspects like authentication needs, rate limits, error handling, or what the returned list contains. This leaves significant gaps for a tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's appropriately sized for a simple tool, though it could be slightly more informative to improve completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what the returned goals list includes (e.g., structure, fields) or any behavioral traits like permissions or limitations. For a tool with no structured data support, this description falls short of providing sufficient context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description doesn't add any parameter-specific information beyond what's in the schema, which has 100% coverage and clearly documents the 'siteId' parameter. This meets the baseline score of 3, as the schema adequately handles parameter semantics without needing extra description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Lấy danh sách' meaning 'Get list') and resource ('goals của một site' meaning 'goals of a site'), making the purpose understandable. However, it doesn't explicitly differentiate from sibling tools like 'matomo_get_sites' or 'matomo_get_system_info' which also retrieve data, so it doesn't reach the highest score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'matomo_get_sites' or explain that this is for goals specifically, leaving the agent to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
matomo_get_siteC
Lấy thông tin chi tiết của một site
| Name | Required | Description | Default |
|---|---|---|---|
| siteId | Yes | ID của site cần lấy thông tin |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states this is a read operation ('Lấy thông tin' - Get information), which is helpful, but doesn't cover other important aspects like authentication requirements, rate limits, error conditions, or what 'chi tiết' (detailed) entails in terms of returned data structure or fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's appropriately front-loaded with the core action and resource, though it could be slightly more structured by explicitly mentioning it retrieves data for a single site.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete for a tool that presumably returns detailed site information. It doesn't explain what 'chi tiết' includes (e.g., site metadata, configuration, statistics), nor does it address behavioral aspects like error handling or data format, leaving significant gaps for an AI agent to understand the tool fully.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with the single parameter 'siteId' clearly documented in the schema as 'ID của site cần lấy thông tin' (ID of the site to get information). The description doesn't add any meaningful parameter semantics beyond what the schema already provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Lấy thông tin chi tiết' - Get detailed information) and the resource ('một site' - a site), making the purpose immediately understandable. It doesn't specifically differentiate from sibling tools like 'matomo_get_sites' (which likely lists multiple sites), but the singular focus on one site is implied.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'matomo_get_sites' (for listing sites) or 'matomo_get_visits_summary' (for site analytics), nor does it specify prerequisites or contextual cues for selecting this specific retrieval tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
matomo_get_sitesB
Lấy danh sách tất cả các sites trong Matomo
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the action but lacks behavioral details such as whether this is a read-only operation, if it requires authentication, how results are formatted (e.g., pagination), or any rate limits. This is a significant gap for a tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence in Vietnamese that directly states the tool's purpose without unnecessary words. It's front-loaded and appropriately sized for a simple list-retrieval tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and 0 parameters, the description is minimal. It states what the tool does but lacks context on behavior, output format, or usage relative to siblings. For a tool in a set with multiple retrieval options, this leaves the agent under-informed about how to integrate it effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't add parameter details, which is appropriate, but it could have mentioned if any implicit parameters (like authentication) are required. Baseline 4 is correct as it doesn't detract from the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Lấy danh sách' - Get list) and resource ('các sites trong Matomo' - sites in Matomo), making the purpose understandable. However, it doesn't differentiate from sibling tools like 'matomo_get_site' (singular) or 'matomo_get_users', which suggests it retrieves all sites rather than filtering or targeting specific ones.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'matomo_get_site' (for a single site) or context for retrieving all sites, leaving the agent to infer usage based on tool names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
matomo_get_system_infoC
Lấy thông tin hệ thống Matomo
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. While 'get' implies a read operation, it doesn't disclose any behavioral traits: no information about authentication requirements, rate limits, error conditions, response format, or whether this might be a heavy operation. For a tool with zero annotation coverage, this leaves significant gaps in understanding how it behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise - a single phrase that directly states the tool's purpose. There's no wasted verbiage or unnecessary elaboration. However, the brevity comes at the cost of completeness, as noted in other dimensions. The structure is front-loaded with the core function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and the description's minimal content, this is incomplete for effective use. While it's a simple read operation with no parameters, the description doesn't explain what 'system information' includes, how results are structured, or any operational constraints. For a tool in a family with multiple get operations, more context is needed to distinguish its role.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters with 100% schema description coverage, so the schema already fully documents the parameter situation. The description doesn't need to compensate for any parameter gaps. A baseline of 4 is appropriate since there are no parameters to explain, and the description doesn't incorrectly suggest parameters exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Lấy thông tin hệ thống Matomo' (Get Matomo system information) states a clear verb ('get') and resource ('Matomo system information'), establishing the basic purpose. However, it doesn't differentiate from sibling tools like 'matomo_get_site' or 'matomo_get_sites' - it's unclear what specific 'system information' means versus site-specific data. The description is functional but vague about scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With sibling tools like 'matomo_get_site', 'matomo_get_sites', and 'matomo_get_visits_summary', there's no indication whether this tool provides complementary system-level data or overlaps with other get operations. No context about prerequisites or typical use cases is mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
matomo_get_top_pagesC
Lấy danh sách trang được truy cập nhiều nhất
| Name | Required | Description | Default |
|---|---|---|---|
| siteId | Yes | ID của site | |
| date | Yes | Ngày cần lấy dữ liệu (YYYY-MM-DD) | |
| period | No | Chu kỳ (day, week, month, year) | day |
| limit | No | Số lượng kết quả tối đa |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states what the tool does, not how it behaves. It doesn't disclose whether this is a read-only operation, potential rate limits, authentication requirements, pagination behavior, or what happens with invalid inputs. For a tool with 4 parameters and no annotation coverage, this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that gets straight to the point without unnecessary words. It's appropriately sized for a straightforward data retrieval tool. However, it could be slightly more structured by explicitly mentioning it's for Matomo analytics to provide better context upfront.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 4 parameters, no annotations, and no output schema, the description is insufficient. It doesn't explain what the output looks like (list format, fields returned), error conditions, or behavioral constraints. The agent must rely entirely on the input schema and tool name, leaving significant gaps in understanding how to properly use this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all parameters are documented in the schema. The description doesn't add any parameter-specific information beyond what's in the schema. It mentions 'danh sách' (list) which aligns with the limit parameter, but provides no additional context about parameter interactions or semantics. Baseline 3 is appropriate when schema does the documentation work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Lấy danh sách' - 'Get list') and resource ('trang được truy cập nhiều nhất' - 'most accessed pages'), making the purpose understandable. It distinguishes from siblings like matomo_get_visits_summary by focusing specifically on top pages rather than general visit statistics. However, it doesn't explicitly mention the Matomo analytics context or differentiate from matomo_get_sites which deals with site metadata.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (like needing siteId), comparison with sibling tools (e.g., matomo_get_visits_summary for aggregated data), or specific use cases. The agent must infer usage from the tool name and parameters alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
matomo_get_usersB
Lấy danh sách tất cả users trong Matomo
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It describes a read operation ('get list'), which implies it's likely non-destructive, but doesn't specify authentication requirements, rate limits, pagination, or error handling. For a tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence in Vietnamese that directly states the tool's function without any fluff. It's front-loaded and efficiently conveys the core purpose, making it appropriately sized for a simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 parameters, no output schema, no annotations), the description is adequate but minimal. It covers the basic purpose but lacks details on usage context, behavioral traits, or output format, which could help an agent use it more effectively despite the low complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so no parameters need documentation. The description doesn't add parameter details, but that's acceptable since there are none to explain. It implies the tool fetches all users without filtering, which aligns with the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Lấy danh sách' = 'Get list') and resource ('tất cả users trong Matomo' = 'all users in Matomo'), making the purpose specific and understandable. It distinguishes from siblings like matomo_get_site or matomo_get_goals by focusing on users, though it doesn't explicitly contrast with matomo_add_user or other user-related tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. For example, it doesn't mention if this is for listing all users versus filtered subsets, or how it differs from matomo_add_user for user management. The description only states what it does, not when to apply it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
matomo_get_visits_summaryC
Lấy tổng quan lượt truy cập của site
| Name | Required | Description | Default |
|---|---|---|---|
| siteId | Yes | ID của site | |
| date | Yes | Ngày cần lấy dữ liệu (YYYY-MM-DD) | |
| period | No | Chu kỳ (day, week, month, year) | day |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It implies a read-only operation ('Lấy' - get), but doesn't specify any behavioral traits such as authentication requirements, rate limits, error handling, or what the summary includes. This is inadequate for a tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded, though it could be slightly more informative to improve clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what the visit summary includes, how data is returned, or any behavioral context, making it insufficient for an agent to fully understand the tool's operation and output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with all parameters well-documented in the input schema. The description adds no additional meaning about the parameters beyond what the schema already provides, so it meets the baseline score of 3 for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Lấy tổng quan lượt truy cập của site' clearly states the action ('Lấy' - get) and resource ('tổng quan lượt truy cập của site' - site visit summary), making the purpose understandable. However, it doesn't explicitly differentiate from siblings like 'matomo_get_top_pages' or 'matomo_get_sites', which are also data retrieval tools, so it doesn't reach the highest score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention any context, prerequisites, or exclusions, leaving the agent to infer usage from the tool name alone among multiple sibling retrieval tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
11 tool updates
- First observed
matomo_add_goal - First observed
matomo_add_site - First observed
matomo_add_user - First observed
matomo_connect - First observed
matomo_get_goals - First observed
matomo_get_site - First observed
matomo_get_sites - First observed
matomo_get_system_info - First observed
matomo_get_top_pages - First observed
matomo_get_users - First observed
matomo_get_visits_summary
TDQS
Every tool has a clearly distinct purpose targeting specific resources and actions in the Matomo ecosystem. The tools are well-organized around sites, goals, users, and analytics data with no overlapping functionality that could cause confusion.
All tools follow a perfect verb_noun pattern with consistent 'matomo_' prefix and snake_case throughout. The naming convention is predictable and systematic across all 11 tools.
11 tools is an ideal number for a Matomo analytics server, providing comprehensive coverage without being overwhelming. The count aligns well with the domain scope and user needs.
The toolset provides excellent coverage for core Matomo operations including site management, user management, goal tracking, and analytics data retrieval. Minor gaps exist in update/delete operations for sites, goals, and users, but the surface supports most common workflows effectively.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
The Mercado Pago MCP Server implements the Model Context Protocol to provide AI agents and LLMs with access to Mercado Pago's APIs and tools within compatible development environments. It acts as an intermediary that translates Mercado Pago resources into executable functions (tools) that AI applications can invoke to perform actions and automate flows. The server simplifies integration, enables using documentation to implement or improve code, and optimizes operations through natural language interactions without manual implementations.
- AgentCatOAuthcom.agentcat
Analytics and debugging for your MCP server — explore usage and sessions, then root-cause errors.
MCP server for querying and analyzing data from ad platforms, analytics tools, and spreadsheets
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceA Model Context Protocol server that provides unified access to Google Analytics 4 and Google Search Console data through real-time analytics queries.2MIT
- FlicenseNot gradedqualityDmaintenanceA Model Context Protocol (MCP) server that provides access to Yandex Metrika analytics data through various tools and functions. This server allows AI assistants and applications to retrieve comprehensive analytics data from Yandex Metrika accounts.1-
- -licenseNot gradedqualityNot gradedmaintenanceEnables AI models to interact with Matomo analytics through a complete MCP server implementation. Provides tools for retrieving analytics data, managing sites, and generating reports with zero configuration setup.-
- AlicenseBqualityAmaintenanceAn MCP server for interacting with the Rybbit Analytics API, enabling querying analytics data, managing sites, tracking events, and more.57175MIT
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/thichcode/matomo_mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server