umami-compass 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +34 -8
- package/dist/mcp/insights-utils.d.ts +46 -2
- package/dist/mcp/insights-utils.d.ts.map +1 -1
- package/dist/mcp/insights-utils.js +146 -18
- package/dist/mcp/insights-utils.js.map +1 -1
- package/dist/mcp/modules/core.d.ts.map +1 -1
- package/dist/mcp/modules/core.js +8 -0
- package/dist/mcp/modules/core.js.map +1 -1
- package/dist/mcp/modules/insights.d.ts.map +1 -1
- package/dist/mcp/modules/insights.js +234 -25
- package/dist/mcp/modules/insights.js.map +1 -1
- package/dist/mcp/modules/reports.d.ts.map +1 -1
- package/dist/mcp/modules/reports.js +60 -8
- package/dist/mcp/modules/reports.js.map +1 -1
- package/dist/mcp/report-utils.d.ts.map +1 -1
- package/dist/mcp/report-utils.js +2 -1
- package/dist/mcp/report-utils.js.map +1 -1
- package/dist/mcp/schemas.d.ts +1063 -20
- package/dist/mcp/schemas.d.ts.map +1 -1
- package/dist/mcp/schemas.js +158 -21
- package/dist/mcp/schemas.js.map +1 -1
- package/dist/mcp/traffic-segmentation.d.ts +82 -0
- package/dist/mcp/traffic-segmentation.d.ts.map +1 -0
- package/dist/mcp/traffic-segmentation.js +256 -0
- package/dist/mcp/traffic-segmentation.js.map +1 -0
- package/dist/server-info.d.ts +32 -0
- package/dist/server-info.d.ts.map +1 -0
- package/dist/server-info.js +34 -0
- package/dist/server-info.js.map +1 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +2 -15
- package/dist/server.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
- package/server.json +2 -2
package/README.md
CHANGED
|
@@ -2,17 +2,18 @@
|
|
|
2
2
|
|
|
3
3
|
**Open-source MCP server for Umami Analytics — Cloud and self-hosted.**
|
|
4
4
|
|
|
5
|
-

