@convertcom/mcp-server 0.0.1-beta.17 → 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.
Files changed (38) hide show
  1. package/README.md +1 -1
  2. package/build/executor.js +271 -17
  3. package/build/executor.js.map +1 -1
  4. package/build/failure-attribution.d.ts +55 -0
  5. package/build/failure-attribution.js +326 -0
  6. package/build/failure-attribution.js.map +1 -0
  7. package/build/image-dimensions.d.ts +5 -0
  8. package/build/image-dimensions.js +203 -0
  9. package/build/image-dimensions.js.map +1 -0
  10. package/build/kb-search.js +16 -1
  11. package/build/kb-search.js.map +1 -1
  12. package/build/namespaced.d.ts +5 -0
  13. package/build/namespaced.js +199 -11
  14. package/build/namespaced.js.map +1 -1
  15. package/build/operator.d.ts +14 -0
  16. package/build/operator.js +128 -19
  17. package/build/operator.js.map +1 -1
  18. package/build/prompts.js +10 -3
  19. package/build/prompts.js.map +1 -1
  20. package/build/runtime.d.ts +15 -2
  21. package/build/runtime.js +186 -20
  22. package/build/runtime.js.map +1 -1
  23. package/build/whats-new.d.ts +24 -0
  24. package/build/whats-new.js +150 -0
  25. package/build/whats-new.js.map +1 -0
  26. package/data/convert-kb-legacy-map.json +24956 -9527
  27. package/data/convert-kb-manifest.json +26 -27
  28. package/data/convert-kb.json +44625 -64753
  29. package/data/kb-vectors/0/embedding.index.3.proxima +0 -0
  30. package/data/kb-vectors/0/scalar.0.ipc +0 -0
  31. package/data/kb-vectors/corpus.json +2 -2
  32. package/data/kb-vectors/del.0 +0 -0
  33. package/data/kb-vectors/idmap.0/000008.sst +0 -0
  34. package/data/kb-vectors/idmap.0/IDENTITY +1 -1
  35. package/data/kb-vectors/idmap.0/MANIFEST-000005 +0 -0
  36. package/data/kb-vectors/manifest.3 +0 -0
  37. package/package.json +1 -1
  38. package/server.json +2 -2
@@ -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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"}
@@ -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
  };
@@ -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.',
@@ -165,6 +166,14 @@ const REGISTRY = {
165
166
  list: 'getnotifications',
166
167
  },
