umami-compass 0.2.0 → 0.3.1

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.
@@ -1,7 +1,7 @@
1
1
  import { toSafeError, UmamiError } from "../api/errors.js";
2
2
  import { parseTimeRange } from "../time.js";
3
- import { reportFilters } from "./report-utils.js";
4
- import { rangeQuery } from "./schemas.js";
3
+ import { appendReferrerExclusions, rangeQuery, serializeFilters, } from "./schemas.js";
4
+ import { appendDimensionEquality, fetchExpandedMetricRows, selectChannelTotals, } from "./traffic-segmentation.js";
5
5
  export const TRAFFIC_DIMENSIONS = [
6
6
  "path",
7
7
  "referrer",
@@ -10,6 +10,9 @@ export const TRAFFIC_DIMENSIONS = [
10
10
  "channel",
11
11
  "event",
12
12
  ];
13
+ function analysisFilters(filters, excludedReferrers = []) {
14
+ return appendReferrerExclusions(serializeFilters(filters), excludedReferrers);
15
+ }
13
16
  function isRecord(value) {
14
17
  return typeof value === "object" && value !== null && !Array.isArray(value);
15
18
  }
@@ -96,6 +99,171 @@ export function comparisonPeriod(current, mode) {
96
99
  const endAt = current.startAt - 1;
97
100
  return { startAt: endAt - duration, endAt };
98
101
  }
102
+ const dateTimeFormatters = new Map();
103
+ function calendarPartsAt(timestamp, timezone) {
104
+ let formatter = dateTimeFormatters.get(timezone);
105
+ if (!formatter) {
106
+ formatter = new Intl.DateTimeFormat("en-CA", {
107
+ timeZone: timezone,
108
+ year: "numeric",
109
+ month: "2-digit",
110
+ day: "2-digit",
111
+ hour: "2-digit",
112
+ minute: "2-digit",
113
+ hourCycle: "h23",
114
+ });
115
+ dateTimeFormatters.set(timezone, formatter);
116
+ }
117
+ const values = new Map(formatter
118
+ .formatToParts(new Date(timestamp))
119
+ .filter(({ type }) => type !== "literal")
120
+ .map(({ type, value }) => [type, Number(value)]));
121
+ const year = values.get("year");
122
+ const month = values.get("month");
123
+ const day = values.get("day");
124
+ const hour = values.get("hour");
125
+ const minute = values.get("minute");
126
+ if ([year, month, day, hour, minute].some((value) => value === undefined)) {
127
+ throw new UmamiError("INVALID_RESPONSE", "Could not normalize the requested series timezone.");
128
+ }
129
+ return {
130
+ year: year,
131
+ month: month,
132
+ day: day,
133
+ hour: hour,
134
+ minute: minute,
135
+ };
136
+ }
137
+ function seriesPointParts(value, timezone) {
138
+ if (typeof value === "number") {
139
+ const timestamp = Math.abs(value) < 100_000_000_000 ? value * 1_000 : value;
140
+ return calendarPartsAt(timestamp, timezone);
141
+ }
142
+ const text = value.trim();
143
+ if (/(?:Z|[+-]\d{2}:?\d{2})$/i.test(text)) {
144
+ const timestamp = Date.parse(text);
145
+ if (Number.isFinite(timestamp))
146
+ return calendarPartsAt(timestamp, timezone);
147
+ }
148
+ const match = /^(\d{4})(?:-(\d{2}))?(?:-(\d{2}))?(?:[ T](\d{2})(?::(\d{2}))?)?/.exec(text);
149
+ if (!match) {
150
+ throw new UmamiError("INVALID_RESPONSE", "Umami returned an invalid series bucket.");
151
+ }
152
+ return {
153
+ year: Number(match[1]),
154
+ month: Number(match[2] ?? 1),
155
+ day: Number(match[3] ?? 1),
156
+ hour: Number(match[4] ?? 0),
157
+ minute: Number(match[5] ?? 0),
158
+ };
159
+ }
160
+ function truncateCalendarParts(parts, unit) {
161
+ return {
162
+ year: parts.year,
163
+ month: unit === "year" ? 1 : parts.month,
164
+ day: unit === "year" || unit === "month" ? 1 : parts.day,
165
+ hour: unit === "minute" || unit === "hour" ? parts.hour : 0,
166
+ minute: unit === "minute" ? parts.minute : 0,
167
+ };
168
+ }
169
+ function pad(value) {
170
+ return String(value).padStart(2, "0");
171
+ }
172
+ function calendarKey(parts, unit) {
173
+ const year = String(parts.year).padStart(4, "0");
174
+ if (unit === "year")
175
+ return year;
176
+ const month = `${year}-${pad(parts.month)}`;
177
+ if (unit === "month")
178
+ return month;
179
+ const day = `${month}-${pad(parts.day)}`;
180
+ if (unit === "day")
181
+ return day;
182
+ const hour = `${day} ${pad(parts.hour)}`;
183
+ return unit === "hour" ? hour : `${hour}:${pad(parts.minute)}`;
184
+ }
185
+ function periodBucketKeys(period, unit, timezone) {
186
+ const sampleStep = unit === "minute" ? 60_000 : unit === "hour" ? 15 * 60_000 : 6 * 3_600_000;
187
+ const keys = [];
188
+ const seen = new Set();
189
+ const addTimestamp = (timestamp) => {
190
+ const key = calendarKey(truncateCalendarParts(calendarPartsAt(timestamp, timezone), unit), unit);
191
+ if (seen.has(key))
192
+ return;
193
+ seen.add(key);
194
+ keys.push(key);
195
+ if (keys.length > 10_000) {
196
+ throw new UmamiError("VALIDATION_ERROR", "The aligned traffic series exceeds the 10,000-point safety limit.");
197
+ }
198
+ };
199
+ addTimestamp(period.startAt);
200
+ let timestamp = Math.ceil(period.startAt / sampleStep) * sampleStep;
201
+ while (timestamp <= period.endAt) {
202
+ addTimestamp(timestamp);
203
+ timestamp += sampleStep;
204
+ }
205
+ addTimestamp(period.endAt);
206
+ return keys;
207
+ }
208
+ function seriesValues(points, unit, timezone) {
209
+ const values = new Map();
210
+ for (const point of points) {
211
+ const key = calendarKey(truncateCalendarParts(seriesPointParts(point.x, timezone), unit), unit);
212
+ values.set(key, (values.get(key) ?? 0) + point.y);
213
+ }
214
+ return values;
215
+ }
216
+ function fillTrafficSeries(period, series, unit, timezone) {
217
+ const pageviews = seriesValues(series.pageviews, unit, timezone);
218
+ const sessions = seriesValues(series.sessions, unit, timezone);
219
+ const keys = periodBucketKeys(period, unit, timezone);
220
+ const expected = new Set(keys);
221
+ if ([...pageviews.keys(), ...sessions.keys()].some((key) => !expected.has(key))) {
222
+ throw new UmamiError("INVALID_RESPONSE", "Umami returned a series bucket outside the requested period.");
223
+ }
224
+ return keys.map((x) => ({
225
+ x,
226
+ pageviews: pageviews.get(x) ?? 0,
227
+ sessions: sessions.get(x) ?? 0,
228
+ }));
229
+ }
230
+ export function alignTrafficSeries(currentPeriod, currentSeries, comparisonPeriod, comparisonSeries, unit, timezone) {
231
+ const current = fillTrafficSeries(currentPeriod, currentSeries, unit, timezone);
232
+ const comparison = fillTrafficSeries(comparisonPeriod, comparisonSeries, unit, timezone);
233
+ const equalBucketCount = current.length === comparison.length;
234
+ const bucketCount = Math.max(current.length, comparison.length);
235
+ return {
236
+ buckets: equalBucketCount
237
+ ? Array.from({ length: bucketCount }, (_, index) => {
238
+ const currentPoint = current[index];
239
+ const comparisonPoint = comparison[index];
240
+ const currentPageviews = currentPoint?.pageviews ?? 0;
241
+ const comparisonPageviews = comparisonPoint?.pageviews ?? 0;
242
+ return {
243
+ index,
244
+ current: currentPoint ?? null,
245
+ comparison: comparisonPoint ?? null,
246
+ pageviewChange: {
247
+ absolute: currentPageviews - comparisonPageviews,
248
+ percent: percentChange(currentPageviews, comparisonPageviews),
249
+ },
250
+ };
251
+ })
252
+ : [],
253
+ dataQuality: {
254
+ sparseBucketsFilled: true,
255
+ currentBucketCount: current.length,
256
+ comparisonBucketCount: comparison.length,
257
+ equalBucketCount,
258
+ alignedChangesAvailable: equalBucketCount,
259
+ ...(equalBucketCount
260
+ ? {}
261
+ : {
262
+ alignmentIssue: "Current and comparison periods contain different numbers of local-time buckets; aligned deltas are omitted to avoid shifted comparisons.",
263
+ }),
264
+ },
265
+ };
266
+ }
99
267
  export async function mapConcurrent(values, concurrency, operation) {
100
268
  const results = new Array(values.length);
101
269
  let nextIndex = 0;
@@ -109,12 +277,13 @@ export async function mapConcurrent(values, concurrency, operation) {
109
277
  await Promise.all(workers);
110
278
  return results;
111
279
  }
112
- export async function fetchWebsiteStats(client, websiteId, period, maxRangeDays, filters, signal) {
280
+ export async function fetchWebsiteStats(client, websiteId, period, maxRangeDays, filters, signal, excludedReferrers = []) {
113
281
  return parseWebsiteStats(await client.get(`websites/${encodeURIComponent(websiteId)}/stats`, rangeQuery(period.startAt, period.endAt, maxRangeDays, {
114
- filters,
282
+ serializedFilters: analysisFilters(filters, excludedReferrers),
115
283
  }), signal));
116
284
  }
117
285
  const MAX_METRIC_COMPARISON_ROWS = 100;
286
+ const MAX_CHANNEL_COMPARISON_CANDIDATES = 20;
118
287
  function parseMetricRows(value) {
119
288
  if (!Array.isArray(value)) {
120
289
  throw new UmamiError("INVALID_RESPONSE", "Umami returned invalid metric breakdown data.");
@@ -130,10 +299,10 @@ function parseMetricRows(value) {
130
299
  }
131
300
  return rows;
132
301
  }
133
- async function fetchMetricRows(client, websiteId, period, maxRangeDays, dimension, limit, filters, signal) {
302
+ async function fetchMetricRows(client, websiteId, period, maxRangeDays, dimension, limit, filters, signal, excludedReferrers = []) {
134
303
  const rows = parseMetricRows(await client.get(`websites/${encodeURIComponent(websiteId)}/metrics`, {
135
304
  ...rangeQuery(period.startAt, period.endAt, maxRangeDays, {
136
- filters,
305
+ serializedFilters: analysisFilters(filters, excludedReferrers),
137
306
  }),
138
307
  type: dimension,
139
308
  limit,
@@ -184,19 +353,137 @@ function diffMetricRows(currentResult, comparisonResult, limit) {
184
353
  };
185
354
  }
186
355
  export async function compareTraffic(client, input) {
187
- const { comparison, current, dimensions, filters, limit, maxRangeDays, signal, website } = input;
188
- const [currentStats, comparisonStats] = await Promise.all([
189
- fetchWebsiteStats(client, website.id, current, maxRangeDays, filters, signal),
190
- fetchWebsiteStats(client, website.id, comparison, maxRangeDays, filters, signal),
191
- ]);
192
- const currentTotals = websiteTotals(currentStats);
193
- const comparisonTotals = websiteTotals(comparisonStats);
356
+ const { channel, comparison, current, dimensions, excludedReferrers = [], filters, limit, maxRangeDays, signal, website, } = input;
357
+ const serializedFilters = analysisFilters(filters, excludedReferrers);
358
+ let currentTotals;
359
+ let comparisonTotals;
360
+ if (channel) {
361
+ const channelTotals = async (period) => {
362
+ const row = selectChannelTotals(await fetchExpandedMetricRows(client, {
363
+ filters: serializedFilters,
364
+ maxRangeDays,
365
+ period,
366
+ signal,
367
+ type: "channel",
368
+ websiteId: website.id,
369
+ }), channel);
370
+ return {
371
+ pageviews: row.pageviews,
372
+ visitors: row.visitors,
373
+ visits: row.visits,
374
+ bounces: row.bounces,
375
+ totaltime: row.totaltime,
376
+ };
377
+ };
378
+ [currentTotals, comparisonTotals] = await Promise.all([
379
+ channelTotals(current),
380
+ channelTotals(comparison),
381
+ ]);
382
+ }
383
+ else {
384
+ const totals = async (period) => websiteTotals(await fetchWebsiteStats(client, website.id, period, maxRangeDays, filters, signal, excludedReferrers));
385
+ [currentTotals, comparisonTotals] = await Promise.all([totals(current), totals(comparison)]);
386
+ }
194
387
  const metricFetchLimit = Math.min(MAX_METRIC_COMPARISON_ROWS, Math.max(limit * 5, 20));
195
- const breakdowns = await mapConcurrent(dimensions, 3, async (dimension) => {
388
+ const breakdowns = await mapConcurrent(dimensions, channel ? 1 : 3, async (dimension) => {
196
389
  try {
390
+ if (channel && dimension === "event") {
391
+ throw new UmamiError("VALIDATION_ERROR", "Umami cannot cross-tabulate attributed channels with custom events.");
392
+ }
393
+ if (dimension === "channel") {
394
+ const channelRows = async (period) => {
395
+ const rows = await fetchExpandedMetricRows(client, {
396
+ filters: serializedFilters,
397
+ maxRangeDays,
398
+ period,
399
+ signal,
400
+ type: "channel",
401
+ websiteId: website.id,
402
+ });
403
+ return {
404
+ rows: rows
405
+ .filter(({ name }) => channel === undefined || name === channel)
406
+ .map(({ name, visitors }) => ({ name, value: visitors })),
407
+ truncated: false,
408
+ };
409
+ };
410
+ const [currentChannels, comparisonChannels] = await Promise.all([
411
+ channelRows(current),
412
+ channelRows(comparison),
413
+ ]);
414
+ const difference = diffMetricRows(currentChannels, comparisonChannels, limit);
415
+ return {
416
+ dimension,
417
+ status: "available",
418
+ measure: "visitors",
419
+ rows: difference.rows,
420
+ dataQuality: difference.dataQuality,
421
+ };
422
+ }
423
+ if (channel) {
424
+ const [currentCandidates, comparisonCandidates] = await Promise.all([
425
+ fetchMetricRows(client, website.id, current, maxRangeDays, dimension, metricFetchLimit, filters, signal, excludedReferrers),
426
+ fetchMetricRows(client, website.id, comparison, maxRangeDays, dimension, metricFetchLimit, filters, signal, excludedReferrers),
427
+ ]);
428
+ const candidateScores = new Map();
429
+ for (const { name, value } of [...currentCandidates.rows, ...comparisonCandidates.rows]) {
430
+ candidateScores.set(name, Math.max(candidateScores.get(name) ?? 0, value));
431
+ }
432
+ const allCandidates = [...candidateScores]
433
+ .sort((left, right) => right[1] - left[1] || left[0].localeCompare(right[0]))
434
+ .map(([name]) => name);
435
+ const candidates = allCandidates.slice(0, MAX_CHANNEL_COMPARISON_CANDIDATES);
436
+ let omittedUnsupportedRows = 0;
437
+ const values = await mapConcurrent(candidates, 4, async (name) => {
438
+ const candidateFilters = appendDimensionEquality(serializedFilters, dimension, name);
439
+ if (!candidateFilters) {
440
+ omittedUnsupportedRows += 1;
441
+ return undefined;
442
+ }
443
+ const expanded = (period) => fetchExpandedMetricRows(client, {
444
+ filters: candidateFilters,
445
+ maxRangeDays,
446
+ period,
447
+ signal,
448
+ type: "channel",
449
+ websiteId: website.id,
450
+ });
451
+ const [currentRows, comparisonRows] = await Promise.all([
452
+ expanded(current),
453
+ expanded(comparison),
454
+ ]);
455
+ return {
456
+ name,
457
+ current: selectChannelTotals(currentRows, channel).visitors,
458
+ comparison: selectChannelTotals(comparisonRows, channel).visitors,
459
+ };
460
+ });
461
+ const difference = diffMetricRows({
462
+ rows: values.flatMap((value) => value ? [{ name: value.name, value: value.current }] : []),
463
+ truncated: false,
464
+ }, {
465
+ rows: values.flatMap((value) => value ? [{ name: value.name, value: value.comparison }] : []),
466
+ truncated: false,
467
+ }, limit);
468
+ return {
469
+ dimension,
470
+ status: "available",
471
+ measure: "visitors",
472
+ rows: difference.rows,
473
+ dataQuality: {
474
+ ...difference.dataQuality,
475
+ candidateRowsTruncated: allCandidates.length > candidates.length ||
476
+ currentCandidates.truncated ||
477
+ comparisonCandidates.truncated,
478
+ candidateRows: candidates.length,
479
+ omittedUnsupportedRows,
480
+ fanoutRequests: candidates.length * 2,
481
+ },
482
+ };
483
+ }
197
484
  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),
485
+ fetchMetricRows(client, website.id, current, maxRangeDays, dimension, metricFetchLimit, filters, signal, excludedReferrers),
486
+ fetchMetricRows(client, website.id, comparison, maxRangeDays, dimension, metricFetchLimit, filters, signal, excludedReferrers),
200
487
  ]);
201
488
  const difference = diffMetricRows(currentRows, comparisonRows, limit);
202
489
  return {
@@ -227,9 +514,10 @@ export async function compareTraffic(client, input) {
227
514
  const pageviewPercent = percentChange(currentTotals.pageviews, comparisonTotals.pageviews);
228
515
  const direction = pageviewDelta > 0 ? "increase" : pageviewDelta < 0 ? "decrease" : "flat";
229
516
  const leading = leadingObservedChanges[0];
517
+ const subject = channel ? `${channel} channel traffic` : "Traffic";
230
518
  const explanation = leading
231
- ? `Traffic 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.`
232
- : `Traffic shows a ${direction}${pageviewPercent === null ? "" : ` of ${Math.abs(pageviewPercent)}%`}. No authorized breakdown produced enough evidence to identify a leading observed change.`;
519
+ ? `${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.`
520
+ : `${subject} shows a ${direction}${pageviewPercent === null ? "" : ` of ${Math.abs(pageviewPercent)}%`}. No authorized breakdown produced enough evidence to identify a leading observed change.`;
233
521
  return {
234
522
  dataStatus: currentTotals.pageviews === 0 &&
235
523
  currentTotals.visitors === 0 &&
@@ -240,6 +528,11 @@ export async function compareTraffic(client, input) {
240
528
  ? "empty"
241
529
  : "available",
242
530
  website,
531
+ ...(channel ? { channel } : {}),
532
+ scope: {
533
+ channel: channel ?? "all",
534
+ excludedReferrers: [...excludedReferrers],
535
+ },
243
536
  currentPeriod: isoPeriod(current),
244
537
  comparisonPeriod: isoPeriod(comparison),
245
538
  current: currentTotals,
@@ -259,7 +552,10 @@ export async function compareTraffic(client, input) {
259
552
  .map(({ dimension }) => dimension),
260
553
  truncatedDimensions: breakdowns
261
554
  .filter((item) => item.status === "available" &&
262
- (item.dataQuality.currentRowsTruncated || item.dataQuality.comparisonRowsTruncated))
555
+ (item.dataQuality.currentRowsTruncated ||
556
+ item.dataQuality.comparisonRowsTruncated ||
557
+ ("candidateRowsTruncated" in item.dataQuality &&
558
+ item.dataQuality.candidateRowsTruncated === true)))
263
559
  .map(({ dimension }) => dimension),
264
560
  omittedUncertainRows: breakdowns
265
561
  .filter((item) => item.status === "available")
@@ -307,19 +603,27 @@ function performanceSummary(value) {
307
603
  return { count, metrics };
308
604
  }
309
605
  export async function comparePerformance(client, input) {
310
- const request = (period) => ({
311
- websiteId: input.websiteId,
312
- type: "performance",
313
- parameters: {
314
- startDate: new Date(period.startAt).toISOString(),
315
- endDate: new Date(period.endAt).toISOString(),
316
- metric: "lcp",
317
- timezone: input.timezone,
318
- unit: "day",
319
- },
320
- filters: reportFilters(input.filters),
321
- });
606
+ const scope = {
607
+ channel: "all",
608
+ excludedReferrers: [...(input.excludedReferrers ?? [])],
609
+ };
322
610
  try {
611
+ const { excludeBounce, ...filters } = analysisFilters(input.filters, input.excludedReferrers);
612
+ const request = (period) => ({
613
+ websiteId: input.websiteId,
614
+ type: "performance",
615
+ parameters: {
616
+ startDate: new Date(period.startAt).toISOString(),
617
+ endDate: new Date(period.endAt).toISOString(),
618
+ metric: "lcp",
619
+ timezone: input.timezone,
620
+ unit: "day",
621
+ },
622
+ filters: {
623
+ ...filters,
624
+ ...(excludeBounce === true ? { excludeBounce: "true" } : {}),
625
+ },
626
+ });
323
627
  const [currentResult, comparisonResult] = await Promise.all([
324
628
  client.runReport(request(input.current), input.signal),
325
629
  client.runReport(request(input.comparison), input.signal),
@@ -363,6 +667,7 @@ export async function comparePerformance(client, input) {
363
667
  const status = current.count === 0 && comparison.count === 0 ? "empty" : "available";
364
668
  return {
365
669
  status,
670
+ scope,
366
671
  currentSampleCount: current.count,
367
672
  comparisonSampleCount: comparison.count,
368
673
  minimumSampleCount: MIN_PERFORMANCE_SAMPLES,
@@ -371,7 +676,7 @@ export async function comparePerformance(client, input) {
371
676
  };
372
677
  }
373
678
  catch (error) {
374
- return { status: "unavailable", error: toSafeError(error) };
679
+ return { status: "unavailable", scope, error: toSafeError(error) };
375
680
  }
376
681
  }
377
682
  //# sourceMappingURL=insights-utils.js.map
@@ -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":"AAoBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAyBpD,eAAO,MAAM,UAAU,EAAE,UA6LxB,CAAC"}
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"}
@@ -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":"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"}
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":"AA8BA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AA6bpD,eAAO,MAAM,cAAc,EAAE,UAyiB5B,CAAC"}
1
+ {"version":3,"file":"insights.d.ts","sourceRoot":"","sources":["../../../src/mcp/modules/insights.ts"],"names":[],"mappings":"AAsCA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAkiBpD,eAAO,MAAM,cAAc,EAAE,UAowB5B,CAAC"}