@sealmetrics/mcp 1.2.0 → 1.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.
Files changed (41) hide show
  1. package/README.md +30 -6
  2. package/dist/client.d.ts +28 -5
  3. package/dist/client.d.ts.map +1 -1
  4. package/dist/client.js +92 -3
  5. package/dist/client.js.map +1 -1
  6. package/dist/embedded.d.ts +29 -0
  7. package/dist/embedded.d.ts.map +1 -0
  8. package/dist/embedded.js +37 -0
  9. package/dist/embedded.js.map +1 -0
  10. package/dist/index.js +3811 -123
  11. package/dist/index.js.map +1 -1
  12. package/dist/sealmetrics.mcpb +0 -0
  13. package/dist/server.d.ts +38 -0
  14. package/dist/server.d.ts.map +1 -0
  15. package/dist/server.js +132 -0
  16. package/dist/server.js.map +1 -0
  17. package/dist/tools/channels.js +4 -4
  18. package/dist/tools/channels.js.map +1 -1
  19. package/dist/tools/conversions.d.ts +3 -0
  20. package/dist/tools/conversions.d.ts.map +1 -1
  21. package/dist/tools/conversions.js +251 -2
  22. package/dist/tools/conversions.js.map +1 -1
  23. package/dist/tools/index.d.ts.map +1 -1
  24. package/dist/tools/index.js +5 -1
  25. package/dist/tools/index.js.map +1 -1
  26. package/dist/tools/pages.d.ts.map +1 -1
  27. package/dist/tools/pages.js +103 -3
  28. package/dist/tools/pages.js.map +1 -1
  29. package/dist/tools/setup.d.ts +49 -0
  30. package/dist/tools/setup.d.ts.map +1 -0
  31. package/dist/tools/setup.js +347 -0
  32. package/dist/tools/setup.js.map +1 -0
  33. package/dist/tools/shared.d.ts +0 -12
  34. package/dist/tools/shared.d.ts.map +1 -1
  35. package/dist/tools/shared.js +0 -99
  36. package/dist/tools/shared.js.map +1 -1
  37. package/package.json +12 -3
  38. package/dist/tools/manage.d.ts +0 -3
  39. package/dist/tools/manage.d.ts.map +0 -1
  40. package/dist/tools/manage.js +0 -55
  41. package/dist/tools/manage.js.map +0 -1
@@ -1,84 +1,4 @@
1
1
  import { VALID_PERIODS } from "../types.js";