|
|
6
6
|
|
|
7
7
|
[](https://github.com/webcredo/umami-compass/actions/workflows/ci.yml)
|
|
8
8
|
[](https://www.npmjs.com/package/umami-compass)
|
|
9
9
|
[](LICENSE)
|
|
10
|
+
[](https://ko-fi.com/P5Z8234QNW)
|
|
10
11
|
|
|
11
12
|
**Distribution:** [`umami-compass` on npm](https://www.npmjs.com/package/umami-compass) · [`io.github.webcredo/umami-compass` in the official MCP Registry](https://registry.modelcontextprotocol.io/v0.1/servers?search=io.github.webcredo%2Fumami-compass)
|
|
12
13
|
|
|
13
14
|
Umami Compass is a secure, read-only [Model Context Protocol](https://modelcontextprotocol.io/) server for [Umami Analytics](https://umami.is/). It gives MCP clients accurate Umami 3.2 analytics without exposing a database or allowing arbitrary network requests.
|
|
14
15
|
|
|
15
|
-
Version `0.
|
|
16
|
+
Version `0.3.0` is the current source release. See [Compatibility](#compatibility) before using it with older Umami versions.
|
|
16
17
|
|
|
17
18
|
> The `npx` examples follow the stable npm release channel and check it whenever the MCP process starts. For source-based evaluation, clone this repository, run `pnpm install --frozen-lockfile && pnpm build`, and use `node /absolute/path/to/umami-compass/dist/cli.js` as the MCP command.
|
|
18
19
|
|
|
@@ -42,7 +43,7 @@ npx --yes --prefer-online umami-compass@latest
|
|
|
42
43
|
|
|
43
44
|
`@latest` selects the stable npm channel and `--prefer-online` makes npm check the registry even when package metadata is cached. npm still reuses the cached package when that exact release is already present. Updates take effect the next time the MCP process starts; an already running local server cannot replace itself.
|
|
44
45
|
|
|
45
|
-
Use `umami-compass@next` instead to opt into preview releases. For reproducible CI or centrally managed environments, pin an exact release and omit the online check, for example `npx --yes umami-compass@0.
|
|
46
|
+
Use `umami-compass@next` instead to opt into preview releases. For reproducible CI or centrally managed environments, pin an exact release and omit the online check, for example `npx --yes umami-compass@0.3.0`. Never use the preview channel for an unattended production setup.
|
|
46
47
|
|
|
47
48
|
### Umami Cloud
|
|
48
49
|
|
|
@@ -91,12 +92,12 @@ Do not commit real credentials. Prefer a dedicated view-only Umami account and t
|
|
|
91
92
|
|
|
92
93
|
## Tools
|
|
93
94
|
|
|
94
|
-
The least-privilege default enables `core,insights`:
|
|
95
|
+
The least-privilege default enables `core,insights`: eight primitive aggregate tools plus six decision-ready aggregate workflows. Row-level events, sessions, replay, heatmaps, and other more sensitive modules remain opt-in.
|
|
95
96
|
|
|
96
97
|
| Toolset | Tools | Default |
|
|
97
98
|
| --- | --- | --- |
|
|
98
|
-
| `core` | `list_websites`, `get_website`, `get_website_stats`, `get_pageviews`, `get_metrics`, `get_active_visitors`, `get_website_date_range` | Yes |
|
|
99
|
-
| `insights` | `resolve_website`, `get_portfolio_overview`, `explain_traffic_change`, `analyze_release_impact`, `tracking_health_check` | Yes |
|
|
99
|
+
| `core` | `get_server_info`, `list_websites`, `get_website`, `get_website_stats`, `get_pageviews`, `get_metrics`, `get_active_visitors`, `get_website_date_range` | Yes |
|
|
100
|
+
| `insights` | `resolve_website`, `get_portfolio_overview`, `explain_traffic_change`, `compare_traffic_series`, `analyze_release_impact`, `tracking_health_check` | Yes |
|
|
100
101
|
| `events` | `list_events`, `get_event_stats`, `get_event_series` | No |
|
|
101
102
|
| `sessions` | `list_sessions`, `get_session_stats`, `get_session`, `get_session_activity` | No |
|
|
102
103
|
| `performance` | `get_web_vitals`, `get_performance_breakdown` for LCP, INP, CLS, FCP, and TTFB | No |
|
|
@@ -105,11 +106,30 @@ The least-privilege default enables `core,insights`: seven primitive aggregate t
|
|
|
105
106
|
| `replay` | `list_replays` (metadata only; never raw rrweb payloads) | No |
|
|
106
107
|
| `heatmaps` | `get_heatmap` (click/scroll pages and bounded detail points) | No |
|
|
107
108
|
|
|
108
|
-
Set `UMAMI_TOOLSETS=all` or a comma-separated subset. The default has
|
|
109
|
+
Set `UMAMI_TOOLSETS=all` or a comma-separated subset. The default has 14 aggregate tools; `all` has 37. Multi-website insights are bounded to 50 websites with four concurrent website workers. High-cardinality report, performance, heatmap, channel fan-out, and activity results carry explicit limits and truncation metadata.
|
|
109
110
|
|
|
110
111
|
Successful tool responses preserve the existing `data` field and add a common `meta` envelope. Depending on the request it includes `dataStatus`, `emptyReason`, `websiteId`, `requestedRange`, `timezone`, and `truncated`, allowing clients to distinguish a valid empty range from a disabled feature or a truncated result.
|
|
111
112
|
|
|
112
|
-
The server exposes `umami://websites` and the sanitized `umami://capabilities` resource. Guided prompts cover an analytics report, weekly portfolio briefing, traffic investigation, release impact, tracking health, and conversion audit; each prompt is registered only when its required toolset is enabled. Scheduling a recurring briefing remains the MCP client's responsibility; the local stdio server does not run a background scheduler or send messages.
|
|
113
|
+
The server exposes `umami://websites` and the sanitized `umami://capabilities` resource. `get_server_info` returns the same local version, enabled toolsets, limits, and feature flags as a tool. Guided prompts cover an analytics report, weekly portfolio briefing, traffic investigation, release impact, tracking health, and conversion audit; each prompt is registered only when its required toolset is enabled. Scheduling a recurring briefing remains the MCP client's responsibility; the local stdio server does not run a background scheduler or send messages.
|
|
114
|
+
|
|
115
|
+
### Filters, direct traffic, channels, and traffic quality
|
|
116
|
+
|
|
117
|
+
Plain string filters remain compatible. Structured filters add `equals`, `not_equals`, `contains`, `not_contains`, `regex`, `not_regex`, `is_empty`, and `is_not_empty`. Equality operators accept an array for native `IN` or `NOT IN` behavior:
|
|
118
|
+
|
|
119
|
+
```json
|
|
120
|
+
{
|
|
121
|
+
"filters": {
|
|
122
|
+
"referrer": { "operator": "is_empty" },
|
|
123
|
+
"path": { "operator": "not_equals", "value": ["/admin", "/internal"] }
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
For compatibility, `{"referrer": ""}` also isolates direct rows. Compass uses Umami's neutral referrer-domain column for structured and empty referrer filters so direct/internal traffic is not accidentally removed by Umami's external-referrer behavior.
|
|
129
|
+
|
|
130
|
+
`explain_traffic_change`, `analyze_release_impact`, and `run_breakdown_report` accept `filters.channel`, including `direct`. `run_breakdown_report` also accepts `channel` as a field, so requests such as `channel × device` work. Umami 3.2 does not natively expose channel as a filter or breakdown field; Compass derives these results through bounded expanded-metric fan-out and reports candidate coverage, omitted rows, request count, and truncation under `dataQuality`.
|
|
131
|
+
|
|
132
|
+
Traffic-change, release-impact, comparison-series, and breakdown results conservatively flag referral-spam candidates using the combined pattern of a generated-looking domain, very high bounce rate, near-zero visit duration, and minimum traffic. Set `trafficSegment` to `human` to exclude only those candidates with native negative filters. The preset fails closed when both periods cannot be assessed. Findings remain heuristics, not a definitive bot classification, and include their evidence and thresholds.
|
|
113
133
|
|
|
114
134
|
## Configuration
|
|
115
135
|
|
|
@@ -317,6 +337,12 @@ Analytics, session metadata, revenue, and replay metadata can be sensitive. Use
|
|
|
317
337
|
|
|
318
338
|
Umami Compass is an independent community project and is not affiliated with Umami Software.
|
|
319
339
|
|
|
340
|
+
## Support the project
|
|
341
|
+
|
|
342
|
+
Umami Compass is free and open source. If it saves you time or improves your analytics workflow, you can support the project by buying me a coffee on Ko-fi.
|
|
343
|
+
|
|
344
|
+
[](https://ko-fi.com/P5Z8234QNW)
|
|
345
|
+
|
|
320
346
|
## License
|
|
321
347
|
|
|
322
348
|
[MIT](LICENSE) © 2026 webcredo and Umami Compass contributors.
|
|
@@ -3,6 +3,7 @@ import type { UmamiClient } from "../api/client.js";
|
|
|
3
3
|
import type { Website } from "../api/types.js";
|
|
4
4
|
import type { TimeInput } from "../time.js";
|
|
5
5
|
import { type filtersSchema } from "./schemas.js";
|
|
6
|
+
import { type TrafficChannel } from "./traffic-segmentation.js";
|
|
6
7
|
export declare const TRAFFIC_DIMENSIONS: readonly ["path", "referrer", "country", "device", "channel", "event"];
|
|
7
8
|
export type TrafficDimension = (typeof TRAFFIC_DIMENSIONS)[number];
|
|
8
9
|
export interface TimePeriod {
|
|
@@ -36,11 +37,13 @@ export declare function isoPeriod(period: TimePeriod): {
|
|
|
36
37
|
export declare function normalizePeriod(start: TimeInput, end: TimeInput, maxRangeDays: number): TimePeriod;
|
|
37
38
|
export declare function comparisonPeriod(current: TimePeriod, mode: "previous" | "year_over_year"): TimePeriod;
|
|
38
39
|
export declare function mapConcurrent<T, R>(values: readonly T[], concurrency: number, operation: (value: T, index: number) => Promise<R>): Promise<R[]>;
|
|
39
|
-
export declare function fetchWebsiteStats(client: UmamiClient, websiteId: string, period: TimePeriod, maxRangeDays: number, filters: Filters, signal?: AbortSignal): Promise<WebsiteStats>;
|
|
40
|
+
export declare function fetchWebsiteStats(client: UmamiClient, websiteId: string, period: TimePeriod, maxRangeDays: number, filters: Filters, signal?: AbortSignal, excludedReferrers?: readonly string[]): Promise<WebsiteStats>;
|
|
40
41
|
export interface TrafficComparisonInput {
|
|
42
|
+
channel?: TrafficChannel;
|
|
41
43
|
comparison: TimePeriod;
|
|
42
44
|
current: TimePeriod;
|
|
43
45
|
dimensions: readonly TrafficDimension[];
|
|
46
|
+
excludedReferrers?: readonly string[];
|
|
44
47
|
filters?: Filters;
|
|
45
48
|
limit: number;
|
|
46
49
|
maxRangeDays: number;
|
|
@@ -50,6 +53,7 @@ export interface TrafficComparisonInput {
|
|
|
50
53
|
export declare function compareTraffic(client: UmamiClient, input: TrafficComparisonInput): Promise<{
|
|
51
54
|
dataStatus: "available" | "empty";
|
|
52
55
|
website: Pick<Website, "domain" | "id" | "name">;
|
|
56
|
+
channel?: "affiliate" | "direct" | "email" | "llm" | "organicSearch" | "organicShopping" | "organicSocial" | "organicVideo" | "paidAds" | "paidSearch" | "paidShopping" | "paidSocial" | "paidVideo" | "referral" | "sms" | undefined;
|
|
53
57
|
currentPeriod: {
|
|
54
58
|
start: string;
|
|
55
59
|
end: string;
|
|
@@ -70,7 +74,47 @@ export declare function compareTraffic(client: UmamiClient, input: TrafficCompar
|
|
|
70
74
|
explanation: string;
|
|
71
75
|
breakdownMeasure: string;
|
|
72
76
|
breakdowns: ({
|
|
73
|
-
dimension: "channel"
|
|
77
|
+
dimension: "channel";
|
|
78
|
+
status: "available";
|
|
79
|
+
measure: "visitors";
|
|
80
|
+
rows: {
|
|
81
|
+
name: string;
|
|
82
|
+
current: number;
|
|
83
|
+
comparison: number;
|
|
84
|
+
delta: number;
|
|
85
|
+
percent: number | null;
|
|
86
|
+
direction: string;
|
|
87
|
+
}[];
|
|
88
|
+
dataQuality: {
|
|
89
|
+
currentRowsTruncated: boolean;
|
|
90
|
+
comparisonRowsTruncated: boolean;
|
|
91
|
+
omittedUncertainRows: number;
|
|
92
|
+
};
|
|
93
|
+
error?: undefined;
|
|
94
|
+
} | {
|
|
95
|
+
dimension: "country" | "device" | "event" | "path" | "referrer";
|
|
96
|
+
status: "available";
|
|
97
|
+
measure: "visitors";
|
|
98
|
+
rows: {
|
|
99
|
+
name: string;
|
|
100
|
+
current: number;
|
|
101
|
+
comparison: number;
|
|
102
|
+
delta: number;
|
|
103
|
+
percent: number | null;
|
|
104
|
+
direction: string;
|
|
105
|
+
}[];
|
|
106
|
+
dataQuality: {
|
|
107
|
+
currentRowsTruncated: boolean;
|
|
108
|
+
comparisonRowsTruncated: boolean;
|
|
109
|
+
omittedUncertainRows: number;
|
|
110
|
+
candidateRowsTruncated: boolean;
|
|
111
|
+
candidateRows: number;
|
|
112
|
+
omittedUnsupportedRows: number;
|
|
113
|
+
fanoutRequests: number;
|
|
114
|
+
};
|
|
115
|
+
error?: undefined;
|
|
116
|
+
} | {
|
|
117
|
+
dimension: "country" | "device" | "event" | "path" | "referrer";
|
|
74
118
|
status: "available";
|
|
75
119
|
measure: "visitors";
|
|
76
120
|
rows: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"insights-utils.d.ts","sourceRoot":"","sources":["../../src/mcp/insights-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"insights-utils.d.ts","sourceRoot":"","sources":["../../src/mcp/insights-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { toSafeError, UmamiError } from "../api/errors.js";
|
|
2
2
|
import { parseTimeRange } from "../time.js";
|
|
3
3
|
import { reportFilters } from "./report-utils.js";
|
|
4
|
-
import { rangeQuery } from "./schemas.js";
|
|
4
|
+
import { appendReferrerExclusions, rangeQuery, serializeFilters, } from "./schemas.js";
|
|
5
|
+
import { appendDimensionEquality, fetchExpandedMetricRows, selectChannelTotals, } from "./traffic-segmentation.js";
|
|
5
6
|
export const TRAFFIC_DIMENSIONS = [
|
|
6
7
|
"path",
|
|
7
8
|
"referrer",
|
|
@@ -10,6 +11,9 @@ export const TRAFFIC_DIMENSIONS = [
|
|
|
10
11
|
"channel",
|
|
11
12
|
"event",
|
|
12
13
|
];
|
|
14
|
+
function analysisFilters(filters, excludedReferrers = []) {
|
|
15
|
+
return appendReferrerExclusions(serializeFilters(filters), excludedReferrers);
|
|
16
|
+
}
|
|
13
17
|
function isRecord(value) {
|
|
14
18
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
15
19
|
}
|
|
@@ -109,12 +113,13 @@ export async function mapConcurrent(values, concurrency, operation) {
|
|
|
109
113
|
await Promise.all(workers);
|
|
110
114
|
return results;
|
|
111
115
|
}
|
|
112
|
-
export async function fetchWebsiteStats(client, websiteId, period, maxRangeDays, filters, signal) {
|
|
116
|
+
export async function fetchWebsiteStats(client, websiteId, period, maxRangeDays, filters, signal, excludedReferrers = []) {
|
|
113
117
|
return parseWebsiteStats(await client.get(`websites/${encodeURIComponent(websiteId)}/stats`, rangeQuery(period.startAt, period.endAt, maxRangeDays, {
|
|
114
|
-
filters,
|
|
118
|
+
serializedFilters: analysisFilters(filters, excludedReferrers),
|
|
115
119
|
}), signal));
|
|
116
120
|
}
|
|
117
121
|
const MAX_METRIC_COMPARISON_ROWS = 100;
|
|
122
|
+
const MAX_CHANNEL_COMPARISON_CANDIDATES = 20;
|
|
118
123
|
function parseMetricRows(value) {
|
|
119
124
|
if (!Array.isArray(value)) {
|
|
120
125
|
throw new UmamiError("INVALID_RESPONSE", "Umami returned invalid metric breakdown data.");
|
|
@@ -130,10 +135,10 @@ function parseMetricRows(value) {
|
|
|
130
135
|
}
|
|
131
136
|
return rows;
|
|
132
137
|
}
|
|
133
|
-
async function fetchMetricRows(client, websiteId, period, maxRangeDays, dimension, limit, filters, signal) {
|
|
138
|
+
async function fetchMetricRows(client, websiteId, period, maxRangeDays, dimension, limit, filters, signal, excludedReferrers = []) {
|
|
134
139
|
const rows = parseMetricRows(await client.get(`websites/${encodeURIComponent(websiteId)}/metrics`, {
|
|
135
140
|
...rangeQuery(period.startAt, period.endAt, maxRangeDays, {
|
|
136
|
-
filters,
|
|
141
|
+
serializedFilters: analysisFilters(filters, excludedReferrers),
|
|
137
142
|
}),
|
|
138
143
|
type: dimension,
|
|
139
144
|
limit,
|
|
@@ -184,19 +189,137 @@ function diffMetricRows(currentResult, comparisonResult, limit) {
|
|
|
184
189
|
};
|
|
185
190
|
}
|
|
186
191
|
export async function compareTraffic(client, input) {
|
|
187
|
-
const { comparison, current, dimensions, filters, limit, maxRangeDays, signal, website } = input;
|
|
188
|
-
const
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
192
|
+
const { channel, comparison, current, dimensions, excludedReferrers = [], filters, limit, maxRangeDays, signal, website, } = input;
|
|
193
|
+
const serializedFilters = analysisFilters(filters, excludedReferrers);
|
|
194
|
+
let currentTotals;
|
|
195
|
+
let comparisonTotals;
|
|
196
|
+
if (channel) {
|
|
197
|
+
const channelTotals = async (period) => {
|
|
198
|
+
const row = selectChannelTotals(await fetchExpandedMetricRows(client, {
|
|
199
|
+
filters: serializedFilters,
|
|
200
|
+
maxRangeDays,
|
|
201
|
+
period,
|
|
202
|
+
signal,
|
|
203
|
+
type: "channel",
|
|
204
|
+
websiteId: website.id,
|
|
205
|
+
}), channel);
|
|
206
|
+
return {
|
|
207
|
+
pageviews: row.pageviews,
|
|
208
|
+
visitors: row.visitors,
|
|
209
|
+
visits: row.visits,
|
|
210
|
+
bounces: row.bounces,
|
|
211
|
+
totaltime: row.totaltime,
|
|
212
|
+
};
|
|
213
|
+
};
|
|
214
|
+
[currentTotals, comparisonTotals] = await Promise.all([
|
|
215
|
+
channelTotals(current),
|
|
216
|
+
channelTotals(comparison),
|
|
217
|
+
]);
|
|
218
|
+
}
|
|
219
|
+
else {
|
|
220
|
+
const totals = async (period) => websiteTotals(await fetchWebsiteStats(client, website.id, period, maxRangeDays, filters, signal, excludedReferrers));
|
|
221
|
+
[currentTotals, comparisonTotals] = await Promise.all([totals(current), totals(comparison)]);
|
|
222
|
+
}
|
|
194
223
|
const metricFetchLimit = Math.min(MAX_METRIC_COMPARISON_ROWS, Math.max(limit * 5, 20));
|
|
195
|
-
const breakdowns = await mapConcurrent(dimensions, 3, async (dimension) => {
|
|
224
|
+
const breakdowns = await mapConcurrent(dimensions, channel ? 1 : 3, async (dimension) => {
|
|
196
225
|
try {
|
|
226
|
+
if (channel && dimension === "event") {
|
|
227
|
+
throw new UmamiError("VALIDATION_ERROR", "Umami cannot cross-tabulate attributed channels with custom events.");
|
|
228
|
+
}
|
|
229
|
+
if (dimension === "channel") {
|
|
230
|
+
const channelRows = async (period) => {
|
|
231
|
+
const rows = await fetchExpandedMetricRows(client, {
|
|
232
|
+
filters: serializedFilters,
|
|
233
|
+
maxRangeDays,
|
|
234
|
+
period,
|
|
235
|
+
signal,
|
|
236
|
+
type: "channel",
|
|
237
|
+
websiteId: website.id,
|
|
238
|
+
});
|
|
239
|
+
return {
|
|
240
|
+
rows: rows
|
|
241
|
+
.filter(({ name }) => channel === undefined || name === channel)
|
|
242
|
+
.map(({ name, visitors }) => ({ name, value: visitors })),
|
|
243
|
+
truncated: false,
|
|
244
|
+
};
|
|
245
|
+
};
|
|
246
|
+
const [currentChannels, comparisonChannels] = await Promise.all([
|
|
247
|
+
channelRows(current),
|
|
248
|
+
channelRows(comparison),
|
|
249
|
+
]);
|
|
250
|
+
const difference = diffMetricRows(currentChannels, comparisonChannels, limit);
|
|
251
|
+
return {
|
|
252
|
+
dimension,
|
|
253
|
+
status: "available",
|
|
254
|
+
measure: "visitors",
|
|
255
|
+
rows: difference.rows,
|
|
256
|
+
dataQuality: difference.dataQuality,
|
|
257
|
+
};
|
|
258
|
+
}
|
|
259
|
+
if (channel) {
|
|
260
|
+
const [currentCandidates, comparisonCandidates] = await Promise.all([
|
|
261
|
+
fetchMetricRows(client, website.id, current, maxRangeDays, dimension, metricFetchLimit, filters, signal, excludedReferrers),
|
|
262
|
+
fetchMetricRows(client, website.id, comparison, maxRangeDays, dimension, metricFetchLimit, filters, signal, excludedReferrers),
|
|
263
|
+
]);
|
|
264
|
+
const candidateScores = new Map();
|
|
265
|
+
for (const { name, value } of [...currentCandidates.rows, ...comparisonCandidates.rows]) {
|
|
266
|
+
candidateScores.set(name, Math.max(candidateScores.get(name) ?? 0, value));
|
|
267
|
+
}
|
|
268
|
+
const allCandidates = [...candidateScores]
|
|
269
|
+
.sort((left, right) => right[1] - left[1] || left[0].localeCompare(right[0]))
|
|
270
|
+
.map(([name]) => name);
|
|
271
|
+
const candidates = allCandidates.slice(0, MAX_CHANNEL_COMPARISON_CANDIDATES);
|
|
272
|
+
let omittedUnsupportedRows = 0;
|
|
273
|
+
const values = await mapConcurrent(candidates, 4, async (name) => {
|
|
274
|
+
const candidateFilters = appendDimensionEquality(serializedFilters, dimension, name);
|
|
275
|
+
if (!candidateFilters) {
|
|
276
|
+
omittedUnsupportedRows += 1;
|
|
277
|
+
return undefined;
|
|
278
|
+
}
|
|
279
|
+
const expanded = (period) => fetchExpandedMetricRows(client, {
|
|
280
|
+
filters: candidateFilters,
|
|
281
|
+
maxRangeDays,
|
|
282
|
+
period,
|
|
283
|
+
signal,
|
|
284
|
+
type: "channel",
|
|
285
|
+
websiteId: website.id,
|
|
286
|
+
});
|
|
287
|
+
const [currentRows, comparisonRows] = await Promise.all([
|
|
288
|
+
expanded(current),
|
|
289
|
+
expanded(comparison),
|
|
290
|
+
]);
|
|
291
|
+
return {
|
|
292
|
+
name,
|
|
293
|
+
current: selectChannelTotals(currentRows, channel).visitors,
|
|
294
|
+
comparison: selectChannelTotals(comparisonRows, channel).visitors,
|
|
295
|
+
};
|
|
296
|
+
});
|
|
297
|
+
const difference = diffMetricRows({
|
|
298
|
+
rows: values.flatMap((value) => value ? [{ name: value.name, value: value.current }] : []),
|
|
299
|
+
truncated: false,
|
|
300
|
+
}, {
|
|
301
|
+
rows: values.flatMap((value) => value ? [{ name: value.name, value: value.comparison }] : []),
|
|
302
|
+
truncated: false,
|
|
303
|
+
}, limit);
|
|
304
|
+
return {
|
|
305
|
+
dimension,
|
|
306
|
+
status: "available",
|
|
307
|
+
measure: "visitors",
|
|
308
|
+
rows: difference.rows,
|
|
309
|
+
dataQuality: {
|
|
310
|
+
...difference.dataQuality,
|
|
311
|
+
candidateRowsTruncated: allCandidates.length > candidates.length ||
|
|
312
|
+
currentCandidates.truncated ||
|
|
313
|
+
comparisonCandidates.truncated,
|
|
314
|
+
candidateRows: candidates.length,
|
|
315
|
+
omittedUnsupportedRows,
|
|
316
|
+
fanoutRequests: candidates.length * 2,
|
|
317
|
+
},
|
|
318
|
+
};
|
|
319
|
+
}
|
|
197
320
|
const [currentRows, comparisonRows] = await Promise.all([
|
|
198
|
-
fetchMetricRows(client, website.id, current, maxRangeDays, dimension, metricFetchLimit, filters, signal),
|
|
199
|
-
fetchMetricRows(client, website.id, comparison, maxRangeDays, dimension, metricFetchLimit, filters, signal),
|
|
321
|
+
fetchMetricRows(client, website.id, current, maxRangeDays, dimension, metricFetchLimit, filters, signal, excludedReferrers),
|
|
322
|
+
fetchMetricRows(client, website.id, comparison, maxRangeDays, dimension, metricFetchLimit, filters, signal, excludedReferrers),
|
|
200
323
|
]);
|
|
201
324
|
const difference = diffMetricRows(currentRows, comparisonRows, limit);
|
|
202
325
|
return {
|
|
@@ -227,9 +350,10 @@ export async function compareTraffic(client, input) {
|
|
|
227
350
|
const pageviewPercent = percentChange(currentTotals.pageviews, comparisonTotals.pageviews);
|
|
228
351
|
const direction = pageviewDelta > 0 ? "increase" : pageviewDelta < 0 ? "decrease" : "flat";
|
|
229
352
|
const leading = leadingObservedChanges[0];
|
|
353
|
+
const subject = channel ? `${channel} channel traffic` : "Traffic";
|
|
230
354
|
const explanation = leading
|
|
231
|
-
?
|
|
232
|
-
:
|
|
355
|
+
? `${subject} shows a ${direction}${pageviewPercent === null ? "" : ` of ${Math.abs(pageviewPercent)}%`}. The largest observed breakdown change is ${leading.dimension}=${leading.name} (${leading.delta > 0 ? "+" : ""}${leading.delta} visitors); this is evidence of association, not proof of causation.`
|
|
356
|
+
: `${subject} shows a ${direction}${pageviewPercent === null ? "" : ` of ${Math.abs(pageviewPercent)}%`}. No authorized breakdown produced enough evidence to identify a leading observed change.`;
|
|
233
357
|
return {
|
|
234
358
|
dataStatus: currentTotals.pageviews === 0 &&
|
|
235
359
|
currentTotals.visitors === 0 &&
|
|
@@ -240,6 +364,7 @@ export async function compareTraffic(client, input) {
|
|
|
240
364
|
? "empty"
|
|
241
365
|
: "available",
|
|
242
366
|
website,
|
|
367
|
+
...(channel ? { channel } : {}),
|
|
243
368
|
currentPeriod: isoPeriod(current),
|
|
244
369
|
comparisonPeriod: isoPeriod(comparison),
|
|
245
370
|
current: currentTotals,
|
|
@@ -259,7 +384,10 @@ export async function compareTraffic(client, input) {
|
|
|
259
384
|
.map(({ dimension }) => dimension),
|
|
260
385
|
truncatedDimensions: breakdowns
|
|
261
386
|
.filter((item) => item.status === "available" &&
|
|
262
|
-
(item.dataQuality.currentRowsTruncated ||
|
|
387
|
+
(item.dataQuality.currentRowsTruncated ||
|
|
388
|
+
item.dataQuality.comparisonRowsTruncated ||
|
|
389
|
+
("candidateRowsTruncated" in item.dataQuality &&
|
|
390
|
+
item.dataQuality.candidateRowsTruncated === true)))
|
|
263
391
|
.map(({ dimension }) => dimension),
|
|
264
392
|
omittedUncertainRows: breakdowns
|
|
265
393
|
.filter((item) => item.status === "available")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"insights-utils.js","sourceRoot":"","sources":["../../src/mcp/insights-utils.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"insights-utils.js","sourceRoot":"","sources":["../../src/mcp/insights-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../src/mcp/modules/core.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../src/mcp/modules/core.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAyBpD,eAAO,MAAM,UAAU,EAAE,UA0MxB,CAAC"}
|
package/dist/mcp/modules/core.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
+
import { getServerInfo } from "../../server-info.js";
|
|
2
3
|
import { READ_ONLY_ANNOTATIONS, runTool } from "../result.js";
|
|
3
4
|
import { arrayOutputSchema, filtersSchema, outputSchema, pagedOutputSchema, pageSchema, pageSizeSchema, pageviewsDataSchema, pageviewsOutputSchema, parseUpstream, rangeQuery, recordOutputSchema, seriesRangeQuery, timeSchema, timezoneSchema, unitSchema, uuidSchema, } from "../schemas.js";
|
|
4
5
|
const metricTypeSchema = z.enum([
|
|
@@ -27,6 +28,13 @@ export const coreModule = {
|
|
|
27
28
|
id: "core",
|
|
28
29
|
access: "read",
|
|
29
30
|
register(server, { client, config }) {
|
|
31
|
+
server.registerTool("get_server_info", {
|
|
32
|
+
title: "Get Umami Compass server information",
|
|
33
|
+
description: "Get the local package version, enabled toolsets, safety limits, and supported analysis capabilities without exposing credentials.",
|
|
34
|
+
inputSchema: {},
|
|
35
|
+
outputSchema: recordOutputSchema,
|
|
36
|
+
annotations: READ_ONLY_ANNOTATIONS,
|
|
37
|
+
}, () => runTool(async () => getServerInfo(config)));
|
|
30
38
|
server.registerTool("list_websites", {
|
|
31
39
|
title: "List Umami websites",
|
|
32
40
|
description: "List websites visible directly or through any team membership of the configured Umami identity. If UMAMI_WEBSITE_IDS is set, returns only that exact allowlist.",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../../src/mcp/modules/core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,YAAY,EACZ,iBAAiB,EACjB,UAAU,EACV,cAAc,EACd,mBAAmB,EACnB,qBAAqB,EACrB,aAAa,EACb,UAAU,EACV,kBAAkB,EAClB,gBAAgB,EAChB,UAAU,EACV,cAAc,EACd,UAAU,EACV,UAAU,GACX,MAAM,eAAe,CAAC;AAGvB,MAAM,gBAAgB,GAAG,CAAC,CAAC,IAAI,CAAC;IAC9B,SAAS;IACT,SAAS;IACT,MAAM;IACN,SAAS;IACT,QAAQ;IACR,QAAQ;IACR,OAAO;IACP,OAAO;IACP,MAAM;IACN,UAAU;IACV,UAAU;IACV,UAAU;IACV,IAAI;IACJ,MAAM;IACN,OAAO;IACP,UAAU;IACV,QAAQ;IACR,QAAQ;IACR,KAAK;IACL,OAAO;CACR,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,UAAU,GAAe;IACpC,EAAE,EAAE,MAAM;IACV,MAAM,EAAE,MAAM;IACd,QAAQ,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;QACjC,MAAM,CAAC,YAAY,CACjB,eAAe,EACf;YACE,KAAK,EAAE,qBAAqB;YAC5B,WAAW,EACT,iKAAiK;YACnK,WAAW,EAAE;gBACX,IAAI,EAAE,UAAU;gBAChB,QAAQ,EAAE,cAAc;gBACxB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;aACvC;YACD,YAAY,EAAE,iBAAiB;YAC/B,WAAW,EAAE,qBAAqB;SACnC,EACD,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,CACpC,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAC/E,CAAC;QAEF,MAAM,CAAC,YAAY,CACjB,aAAa,EACb;YACE,KAAK,EAAE,sBAAsB;YAC7B,WAAW,EAAE,+BAA+B;YAC5C,WAAW,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE;YACtC,YAAY,EAAE,kBAAkB;YAChC,WAAW,EAAE,qBAAqB;SACnC,EACD,CAAC,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,EAAE,CACvB,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,CAC3E,CAAC;QAEF,MAAM,CAAC,YAAY,CACjB,mBAAmB,EACnB;YACE,KAAK,EAAE,wBAAwB;YAC/B,WAAW,EACT,0GAA0G;YAC5G,WAAW,EAAE;gBACX,SAAS,EAAE,UAAU;gBACrB,KAAK,EAAE,UAAU;gBACjB,GAAG,EAAE,UAAU;gBACf,OAAO,EAAE,aAAa,CAAC,QAAQ,EAAE;aAClC;YACD,YAAY,EAAE,kBAAkB;YAChC,WAAW,EAAE,qBAAqB;SACnC,EACD,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,EAAE,CAC5C,OAAO,CACL,GAAG,EAAE;YACH,MAAM,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;YACvC,OAAO,MAAM,CAAC,GAAG,CACf,YAAY,kBAAkB,CAAC,SAAS,CAAC,QAAQ,EACjD,UAAU,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,YAAY,EAAE,EAAE,OAAO,EAAE,CAAC,EACxD,KAAK,CAAC,MAAM,CACb,CAAC;QACJ,CAAC,EACD,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CACrC,CACJ,CAAC;QAEF,MAAM,CAAC,YAAY,CACjB,eAAe,EACf;YACE,KAAK,EAAE,iCAAiC;YACxC,WAAW,EACT,4FAA4F;YAC9F,WAAW,EAAE;gBACX,SAAS,EAAE,UAAU;gBACrB,KAAK,EAAE,UAAU;gBACjB,GAAG,EAAE,UAAU;gBACf,QAAQ,EAAE,cAAc;gBACxB,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,aAAa,CAAC,QAAQ,EAAE;aAClC;YACD,YAAY,EAAE,qBAAqB;YACnC,WAAW,EAAE,qBAAqB;SACnC,EACD,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,EAAE,CAC5D,OAAO,CACL,KAAK,IAAI,EAAE;YACT,MAAM,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;YACvC,OAAO,aAAa,CAClB,mBAAmB,EACnB,MAAM,MAAM,CAAC,GAAG,CACd,YAAY,kBAAkB,CAAC,SAAS,CAAC,YAAY,EACrD,gBAAgB,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,YAAY,EAAE;gBAChD,OAAO;gBACP,QAAQ;gBACR,IAAI;gBACJ,WAAW,EAAE,CAAC;aACf,CAAC,EACF,KAAK,CAAC,MAAM,CACb,EACD,iBAAiB,CAClB,CAAC;QACJ,CAAC,EACD,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,QAAQ,EAAE,CAC/C,CACJ,CAAC;QAEF,MAAM,CAAC,YAAY,CACjB,aAAa,EACb;YACE,KAAK,EAAE,4BAA4B;YACnC,WAAW,EACT,+KAA+K;YACjL,WAAW,EAAE;gBACX,SAAS,EAAE,UAAU;gBACrB,KAAK,EAAE,UAAU;gBACjB,GAAG,EAAE,UAAU;gBACf,IAAI,EAAE,gBAAgB;gBACtB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;gBACnD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;gBACtD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;gBACtC,OAAO,EAAE,aAAa,CAAC,QAAQ,EAAE;aAClC;YACD,YAAY,EAAE,iBAAiB;YAC/B,WAAW,EAAE,qBAAqB;SACnC,EACD,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,EAAE,CACzE,OAAO,CACL,GAAG,EAAE;YACH,MAAM,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;YACvC,OAAO,MAAM,CAAC,GAAG,CACf,YAAY,kBAAkB,CAAC,SAAS,CAAC,UAAU,EACnD;gBACE,GAAG,UAAU,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,YAAY,EAAE,EAAE,OAAO,EAAE,CAAC;gBAC3D,IAAI;gBACJ,KAAK;gBACL,MAAM;gBACN,MAAM;aACP,EACD,KAAK,CAAC,MAAM,CACb,CAAC;QACJ,CAAC,EACD,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CACrC,CACJ,CAAC;QAEF,MAAM,CAAC,YAAY,CACjB,qBAAqB,EACrB;YACE,KAAK,EAAE,qBAAqB;YAC5B,WAAW,EAAE,0DAA0D;YACvE,WAAW,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE;YACtC,YAAY;YACZ,WAAW,EAAE,qBAAqB;SACnC,EACD,CAAC,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,EAAE,CACvB,OAAO,CACL,GAAG,EAAE;YACH,MAAM,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;YACvC,OAAO,MAAM,CAAC,GAAG,CACf,YAAY,kBAAkB,CAAC,SAAS,CAAC,SAAS,EAClD,SAAS,EACT,KAAK,CAAC,MAAM,CACb,CAAC;QACJ,CAAC,EACD,EAAE,SAAS,EAAE,CACd,CACJ,CAAC;QAEF,MAAM,CAAC,YAAY,CACjB,wBAAwB,EACxB;YACE,KAAK,EAAE,wBAAwB;YAC/B,WAAW,EAAE,2EAA2E;YACxF,WAAW,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE;YACtC,YAAY;YACZ,WAAW,EAAE,qBAAqB;SACnC,EACD,CAAC,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,EAAE,CACvB,OAAO,CACL,GAAG,EAAE;YACH,MAAM,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;YACvC,OAAO,MAAM,CAAC,GAAG,CACf,YAAY,kBAAkB,CAAC,SAAS,CAAC,YAAY,EACrD,SAAS,EACT,KAAK,CAAC,MAAM,CACb,CAAC;QACJ,CAAC,EACD,EAAE,SAAS,EAAE,CACd,CACJ,CAAC;IACJ,CAAC;CACF,CAAC"}
|
|
1
|
+
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../../src/mcp/modules/core.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"insights.d.ts","sourceRoot":"","sources":["../../../src/mcp/modules/insights.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"insights.d.ts","sourceRoot":"","sources":["../../../src/mcp/modules/insights.ts"],"names":[],"mappings":"AAqCA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAkiBpD,eAAO,MAAM,cAAc,EAAE,UAqvB5B,CAAC"}
|