@convertcom/mcp-server 0.0.1-beta.16 → 0.0.1-beta.18
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 +1 -1
- package/build/executor.js +271 -17
- package/build/executor.js.map +1 -1
- package/build/failure-attribution.d.ts +55 -0
- package/build/failure-attribution.js +326 -0
- package/build/failure-attribution.js.map +1 -0
- package/build/image-dimensions.d.ts +5 -0
- package/build/image-dimensions.js +203 -0
- package/build/image-dimensions.js.map +1 -0
- package/build/kb-search.js +16 -1
- package/build/kb-search.js.map +1 -1
- package/build/namespaced.d.ts +5 -0
- package/build/namespaced.js +227 -12
- package/build/namespaced.js.map +1 -1
- package/build/operator.d.ts +14 -0
- package/build/operator.js +187 -22
- package/build/operator.js.map +1 -1
- package/build/prompts.js +10 -3
- package/build/prompts.js.map +1 -1
- package/build/runtime.d.ts +19 -1
- package/build/runtime.js +194 -18
- package/build/runtime.js.map +1 -1
- package/build/whats-new.d.ts +24 -0
- package/build/whats-new.js +150 -0
- package/build/whats-new.js.map +1 -0
- package/data/convert-kb-legacy-map.json +24956 -9527
- package/data/convert-kb-manifest.json +26 -27
- package/data/convert-kb.json +44625 -64753
- package/data/kb-vectors/0/embedding.index.3.proxima +0 -0
- package/data/kb-vectors/0/scalar.0.ipc +0 -0
- package/data/kb-vectors/corpus.json +2 -2
- package/data/kb-vectors/del.0 +0 -0
- package/data/kb-vectors/idmap.0/000008.sst +0 -0
- package/data/kb-vectors/idmap.0/IDENTITY +1 -1
- package/data/kb-vectors/idmap.0/MANIFEST-000005 +0 -0
- package/data/kb-vectors/manifest.3 +0 -0
- package/package.json +1 -1
- package/server.json +2 -2
package/build/kb-search.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kb-search.js","sourceRoot":"","sources":["../src/kb-search.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"kb-search.js","sourceRoot":"","sources":["../src/kb-search.ts"],"names":[],"mappings":"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"}
|
package/build/namespaced.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Tool, CallToolResult } from "@modelcontextprotocol/sdk/types.js";
|
|
2
2
|
import type { ToolExecutionContext } from './auth-context.js';
|
|
3
|
+
export declare function isRegisteredNamespaceAction(namespace: unknown, action: unknown, delegate?: unknown): boolean;
|
|
3
4
|
/**
|
|
4
5
|
* Per-action agent guidance. Appended to generated descriptions as "Agent Notes:".
|
|
5
6
|
* Keys are "namespace.action" strings matching REGISTRY entries.
|
|
@@ -65,6 +66,10 @@ export declare const NAMESPACE_OUTPUT_SCHEMA: {
|
|
|
65
66
|
readonly type: "boolean";
|
|
66
67
|
readonly description: "True when issues contains a bounded subset; the text message retains the prioritized correction path.";
|
|
67
68
|
};
|
|
69
|
+
readonly failure: {
|
|
70
|
+
readonly type: "object";
|
|
71
|
+
readonly description: "Closed, identifier-free failure category and provenance. Present only on failed calls.";
|
|
72
|
+
};
|
|
68
73
|
};
|
|
69
74
|
readonly additionalProperties: true;
|
|
70
75
|
};
|
package/build/namespaced.js
CHANGED
|
@@ -3,6 +3,7 @@ import { executeToolByName, executeValidatedToolByName, truncateSchemaText, vali
|
|
|
3
3
|
import { JSON_SCHEMA_DRAFT_2020_12, pathParamsFromTemplate, tryParseJsonLike } from './shared.js';
|
|
4
4
|
import { toolSafetyKindForDelegate } from './tool-safety.js';
|
|
5
5
|
import { MDE_FRACTION_BOUNDARY_VERSION, experienceStatsVersion, usesLegacyFixedMdeScale, } from './stats-engine-version.js';
|
|
6
|
+
import { failureFromStructured, inputFailure, safeFailureAttribution, validationLabels, } from './failure-attribution.js';
|
|
6
7
|
const DESTRUCTIVE_DELETE_CONFIRMATION_NOTE = [
|
|
7
8
|
'🚨 DELETE SAFETY: Do not call this delete action from first intuition or inferred cleanup intent.',
|
|
8
9
|
'The user must explicitly ask to delete the specific Convert resource, then you must ask a second clear confirmation explaining the exact resource and consequence.',
|
|
@@ -15,6 +16,7 @@ const STATS_ENGINE_EVIDENCE_NOTE = [
|
|
|
15
16
|
'Never mix engine vocabularies in the same interpretation.',
|
|
16
17
|
'Never calculate, estimate, simulate, or label an inactive-engine result from the current report counts, including hypothetical or "what if we switched" requests. A Convert chance_to_win must come from a fresh Bayesian aggregate report; a Convert significance result must come from a fresh Frequentist aggregate report.',
|
|
17
18
|
'After any stats-lens change, fetch a fresh aggregated report and never carry a conclusion across lenses.',
|
|
19
|
+
'Use settings.min_variation_conversions for the minimum conversion count. Deprecated min_conversion_value aliases the same stored count; it is not a separate revenue threshold. Settings are returned configuration, not an include/expand relation.',
|
|
18
20
|
].join(' ');
|
|
19
21
|
function requiredPathParamsForDef(def) {
|
|
20
22
|
const declared = (def.executionParameters || [])
|
|
@@ -164,6 +166,14 @@ const REGISTRY = {
|
|
|
164
166
|
list: 'getnotifications',
|
|
165
167
|
},
|
|
166
168
|
};
|
|
169
|
+
export function isRegisteredNamespaceAction(namespace, action, delegate) {
|
|
170
|
+
if (typeof namespace !== 'string' || typeof action !== 'string')
|
|
171
|
+
return false;
|
|
172
|
+
const registeredDelegate = REGISTRY[namespace]?.[action];
|
|
173
|
+
if (typeof registeredDelegate !== 'string')
|
|
174
|
+
return false;
|
|
175
|
+
return typeof delegate === 'undefined' || delegate === registeredDelegate;
|
|
176
|
+
}
|
|
167
177
|
const SPLIT_UNAVAILABLE_ACTIONS = {
|
|
168
178
|
'accounts.get_billing_portal': {
|
|
169
179
|
code: 'AccountWideOAuthGrantRequired',
|
|
@@ -280,6 +290,13 @@ const NAMESPACE_DESCRIPTIONS = {
|
|
|
280
290
|
approval_requests: 'Inspect and manage Convert approval requests for governed experience actions. Convert remains the policy authority: try the requested experience action first, create an approval request only after an approval-required response and explicit user instruction, and never auto-approve, auto-reject, or auto-retry the original action.',
|
|
281
291
|
notifications: 'Inspect delivered Convert notifications and account notification settings. This namespace is read-only: notification settings changes, read-state mutations, deletion, and WebSocket access remain in the Convert web application. Notifications are account-wide, plan- and role-gated by Convert, and hosted connectors expose them only for an explicit Entire account OAuth grant.',
|
|
282
292
|
};
|
|
293
|
+
// The host can inspect read tool descriptions without invoking a write tool or
|
|
294
|
+
// receiving the per-action _meta block. Keep these source-contract facts on the
|
|
295
|
+
// read catalog only; write and delete siblings already have their own metadata.
|
|
296
|
+
const READ_CATALOG_GUIDANCE = {
|
|
297
|
+
experiences: 'Experience descriptions on create/update have a 500-character maximum; a 501-character description is invalid. Deprecated settings.min_conversion_value aliases settings.min_variation_conversions: both map to the same stored settings.minconv minimum conversion count, not a revenue threshold. For daily_report reads, use body.goal (one numeric goal ID), body.report_type ("cumulative" or "non_cumulative"), body.metric, optional body.start_time/end_time Unix seconds, and body.segments.devices such as ["desktop"]; body.goals and body.cumulative are unsupported. For list reads, settings is returned configuration, not a body.expand relation.',
|
|
298
|
+
goals: 'Goal descriptions on create/update have a 500-character maximum; a 501-character description is invalid. clicks_element settings.selector is one CSS selector string: a comma-separated selector list such as ".cta, #submit" matches a click on any listed element; use valid CSS, not an array. Goal settings are returned configuration, not a body.expand relation; goals.list uses body.include for documented optional relations.',
|
|
299
|
+
};
|
|
283
300
|
/**
|
|
284
301
|
* Per-action agent guidance. Appended to generated descriptions as "Agent Notes:".
|
|
285
302
|
* Keys are "namespace.action" strings matching REGISTRY entries.
|
|
@@ -320,6 +337,9 @@ export const ACTION_NOTES = {
|
|
|
320
337
|
'Type enum: "a/b", "a/a", "mvt", "split_url", "multipage", "deploy" (standard projects), "a/b_fullstack", "feature_rollout" (fullstack projects only).',
|
|
321
338
|
'Deploy semantics: type "deploy" is a rollout/deployment container, not a tracked experience. Do not expect visitor/conversion reporting for deploys.',
|
|
322
339
|
'Required body fields: name, type, url. If status is omitted, MCP defaults it to "draft".',
|
|
340
|
+
'Before creation, fetch projects.get with default_goals, default_audiences, and default_locations included/expanded, inspect project stats/allocation and integrations, and resolve the intended resources by name. Discuss inherited defaults with the user; operator.get_defaults is a suggestion, not consent to attach a goal or enable MAB/integrations. Read back the draft with expanded goals, audiences, locations and variations and disclose any inherited configuration before activation. Do not promise that omitted fields mean disabled or empty.',
|
|
341
|
+
'MCP forwards the attachment fields you send, but Convert can attach fallback goals when body.goals is omitted or []: neither means no goals. Resolve the user-intended existing goal IDs and primary_goal before creating; send them explicitly, along with intended audience/location IDs, rather than silently selecting or clearing attachments. If the user intends no goals, explain that [] cannot guarantee this and resolve the mismatch before creating. If goals are sent without primary_goal, Convert can treat goals[0] as primary. Verify the persisted goals, primary, audiences, and locations by expanded readback.',
|
|
342
|
+
'A bare body.url does not reproduce the UI Experience URL location choice, which can create and attach a location. When location targeting is intended, resolve an existing location or create the user-approved one through the location tool, send its ID explicitly, and verify its rule and attachment. Do not auto-create a location from the URL alone.',
|
|
323
343
|
'Setting status to "active" requires explicit user confirmation at tool-call level: confirmation: { "user_confirmed": true, "reason": "..." }.',
|
|
324
344
|
'For hand-written JS/CSS in an A/B test, use changes[].type "customCode" with data { "js": "...", "css": "" }. Do not use "defaultCode" unless sending Visual Editor data with custom_js.',
|
|
325
345
|
'Create control+treatment variations by sending body.variations with each variation name and optional changes array. Use traffic_distribution for variation traffic; MCP also accepts legacy traffic_percentage and normalizes it.',
|
|
@@ -392,14 +412,15 @@ export const ACTION_NOTES = {
|
|
|
392
412
|
'For lost-update protection, include the latest top-level concurrency_key returned by experiences.get_change for the exact change ID. Embedded variation-change keys can be stale and must not be used for writes. A stale key returns a conflict; re-read and review before retrying.',
|
|
393
413
|
].join('\n'),
|
|
394
414
|
'experiences.aggregated_report': [
|
|
415
|
+
'Place report filters in body, never query: body.segments (for example { "devices": ["desktop"] }), body.start_time/body.end_time with body.utc_offset, body.goals and body.metrics. Unknown body fields are rejected before dispatch; a singular body.device is wrong, use body.segments.devices.',
|
|
395
416
|
'Works on tracked experience types. Draft or inactive experiences may return empty report data. Deploy experiences are not tracked experiences; treat report results as not applicable and expect the API to reject the report request (commonly 422).',
|
|
396
417
|
'Use the API response body at data.stats_methodology before interpreting statistical fields. Its authoritative evidence path is data.reportData[].variations[].metrics[] (structuredContent root: data.data.reportData[].variations[].metrics[]). MCP removes the deprecated conversion_data, revenue_data, and products_data compatibility blocks; never reconstruct or reason from them.',
|
|
397
418
|
'Engine vocabularies are mutually exclusive. For Bayesian reports, use chance_to_win, done, and estimated_progress. Never describe Bayesian evidence as confidence or statistically significant; never use confidence, statistically_significant, observed_power, or other Frequentist significance fields, and do not quote or interpret the ambiguous numeric risk vector. For Frequentist reports, use confidence, statistically_significant, done, and engine-appropriate progress; never use chance_to_win, Bayesian risk, or Bayesian decision-threshold language. MCP removes inactive-engine metric fields before returning the report.',
|
|
398
419
|
'Do not describe a shared settings field as active evidence merely because it is present. Resolve stats_methodology first, then discuss only settings and metric fields that belong to that engine.',
|
|
399
420
|
].join('\n'),
|
|
400
|
-
'experiences.daily_report': 'Works on tracked experience types.
|
|
401
|
-
'experiences.get_heatmap_background': 'Requires heatmap_id in path. Optional body.device is one of "desktop", "tablet", or "mobile" and defaults to "desktop".',
|
|
402
|
-
'experiences.get_heatmap_overlay': 'Requires heatmap_id in path. Optional body.device is one of "desktop", "tablet", or "mobile"; optional body.interaction is "click", "scroll", or "move". Defaults are desktop/click.',
|
|
421
|
+
'experiences.daily_report': 'Use body.goal (numeric goal ID), not query.goal_id or body.goal_id. Example: { "action": "daily_report", "path": { "account_id": 123, "project_id": 456, "experience_id": 789 }, "body": { "goal": 101, "report_type": "non_cumulative", "metric": "conversion_rate" } }. Date range and segments also belong in the documented body fields; resolve goal IDs from the experience before selecting a non-primary goal. Works on tracked experience types. An empty series does not prove zero traffic; check lifecycle and collection coverage. Deploy experiences are not tracked experiences, so daily reports are not applicable and clients must skip this request when diagnosing deploy tracking.',
|
|
422
|
+
'experiences.get_heatmap_background': 'Requires heatmap_id in path. Optional body.device is one of "desktop", "tablet", or "mobile" and defaults to "desktop". Requires report view access on the project with Visitor Insights enabled and a website ID; otherwise Convert reports the heatmap as not configured. Call only when visual evidence is explicitly needed, one image at a time; do not include images automatically in investigation or operator packets. A small supported image is returned as one MCP image block, never base64 text or structuredContent. Images exceeding 1 MiB decoded, 2048 pixels on either axis, or 1,048,576 pixels total are refused with bounded metadata and no silent resizing; non-image fallback text plus structured output is capped at 64 KiB. These limits do not guarantee host token cost. Inspect the original in Convert UI.',
|
|
423
|
+
'experiences.get_heatmap_overlay': 'Requires heatmap_id in path. Optional body.device is one of "desktop", "tablet", or "mobile"; optional body.interaction is "click", "scroll", or "move". Defaults are desktop/click. Requires report view access on the project with Visitor Insights enabled and a website ID; otherwise Convert reports the heatmap as not configured. Call only when visual evidence is explicitly needed, one image at a time; do not include images automatically in investigation or operator packets. A small supported image is returned as one MCP image block, never base64 text or structuredContent. Images exceeding 1 MiB decoded, 2048 pixels on either axis, or 1,048,576 pixels total are refused with bounded metadata and no silent resizing; non-image fallback text plus structured output is capped at 64 KiB. These limits do not guarantee host token cost. Inspect the original in Convert UI. This image is not structured click or scroll data.',
|
|
403
424
|
// ── locations ────────────────────────────────────────────
|
|
404
425
|
'locations.create': [
|
|
405
426
|
'Required body fields: name, rules, trigger.',
|
|
@@ -523,9 +544,11 @@ export const ACTION_NOTES = {
|
|
|
523
544
|
'MCP accepts legacy type aliases "custom_js" -> "code_trigger" and "scrolls_to" -> "scroll_percentage".',
|
|
524
545
|
'description max length is 500 characters.',
|
|
525
546
|
'Use triggering_rule for URL or audience-style scoping; it accepts nested OR→AND→OR_WHEN rules.',
|
|
547
|
+
'visits_page does not use settings.url for tracking. Put page matching in triggering_rule; an echoed settings value is not proof that targeting was applied. Omit settings for an intentionally unscoped page-visit goal.',
|
|
526
548
|
'clicks_element settings example: { "selector": ".cta" }. code_trigger requires no settings.',
|
|
527
549
|
'clicks_link requires settings.href as a string; Convert API rejects match objects there. Use triggering_rule for page scoping, or create multiple link goals when multiple href patterns are needed.',
|
|
528
550
|
].join('\n'),
|
|
551
|
+
'goals.update': 'Use triggering_rule for page scoping, not settings.url, including partial updates that omit type. Preserve existing triggering_rule conditions when editing scope; omission preserves them, while null clears them. Do not infer a goal collection start from its creation date or compare goals as if they necessarily share a collection window.',
|
|
529
552
|
// ── accounts ─────────────────────────────────────────────
|
|
530
553
|
'accounts.list_sdk_keys': 'Requires "project_id" in path even though it\'s under the accounts namespace.',
|
|
531
554
|
'accounts.create_sdk_key': [
|
|
@@ -632,6 +655,85 @@ function normalizeNamespaceArgs(rawArgs, def) {
|
|
|
632
655
|
};
|
|
633
656
|
}
|
|
634
657
|
const MAX_NAMESPACE_ARGUMENT_ISSUES = 20;
|
|
658
|
+
// Delegates whose request body is a documented filter set (POST-backed list,
|
|
659
|
+
// history and report reads). Unknown top-level body keys are rejected before
|
|
660
|
+
// dispatch so a misspelled filter cannot silently widen results. Allowed keys
|
|
661
|
+
// derive from the generated schema, so regeneration picks up new documented
|
|
662
|
+
// filters automatically. Payload-style bodies (create/update/clone, uploads,
|
|
663
|
+
// extension maps, arbitrary JSON) are deliberately absent: they stay open and
|
|
664
|
+
// validate against the generated action schema. Add new filter-style delegates
|
|
665
|
+
// here only after verifying their body enumerates its accepted fields and
|
|
666
|
+
// accepts no legitimate arbitrary top-level keys.
|
|
667
|
+
const STRICT_BODY_FILTER_DELEGATES = new Set([
|
|
668
|
+
'getaccountactivecompletedexperienceslist',
|
|
669
|
+
'getaccounthistory',
|
|
670
|
+
'getaudienceslist',
|
|
671
|
+
'getdomainslist',
|
|
672
|
+
'getexperienceaggregatedreport',
|
|
673
|
+
'getexperiencedailyreport',
|
|
674
|
+
'getexperiencehistory',
|
|
675
|
+
'getexperiencereportintegrity',
|
|
676
|
+
'getexperienceslist',
|
|
677
|
+
'getfeatureslist',
|
|
678
|
+
'getgoalslist',
|
|
679
|
+
'gethypotheseslist',
|
|
680
|
+
'getknowledgebaseslist',
|
|
681
|
+
'getlocationslist',
|
|
682
|
+
'getobservationslist',
|
|
683
|
+
'getprojecthistory',
|
|
684
|
+
'getprojectslist',
|
|
685
|
+
'gettagslist',
|
|
686
|
+
'listapprovalrequests',
|
|
687
|
+
]);
|
|
688
|
+
// NOTE: getsignalsessionslist and getvisitorsdataplaceholderslist are deliberately
|
|
689
|
+
// absent: those delegates are allowlisted-unexposed (registry drift gate) and must
|
|
690
|
+
// never gain namespace exposure without a dedicated privacy review. This set only
|
|
691
|
+
// constrains admitted filter actions.
|
|
692
|
+
// Long-standing operator sends that the generated contract does not enumerate
|
|
693
|
+
// for these three lists. The backend tolerates them in production today, so
|
|
694
|
+
// strictness preserves them instead of breaking established read workflows.
|
|
695
|
+
// Verify against the backend/OpenAPI list-filter contract: either the export
|
|
696
|
+
// gains these fields (and this map shrinks) or the sends are proven dead and
|
|
697
|
+
// removed from the operator helpers. Never extend this map for new junk.
|
|
698
|
+
const STRICT_BODY_FILTER_COMPAT_KEYS = {
|
|
699
|
+
getdomainslist: ['sort_by', 'sort_direction'],
|
|
700
|
+
gettagslist: ['sort_by', 'sort_direction'],
|
|
701
|
+
};
|
|
702
|
+
function strictBodyFilterKeys(def) {
|
|
703
|
+
if (!def.name || !STRICT_BODY_FILTER_DELEGATES.has(def.name))
|
|
704
|
+
return undefined;
|
|
705
|
+
const requestBody = def.inputSchema?.properties?.requestBody;
|
|
706
|
+
if (!requestBody || typeof requestBody !== 'object' || Array.isArray(requestBody))
|
|
707
|
+
return undefined;
|
|
708
|
+
const keys = new Set();
|
|
709
|
+
const visit = (node, depth) => {
|
|
710
|
+
if (!node || typeof node !== 'object' || Array.isArray(node) || depth > 6)
|
|
711
|
+
return true;
|
|
712
|
+
const record = node;
|
|
713
|
+
// An explicitly open composition member means arbitrary keys are legitimate.
|
|
714
|
+
if (record.additionalProperties !== undefined && record.additionalProperties !== false)
|
|
715
|
+
return false;
|
|
716
|
+
if (record.properties && typeof record.properties === 'object' && !Array.isArray(record.properties)) {
|
|
717
|
+
for (const key of Object.keys(record.properties))
|
|
718
|
+
keys.add(key);
|
|
719
|
+
}
|
|
720
|
+
for (const combiner of ['allOf', 'oneOf', 'anyOf']) {
|
|
721
|
+
const members = record[combiner];
|
|
722
|
+
if (Array.isArray(members)) {
|
|
723
|
+
for (const member of members) {
|
|
724
|
+
if (!visit(member, depth + 1))
|
|
725
|
+
return false;
|
|
726
|
+
}
|
|
727
|
+
}
|
|
728
|
+
}
|
|
729
|
+
return true;
|
|
730
|
+
};
|
|
731
|
+
if (!visit(requestBody, 0) || keys.size === 0)
|
|
732
|
+
return undefined;
|
|
733
|
+
for (const extra of STRICT_BODY_FILTER_COMPAT_KEYS[def.name] ?? [])
|
|
734
|
+
keys.add(extra);
|
|
735
|
+
return keys;
|
|
736
|
+
}
|
|
635
737
|
function namespaceArgumentIssues(rawArgs, def, allowAsUser) {
|
|
636
738
|
const executionParams = def.executionParameters ?? [];
|
|
637
739
|
const pathKeys = new Set(requiredPathParamsForDef(def));
|
|
@@ -682,6 +784,11 @@ function namespaceArgumentIssues(rawArgs, def, allowAsUser) {
|
|
|
682
784
|
};
|
|
683
785
|
inspect(rawArgs.path, 'path', pathKeys);
|
|
684
786
|
inspect(rawArgs.query, 'query', queryKeys);
|
|
787
|
+
const bodyKeys = strictBodyFilterKeys(def);
|
|
788
|
+
if (bodyKeys) {
|
|
789
|
+
inspect(rawArgs.body, 'body', bodyKeys);
|
|
790
|
+
inspect(rawArgs.requestBody, 'requestBody', bodyKeys);
|
|
791
|
+
}
|
|
685
792
|
const allowedTopLevel = [...topLevelKeys].sort();
|
|
686
793
|
for (const key of Object.keys(rawArgs)) {
|
|
687
794
|
if (!topLevelKeys.has(key)) {
|
|
@@ -699,6 +806,33 @@ function namespaceArgumentIssues(rawArgs, def, allowAsUser) {
|
|
|
699
806
|
issuesTruncated: issueCount > issues.length,
|
|
700
807
|
};
|
|
701
808
|
}
|
|
809
|
+
function unknownArgumentHint(namespace, action, issues) {
|
|
810
|
+
const hasPath = (path) => issues.some((issue) => issue.path === path);
|
|
811
|
+
if (namespace === 'experiences' && action === 'daily_report'
|
|
812
|
+
&& ['body.goals', 'body.cumulative', 'body.goal_id', 'query.goal_id'].some(hasPath)) {
|
|
813
|
+
return 'Use body.goal (numeric goal ID), body.report_type ("cumulative" or "non_cumulative"), and body.metric. Date bounds are body.start_time/end_time; device filtering is body.segments.devices, for example ["desktop"].';
|
|
814
|
+
}
|
|
815
|
+
if (namespace === 'experiences' && action === 'list'
|
|
816
|
+
&& issues.some((issue) => issue.path.startsWith('query.') || issue.path === 'body/requestBody')) {
|
|
817
|
+
return 'experiences.list is POST-backed. Supply exactly one body wrapper; related-data fields are body.include and body.expand arrays, for example {"body":{"include":["goals","stats"],"expand":["goals"]}}. Settings is returned configuration, not an expand relation.';
|
|
818
|
+
}
|
|
819
|
+
if (namespace === 'goals' && action === 'list' && hasPath('body.expand')) {
|
|
820
|
+
return 'goals.list has no body.expand field. Use documented body.include relations; settings is returned configuration, not an expand relation.';
|
|
821
|
+
}
|
|
822
|
+
if (namespace === 'experiences' && action === 'aggregated_report' && hasPath('body.device')) {
|
|
823
|
+
return 'Use body.segments.devices for a supported device filter, for example {"body":{"segments":{"devices":["desktop"]}}}.';
|
|
824
|
+
}
|
|
825
|
+
return undefined;
|
|
826
|
+
}
|
|
827
|
+
function invalidSettingsExpandHint(namespace, action, body, query) {
|
|
828
|
+
if (namespace !== 'experiences' || (action !== 'list' && action !== 'get'))
|
|
829
|
+
return undefined;
|
|
830
|
+
const args = action === 'list' ? body : query;
|
|
831
|
+
const expand = isNonArrayObject(args) ? args.expand : undefined;
|
|
832
|
+
if (!Array.isArray(expand) || !expand.includes('settings'))
|
|
833
|
+
return undefined;
|
|
834
|
+
return 'Settings is returned configuration, not an expand relation. Omit "settings" from expand; use documented linked-resource values such as ["goals"] instead.';
|
|
835
|
+
}
|
|
702
836
|
function hasExplicitUserConfirmation(confirmation) {
|
|
703
837
|
if (!isNonArrayObject(confirmation))
|
|
704
838
|
return false;
|
|
@@ -1042,6 +1176,18 @@ function evaluateGoalGuardrails(action, body) {
|
|
|
1042
1176
|
return null;
|
|
1043
1177
|
if (!isNonArrayObject(body.settings))
|
|
1044
1178
|
return null;
|
|
1179
|
+
if ((typeof body.type === 'undefined' || body.type === 'visits_page')
|
|
1180
|
+
&& Object.prototype.hasOwnProperty.call(body.settings, 'url')) {
|
|
1181
|
+
return {
|
|
1182
|
+
code: 'GoalUrlRequiresTriggeringRule',
|
|
1183
|
+
message: [
|
|
1184
|
+
'goals.create/update: body.settings.url does not scope visits_page tracking, even when the API echoes it. No write was sent.',
|
|
1185
|
+
'For partial updates that omit type, fetch goals.get to confirm the goal type before editing its tracking configuration.',
|
|
1186
|
+
'Remove settings.url and express page scoping in triggering_rule, for example: { "OR": [{ "AND": [{ "OR_WHEN": [{ "rule_type": "url", "value": "https://example.com/free-trial", "matching": { "match_type": "contains" } }] }] }] }.',
|
|
1187
|
+
'Preserve any existing triggering_rule conditions; do not replace them blindly. Omit settings for an intentionally unscoped visits_page goal.',
|
|
1188
|
+
].join('\n'),
|
|
1189
|
+
};
|
|
1190
|
+
}
|
|
1045
1191
|
if (typeof body.type !== 'undefined' && body.type !== 'clicks_link')
|
|
1046
1192
|
return null;
|
|
1047
1193
|
const href = body.settings.href;
|
|
@@ -1356,6 +1502,7 @@ export const NAMESPACE_OUTPUT_SCHEMA = {
|
|
|
1356
1502
|
issues: { type: 'array', items: { type: 'object' }, description: 'Validation issues, if present.' },
|
|
1357
1503
|
issue_count: { type: 'integer', minimum: 0, description: 'Total validation diagnostic count before bounded structured disclosure, including targeted corrective diagnostics.' },
|
|
1358
1504
|
issues_truncated: { type: 'boolean', description: 'True when issues contains a bounded subset; the text message retains the prioritized correction path.' },
|
|
1505
|
+
failure: { type: 'object', description: 'Closed, identifier-free failure category and provenance. Present only on failed calls.' },
|
|
1359
1506
|
},
|
|
1360
1507
|
additionalProperties: true,
|
|
1361
1508
|
};
|
|
@@ -1409,7 +1556,11 @@ function buildNamespaceTool(options) {
|
|
|
1409
1556
|
const nsDesc = NAMESPACE_DESCRIPTIONS[ns] || `Manage ${ns} in the user's Convert.com account via the live API.`;
|
|
1410
1557
|
const actionLabel = splitKind ? `${splitKind} actions` : 'actions';
|
|
1411
1558
|
const siblingDescription = splitKind ? splitSiblingDescription(ns, splitKind, executionContext) : '';
|
|
1559
|
+
const readGuidance = ((ns === 'experiences' && actions.includes('daily_report')) || (ns === 'goals' && actions.includes('list')))
|
|
1560
|
+
? READ_CATALOG_GUIDANCE[ns]
|
|
1561
|
+
: '';
|
|
1412
1562
|
const description = [
|
|
1563
|
+
readGuidance,
|
|
1413
1564
|
`${nsDesc} Available ${actionLabel}: ${actions.join(', ')}.`,
|
|
1414
1565
|
siblingDescription,
|
|
1415
1566
|
].filter(Boolean).join(' ');
|
|
@@ -1466,12 +1617,12 @@ function buildNamespaceTool(options) {
|
|
|
1466
1617
|
inputSchema: {
|
|
1467
1618
|
$schema: JSON_SCHEMA_DRAFT_2020_12,
|
|
1468
1619
|
type: 'object',
|
|
1469
|
-
description: 'Select one advertised action, then place parameters in path, query, and body exactly as that action describes. After action selection, the runtime rejects every unknown top-level field except declared flattened path/query aliases, requestBody compatibility, confirmation metadata, and eligible hosted as_user impersonation.',
|
|
1620
|
+
description: 'Select one advertised action, then place parameters in path, query, and body exactly as that action describes. After action selection, the runtime rejects every unknown top-level field except declared flattened path/query aliases, requestBody compatibility, confirmation metadata, and eligible hosted as_user impersonation. For filter-style list, history and report reads it also rejects unknown body fields so a misspelled filter cannot silently widen results.',
|
|
1470
1621
|
properties: {
|
|
1471
1622
|
action: { type: 'string', enum: actions, description: actionDesc },
|
|
1472
1623
|
path: { type: 'object', additionalProperties: true, description: 'Canonical wrapper for action-specific path params such as account_id, project_id, and experience_id. For compatibility, known path params may also be supplied at the top level. After action selection, the runtime rejects unknown path fields even though this shared multi-action wrapper remains structurally open.' },
|
|
1473
1624
|
query: { type: 'object', additionalProperties: true, description: 'Canonical wrapper for action-specific query and optional header-style params (for example report_token). Known query/header params may also be supplied at the top level. Follow the selected action schema: item reads such as experiences.get place include/expand arrays here, while POST-backed collection reads such as experiences.list place them in body. Never move a documented body filter into query. After action selection, the runtime rejects unknown query fields even though this shared multi-action wrapper remains structurally open.' },
|
|
1474
|
-
body: { type: 'object', additionalProperties: true, description: 'Canonical request body wrapper for create/update/clone actions and POST-backed filtered reads. The namespace tool also accepts a top-level requestBody alias for compatibility, but a call must supply exactly one wrapper. Follow the selected action schema: experiences.list uses body.include/body.expand arrays, while experiences.get uses query.include/query.expand.' },
|
|
1625
|
+
body: { type: 'object', additionalProperties: true, description: 'Canonical request body wrapper for create/update/clone actions and POST-backed filtered reads. The namespace tool also accepts a top-level requestBody alias for compatibility, but a call must supply exactly one wrapper. Follow the selected action schema: experiences.list uses body.include/body.expand arrays, while experiences.get uses query.include/query.expand. For filter-style list, history and report reads the runtime rejects unknown body fields even though this shared multi-action wrapper remains structurally open.' },
|
|
1475
1626
|
requestBody: { type: 'object', additionalProperties: true, description: 'Compatibility alias for body. Prefer body in new calls. Supply body or requestBody, never both; the selected wrapper is validated against the generated action schema.' },
|
|
1476
1627
|
confirmation: {
|
|
1477
1628
|
type: 'object',
|
|
@@ -1508,6 +1659,23 @@ function withNamespaceEnvelope(result, namespace, action, delegate) {
|
|
|
1508
1659
|
const fallbackText = result.content?.[0]?.type === 'text' ? result.content[0].text : 'Unknown error';
|
|
1509
1660
|
envelope.error = fallbackText;
|
|
1510
1661
|
}
|
|
1662
|
+
if (result.isError && !safeFailureAttribution(envelope.failure)) {
|
|
1663
|
+
const code = typeof envelope.error === 'string' ? envelope.error : 'UnknownFailure';
|
|
1664
|
+
if (code === 'MissingPathParameters') {
|
|
1665
|
+
envelope.failure = inputFailure(code, 'namespace', 'required', 'path');
|
|
1666
|
+
}
|
|
1667
|
+
else if (code === 'UnknownNamespaceArguments') {
|
|
1668
|
+
const labels = validationLabels(envelope.issues);
|
|
1669
|
+
envelope.failure = inputFailure(code, 'namespace', 'additional_properties', labels.path === 'root' ? 'unknown' : labels.path);
|
|
1670
|
+
}
|
|
1671
|
+
else if (code === 'InvalidArguments') {
|
|
1672
|
+
const labels = validationLabels(envelope.issues);
|
|
1673
|
+
envelope.failure = inputFailure(code, 'namespace', labels.rule, labels.path);
|
|
1674
|
+
}
|
|
1675
|
+
else {
|
|
1676
|
+
envelope.failure = failureFromStructured(envelope, 'namespace');
|
|
1677
|
+
}
|
|
1678
|
+
}
|
|
1511
1679
|
return {
|
|
1512
1680
|
...result,
|
|
1513
1681
|
structuredContent: envelope,
|
|
@@ -1528,6 +1696,10 @@ const AGGREGATED_REPORT_GUIDANCE = {
|
|
|
1528
1696
|
interpretation: 'srm=true is an API-detected sample-ratio mismatch and blocks inferential conclusions for the affected scope. srm=false means the API did not flag SRM for this response; it is not independent proof of correct allocation when threshold, expected-allocation, or sample context is absent.',
|
|
1529
1697
|
provenance: 'api_boolean_without_threshold_context',
|
|
1530
1698
|
},
|
|
1699
|
+
computation_provenance: {
|
|
1700
|
+
state: 'unknown_without_upstream_computation_metadata',
|
|
1701
|
+
interpretation: 'The API transformer may default missing srm_pvalue to 1, missing chance_to_win/confidence to 0, and missing done/srm to false. Preserve genuine numeric 0/1, boolean true/false, and explicit missing/null values; the wire value alone cannot establish whether the statistic was computed. done=false means no completion is reported, not proof that a computation ran and failed its stopping gates. Respect reported done=true and engine-specific decision gates; never manufacture completion. Do not infer a paused-experience effect, a minimum-conversion gate, or a clean allocation from default-like values. Disclose the uncertainty when it affects a conclusion.',
|
|
1702
|
+
},
|
|
1531
1703
|
};
|
|
1532
1704
|
const DYNAMIC_MDE_GUIDANCE = {
|
|
1533
1705
|
semantics_version: 'convert.dynamic-mde.v1',
|
|
@@ -1768,6 +1940,7 @@ export function normalizeAggregatedReportResult(result) {
|
|
|
1768
1940
|
'- Deprecated conversion_data, revenue_data, and products_data blocks were removed.',
|
|
1769
1941
|
'- Use reportData[].variations[].metrics[] as the only statistical evidence source.',
|
|
1770
1942
|
'- Treat srm=true as an API-detected allocation mismatch. Treat srm=false only as "not flagged by this API response", not as independent proof that allocation is correct when threshold context is absent.',
|
|
1943
|
+
`- ${AGGREGATED_REPORT_GUIDANCE.computation_provenance.interpretation}`,
|
|
1771
1944
|
`- ${engineGuidance}`,
|
|
1772
1945
|
].join('\n');
|
|
1773
1946
|
const content = [{
|
|
@@ -2135,7 +2308,19 @@ export async function executeNamespacedTool(toolName, args, executionContext, to
|
|
|
2135
2308
|
}
|
|
2136
2309
|
const argumentInspection = namespaceArgumentIssues(parsedArgs, def, Boolean(executionContext?.readOnlyImpersonation));
|
|
2137
2310
|
if (argumentInspection.issueCount > 0) {
|
|
2138
|
-
const
|
|
2311
|
+
const relevantHint = unknownArgumentHint(namespace, action, argumentInspection.issues)
|
|
2312
|
+
?? (namespace === 'projects' && action === 'get' ? undefined : ACTION_NOTES[`${namespace}.${action}`]);
|
|
2313
|
+
const hintBodyKeys = strictBodyFilterKeys(def);
|
|
2314
|
+
const misplacedBodyField = (issuePath) => {
|
|
2315
|
+
if (!hintBodyKeys)
|
|
2316
|
+
return undefined;
|
|
2317
|
+
const key = issuePath.startsWith('query.')
|
|
2318
|
+
? issuePath.slice('query.'.length)
|
|
2319
|
+
: issuePath.startsWith('path.')
|
|
2320
|
+
? issuePath.slice('path.'.length)
|
|
2321
|
+
: undefined;
|
|
2322
|
+
return key && hintBodyKeys.has(key) ? key : undefined;
|
|
2323
|
+
};
|
|
2139
2324
|
const message = [
|
|
2140
2325
|
`Unknown arguments for ${namespace}.${action}; no Convert API request was sent.`,
|
|
2141
2326
|
...argumentInspection.issues.map((issue) => {
|
|
@@ -2144,12 +2329,14 @@ export async function executeNamespacedTool(toolName, args, executionContext, to
|
|
|
2144
2329
|
: issue.path.startsWith('path.')
|
|
2145
2330
|
? ' This action accepts no path fields.'
|
|
2146
2331
|
: '';
|
|
2147
|
-
|
|
2332
|
+
const misplaced = misplacedBodyField(issue.path);
|
|
2333
|
+
const redirect = misplaced ? ` Did you mean body.${misplaced}?` : '';
|
|
2334
|
+
return `- ${issue.path}: ${issue.message}${issue.allowed.length > 0 ? ` Allowed: ${issue.allowed.join(', ')}` : wrapper}${redirect}`;
|
|
2148
2335
|
}),
|
|
2149
2336
|
...(argumentInspection.issuesTruncated
|
|
2150
2337
|
? [`- ... ${argumentInspection.issueCount - argumentInspection.issues.length} more unknown argument(s)`]
|
|
2151
2338
|
: []),
|
|
2152
|
-
...(
|
|
2339
|
+
...(relevantHint ? ['', `Hint for ${namespace}.${action}:`, relevantHint] : []),
|
|
2153
2340
|
].join('\n');
|
|
2154
2341
|
return withNamespaceEnvelope({
|
|
2155
2342
|
content: [{ type: 'text', text: message }],
|
|
@@ -2209,7 +2396,8 @@ export async function executeNamespacedTool(toolName, args, executionContext, to
|
|
|
2209
2396
|
}
|
|
2210
2397
|
const schemaValidation = validateToolArgs(delegate, def.inputSchema, flattenedArgs);
|
|
2211
2398
|
if (!schemaValidation.ok) {
|
|
2212
|
-
const note =
|
|
2399
|
+
const note = invalidSettingsExpandHint(namespace, action, normalizedBody, query)
|
|
2400
|
+
?? ACTION_NOTES[`${namespace}.${action}`];
|
|
2213
2401
|
const text = `${schemaValidation.message}${note ? `\n\nHint for ${namespace}.${action}:\n${note}` : ''}`;
|
|
2214
2402
|
return withNamespaceEnvelope({
|
|
2215
2403
|
content: [{ type: 'text', text }],
|
|
@@ -2242,7 +2430,13 @@ export async function executeNamespacedTool(toolName, args, executionContext, to
|
|
|
2242
2430
|
const result = normalizeProjectCreatePermissionError(namespace, action, approvalAwareResult);
|
|
2243
2431
|
// Append action-specific guidance to error messages so agents can self-correct
|
|
2244
2432
|
if (result.isError) {
|
|
2245
|
-
const
|
|
2433
|
+
const lifecycleDenied = namespace === 'experiences' && isNonArrayObject(normalizedBody)
|
|
2434
|
+
&& ((action === 'update' && ['active', 'paused'].includes(String(normalizedBody.status)))
|
|
2435
|
+
|| (action === 'create' && normalizedBody.status === 'active'))
|
|
2436
|
+
&& asObject(result.structuredContent)?.status === 403;
|
|
2437
|
+
const note = lifecycleDenied
|
|
2438
|
+
? `Activation/pause received upstream HTTP 403; status alone does not establish whether an edge policy or backend authorization denied it. Human confirmation records intent; it does not grant authorization. If backend authorization is identified, verify the exact account/project, the credential principal's current ${action === 'create' ? 'experience.add' : 'experience.pauseplay'} permission and OAuth grant scope. Plan or approval restrictions are possibilities, not established causes unless the backend explicitly identifies them. Do not retry with different payloads, reconnect automatically, or submit an approval request unless Convert returns ApprovalRequired and the user asks to submit it. Staff impersonation remains browse-only.`
|
|
2439
|
+
: ACTION_NOTES[`${namespace}.${action}`];
|
|
2246
2440
|
if (note && result.content?.[0]?.type === 'text') {
|
|
2247
2441
|
result.content[0].text += `\n\nHint for ${namespace}.${action}:\n${note}`;
|
|
2248
2442
|
}
|
|
@@ -2251,10 +2445,31 @@ export async function executeNamespacedTool(toolName, args, executionContext, to
|
|
|
2251
2445
|
const normalizedResult = namespace === 'experiences' && action === 'aggregated_report'
|
|
2252
2446
|
? normalizeAggregatedReportResult(persistenceVerifiedResult)
|
|
2253
2447
|
: persistenceVerifiedResult;
|
|
2254
|
-
const
|
|
2448
|
+
const heatmapAction = namespace === 'experiences'
|
|
2449
|
+
&& (action === 'get_heatmap_background' || action === 'get_heatmap_overlay');
|
|
2450
|
+
const semanticallyGuidedResult = (namespace === 'projects' || namespace === 'experiences') && !heatmapAction
|
|
2255
2451
|
? normalizeStatsEngineGuidanceResult(normalizedResult)
|
|
2256
2452
|
: normalizedResult;
|
|
2257
|
-
|
|
2453
|
+
const envelopedResult = withNamespaceEnvelope(semanticallyGuidedResult, namespace, action, delegate);
|
|
2454
|
+
if (heatmapAction && !envelopedResult.isError && !envelopedResult.content?.some(item => item.type === 'image')) {
|
|
2455
|
+
const encoder = new TextEncoder();
|
|
2456
|
+
const modelBytes = envelopedResult.content.reduce((sum, item) => sum + (item.type === 'text' ? encoder.encode(item.text).length : 0), 0)
|
|
2457
|
+
+ encoder.encode(JSON.stringify(envelopedResult.structuredContent)).length;
|
|
2458
|
+
if (modelBytes > 64 * 1024) {
|
|
2459
|
+
const message = 'The heatmap response exceeds the 64 KiB combined MCP text and structured output budget. No response data was returned. Open the original heatmap in Convert UI.';
|
|
2460
|
+
return withNamespaceEnvelope({
|
|
2461
|
+
isError: true,
|
|
2462
|
+
content: [{ type: 'text', text: message }],
|
|
2463
|
+
structuredContent: {
|
|
2464
|
+
error: 'MediaResponseTooLarge',
|
|
2465
|
+
status: 413,
|
|
2466
|
+
limit_combined_model_bytes: 64 * 1024,
|
|
2467
|
+
next_step: 'Open the original heatmap in Convert UI. MCP does not crop or resize heatmap images.',
|
|
2468
|
+
},
|
|
2469
|
+
}, namespace, action, delegate);
|
|
2470
|
+
}
|
|
2471
|
+
}
|
|
2472
|
+
return envelopedResult;
|
|
2258
2473
|
}
|
|
2259
2474
|
async function verifyExperienceStatsPersistence(namespace, action, body, path, writeResult, executionContext) {
|
|
2260
2475
|
if (writeResult.isError || namespace !== 'experiences' || !['create', 'update'].includes(action) || !isNonArrayObject(body)) {
|