2
- /**
3
- * Convert a period string (e.g. "30d", "this_month") to start_date / end_date.
4
- * Needed for endpoints that don't accept the `period` shorthand.
5
- */
6
- export function periodToDateRange(period) {
7
- const today = new Date();
8
- const fmt = (d) => d.toISOString().slice(0, 10);
9
- const end = fmt(today);
10
- const sub = (days) => {
11
- const d = new Date(today);
12
- d.setDate(d.getDate() - days);
13
- return fmt(d);
14
- };
15
- switch (period) {
16
- case "today":
17
- return { start_date: end, end_date: end };
18
- case "yesterday": {
19
- const y = sub(1);
20
- return { start_date: y, end_date: y };
21
- }
22
- case "7d":
23
- return { start_date: sub(6), end_date: end };
24
- case "14d":
25
- return { start_date: sub(13), end_date: end };
26
- case "30d":
27
- return { start_date: sub(29), end_date: end };
28
- case "60d":
29
- return { start_date: sub(59), end_date: end };
30
- case "90d":
31
- return { start_date: sub(89), end_date: end };
32
- case "180d":
33
- return { start_date: sub(179), end_date: end };
34
- case "365d":
35
- return { start_date: sub(364), end_date: end };
36
- case "this_week": {
37
- const dow = today.getDay() || 7; // Monday=1
38
- return { start_date: sub(dow - 1), end_date: end };
39
- }
40
- case "last_week": {
41
- const dow = today.getDay() || 7;
42
- const lastMonday = new Date(today);
43
- lastMonday.setDate(today.getDate() - dow - 6);
44
- const lastSunday = new Date(lastMonday);
45
- lastSunday.setDate(lastMonday.getDate() + 6);
46
- return { start_date: fmt(lastMonday), end_date: fmt(lastSunday) };
47
- }
48
- case "this_month": {
49
- const start = new Date(today.getFullYear(), today.getMonth(), 1);
50
- return { start_date: fmt(start), end_date: end };
51
- }
52
- case "last_month": {
53
- const start = new Date(today.getFullYear(), today.getMonth() - 1, 1);
54
- const e = new Date(today.getFullYear(), today.getMonth(), 0);
55
- return { start_date: fmt(start), end_date: fmt(e) };
56
- }
57
- case "this_quarter": {
58
- const q = Math.floor(today.getMonth() / 3) * 3;
59
- const start = new Date(today.getFullYear(), q, 1);
60
- return { start_date: fmt(start), end_date: end };
61
- }
62
- case "last_quarter": {
63
- const q = Math.floor(today.getMonth() / 3) * 3;
64
- const start = new Date(today.getFullYear(), q - 3, 1);
65
- const e = new Date(today.getFullYear(), q, 0);
66
- return { start_date: fmt(start), end_date: fmt(e) };
67
- }
68
- case "this_year": {
69
- const start = new Date(today.getFullYear(), 0, 1);
70
- return { start_date: fmt(start), end_date: end };
71
- }
72
- case "last_year": {
73
- const start = new Date(today.getFullYear() - 1, 0, 1);
74
- const e = new Date(today.getFullYear() - 1, 11, 31);
75
- return { start_date: fmt(start), end_date: fmt(e) };
76
- }
77
- default:
78
- // Fallback to 30 days
79
- return { start_date: sub(29), end_date: end };
80
- }
81
- }
82
2
  export const PERIOD_SCHEMA = {
83
3
  type: "string",
84
4
  description: `Time period for the report. Examples: "today", "yesterday", "7d", "30d", "90d", "this_month", "last_month", "this_year". Default: "30d".`,
@@ -106,22 +26,6 @@ export const PAGE_SCHEMA = {
106
26
  description: "Page number for paginated results (default: 1).",
107
27
  default: 1,
108
28
  };
109
- const MAX_INPUT_LENGTH = 256;
110
- /**
111
- * Validate a freeform string input: reject control characters and enforce length limit.
112
- */
113
- export function sanitizeInput(value, name, maxLen = MAX_INPUT_LENGTH) {
114
- if (value == null || value === "")
115
- return undefined;
116
- const s = String(value);
117
- if (s.length > maxLen) {
118
- throw new Error(`${name} exceeds maximum length of ${maxLen} characters.`);
119
- }
120
- if (/[\r\n\0]/.test(s)) {
121
- throw new Error(`${name} contains invalid characters.`);
122
- }
123
- return s;
124
- }
125
29
  /**
126
30
  * Resolve site_id from tool args or SEALMETRICS_SITE_ID env var.
127
31
  * Throws if neither is available.
@@ -131,9 +35,6 @@ export function resolveSiteId(args) {
131
35
  if (!siteId) {
132
36
  throw new Error('site_id is required. Either pass it as a parameter or set the SEALMETRICS_SITE_ID environment variable.');
133
37
  }
134
- if (siteId.length > 128 || /[\r\n\0/\\]/.test(siteId)) {
135
- throw new Error('Invalid site_id format.');
136
- }
137
38
  return siteId;
138
39
  }
139
40
  //# sourceMappingURL=shared.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/tools/shared.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/tools/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,0IAA0I;IACvJ,IAAI,EAAE,CAAC,GAAG,aAAa,CAAC;IACxB,OAAO,EAAE,KAAK;CACN,CAAC;AAEX,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,IAAI,EAAE,QAAQ;IACd,WAAW,EACT,8HAA8H;IAChI,IAAI,EAAE,CAAC,UAAU,EAAE,KAAK,CAAC;CACjB,CAAC;AAEX,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,2DAA2D;IACxE,OAAO,EAAE,EAAE;CACH,CAAC;AAEX,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,oDAAoD;IACjE,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM;CACP,CAAC;AAEX,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,iDAAiD;IAC9D,OAAO,EAAE,CAAC;CACF,CAAC;AAEX;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,IAA6B;IACzD,MAAM,MAAM,GACT,IAAI,CAAC,OAA8B,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;IAC1E,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CACb,yGAAyG,CAC1G,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sealmetrics/mcp",
3
- "version": "1.2.0",
3
+ "version": "1.3.0",
4
4
  "description": "SealMetrics analytics MCP server for Claude Code and Claude Desktop",
5
5
  "author": "SealMetrics <dev@sealmetrics.com> (https://sealmetrics.com)",
6
6
  "homepage": "https://github.com/adinton/sealmetrics2/tree/main/mcp-server#readme",
@@ -27,18 +27,27 @@
27
27
  "dev": "tsx src/index.ts",
28
28
  "test": "vitest run",
29
29
  "test:watch": "vitest",
30
- "prepublishOnly": "npm run build && chmod +x dist/index.js"
30
+ "typecheck": "tsc --noEmit",
31
+ "bundle": "node scripts/bundle.mjs",
32
+ "pack-mcpb": "node scripts/pack-mcpb.mjs",
33
+ "prepare": "npm run build && npm run bundle && chmod +x dist/index.js"
31
34
  },
32
35
  "dependencies": {
33
36
  "@modelcontextprotocol/sdk": "^1.12.1",
34
37
  "zod": "^3.25 || ^4.0"
35
38
  },
36
39
  "devDependencies": {
40
+ "@anthropic-ai/mcpb": "^1.0.0",
41
+ "@sealmetrics/setup-core": "file:../setup-core",
37
42
  "@types/node": "^22.0.0",
43
+ "esbuild": "^0.24.0",
38
44
  "msw": "^2.7.0",
39
45
  "tsx": "^4.0.0",
40
46
  "typescript": "^5.7.0",
41
- "vitest": "^3.0.0"
47
+ "vitest": "4.1.5"
48
+ },
49
+ "overrides": {
50
+ "vite": "^7.3.2"
42
51
  },
43
52
  "keywords": [
44
53
  "mcp",
@@ -1,3 +0,0 @@
1
- import type { ToolDef } from "./index.js";
2
- export declare const createSiteTool: ToolDef;
3
- //# sourceMappingURL=manage.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"manage.d.ts","sourceRoot":"","sources":["../../src/tools/manage.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,eAAO,MAAM,cAAc,EAAE,OAmE5B,CAAC"}
@@ -1,55 +0,0 @@
1
- export const createSiteTool = {
2
- name: "create_site",
3
- description: "Create a new analytics site in SealMetrics. IMPORTANT: This creates a permanent resource. Confirm the site name and domain with the user before calling this tool. Requires an API key with the sites:create scope.",
4
- inputSchema: {
5
- type: "object",
6
- properties: {
7
- name: {
8
- type: "string",
9
- description: "Display name for the site (e.g. 'My Store', 'Company Blog'). Used to generate the site ID.",
10
- },
11
- domain: {
12
- type: "string",
13
- description: "Primary domain for tracking (e.g. 'example.com'). Optional — can be added later in Settings.",
14
- },
15
- timezone: {
16
- type: "string",
17
- description: 'IANA timezone for the site (e.g. "Europe/Madrid", "America/New_York"). Default: "UTC".',
18
- },
19
- currency: {
20
- type: "string",
21
- description: 'ISO 4217 currency code (e.g. "EUR", "USD"). Default: "EUR".',
22
- },
23
- },
24
- required: ["name"],
25
- },
26
- handler: async (client, args) => {
27
- const name = args.name;
28
- if (!name || name.trim().length === 0) {
29
- throw new Error("Site name is required and cannot be empty.");
30
- }
31
- const body = { name: name.trim() };
32
- const domain = args.domain;
33
- if (domain && domain.trim().length > 0) {
34
- body.domains = [domain.trim().toLowerCase()];
35
- }
36
- const timezone = args.timezone;
37
- if (timezone) {
38
- body.timezone = timezone;
39
- }
40
- const currency = args.currency;
41
- if (currency) {
42
- body.currency = currency.toUpperCase();
43
- }
44
- const site = await client.post("/sites", body);
45
- return {
46
- site_id: site.id,
47
- name: site.name,
48
- domains: site.domains,
49
- timezone: site.timezone,
50
- currency: site.currency,
51
- message: `Site "${site.name}" created successfully with ID "${site.id}". Install the tracking pixel to start collecting data.`,
52
- };
53
- },
54
- };
55
- //# sourceMappingURL=manage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"manage.js","sourceRoot":"","sources":["../../src/tools/manage.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,MAAM,cAAc,GAAY;IACrC,IAAI,EAAE,aAAa;IACnB,WAAW,EACT,qNAAqN;IACvN,WAAW,EAAE;QACX,IAAI,EAAE,QAAiB;QACvB,UAAU,EAAE;YACV,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ;gBACd,WAAW,EACT,4FAA4F;aAC/F;YACD,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,WAAW,EACT,8FAA8F;aACjG;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,WAAW,EACT,wFAAwF;aAC3F;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,WAAW,EACT,6DAA6D;aAChE;SACF;QACD,QAAQ,EAAE,CAAC,MAAM,CAAC;KACnB;IACD,OAAO,EAAE,KAAK,EACZ,MAAyB,EACzB,IAA6B,EAC7B,EAAE;QACF,MAAM,IAAI,GAAG,IAAI,CAAC,IAAc,CAAC;QACjC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAChE,CAAC;QAED,MAAM,IAAI,GAA4B,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;QAE5D,MAAM,MAAM,GAAG,IAAI,CAAC,MAA4B,CAAC;QACjD,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvC,IAAI,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;QAC/C,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,QAA8B,CAAC;QACrD,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC3B,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,QAA8B,CAAC;QACrD,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;QACzC,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,CAAW,QAAQ,EAAE,IAAI,CAAC,CAAC;QAEzD,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,EAAE;YAChB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,OAAO,EAAE,SAAS,IAAI,CAAC,IAAI,mCAAmC,IAAI,CAAC,EAAE,yDAAyD;SAC/H,CAAC;IACJ,CAAC;CACF,CAAC"}