Skip to main content
Glama
colintoh

Clicky MCP Server

by colintoh

Clicky MCP 服务器

一个模型上下文协议 (MCP) 服务器,将 Clicky 网站分析功能作为 11 个工具提供给 AI 助手使用——包括访客数量、热门页面、流量来源、跳出率、搜索词、实时访客等。请参阅 工具参考 获取完整列表。


快速开始

你需要:

  • 安装 Node.js 20+ (node --version)

  • 一个 Clicky 站点 ID 和站点密钥 — 在 https://clicky.com/user/preferences/site 的“Info”下找到两者

  • 克隆并构建此仓库一次:

    git clone https://github.com/colintoh/clicky-mcp.git
    cd clicky-mcp && npm install && npm run build

然后选择下方的 MCP 宿主。

为什么没有 npm start 步骤? MCP stdio 服务器不会作为独立守护进程运行 — 你的 MCP 宿主(Claude Desktop、Claude Code 等)会按需将服务器作为子进程启动,并通过 stdin/stdout 与其通信。无需自行“启动”任何内容。

Claude Desktop

  1. 打开配置文件(如果不存在则创建):

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

    • Windows: %APPDATA%\Claude\claude_desktop_config.json

    • Linux: ~/.config/Claude/claude_desktop_config.json

  2. 将此内容合并到文件的 mcpServers 块中(替换三个 ALL_CAPS 占位符):

    {
      "mcpServers": {
        "clicky-analytics": {
          "command": "ABSOLUTE_PATH_TO_NODE", // e.g. /Users/.../.nvm/versions/node/v25.2.1/bin/node
          "args": ["ABSOLUTE_PATH_TO_CLICKY_MCP_FOLDER/dist/index.js"], // e.g. /Users/.../clicky-mcp/dist/index.js
          "env": {
            "CLICKY_SITE_ID": "YOUR_SITE_ID",
            "CLICKY_SITE_KEY": "YOUR_SITE_KEY"
          }
        }
      }
    }

    通过在终端运行 which node 获取 ABSOLUTE_PATH_TO_NODE。不要只写 "node" — Claude Desktop 通过 launchd 启动,其 PATH 极简,不包含 nvm 或 homebrew,因此直接写 "node" 会静默失败。dist/index.js 的路径也是如此:必须是绝对路径。

  3. 完全退出 Claude Desktop(macOS 上按 ⌘Q — 仅关闭窗口是不够的),然后重新打开。

  4. 通过询问 Claude "list my Clicky MCP tools" 进行验证 — 你应该能看到 11 个工具。

如果出现问题,请参阅 故障排除。

Claude Code

一条命令:

claude mcp add clicky-analytics \
  -e CLICKY_SITE_ID=YOUR_SITE_ID \
  -e CLICKY_SITE_KEY=YOUR_SITE_KEY \
  -- node /absolute/path/to/clicky-mcp/dist/index.js

默认情况下,这会写入 ~/.claude.json。添加 --scope project 以改为写入项目本地的 .mcp.json。重启 Claude Code(或运行 /mcp 刷新),这 11 个工具即可使用。

MCP Inspector (调试)

当你想要直接调用工具而不将服务器提交给宿主时,请使用此工具 — 这对于检查模式或排查响应非常方便:

npx @modelcontextprotocol/inspector node dist/index.js

然后打开打印出的 URL,在 Inspector UI 中将 CLICKY_SITE_ID 和 CLICKY_SITE_KEY 设置为环境变量(或者在 dist/index.js 之后作为 CLI 参数传递 --site-id … --site-key …),然后点击即可。


Related MCP server: Plausible MCP Server

日期参数

每个支持日期的工具都接受显式日期范围 或 Clicky 相对日期关键字 — 但不能同时使用:

  • 显式: start_date + end_date,均为 YYYY-MM-DD 格式,范围 ≤ 31 天。

  • 关键字: date_range,可选值:today、yesterday、last-7-days、last-30-days、this-week、last-week、this-month、last-month、this-year、last-year。