167
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
+ }
168
177
  const SPLIT_UNAVAILABLE_ACTIONS = {
169
178
  'accounts.get_billing_portal': {
170
179
  code: 'AccountWideOAuthGrantRequired',
@@ -281,6 +290,13 @@ const NAMESPACE_DESCRIPTIONS = {
281
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.',
282
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.',
283
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
+ };
284
300
  /**
285
301
  * Per-action agent guidance. Appended to generated descriptions as "Agent Notes:".
286
302
  * Keys are "namespace.action" strings matching REGISTRY entries.
@@ -322,6 +338,8 @@ export const ACTION_NOTES = {
322
338
  'Deploy semantics: type "deploy" is a rollout/deployment container, not a tracked experience. Do not expect visitor/conversion reporting for deploys.',
323
339
  'Required body fields: name, type, url. If status is omitted, MCP defaults it to "draft".',
324
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.',
325
343
  'Setting status to "active" requires explicit user confirmation at tool-call level: confirmation: { "user_confirmed": true, "reason": "..." }.',
326
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.',
327
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.',
@@ -394,14 +412,15 @@ export const ACTION_NOTES = {
394
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.',
395
413
  ].join('\n'),
396
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.',
397
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).',
398
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.',
399
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.',
400
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.',
401
420
  ].join('\n'),
402
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.',
403
- 'experiences.get_heatmap_background': 'Requires heatmap_id in path. Optional body.device is one of "desktop", "tablet", or "mobile" and defaults to "desktop".',
404
- '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.',
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.',
405
424
  // ── locations ────────────────────────────────────────────
406
425
  'locations.create': [
407
426
  'Required body fields: name, rules, trigger.',
@@ -636,6 +655,85 @@ function normalizeNamespaceArgs(rawArgs, def) {
636
655
  };
637
656
  }
638
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
+ }
639
737
  function namespaceArgumentIssues(rawArgs, def, allowAsUser) {
640
738
  const executionParams = def.executionParameters ?? [];
641
739
  const pathKeys = new Set(requiredPathParamsForDef(def));
@@ -686,6 +784,11 @@ function namespaceArgumentIssues(rawArgs, def, allowAsUser) {
686
784
  };
687
785
  inspect(rawArgs.path, 'path', pathKeys);
688
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
+ }
689
792
  const allowedTopLevel = [...topLevelKeys].sort();
690
793
  for (const key of Object.keys(rawArgs)) {
691
794
  if (!topLevelKeys.has(key)) {
@@ -703,6 +806,33 @@ function namespaceArgumentIssues(rawArgs, def, allowAsUser) {
703
806
  issuesTruncated: issueCount > issues.length,
704
807
  };
705
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
+ }
706
836
  function hasExplicitUserConfirmation(confirmation) {
707
837
  if (!isNonArrayObject(confirmation))
708
838
  return false;
@@ -1372,6 +1502,7 @@ export const NAMESPACE_OUTPUT_SCHEMA = {
1372
1502
  issues: { type: 'array', items: { type: 'object' }, description: 'Validation issues, if present.' },
1373
1503
  issue_count: { type: 'integer', minimum: 0, description: 'Total validation diagnostic count before bounded structured disclosure, including targeted corrective diagnostics.' },
1374
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.' },
1375
1506
  },
1376
1507
  additionalProperties: true,
1377
1508
  };
@@ -1425,7 +1556,11 @@ function buildNamespaceTool(options) {
1425
1556
  const nsDesc = NAMESPACE_DESCRIPTIONS[ns] || `Manage ${ns} in the user's Convert.com account via the live API.`;
1426
1557
  const actionLabel = splitKind ? `${splitKind} actions` : 'actions';
1427
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
+ : '';
1428
1562
  const description = [
1563
+ readGuidance,
1429
1564
  `${nsDesc} Available ${actionLabel}: ${actions.join(', ')}.`,
1430
1565
  siblingDescription,
1431
1566
  ].filter(Boolean).join(' ');
@@ -1482,12 +1617,12 @@ function buildNamespaceTool(options) {
1482
1617
  inputSchema: {
1483
1618
  $schema: JSON_SCHEMA_DRAFT_2020_12,
1484
1619
  type: 'object',
1485
- 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.',
1486
1621
  properties: {
1487
1622
  action: { type: 'string', enum: actions, description: actionDesc },
1488
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.' },
1489
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.' },
1490
- 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.' },
1491
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.' },
1492
1627
  confirmation: {
1493
1628
  type: 'object',
@@ -1524,6 +1659,23 @@ function withNamespaceEnvelope(result, namespace, action, delegate) {
1524
1659
  const fallbackText = result.content?.[0]?.type === 'text' ? result.content[0].text : 'Unknown error';
1525
1660
  envelope.error = fallbackText;
1526
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
+ }
1527
1679
  return {
1528
1680
  ...result,
1529
1681
  structuredContent: envelope,
@@ -2156,7 +2308,19 @@ export async function executeNamespacedTool(toolName, args, executionContext, to
2156
2308
  }
2157
2309
  const argumentInspection = namespaceArgumentIssues(parsedArgs, def, Boolean(executionContext?.readOnlyImpersonation));
2158
2310
  if (argumentInspection.issueCount > 0) {
2159
- const actionNote = ACTION_NOTES[`${namespace}.${action}`];
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
+ };
2160
2324
  const message = [
2161
2325
  `Unknown arguments for ${namespace}.${action}; no Convert API request was sent.`,
2162
2326
  ...argumentInspection.issues.map((issue) => {
@@ -2165,12 +2329,14 @@ export async function executeNamespacedTool(toolName, args, executionContext, to
2165
2329
  : issue.path.startsWith('path.')
2166
2330
  ? ' This action accepts no path fields.'
2167
2331
  : '';
2168
- return `- ${issue.path}: ${issue.message}${issue.allowed.length > 0 ? ` Allowed: ${issue.allowed.join(', ')}` : wrapper}`;
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}`;
2169
2335
  }),
2170
2336
  ...(argumentInspection.issuesTruncated
2171
2337
  ? [`- ... ${argumentInspection.issueCount - argumentInspection.issues.length} more unknown argument(s)`]
2172
2338
  : []),
2173
- ...(actionNote ? ['', `Hint for ${namespace}.${action}:`, actionNote] : []),
2339
+ ...(relevantHint ? ['', `Hint for ${namespace}.${action}:`, relevantHint] : []),
2174
2340
  ].join('\n');
2175
2341
  return withNamespaceEnvelope({
2176
2342
  content: [{ type: 'text', text: message }],
@@ -2230,7 +2396,8 @@ export async function executeNamespacedTool(toolName, args, executionContext, to
2230
2396
  }
2231
2397
  const schemaValidation = validateToolArgs(delegate, def.inputSchema, flattenedArgs);
2232
2398
  if (!schemaValidation.ok) {
2233
- const note = ACTION_NOTES[`${namespace}.${action}`];
2399
+ const note = invalidSettingsExpandHint(namespace, action, normalizedBody, query)
2400
+ ?? ACTION_NOTES[`${namespace}.${action}`];
2234
2401
  const text = `${schemaValidation.message}${note ? `\n\nHint for ${namespace}.${action}:\n${note}` : ''}`;
2235
2402
  return withNamespaceEnvelope({
2236
2403
  content: [{ type: 'text', text }],
@@ -2268,7 +2435,7 @@ export async function executeNamespacedTool(toolName, args, executionContext, to
2268
2435
  || (action === 'create' && normalizedBody.status === 'active'))
2269
2436
  && asObject(result.structuredContent)?.status === 403;
2270
2437
  const note = lifecycleDenied
2271
- ? `Activation/pause was denied by Convert. Human confirmation records intent; it does not grant authorization. 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.`
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.`
2272
2439
  : ACTION_NOTES[`${namespace}.${action}`];
2273
2440
  if (note && result.content?.[0]?.type === 'text') {
2274
2441
  result.content[0].text += `\n\nHint for ${namespace}.${action}:\n${note}`;
@@ -2278,10 +2445,31 @@ export async function executeNamespacedTool(toolName, args, executionContext, to
2278
2445
  const normalizedResult = namespace === 'experiences' && action === 'aggregated_report'
2279
2446
  ? normalizeAggregatedReportResult(persistenceVerifiedResult)
2280
2447
  : persistenceVerifiedResult;
2281
- const semanticallyGuidedResult = namespace === 'projects' || namespace === 'experiences'
2448
+ const heatmapAction = namespace === 'experiences'
2449
+ && (action === 'get_heatmap_background' || action === 'get_heatmap_overlay');
2450
+ const semanticallyGuidedResult = (namespace === 'projects' || namespace === 'experiences') && !heatmapAction
2282
2451
  ? normalizeStatsEngineGuidanceResult(normalizedResult)
2283
2452
  : normalizedResult;
2284
- return withNamespaceEnvelope(semanticallyGuidedResult, namespace, action, delegate);
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;
2285
2473
  }
2286
2474
  async function verifyExperienceStatsPersistence(namespace, action, body, path, writeResult, executionContext) {
2287
2475
  if (writeResult.isError || namespace !== 'experiences' || !['create', 'update'].includes(action) || !isNonArrayObject(body)) {