@revfleet/hscli 0.7.0 → 0.8.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/dist/core/http.js CHANGED
@@ -3,21 +3,17 @@ import { appendFileSync, existsSync, readFileSync } from "node:fs";
3
3
  import { join } from "node:path";
4
4
  import { homedir } from "node:os";
5
5
  import { randomUUID } from "node:crypto";
6
- /**
7
- * Read the active trace session file (written by `hscli trace start`).
8
- * Returns the trace output path if a session is active, or undefined.
9
- * Keeps session awareness decoupled from the CLI command layer: the
10
- * http client reads the state file on construction, so ANY code path
11
- * that opens a HubSpotClient automatically participates in the trace.
12
- */
13
- function readActiveTraceSessionFile() {
6
+ function readActiveTraceSession() {
14
7
  const home = process.env.HSCLI_HOME?.trim() || join(homedir(), ".revfleet");
15
8
  const sessionPath = join(home, "trace-session.json");
16
9
  if (!existsSync(sessionPath))
17
10
  return undefined;
18
11
  try {
19
12
  const session = JSON.parse(readFileSync(sessionPath, "utf8"));
20
- return session.file;
13
+ if (!session.file)
14
+ return undefined;
15
+ const scope = session.scope === "read" || session.scope === "write" ? session.scope : "all";
16
+ return { file: session.file, scope, includeBodies: Boolean(session.includeBodies) };
21
17
  }
22
18
  catch {
23
19
  return undefined;
@@ -92,6 +88,8 @@ export class HubSpotClient {
92
88
  baseUrl;
93
89
  requestId;
94
90
  telemetryFile;
91
+ traceScope;
92
+ traceIncludeBodies;
95
93
  profile;
96
94
  strictCapabilities;
97
95
  rateLimitState = { nextRequestAtMs: 0 };
@@ -111,10 +109,21 @@ export class HubSpotClient {
111
109
  // 2. HSCLI_TELEMETRY_FILE env var
112
110
  // 3. active trace session file (set by `hscli trace start`)
113
111
  // Users never need to re-pass --telemetry-file after `trace start`.
112
+ const activeSession = readActiveTraceSession();
114
113
  this.telemetryFile = options.telemetryFile?.trim()
115
114
  || process.env.HSCLI_TELEMETRY_FILE?.trim()
116
- || readActiveTraceSessionFile()
115
+ || activeSession?.file
117
116
  || undefined;
117
+ // Only honor session scope/bodies when the telemetry file actually
118
+ // comes from the active session. If the caller passed an explicit
119
+ // --telemetry-file, they own the filtering policy.
120
+ const telemetryFromSession = !options.telemetryFile?.trim()
121
+ && !process.env.HSCLI_TELEMETRY_FILE?.trim()
122
+ && activeSession?.file !== undefined;
123
+ this.traceScope = telemetryFromSession ? (activeSession?.scope ?? "all") : "all";
124
+ this.traceIncludeBodies = telemetryFromSession
125
+ ? Boolean(activeSession?.includeBodies)
126
+ : isEnvTrue(process.env.HSCLI_TRACE_BODIES);
118
127
  this.profile = options.profile?.trim() || process.env.HSCLI_PROFILE?.trim() || "default";
119
128
  this.strictCapabilities = options.strictCapabilities ?? isEnvTrue(process.env.HSCLI_STRICT_CAPABILITIES);
120
129
  }
@@ -158,7 +167,14 @@ export class HubSpotClient {
158
167
  }
159
168
  if (!response.ok) {
160
169
  const details = await safeJson(response);
161
- this.emitTelemetry({ method, path: pathname, status: response.status, durationMs: Date.now() - startedAt, attempt });
170
+ this.emitTelemetry({
171
+ method,
172
+ path: pathname,
173
+ status: response.status,
174
+ durationMs: Date.now() - startedAt,
175
+ attempt,
176
+ ...(this.traceIncludeBodies ? { requestBody: options.body, responseBody: details } : {}),
177
+ });
162
178
  const endpointError = mapEndpointAvailabilityError({
163
179
  profile: this.profile,
164
180
  path: pathname,
@@ -170,10 +186,27 @@ export class HubSpotClient {
170
186
  throw new CliError("HTTP_ERROR", `HubSpot API request failed (${response.status})`, response.status, details);
171
187
  }
172
188
  recordEndpointSuccess({ profile: this.profile, path: pathname, statusCode: response.status });
173
- if (response.status === 204)
189
+ if (response.status === 204) {
190
+ this.emitTelemetry({
191
+ method,
192
+ path: pathname,
193
+ status: response.status,
194
+ durationMs: Date.now() - startedAt,
195
+ attempt,
196
+ ...(this.traceIncludeBodies ? { requestBody: options.body } : {}),
197
+ });
174
198
  return { ok: true };
175
- this.emitTelemetry({ method, path: pathname, status: response.status, durationMs: Date.now() - startedAt, attempt });
176
- return safeJson(response);
199
+ }
200
+ const responseBody = await safeJson(response);
201
+ this.emitTelemetry({
202
+ method,
203
+ path: pathname,
204
+ status: response.status,
205
+ durationMs: Date.now() - startedAt,
206
+ attempt,
207
+ ...(this.traceIncludeBodies ? { requestBody: options.body, responseBody } : {}),
208
+ });
209
+ return responseBody;
177
210
  }
178
211
  catch (error) {
179
212
  this.emitTelemetry({
@@ -211,6 +244,17 @@ export class HubSpotClient {
211
244
  emitTelemetry(event) {
212
245
  if (!this.telemetryFile)
213
246
  return;
247
+ // Scope filter — set by `hscli trace start --scope read|write|all`.
248
+ // THROTTLE pseudo-events are always emitted (diagnostic signal, not
249
+ // a real request, so scope doesn't apply).
250
+ if (this.traceScope !== "all" && event.method !== "THROTTLE") {
251
+ const isWrite = event.method === "POST" || event.method === "PUT"
252
+ || event.method === "PATCH" || event.method === "DELETE";
253
+ if (this.traceScope === "read" && isWrite)
254
+ return;
255
+ if (this.traceScope === "write" && !isWrite)
256
+ return;
257
+ }
214
258
  try {
215
259
  // Baseline event: always includes ts + requestId + profile. toolName
216
260
  // is set from HUBCLI_MCP_TOOL_NAME so MCP tool invocations show up
@@ -1 +1 @@
1
- {"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/core/http.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/core/http.ts"],"names":[],"mappings":"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"}
@@ -36,20 +36,39 @@ function isWithinWindow(window) {
36
36
  if (!window)
37
37
  return true;
38
38
  const now = new Date();
39
+ const dayNames = ["sun", "mon", "tue", "wed", "thu", "fri", "sat"];
40
+ // Both days and hours must be evaluated in window.tz (or system local time
41
+ // when omitted). UTC was a latent bug: "mon-fri, US/Eastern" would let a
42
+ // Friday write land on Saturday UTC — or block a Monday write still in
43
+ // Sunday local time.
44
+ const tz = window.tz;
39
45
  // Days
40
46
  if (window.days) {
41
- const dayNames = ["sun", "mon", "tue", "wed", "thu", "fri", "sat"];
42
- const today = dayNames[now.getUTCDay()];
47
+ let todayIdx;
48
+ if (tz) {
49
+ try {
50
+ const fmt = new Intl.DateTimeFormat("en-US", { timeZone: tz, weekday: "short" });
51
+ const weekday = fmt.format(now).toLowerCase().slice(0, 3);
52
+ todayIdx = dayNames.indexOf(weekday);
53
+ if (todayIdx === -1)
54
+ todayIdx = now.getDay();
55
+ }
56
+ catch {
57
+ todayIdx = now.getDay();
58
+ }
59
+ }
60
+ else {
61
+ todayIdx = now.getDay();
62
+ }
43
63
  const allowed = parseDays(window.days);
44
- if (!allowed.includes(today))
64
+ if (!allowed.includes(dayNames[todayIdx]))
45
65
  return false;
46
66
  }
47
- // Hours (interpret in window.tz if given, else local)
67
+ // Hours
48
68
  if (window.hours) {
49
69
  const [fromStr, toStr] = window.hours.split("-");
50
70
  const fromHour = Number(fromStr);
51
71
  const toHour = Number(toStr);
52
- const tz = window.tz;
53
72
  let currentHour;
54
73
  if (tz) {
55
74
  try {
@@ -57,11 +76,11 @@ function isWithinWindow(window) {
57
76
  currentHour = Number(fmt.format(now).replace(/\D/g, "").slice(0, 2));
58
77
  }
59
78
  catch {
60
- currentHour = now.getUTCHours();
79
+ currentHour = now.getHours();
61
80
  }
62
81
  }
63
82
  else {
64
- currentHour = now.getUTCHours();
83
+ currentHour = now.getHours();
65
84
  }
66
85
  if (currentHour < fromHour || currentHour >= toHour)
67
86
  return false;
@@ -1 +1 @@
1
- {"version":3,"file":"policy.js","sourceRoot":"","sources":["../../src/core/policy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"policy.js","sourceRoot":"","sources":["../../src/core/policy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * HubSpot Remote MCP — drop-in compatibility layer.
3
+ *
4
+ * HubSpot's hosted MCP server at `https://mcp.hubspot.com` exposes 12 tools
5
+ * with a specific naming convention (e.g. `search_crm_objects`,
6
+ * `get_crm_objects`, `manage_crm_objects`). Agents built against that
7
+ * surface don't speak hscli's per-object tool family
8
+ * (`crm_contacts_list`, `crm_contacts_search`, ...) out of the box.
9
+ *
10
+ * This module mirrors HubSpot's tool names 1-for-1, delegating to the same
11
+ * HTTP layer hscli already uses. The result: any agent wired to
12
+ * HubSpot Remote MCP can swap the endpoint to `hscli mcp` and keep working,
13
+ * while gaining the capabilities HubSpot's hosted version doesn't expose —
14
+ * most notably `manage_crm_objects` with `operation: "delete"`, custom
15
+ * objects, and the full differentiation tool family defined in
16
+ * src/mcp/ext-tools.ts.
17
+ *
18
+ * Tools registered here:
19
+ * 1. get_user_details
20
+ * 2. search_crm_objects
21
+ * 3. get_crm_objects
22
+ * 4. manage_crm_objects (create | update | delete — hscli extension)
23
+ * 5. search_properties
24
+ * 6. get_properties
25
+ * 7. search_owners
26
+ * 8. get_campaign_analytics
27
+ * 9. get_campaign_contacts_by_type
28
+ * 10. get_campaign_asset_types
29
+ * 11. get_campaign_asset_metrics
30
+ *
31
+ * Intentionally omitted: `submit_feedback` (HubSpot-specific endpoint).
32
+ */
33
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
34
+ export declare function registerHubspotCompatTools(server: McpServer): void;
@@ -0,0 +1,292 @@
1
+ /**
2
+ * HubSpot Remote MCP — drop-in compatibility layer.
3
+ *
4
+ * HubSpot's hosted MCP server at `https://mcp.hubspot.com` exposes 12 tools
5
+ * with a specific naming convention (e.g. `search_crm_objects`,
6
+ * `get_crm_objects`, `manage_crm_objects`). Agents built against that
7
+ * surface don't speak hscli's per-object tool family
8
+ * (`crm_contacts_list`, `crm_contacts_search`, ...) out of the box.
9
+ *
10
+ * This module mirrors HubSpot's tool names 1-for-1, delegating to the same
11
+ * HTTP layer hscli already uses. The result: any agent wired to
12
+ * HubSpot Remote MCP can swap the endpoint to `hscli mcp` and keep working,
13
+ * while gaining the capabilities HubSpot's hosted version doesn't expose —
14
+ * most notably `manage_crm_objects` with `operation: "delete"`, custom
15
+ * objects, and the full differentiation tool family defined in
16
+ * src/mcp/ext-tools.ts.
17
+ *
18
+ * Tools registered here:
19
+ * 1. get_user_details
20
+ * 2. search_crm_objects
21
+ * 3. get_crm_objects
22
+ * 4. manage_crm_objects (create | update | delete — hscli extension)
23
+ * 5. search_properties
24
+ * 6. get_properties
25
+ * 7. search_owners
26
+ * 8. get_campaign_analytics
27
+ * 9. get_campaign_contacts_by_type
28
+ * 10. get_campaign_asset_types
29
+ * 11. get_campaign_asset_metrics
30
+ *
31
+ * Intentionally omitted: `submit_feedback` (HubSpot-specific endpoint).
32
+ */
33
+ import { z } from "zod";
34
+ import { appendOptional, encodePathSegment, maybeWrite, parseNumberFlag, } from "../commands/crm/shared.js";
35
+ import { CliError } from "../core/output.js";
36
+ import { baseArgsSchema, executeTool, registerMcpTool } from "./server.js";
37
+ // Object types accepted by search_crm_objects / get_crm_objects /
38
+ // manage_crm_objects: contacts, companies, deals, tickets, line_items,
39
+ // products, quotes, invoices, orders, carts, subscriptions, and all five
40
+ // engagement types (calls, emails, meetings, notes, tasks). hscli also
41
+ // accepts custom object type IDs like "2-199622513" — we don't enforce a
42
+ // closed enum here because custom objects are per-portal.
43
+ /** Normalize a user-supplied object type to the canonical HubSpot URL segment. */
44
+ function normalizeObjectType(raw) {
45
+ const t = raw.trim().toLowerCase();
46
+ // HubSpot's URL segments use kebab-less plurals; callers may pass either
47
+ // "line_items" (HubSpot MCP convention) or "line-items" (API URL
48
+ // convention). We accept both and normalize to the API form.
49
+ if (t === "line_items" || t === "lineitems")
50
+ return "line_items";
51
+ return t;
52
+ }
53
+ export function registerHubspotCompatTools(server) {
54
+ // ── 1. get_user_details ────────────────────────────────────────────────
55
+ // HubSpot: "Returns the authenticated user's information, account
56
+ // details, and per-object access." hscli hits /account-info/v3/details
57
+ // + /oauth/v1/access-tokens/{token} to build an equivalent response.
58
+ registerMcpTool(server, "get_user_details", {
59
+ description: "Get the authenticated user's account info, portal details, and OAuth scopes. HubSpot-compat tool.",
60
+ inputSchema: { ...baseArgsSchema },
61
+ }, (args) => executeTool(args, async (_ctx, client) => {
62
+ // /account-info/v3/details returns portalId, uiDomain, timeZone, currency, etc.
63
+ const account = await client.request("/account-info/v3/details").catch(() => null);
64
+ // Scope introspection requires the raw token, which is not exposed to
65
+ // the HTTP layer. Surface what we have and let callers escalate to the
66
+ // dedicated `hscli auth whoami` CLI if they need scope details.
67
+ return {
68
+ account,
69
+ note: "For OAuth scopes + token introspection, call `hscli auth whoami` from the CLI.",
70
+ };
71
+ }));
72
+ // ── 2. search_crm_objects ──────────────────────────────────────────────
73
+ // HubSpot: "Search and filter CRM records using filter groups, text
74
+ // queries, sorting, and pagination. Max 200/page, max 5 filter groups ×
75
+ // 6 filters each." We accept the same shape.
76
+ registerMcpTool(server, "search_crm_objects", {
77
+ description: "Search CRM records by filter groups, text query, sorts, and pagination. HubSpot-compat: accepts the same filterGroups/query/sorts/properties/limit/after shape as HubSpot Remote MCP.",
78
+ inputSchema: {
79
+ ...baseArgsSchema,
80
+ objectType: z.string().min(1).describe("contacts | companies | deals | tickets | line_items | products | quotes | invoices | orders | carts | subscriptions | calls | emails | meetings | notes | tasks | custom object type ID (2-XXXXXX)"),
81
+ query: z.string().optional().describe("Text query string (alternative/in addition to filterGroups)"),
82
+ filterGroups: z.array(z.unknown()).max(5).optional().describe("Max 5 filter groups, each with max 6 filters"),
83
+ sorts: z.array(z.unknown()).optional(),
84
+ properties: z.array(z.string()).optional(),
85
+ limit: z.number().int().positive().max(200).default(10),
86
+ after: z.string().optional(),
87
+ },
88
+ }, (args) => executeTool(args, (_ctx, client) => {
89
+ if (args.filterGroups && args.filterGroups.length > 5) {
90
+ throw new CliError("HUBSPOT_MCP_LIMIT", "filterGroups max 5 entries (HubSpot Remote MCP compat).");
91
+ }
92
+ const body = {
93
+ limit: parseNumberFlag(String(args.limit ?? 10), "limit"),
94
+ };
95
+ if (args.query)
96
+ body.query = args.query;
97
+ if (args.filterGroups)
98
+ body.filterGroups = args.filterGroups;
99
+ if (args.sorts)
100
+ body.sorts = args.sorts;
101
+ if (args.properties)
102
+ body.properties = args.properties;
103
+ if (args.after)
104
+ body.after = args.after;
105
+ const objectTypeSegment = encodePathSegment(normalizeObjectType(args.objectType), "objectType");
106
+ return client.request(`/crm/v3/objects/${objectTypeSegment}/search`, { method: "POST", body });
107
+ }));
108
+ // ── 3. get_crm_objects ─────────────────────────────────────────────────
109
+ // HubSpot: "Fetch one or more CRM objects by their IDs in a single
110
+ // request. Max 100/request." Implemented via batch/read.
111
+ registerMcpTool(server, "get_crm_objects", {
112
+ description: "Batch read CRM records by ID. HubSpot-compat: max 100 IDs per request.",
113
+ inputSchema: {
114
+ ...baseArgsSchema,
115
+ objectType: z.string().min(1),
116
+ ids: z.array(z.string().min(1)).min(1).max(100).describe("Max 100 IDs per request"),
117
+ properties: z.array(z.string()).optional(),
118
+ propertiesWithHistory: z.array(z.string()).optional(),
119
+ idProperty: z.string().optional().describe("Optional unique property to look up records by (e.g. 'email')"),
120
+ },
121
+ }, (args) => executeTool(args, (_ctx, client) => {
122
+ if (args.ids.length > 100) {
123
+ throw new CliError("HUBSPOT_MCP_LIMIT", "get_crm_objects accepts max 100 IDs per request.");
124
+ }
125
+ const body = {
126
+ inputs: args.ids.map((id) => ({ id })),
127
+ };
128
+ if (args.properties)
129
+ body.properties = args.properties;
130
+ if (args.propertiesWithHistory)
131
+ body.propertiesWithHistory = args.propertiesWithHistory;
132
+ if (args.idProperty)
133
+ body.idProperty = args.idProperty;
134
+ const objectTypeSegment = encodePathSegment(normalizeObjectType(args.objectType), "objectType");
135
+ return client.request(`/crm/v3/objects/${objectTypeSegment}/batch/read`, { method: "POST", body });
136
+ }));
137
+ // ── 4. manage_crm_objects ──────────────────────────────────────────────
138
+ // HubSpot hosted version: "Create or update CRM records or activities"
139
+ // (no delete). hscli extends this with `operation: "delete"` because
140
+ // hscli actually supports deletes (policy-guarded + change-ticket).
141
+ registerMcpTool(server, "manage_crm_objects", {
142
+ description: "Create, update, or DELETE CRM records. HubSpot-compat surface extended with 'delete' — policy-file + change-ticket still enforced server-side. Bulk max 100 records per call.",
143
+ inputSchema: {
144
+ ...baseArgsSchema,
145
+ objectType: z.string().min(1),
146
+ operation: z.enum(["create", "update", "delete"]).describe("HubSpot Remote MCP supports create/update; hscli adds 'delete'"),
147
+ records: z.array(z.record(z.string(), z.unknown())).min(1).max(100).describe("Max 100 records per call"),
148
+ },
149
+ }, (args) => executeTool(args, (ctx, client) => {
150
+ if (args.records.length > 100) {
151
+ throw new CliError("HUBSPOT_MCP_LIMIT", "manage_crm_objects accepts max 100 records per call.");
152
+ }
153
+ const objectTypeSegment = encodePathSegment(normalizeObjectType(args.objectType), "objectType");
154
+ const body = { inputs: args.records };
155
+ if (args.operation === "create") {
156
+ return maybeWrite(ctx, client, "POST", `/crm/v3/objects/${objectTypeSegment}/batch/create`, body);
157
+ }
158
+ if (args.operation === "update") {
159
+ return maybeWrite(ctx, client, "POST", `/crm/v3/objects/${objectTypeSegment}/batch/update`, body);
160
+ }
161
+ // delete → batch/archive (HubSpot soft-delete)
162
+ return maybeWrite(ctx, client, "POST", `/crm/v3/objects/${objectTypeSegment}/batch/archive`, body);
163
+ }));
164
+ // ── 5. search_properties ───────────────────────────────────────────────
165
+ // HubSpot: "Find property definitions for an object type using keyword
166
+ // search. Max 5 keywords." hscli hits /crm/v3/properties/{objectType}
167
+ // and filters client-side (HubSpot's API doesn't expose a keyword
168
+ // search for properties directly).
169
+ registerMcpTool(server, "search_properties", {
170
+ description: "Keyword-search property definitions for an object type. HubSpot-compat: max 5 keywords.",
171
+ inputSchema: {
172
+ ...baseArgsSchema,
173
+ objectType: z.string().min(1),
174
+ keywords: z.array(z.string().min(1)).min(1).max(5).describe("Max 5 keywords"),
175
+ },
176
+ }, (args) => executeTool(args, async (_ctx, client) => {
177
+ if (args.keywords.length > 5) {
178
+ throw new CliError("HUBSPOT_MCP_LIMIT", "search_properties accepts max 5 keywords.");
179
+ }
180
+ const objectTypeSegment = encodePathSegment(normalizeObjectType(args.objectType), "objectType");
181
+ const res = await client.request(`/crm/v3/properties/${objectTypeSegment}`);
182
+ const needles = args.keywords.map((k) => k.toLowerCase());
183
+ const matches = (res.results ?? []).filter((p) => {
184
+ const hay = `${p.name ?? ""} ${p.label ?? ""} ${p.description ?? ""}`.toLowerCase();
185
+ return needles.some((n) => hay.includes(n));
186
+ });
187
+ return { results: matches, total: matches.length, keywords: args.keywords };
188
+ }));
189
+ // ── 6. get_properties ──────────────────────────────────────────────────
190
+ registerMcpTool(server, "get_properties", {
191
+ description: "Get full property definitions (types, enum options) for an object type. HubSpot-compat.",
192
+ inputSchema: {
193
+ ...baseArgsSchema,
194
+ objectType: z.string().min(1),
195
+ properties: z.array(z.string()).optional().describe("If omitted, returns all properties for the object type"),
196
+ },
197
+ }, (args) => executeTool(args, async (_ctx, client) => {
198
+ const objectTypeSegment = encodePathSegment(normalizeObjectType(args.objectType), "objectType");
199
+ if (!args.properties || args.properties.length === 0) {
200
+ return client.request(`/crm/v3/properties/${objectTypeSegment}`);
201
+ }
202
+ // Resolve requested properties one at a time — HubSpot doesn't have
203
+ // a batch-get for property definitions.
204
+ const results = await Promise.all(args.properties.map((p) => client.request(`/crm/v3/properties/${objectTypeSegment}/${encodePathSegment(p, "property")}`).catch((err) => ({ name: p, error: String(err) }))));
205
+ return { results };
206
+ }));
207
+ // ── 7. search_owners ───────────────────────────────────────────────────
208
+ // HubSpot: "Find CRM record owners by name or email, or look up owners
209
+ // by ID. Max 100 results."
210
+ registerMcpTool(server, "search_owners", {
211
+ description: "Find CRM owners by email or ID, or list all. HubSpot-compat: max 100 results.",
212
+ inputSchema: {
213
+ ...baseArgsSchema,
214
+ email: z.string().email().optional(),
215
+ ids: z.array(z.string()).max(100).optional(),
216
+ limit: z.number().int().positive().max(100).default(100),
217
+ after: z.string().optional(),
218
+ },
219
+ }, (args) => executeTool(args, async (_ctx, client) => {
220
+ if (args.ids && args.ids.length > 0) {
221
+ const results = await Promise.all(args.ids.map((id) => client.request(`/crm/v3/owners/${encodePathSegment(id, "ownerId")}`).catch((err) => ({ id, error: String(err) }))));
222
+ return { results };
223
+ }
224
+ const params = new URLSearchParams();
225
+ params.set("limit", String(Math.min(100, parseNumberFlag(String(args.limit ?? 100), "limit"))));
226
+ appendOptional(params, "after", args.after);
227
+ appendOptional(params, "email", args.email);
228
+ return client.request(`/crm/v3/owners/?${params.toString()}`);
229
+ }));
230
+ // ── 8. get_campaign_analytics ──────────────────────────────────────────
231
+ registerMcpTool(server, "get_campaign_analytics", {
232
+ description: "Get campaign analytics (aggregated metrics) for one or more campaigns. HubSpot-compat.",
233
+ inputSchema: {
234
+ ...baseArgsSchema,
235
+ campaignIds: z.array(z.string().min(1)).min(1).describe("One or more campaign GUIDs"),
236
+ startDate: z.string().optional().describe("ISO-8601 date"),
237
+ endDate: z.string().optional(),
238
+ },
239
+ }, (args) => executeTool(args, async (_ctx, client) => {
240
+ const results = await Promise.all(args.campaignIds.map(async (id) => {
241
+ const params = new URLSearchParams();
242
+ appendOptional(params, "startDate", args.startDate);
243
+ appendOptional(params, "endDate", args.endDate);
244
+ const qs = params.toString();
245
+ try {
246
+ return {
247
+ campaignId: id,
248
+ metrics: await client.request(`/marketing/v3/campaigns/${encodePathSegment(id, "campaignId")}/metrics${qs ? `?${qs}` : ""}`),
249
+ };
250
+ }
251
+ catch (err) {
252
+ return { campaignId: id, error: err instanceof Error ? err.message : String(err) };
253
+ }
254
+ }));
255
+ return { results };
256
+ }));
257
+ // ── 9. get_campaign_contacts_by_type ──────────────────────────────────
258
+ registerMcpTool(server, "get_campaign_contacts_by_type", {
259
+ description: "Paginated contact IDs for a campaign filtered by attribution type (e.g. 'INFLUENCED'). HubSpot-compat.",
260
+ inputSchema: {
261
+ ...baseArgsSchema,
262
+ campaignId: z.string().min(1),
263
+ attributionType: z.string().min(1).describe("HubSpot attribution type (e.g. INFLUENCED, DIRECT, FIRST_TOUCH)"),
264
+ limit: z.number().int().positive().default(100),
265
+ after: z.string().optional(),
266
+ },
267
+ }, (args) => executeTool(args, (_ctx, client) => {
268
+ const params = new URLSearchParams();
269
+ params.set("attributionType", args.attributionType);
270
+ params.set("limit", String(parseNumberFlag(String(args.limit ?? 100), "limit")));
271
+ appendOptional(params, "after", args.after);
272
+ return client.request(`/marketing/v3/campaigns/${encodePathSegment(args.campaignId, "campaignId")}/contacts?${params.toString()}`);
273
+ }));
274
+ // ── 10. get_campaign_asset_types ───────────────────────────────────────
275
+ registerMcpTool(server, "get_campaign_asset_types", {
276
+ description: "List available campaign asset types (emails, blog posts, ads, etc.). HubSpot-compat.",
277
+ inputSchema: { ...baseArgsSchema },
278
+ }, (args) => executeTool(args, (_ctx, client) => client.request("/marketing/v3/campaigns/asset-types")));
279
+ // ── 11. get_campaign_asset_metrics ─────────────────────────────────────
280
+ registerMcpTool(server, "get_campaign_asset_metrics", {
281
+ description: "Get metrics for specific CRM objects associated with a campaign. HubSpot-compat.",
282
+ inputSchema: {
283
+ ...baseArgsSchema,
284
+ campaignId: z.string().min(1),
285
+ assetType: z.string().min(1),
286
+ assetId: z.string().min(1),
287
+ },
288
+ }, (args) => executeTool(args, (_ctx, client) => client.request(`/marketing/v3/campaigns/${encodePathSegment(args.campaignId, "campaignId")}`
289
+ + `/assets/${encodePathSegment(args.assetType, "assetType")}`
290
+ + `/${encodePathSegment(args.assetId, "assetId")}/metrics`)));
291
+ }
292
+ //# sourceMappingURL=compat-hubspot.js.map