示例:

{ "date_range": "last-7-days" }

工具参考

所有 11 个工具,按用例大致字母顺序排列。

get_total_visitors

一段时间内的总访客数。

  • start_date / end_date 或 date_range

get_actions

一段时间内的总页面浏览量/操作数。

  • start_date / end_date 或 date_range

  • limit (数字,可选,最大 1000)

get_bounce_rate

一段时间内的跳出率和平均网站停留时间。

  • start_date / end_date 或 date_range

get_visitors_online

实时访客数和细分。无需参数。

get_top_pages

一段时间内最受欢迎的页面。

  • start_date / end_date 或 date_range

  • limit (数字,可选,最大 1000)

get_page_traffic

特定页面 URL 的流量数据。

  • url (字符串,必填)

  • start_date / end_date 或 date_range

get_traffic_sources

流量来源细分 — 可选择按页面 URL 过滤。

  • start_date / end_date 或 date_range

  • page_url (字符串,可选) — 完整 URL 或路径

get_referring_domains

带来流量的顶级引荐域名。

  • start_date / end_date 或 date_range

  • limit (数字,可选,最大 1000)

get_domain_visitors

按引荐域名过滤的访客数据,带有可选的细分。

  • domain (字符串,必填)

  • start_date / end_date 或 date_range

  • segments (数组,可选) — ["pages", "visitors"]。默认为 ["visitors"]。

  • limit (数字,可选,最大 1000)

get_searches

带来访客的顶级搜索词。

  • start_date / end_date 或 date_range

  • limit (数字,可选,最大 1000)

get_countries

按国家/地区划分的访客细分。

  • start_date / end_date 或 date_range

  • limit (数字,可选,最大 1000)


API 限制

由 Clicky 施加,而非本服务器:

  • 最大显式日期范围:31 天

  • 每次请求的最大结果数:1,000 项

  • 每个站点 ID 每个 IP 同时只能有一个请求


故障排除

“Claude Desktop 看不到服务器。” 检查 ~/Library/Logs/Claude/mcp-server-clicky-analytics.log 中的启动日志。最常见的原因是 node 不在 Claude Desktop 的 launchd PATH 中 — 通过将 "command": "node" 替换为 which node 得到的绝对路径来修复。第二常见的原因是忘记完全退出 Claude Desktop(⌘Q,而不是仅关闭窗口)。

“日期范围不能超过 31 天。” 这是 Clicky API 的限制,不是我们的。要么缩小范围,要么使用像 last-30-days 这样的 date_range 关键字。


本地开发

用于开发服务器本身,而不仅仅是使用它。

npm install         # install deps
npm run dev         # run with tsx, watching for changes (used for local testing only)
npm run build       # compile TS to dist/
npm test            # 46 unit tests, offline, no credentials needed
npm run test:integration  # live API smoke test (requires .env or env vars)

对于本地开发,凭据可以来自项目根目录中的 .env 文件:

CLICKY_SITE_ID=your_site_id
CLICKY_SITE_KEY=your_site_key

.env 已被 git 忽略。不要在 Claude Desktop 等宿主中使用 .env — 请通过宿主的配置 env 块传递凭据,如 快速开始 所示。服务器仅在凭据尚未存在于环境中时才会加载 .env。

.githooks/pre-push 中的预推送 git 钩子会在任何更新远程 main 分支的推送之前自动运行 npm test,因此回归错误不会被漏掉。它由 npm install 之后的 prepare npm 脚本自动安装。推送到功能分支不受此限制。紧急情况下可以使用 git push --no-verify 跳过。

项目结构

clicky-mcp/
├── src/
│   ├── index.ts              # MCP server + tool dispatcher
│   ├── clicky-client.ts      # Clicky HTTP API client
│   ├── date-utils.ts         # Shared date param builder
│   └── tools/                # One file per tool
├── test/                     # node:test unit tests
├── scripts/verify.mjs        # Live API smoke runner
├── .githooks/pre-push        # Auto-installed test gate for main
├── package.json
├── tsconfig.json
└── README.md

