@apex-inc/mcp-server 0.48.6 → 0.48.8
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/setup-catchup-tools.d.ts +82 -2
- package/dist/setup-catchup-tools.d.ts.map +1 -1
- package/dist/setup-catchup-tools.js +79 -10
- package/dist/setup-catchup-tools.js.map +1 -1
- package/dist/tool-groups.d.ts.map +1 -1
- package/dist/tool-groups.js +4 -0
- package/dist/tool-groups.js.map +1 -1
- package/dist/tools/ad-platforms.d.ts +33 -7
- package/dist/tools/ad-platforms.d.ts.map +1 -1
- package/dist/tools/ad-platforms.js +100 -8
- package/dist/tools/ad-platforms.js.map +1 -1
- package/dist/tools/measurement.d.ts +8 -0
- package/dist/tools/measurement.d.ts.map +1 -1
- package/dist/tools/measurement.js +34 -6
- package/dist/tools/measurement.js.map +1 -1
- package/dist/tools.d.ts +90 -10
- package/dist/tools.d.ts.map +1 -1
- package/package.json +1 -1
- package/skills/apex-integration-cookbook/SKILL.md +4 -0
- package/skills/apex-setup/SKILL.md +1 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ad-platforms.d.ts","sourceRoot":"","sources":["../../src/tools/ad-platforms.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,QAAA,MAAM,aAAa,
|
|
1
|
+
{"version":3,"file":"ad-platforms.d.ts","sourceRoot":"","sources":["../../src/tools/ad-platforms.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,QAAA,MAAM,aAAa,8KAYT,CAAC;AAOX,QAAA,MAAM,UAAU,iEAAkE,CAAC;AA6EnF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBAoDF;YACpB,WAAW,EAAE,MAAM,CAAC;YACpB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;YACrB,eAAe,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;YAClC,cAAc,CAAC,EAAE,IAAI,CAAC;SACvB;;;;;;;;;;;;;;;;;;;wBAgEqB;YAAE,WAAW,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,IAAI,CAAA;SAAE;;;;;;;;;;;;;;;;wBAwBtC;YAAE,WAAW,CAAC,EAAE,MAAM,CAAA;SAAE;;;;;;;;;;;;;;;;wBAexB;YAAE,WAAW,EAAE,MAAM,CAAA;SAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBAuCvB;YACpB,IAAI,EAAE,CAAC,OAAO,UAAU,EAAE,MAAM,CAAC,CAAC;YAClC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;YACrB,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,QAAQ,CAAC,EAAE,OAAO,CAAC;YACnB,OAAO,EAAE,IAAI,CAAC;SACf;;;;;;;;;;;;;;;;;;;wBAyCqB;YAAE,UAAU,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,CAAC,OAAO,aAAa,EAAE,MAAM,CAAC,CAAA;SAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBAyB/D;YACpB,UAAU,EAAE,MAAM,CAAC;YACnB,OAAO,EAAE,CAAC,OAAO,aAAa,EAAE,MAAM,CAAC,CAAC;YACxC,UAAU,CAAC,EAAE,OAAO,CAAC;YACrB,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,OAAO,EAAE,IAAI,CAAC;SACf;;;;;;;;;;;;;;;;;;;;;;wBA0BqB;YAAE,WAAW,CAAC,EAAE,MAAM,CAAC;YAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,IAAI,CAAA;SAAE;;;;;;;;;;;;;;;;wBAiEnE;YAAE,OAAO,EAAE,MAAM,CAAA;SAAE;;;;;;;CAO5C,CAAC"}
|
|
@@ -9,13 +9,42 @@ import { z } from "zod";
|
|
|
9
9
|
import { apiDeleteJson, apiGet, apiPatch, apiPost } from "../api-client.js";
|
|
10
10
|
import { resolveMeasurementNetwork } from "../setup-catchup-tools.js";
|
|
11
11
|
import { APEX } from "../tool-shared.js";
|
|
12
|
-
const SEND_MEANINGS = [
|
|
12
|
+
const SEND_MEANINGS = [
|
|
13
|
+
"purchase",
|
|
14
|
+
"lead",
|
|
15
|
+
"qualified_lead",
|
|
16
|
+
"signup",
|
|
17
|
+
"subscription",
|
|
18
|
+
"begin_checkout",
|
|
19
|
+
"add_to_cart",
|
|
20
|
+
"book_appointment",
|
|
21
|
+
"request_quote",
|
|
22
|
+
"contact",
|
|
23
|
+
"something_else",
|
|
24
|
+
];
|
|
25
|
+
const MEANING_HELP = "What the event means: purchase, lead, qualified_lead (a lead the team says is worth chasing), signup, subscription, begin_checkout, add_to_cart, book_appointment, request_quote, contact (a call, email or message), or something_else when none fit.";
|
|
13
26
|
/** The platforms that take lists today. */
|
|
14
27
|
const LIST_PLATFORMS = ["meta-ads", "google-ads", "linkedin-ads"];
|
|
15
28
|
const LIST_GOALS = ["win_back", "stop_paying", "interested", "lookalike"];
|
|
16
29
|
function jsonResult(data, error = null) {
|
|
17
30
|
return { content: [{ type: "text", text: JSON.stringify({ data, error }, null, 2) }] };
|
|
18
31
|
}
|
|
32
|
+
/** The route's own `error` sentence out of a failed call, else the fallback. */
|
|
33
|
+
function apiErrorText(err, fallback) {
|
|
34
|
+
const text = err instanceof Error ? err.message : "";
|
|
35
|
+
const start = text.indexOf("{");
|
|
36
|
+
if (start >= 0) {
|
|
37
|
+
try {
|
|
38
|
+
const body = JSON.parse(text.slice(start));
|
|
39
|
+
if (typeof body.error === "string" && body.error)
|
|
40
|
+
return body.error;
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
// Not JSON; use the fallback.
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return fallback;
|
|
47
|
+
}
|
|
19
48
|
function reachedPlatforms(a) {
|
|
20
49
|
return Object.entries(a.destinations ?? {})
|
|
21
50
|
.filter(([, d]) => Boolean(d?.platformAudienceId))
|
|
@@ -241,9 +270,7 @@ export const adPlatformTools = {
|
|
|
241
270
|
description: `${APEX} — Before sending one of the workspace's events to its ad platforms, see what each platform would hear. Pass the event as the workspace sends it and what it means. Returns each platform's state: sends (hears \`word\` right away), apex_makes (hears it once Apex makes the conversion there), no_word (the platform has nothing for this meaning, so it is not sent), not_connected, not_agreed (the workspace hasn't agreed to send sales there yet), other_source (the workspace set another tool to send that platform's conversions), held (the owner asked Apex not to send people to any ad platform), coming_soon, or turned_off. \`without_consent_answer\` says whether an event that carries no consent answer goes out (sent) or not (not_sent); when it's not_sent, tell the owner only events with a yes go. Also returns \`estimate\`: how often the event happened in the last 30 days, the sends a month that bills (one per event, however many platforms hear it), the workspace's free sends and use this month, and the monthly cost at its price (null when Apex couldn't count; only people Apex knows are sent, so the real number can be lower). Saves and sends nothing. Show the owner the result before anything starts sending.`,
|
|
242
271
|
schema: z.object({
|
|
243
272
|
event_name: z.string().min(1).describe("The event exactly as the workspace sends it, e.g. trial_started."),
|
|
244
|
-
meaning: z
|
|
245
|
-
.enum(SEND_MEANINGS)
|
|
246
|
-
.describe("What the event means: purchase, lead, signup, subscription, add_to_cart, or something_else when none fit."),
|
|
273
|
+
meaning: z.enum(SEND_MEANINGS).describe(MEANING_HELP),
|
|
247
274
|
}),
|
|
248
275
|
handler: async (args) => {
|
|
249
276
|
const params = new URLSearchParams({ event_name: args.event_name, meaning: args.meaning });
|
|
@@ -260,12 +287,10 @@ export const adPlatformTools = {
|
|
|
260
287
|
},
|
|
261
288
|
},
|
|
262
289
|
add_ad_platform_send: {
|
|
263
|
-
description: `${APEX} — Start sending one of the workspace's events to its ad platforms. Call preview_ad_platform_send first and show the owner what each platform would hear, the 30-day count and the monthly cost; pass confirm: true only after the owner says yes. Saved on the workspace's Conversion for that event (created when there isn't one). Only platforms the workspace has connected and agreed to send to hear it; this tool never agrees for the workspace. For something_else, Apex makes the conversion on Meta so campaigns can optimize for it; the result's \`made\` lists where it did and \`couldnt_make\` says why a platform refused (the send still goes). Refused when the event already means something else on Conversions, when Apex already sends it as a sale, or when no platform can hear it yet. Admin-only.`,
|
|
290
|
+
description: `${APEX} — Start sending one of the workspace's events to its ad platforms. Call preview_ad_platform_send first and show the owner what each platform would hear, the 30-day count and the monthly cost; pass confirm: true only after the owner says yes. Saved on the workspace's Conversion for that event (created when there isn't one). Only platforms the workspace has connected and agreed to send to hear it; this tool never agrees for the workspace. For something_else, Apex makes the conversion on Meta so campaigns can optimize for it; for a lead, booking or any other kind Google has no conversion for yet, Apex makes one in Google Ads (reported only unless it is what the workspace's business is for). The result's \`made\` lists where it did and \`couldnt_make\` says why a platform refused (the send still goes). Refused when the event already means something else on Conversions, when Apex already sends it as a sale, or when no platform can hear it yet. Admin-only.`,
|
|
264
291
|
schema: z.object({
|
|
265
292
|
event_name: z.string().min(1).describe("The event exactly as the workspace sends it, e.g. trial_started."),
|
|
266
|
-
meaning: z
|
|
267
|
-
.enum(SEND_MEANINGS)
|
|
268
|
-
.describe("What the event means: purchase, lead, signup, subscription, add_to_cart, or something_else when none fit."),
|
|
293
|
+
meaning: z.enum(SEND_MEANINGS).describe(MEANING_HELP),
|
|
269
294
|
send_value: z.boolean().optional().describe("Send the event's amount when it has one. Defaults to true."),
|
|
270
295
|
name: z.string().optional().describe("Name for a new Conversion. Defaults to the event name in words."),
|
|
271
296
|
confirm: z.literal(true).describe("The owner saw the preview and said yes."),
|
|
@@ -280,6 +305,73 @@ export const adPlatformTools = {
|
|
|
280
305
|
return jsonResult(res.data ?? null);
|
|
281
306
|
},
|
|
282
307
|
},
|
|
308
|
+
create_google_purchase_conversion: {
|
|
309
|
+
description: `${APEX} — Create the Purchase conversion in the workspace's Google Ads account that the sales Apex sends count toward, and make it where Apex sends them. Google only takes Apex's sales into an "Import from clicks" conversion, so an account with none, or with only website-tag conversions, can't receive them until one exists. Same as Create it for me on the Google Ads page. It writes into the owner's Google Ads account: tell them first and pass confirm: true only after they say yes. \`primary\` is false when the account already counts purchases with its tag, so Google doesn't count each sale twice. \`email_matching\` false means only sales from a Google ad click count until the owner turns on enhanced conversions for leads in Google Ads (Goals, then Settings). \`saved\` false means the conversion was made but sending still needs the owner's sign-in or agreement on the Google Ads page. Admin-only.`,
|
|
310
|
+
schema: z.object({
|
|
311
|
+
customer_id: z
|
|
312
|
+
.string()
|
|
313
|
+
.regex(/^\d{3}-?\d{3}-?\d{4}$/)
|
|
314
|
+
.optional()
|
|
315
|
+
.describe("The Google Ads account, e.g. 123-456-7890. Defaults to where Apex sends sales, else the account it reads."),
|
|
316
|
+
login_customer_id: z
|
|
317
|
+
.string()
|
|
318
|
+
.regex(/^\d{3}-?\d{3}-?\d{4}$/)
|
|
319
|
+
.optional()
|
|
320
|
+
.describe("The manager account it is reached through, when it is under one. Defaults with customer_id."),
|
|
321
|
+
confirm: z.literal(true).describe("The owner said yes to Apex creating a conversion in their Google Ads."),
|
|
322
|
+
}),
|
|
323
|
+
handler: async (args) => {
|
|
324
|
+
if (args.confirm !== true)
|
|
325
|
+
return jsonResult(null, "Ask the owner first, then pass confirm: true.");
|
|
326
|
+
let customerId = args.customer_id?.replace(/-/g, "");
|
|
327
|
+
let loginCustomerId = args.login_customer_id?.replace(/-/g, "");
|
|
328
|
+
let canSend = false;
|
|
329
|
+
try {
|
|
330
|
+
const setup = await apiGet("/api/integrations/google-ads/send-setup");
|
|
331
|
+
canSend = Boolean(setup.data?.canSend);
|
|
332
|
+
if (!customerId) {
|
|
333
|
+
const send = setup.data?.send;
|
|
334
|
+
const read = setup.data?.readAccount;
|
|
335
|
+
customerId = send?.customerId ?? read?.id ?? undefined;
|
|
336
|
+
loginCustomerId = send?.customerId ? send.loginCustomerId ?? undefined : read?.loginCustomerId;
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
catch (err) {
|
|
340
|
+
return jsonResult(null, apiErrorText(err, "Apex couldn't read the Google Ads connection."));
|
|
341
|
+
}
|
|
342
|
+
if (!customerId) {
|
|
343
|
+
return jsonResult(null, "No Google Ads account is picked yet. Pass customer_id, or pick one on the Google Ads page.");
|
|
344
|
+
}
|
|
345
|
+
let made;
|
|
346
|
+
try {
|
|
347
|
+
const res = await apiPost("/api/integrations/google-ads/conversion-actions", { customerId, loginCustomerId: loginCustomerId ?? "" });
|
|
348
|
+
if (!res.data)
|
|
349
|
+
return jsonResult(null, res.error ?? "Apex couldn't create the conversion in Google Ads.");
|
|
350
|
+
made = res.data;
|
|
351
|
+
}
|
|
352
|
+
catch (err) {
|
|
353
|
+
return jsonResult(null, apiErrorText(err, "Apex couldn't create the conversion in Google Ads."));
|
|
354
|
+
}
|
|
355
|
+
let saved = false;
|
|
356
|
+
if (canSend) {
|
|
357
|
+
saved = await apiPost("/api/integrations/google-ads/enhanced-conversions", {
|
|
358
|
+
customerId,
|
|
359
|
+
loginCustomerId: loginCustomerId ?? "",
|
|
360
|
+
conversionActionId: made.action.id,
|
|
361
|
+
})
|
|
362
|
+
.then(() => true)
|
|
363
|
+
.catch(() => false);
|
|
364
|
+
}
|
|
365
|
+
return jsonResult({
|
|
366
|
+
conversion_id: made.action.id,
|
|
367
|
+
name: made.action.name,
|
|
368
|
+
already_existed: made.reused === true,
|
|
369
|
+
primary: made.primary,
|
|
370
|
+
email_matching: made.emailMatching,
|
|
371
|
+
saved,
|
|
372
|
+
});
|
|
373
|
+
},
|
|
374
|
+
},
|
|
283
375
|
remove_ad_platform_send: {
|
|
284
376
|
description: `${APEX} — Stop sending one of the workspace's events to its ad platforms. The Conversion stays, so experiments and goals that count it are untouched, and what the platforms already heard stays with them. Pass the id from list_ad_platform_sends. Admin-only.`,
|
|
285
377
|
schema: z.object({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ad-platforms.js","sourceRoot":"","sources":["../../src/tools/ad-platforms.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ad-platforms.js","sourceRoot":"","sources":["../../src/tools/ad-platforms.ts"],"names":[],"mappings":"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"}
|
|
@@ -764,16 +764,24 @@ export declare const measurementTools: {
|
|
|
764
764
|
schema: z.ZodObject<{
|
|
765
765
|
type: z.ZodOptional<z.ZodString>;
|
|
766
766
|
sinceMinutes: z.ZodOptional<z.ZodNumber>;
|
|
767
|
+
source: z.ZodOptional<z.ZodEnum<["all", "real", "test"]>>;
|
|
768
|
+
environment: z.ZodOptional<z.ZodEnum<["all", "production", "beta", "dev"]>>;
|
|
767
769
|
}, "strip", z.ZodTypeAny, {
|
|
768
770
|
type?: string | undefined;
|
|
771
|
+
environment?: "all" | "production" | "beta" | "dev" | undefined;
|
|
772
|
+
source?: "all" | "real" | "test" | undefined;
|
|
769
773
|
sinceMinutes?: number | undefined;
|
|
770
774
|
}, {
|
|
771
775
|
type?: string | undefined;
|
|
776
|
+
environment?: "all" | "production" | "beta" | "dev" | undefined;
|
|
777
|
+
source?: "all" | "real" | "test" | undefined;
|
|
772
778
|
sinceMinutes?: number | undefined;
|
|
773
779
|
}>;
|
|
774
780
|
handler: (args: {
|
|
775
781
|
type?: string;
|
|
776
782
|
sinceMinutes?: number;
|
|
783
|
+
source?: "all" | "real" | "test";
|
|
784
|
+
environment?: "all" | "production" | "beta" | "dev";
|
|
777
785
|
}) => Promise<{
|
|
778
786
|
content: {
|
|
779
787
|
type: "text";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"measurement.d.ts","sourceRoot":"","sources":["../../src/tools/measurement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"measurement.d.ts","sourceRoot":"","sources":["../../src/tools/measurement.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,23 @@ import { z } from "zod";
|
|
|
2
2
|
import { apiGet, apiPost, apiPatch, apiPut, postServerEvents, SERVER_KEY_NEEDED_MESSAGE, getActiveWorkspace, } from "../api-client.js";
|
|
3
3
|
import { getPersonLabel, lowerPerson } from "../person-label.js";
|
|
4
4
|
import { APEX, appUrl, MCP_AGENT_VISITOR_ID, windowQuery, } from "../tool-shared.js";
|
|
5
|
+
const ENVIRONMENT_LABEL = {
|
|
6
|
+
production: "Production",
|
|
7
|
+
beta: "Beta",
|
|
8
|
+
dev: "Dev",
|
|
9
|
+
unknown: "Unclassified",
|
|
10
|
+
};
|
|
11
|
+
function formatRecentEvent(e) {
|
|
12
|
+
const name = `${e.eventName || e.type}${e.testMode ? " [test]" : ""}`;
|
|
13
|
+
const detail = [e.mobile?.releaseChannel, e.clientType].filter(Boolean).join(", ");
|
|
14
|
+
const environment = `${ENVIRONMENT_LABEL[e.environment ?? "unknown"] ?? e.environment}${detail ? ` (${detail})` : ""}`;
|
|
15
|
+
const parts = [`${e.timestamp} ${name}`, e.platform ?? "web", environment];
|
|
16
|
+
if (e.visitorId)
|
|
17
|
+
parts.push(`visitor ${e.visitorId}`);
|
|
18
|
+
if (e.id)
|
|
19
|
+
parts.push(`id ${e.id}`);
|
|
20
|
+
return `- ${parts.join(" · ")}`;
|
|
21
|
+
}
|
|
5
22
|
export const measurementTools = {
|
|
6
23
|
list_events: {
|
|
7
24
|
description: `${APEX} — List the workspace's ACTIVE events: the canonical event names actually firing, with total volume and the platforms they arrive on, from the ingest catalog. Use this to discover which events exist / are wired before choosing a primary metric or guardrail in create_experiment, or to confirm an event is live. Distinct from list_metrics (which lists typed rate/revenue/duration GOALS) — this is the raw observed-event catalog.`,
|
|
@@ -1158,7 +1175,7 @@ Events fired through this tool carry a stable synthetic visitorId (mcp-agent-*,
|
|
|
1158
1175
|
},
|
|
1159
1176
|
// ─── Graduation Pipeline — Engineering Links (Wave 2) ─────────────────,
|
|
1160
1177
|
apex_test_event: {
|
|
1161
|
-
description: `${APEX} — Send a test event through the public ingestion endpoint and confirm it was accepted. The fastest way to verify event tracking works after installing the SDK.`,
|
|
1178
|
+
description: `${APEX} — Send a test event through the public ingestion endpoint and confirm it was accepted. The fastest way to verify event tracking works after installing the SDK. The event is marked as a test, so it shows tagged "test" in apex_recent_events and on the Debug Events page.`,
|
|
1162
1179
|
schema: z.object({
|
|
1163
1180
|
eventName: z.string().describe("Event name, e.g. user_signed_up"),
|
|
1164
1181
|
attributes: z.record(z.unknown()).optional().describe("Event attributes"),
|
|
@@ -1175,21 +1192,30 @@ Events fired through this tool carry a stable synthetic visitorId (mcp-agent-*,
|
|
|
1175
1192
|
type: args.eventName,
|
|
1176
1193
|
visitorId,
|
|
1177
1194
|
timestamp: new Date().toISOString(),
|
|
1195
|
+
testMode: true,
|
|
1178
1196
|
data: { ...(args.attributes ?? {}), endUserId: visitorId },
|
|
1179
1197
|
});
|
|
1180
1198
|
const text = res.deduped
|
|
1181
1199
|
? `Test event "${args.eventName}" was already received for visitor ${visitorId}, so it was not counted twice.`
|
|
1182
1200
|
: (res.received ?? 0) > 0
|
|
1183
|
-
? `Test event "${args.eventName}" accepted for visitor ${visitorId}. It
|
|
1201
|
+
? `Test event "${args.eventName}" accepted for visitor ${visitorId} in ${workspaceKey}. It is marked as a test: apex_recent_events and the Debug Events page show it tagged "test".`
|
|
1184
1202
|
: `Event rejected: ${res.error ?? "unknown error"}`;
|
|
1185
1203
|
return { content: [{ type: "text", text }] };
|
|
1186
1204
|
},
|
|
1187
1205
|
},
|
|
1188
1206
|
apex_recent_events: {
|
|
1189
|
-
description: `${APEX} — List recent events for the workspace (
|
|
1207
|
+
description: `${APEX} — List recent events for the workspace, newest first, real and test together. Each line shows the event name, a [test] tag for test-mode events, platform, the environment Apex filed it under (Production, Beta, Dev, Unclassified) with release channel and client, visitor, and event id. Use to debug SDK wiring without opening the dashboard, e.g. "did my dev build land in Dev?".`,
|
|
1190
1208
|
schema: z.object({
|
|
1191
|
-
type: z.string().optional().describe("Filter by event
|
|
1209
|
+
type: z.string().optional().describe("Filter by event name (SDK custom events match by the name the app sent)"),
|
|
1192
1210
|
sinceMinutes: z.number().optional().describe("Lookback window in minutes (default 60)"),
|
|
1211
|
+
source: z
|
|
1212
|
+
.enum(["all", "real", "test"])
|
|
1213
|
+
.optional()
|
|
1214
|
+
.describe("all (default) = real and test events; real = test mode off; test = test mode on"),
|
|
1215
|
+
environment: z
|
|
1216
|
+
.enum(["all", "production", "beta", "dev"])
|
|
1217
|
+
.optional()
|
|
1218
|
+
.describe("Only events Apex filed under this environment (default all)"),
|
|
1193
1219
|
}),
|
|
1194
1220
|
handler: async (args) => {
|
|
1195
1221
|
const qs = new URLSearchParams();
|
|
@@ -1198,14 +1224,16 @@ Events fired through this tool carry a stable synthetic visitorId (mcp-agent-*,
|
|
|
1198
1224
|
const since = new Date(Date.now() - (args.sinceMinutes ?? 60) * 60_000).toISOString();
|
|
1199
1225
|
qs.set("since", since);
|
|
1200
1226
|
qs.set("limit", "25");
|
|
1227
|
+
qs.set("source", args.source ?? "all");
|
|
1228
|
+
qs.set("builds", args.environment ?? "all");
|
|
1201
1229
|
const res = await apiGet(`/api/events/live?${qs.toString()}`);
|
|
1202
1230
|
const events = res.events ?? [];
|
|
1203
1231
|
const watch = appUrl("/dashboard/debug/events");
|
|
1204
1232
|
if (events.length === 0) {
|
|
1205
1233
|
return { content: [{ type: "text", text: `No recent events in that window. The owner can watch for the first one live: ${watch}` }] };
|
|
1206
1234
|
}
|
|
1207
|
-
const lines = events.slice(0, 25).map(
|
|
1208
|
-
return { content: [{ type: "text", text: `# Recent events\n${lines.join("\n")}\n\nWatch them arrive live: ${watch}` }] };
|
|
1235
|
+
const lines = [...events].reverse().slice(0, 25).map(formatRecentEvent);
|
|
1236
|
+
return { content: [{ type: "text", text: `# Recent events (newest first)\n${lines.join("\n")}\n\nWatch them arrive live: ${watch}` }] };
|
|
1209
1237
|
},
|
|
1210
1238
|
},
|
|
1211
1239
|
apex_health: {
|