通过 AI 代理安装此 MCP

如果你希望 AI 代理(例如另一个项目中的 Claude Code)为你安装此 MCP,请将其指向本节。代理应该:

  1. 克隆并构建:

    git clone https://github.com/colintoh/clicky-mcp.git
    cd clicky-mcp && npm install && npm run build
  2. 向用户询问其 Clicky 站点 ID 和站点密钥 (https://clicky.com/user/preferences/site)。

  3. 运行 which node 并捕获绝对路径。

  4. 找到用户的 Claude Desktop 配置(路径见 快速开始 › Claude Desktop)并合并该节中的 mcpServers 代码片段,替换绝对 node 路径、绝对 dist/index.js 路径以及用户的凭据。

  5. 告诉用户完全重启 Claude Desktop (⌘Q),然后通过询问 Claude "list my Clicky MCP tools" 进行验证 — 应该会出现 11 个工具。

对于 Claude Code,快速开始 › Claude Code 中的单条 claude mcp add 命令更快,并且可以一步完成配置写入。


许可证

MIT

Available Tools

5 tools
get_domain_visitorsC

Get visitors filtered by domain from Clicky analytics with optional segmentation data

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain name to filter by (e.g., "facebook.com", "google.com")
start_dateYesStart date in YYYY-MM-DD format
end_dateYesEnd date in YYYY-MM-DD format
segmentsNoOptional array of segments to include (pages, visitors). Defaults to visitors only. "visitors" gets the total number of visitors from the domain. "pages" get the list of pages and its visited count from the domain.
limitNoOptional limit for results (max 1000)

TDQS

C2.9/5.0
Behavior2/5

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 it 'gets' data, implying a read-only operation without confirming safety or permissions. It mentions optional segmentation but doesn't disclose behavioral traits like rate limits, authentication needs, or what happens if parameters are invalid. This leaves significant gaps for a tool with 5 parameters.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core purpose ('Get visitors filtered by domain') and adds a useful detail ('with optional segmentation data'). There is zero waste, and every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and no output schema, the description is incomplete for a tool with 5 parameters. It doesn't explain return values, error conditions, or behavioral constraints like rate limits or authentication requirements. For a data retrieval tool in analytics, more context is needed to use it effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 5 parameters. The description adds minimal value beyond the schema by mentioning 'optional segmentation data', which loosely relates to the 'segments' parameter but doesn't provide additional meaning or context. Baseline 3 is appropriate as the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Get') and resource ('visitors filtered by domain from Clicky analytics'), specifying the filtering mechanism. It distinguishes from siblings like 'get_total_visitors' by mentioning domain filtering, but doesn't explicitly contrast with 'get_traffic_sources' or 'get_page_traffic' which might also involve visitor data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like 'get_total_visitors' or 'get_traffic_sources' is provided. The description mentions optional segmentation data but doesn't clarify when segmentation is beneficial or when other tools might be more appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_page_trafficC

Get traffic data for a specific page by filtering with its URL

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesFull URL or path of the page to get traffic for (e.g., https://example.com/path or /path)
start_dateYesStart date in YYYY-MM-DD format
end_dateYesEnd date in YYYY-MM-DD format

TDQS

C2.9/5.0
Behavior2/5

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 states the tool retrieves traffic data but doesn't mention any behavioral traits such as rate limits, authentication requirements, data freshness, or what the output format looks like (e.g., metrics like pageviews, sessions). This is a significant gap 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.

Conciseness5/5

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 front-loaded and every part earns its place, making it easy to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of a traffic data tool with no annotations and no output schema, the description is incomplete. It lacks details on what traffic data is returned (e.g., metrics, format), behavioral aspects like permissions or limits, and differentiation from sibling tools, leaving the agent with insufficient context for effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds minimal value beyond the input schema, which has 100% coverage with clear descriptions for all three parameters (url, start_date, end_date). It implies URL-based filtering but doesn't provide additional context like URL format constraints or date range implications. Baseline 3 is appropriate as the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with a specific verb ('Get') and resource ('traffic data for a specific page'), and it specifies the filtering mechanism ('by filtering with its URL'). However, it doesn't explicitly differentiate this tool from its siblings like 'get_top_pages' or 'get_total_visitors', which likely provide different scopes or aggregations of traffic data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 its siblings (e.g., 'get_domain_visitors', 'get_top_pages', 'get_total_visitors', 'get_traffic_sources'). It mentions filtering by URL but doesn't explain alternative scenarios or exclusions, leaving the agent to infer usage from tool names alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_top_pagesC

Get top pages for a date range from Clicky analytics

ParametersJSON Schema
NameRequiredDescriptionDefault
start_dateYesStart date in YYYY-MM-DD format
end_dateYesEnd date in YYYY-MM-DD format
limitNoMaximum number of pages to return (default: API default, max: 1000)

TDQS

C2.9/5.0
Behavior2/5

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 mentions retrieving 'top pages' but doesn't specify what 'top' means (e.g., by views, visits, or other metrics), how results are ordered, if there's pagination, rate limits, authentication needs, or error handling. This leaves significant gaps in understanding the tool's behavior beyond basic functionality.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

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 or fluff. It's front-loaded with the core action and resource, making it easy to parse quickly, which is ideal for conciseness in tool definitions.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

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, and the description's minimal detail, it's incomplete for a tool that likely returns complex analytics data. It doesn't explain what 'top pages' entails, the structure of the output, or behavioral aspects like data freshness or limitations, leaving the agent with insufficient context to use the tool effectively beyond basic parameter input.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with clear documentation for each parameter (start_date, end_date, limit) including formats, constraints, and defaults. The description adds no additional semantic details beyond implying date-range usage, so it meets the baseline of 3 where the schema handles most of the parameter explanation without extra value from the description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Get') and resource ('top pages') with the source ('from Clicky analytics') and scope ('for a date range'), making the purpose specific and understandable. However, it doesn't explicitly differentiate from sibling tools like 'get_page_traffic' or 'get_total_visitors', which might also involve date ranges or page-related data, leaving some ambiguity about uniqueness.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 like 'get_page_traffic' or 'get_traffic_sources', nor does it mention any prerequisites, exclusions, or specific contexts. It only states what the tool does, without indicating appropriate scenarios or comparisons with siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_total_visitorsC

Get total visitors for a date range from Clicky analytics

ParametersJSON Schema
NameRequiredDescriptionDefault
start_dateYesStart date in YYYY-MM-DD format
end_dateYesEnd date in YYYY-MM-DD format

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It states what the tool does but doesn't describe how it behaves: no information about authentication requirements, rate limits, error handling, or what the return value looks like (e.g., is it a single number, a structured object?). For a data retrieval tool with zero annotation coverage, this leaves significant gaps in understanding operational behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that communicates the core purpose without unnecessary words. It's appropriately sized for a simple retrieval tool and front-loads the essential information ('Get total visitors'). Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

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 effective tool use. While the purpose is clear, it doesn't address key contextual elements: what format the result returns, whether authentication is needed, any rate limits, or how it differs from sibling tools. For a data retrieval tool in an analytics context, more operational context would be helpful.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the input schema fully documents both parameters (start_date and end_date) with format patterns. The description adds no additional parameter semantics beyond implying date-range filtering. This meets the baseline expectation when schema does the heavy lifting, but doesn't provide extra context like date range constraints or timezone handling.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Get') and resource ('total visitors'), and specifies the data source ('from Clicky analytics'). It distinguishes itself from siblings by focusing on total visitor counts rather than domain-specific, page-level, or source-level metrics. However, it doesn't explicitly contrast with sibling tools like 'get_domain_visitors' which might also provide visitor counts.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 like 'get_domain_visitors' or 'get_traffic_sources'. It doesn't mention prerequisites, limitations, or specific use cases. The agent must infer usage from the tool name alone, which is insufficient for optimal tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_traffic_sourcesB

Get traffic sources breakdown from Clicky analytics. Optionally filter by specific page URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
start_dateYesStart date in YYYY-MM-DD format
end_dateYesEnd date in YYYY-MM-DD format
page_urlNoOptional: Full URL or path of the page to get traffic sources for (e.g., https://example.com/path or /path)

TDQS

B3.3/5.0
Behavior2/5

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 mentions an optional filter but does not describe the return format, pagination, rate limits, authentication needs, or whether this is a read-only operation. For a tool with no annotations, 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the main purpose and includes the optional filter. There is no wasted language, and it is appropriately sized for the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and no output schema, the description is incomplete for a tool with three parameters. It covers the basic purpose and optional filtering but lacks details on return values, error handling, or behavioral traits. This is adequate as a minimum but has clear gaps in providing a full context for the agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters (start_date, end_date, page_url) with descriptions and formats. The description adds marginal value by mentioning the optional filter by page URL, but does not provide additional semantics beyond what the schema specifies, such as examples or constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Get') and resource ('traffic sources breakdown from Clicky analytics'), making the purpose evident. It distinguishes from siblings by focusing on traffic sources rather than visitors, page traffic, or top pages. However, it doesn't explicitly contrast with sibling tools like 'get_domain_visitors' or 'get_page_traffic' 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage through the optional filter by page URL, suggesting it can be used for overall traffic sources or per-page analysis. However, it lacks explicit guidance on when to use this tool versus alternatives like 'get_page_traffic' or 'get_domain_visitors', and does not mention prerequisites or exclusions.

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.

  1. 5 tool updates
    • First observedget_domain_visitors
    • First observedget_page_traffic
    • First observedget_top_pages
    • First observedget_total_visitors
    • First observedget_traffic_sources

TDQS

A3.5/5.0

Scored across 5 tools

Disambiguation5/5

Each tool has a clearly distinct purpose targeting different analytics dimensions: domain visitors, page traffic, top pages, total visitors, and traffic sources. There is no overlap in functionality, making it easy for an agent to select the correct tool without confusion.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with 'get_' prefix and descriptive nouns (e.g., get_domain_visitors, get_page_traffic). This uniformity enhances readability and predictability across the toolset.

Tool Count5/5

With 5 tools, the server is well-scoped for analytics retrieval, covering key metrics like visitors, pages, and traffic sources. Each tool earns its place without being overly sparse or bloated, fitting typical use cases effectively.

Completeness4/5

The toolset provides comprehensive read-only coverage for analytics data, including filtering and segmentation options. A minor gap exists in lacking write or configuration tools (e.g., setting up analytics), but this is reasonable for a data retrieval-focused server, and agents can work around this limitation.

Maintenance

ActivityInactive
ResponsivenessSlow

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enhances Claude's capabilities by providing access to website analytics data from Umami, enabling analysis of user behavior, website performance tracking, and data-driven insights generation.
    9
    MIT
  • F
    license
    B
    quality
    D
    maintenance
    Allows AI models to query and retrieve analytics data from Plausible Analytics through the Plausible API, enabling natural language interactions with website statistics.
    1
    8
    -
  • A
    license
    A
    quality
    F
    maintenance
    Enables AI assistants to interact with Umami Analytics for both Cloud and self-hosted instances. It provides tools to retrieve website statistics, visitor metrics, pageview trends, and real-time active user counts.
    5
    1
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables querying Plausible Analytics data for website statistics, traffic, engagement, and conversions through natural language, with support for filters, dimensions, and time-series.
    6
    -

Appeared in Searches