@adcp/sdk 14.0.0-beta.0 → 14.0.0-beta.1

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 (140) hide show
  1. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/account/get-account-financials-request.json +610 -0
  2. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/account/get-account-financials-response.json +1055 -0
  3. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/account/list-accounts-request.json +629 -0
  4. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/account/list-accounts-response.json +1558 -0
  5. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/account/report-usage-request.json +702 -0
  6. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/account/report-usage-response.json +309 -0
  7. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/account/sync-accounts-request.json +1113 -0
  8. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/account/sync-accounts-response.json +1567 -0
  9. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/account/sync-governance-request.json +662 -0
  10. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/account/sync-governance-response.json +921 -0
  11. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/creative/list-creatives-request.json +992 -0
  12. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/creative/list-creatives-response.json +5965 -0
  13. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/creative/sync-creatives-request.json +3936 -0
  14. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/creative/sync-creatives-response.json +3859 -0
  15. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/manifest.json +206 -0
  16. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/accept-proposal-request.json +601 -0
  17. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/accept-proposal-response.json +4799 -0
  18. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/buy-products-request.json +4107 -0
  19. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/buy-products-response.json +4799 -0
  20. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/control-media-buy-request.json +3365 -0
  21. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/control-media-buy-response.json +656 -0
  22. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/decline-proposals-request.json +334 -0
  23. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/decline-proposals-response.json +271 -0
  24. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/get-media-buy-delivery-request.json +1236 -0
  25. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/get-media-buy-delivery-response.json +2861 -0
  26. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/get-media-buys-request.json +678 -0
  27. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/get-media-buys-response.json +10861 -0
  28. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/list-products-request.json +4229 -0
  29. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/list-products-response.json +3824 -0
  30. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/log-event-request.json +421 -0
  31. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/log-event-response.json +394 -0
  32. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/media-buy-delivery-webhook-result.json +1366 -0
  33. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/provide-performance-feedback-request.json +884 -0
  34. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/provide-performance-feedback-response.json +422 -0
  35. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/refine-proposals-request.json +4335 -0
  36. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/refine-proposals-response.json +7328 -0
  37. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/request-proposals-request.json +4307 -0
  38. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/request-proposals-response.json +7105 -0
  39. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/sync-audiences-request.json +760 -0
  40. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/sync-audiences-response.json +541 -0
  41. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/sync-catalogs-request.json +1142 -0
  42. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/sync-catalogs-response.json +1153 -0
  43. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/sync-event-sources-request.json +743 -0
  44. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/sync-event-sources-response.json +619 -0
  45. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/account/get-account-financials-request.json +544 -0
  46. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/account/list-accounts-request.json +557 -0
  47. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/account/report-usage-request.json +617 -0
  48. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/account/sync-accounts-request.json +984 -0
  49. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/account/sync-governance-request.json +581 -0
  50. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/creative/list-creatives-request.json +878 -0
  51. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/creative/sync-creatives-request.json +3456 -0
  52. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/manifest.json +175 -0
  53. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/media-buy/accept-proposal-request.json +498 -0
  54. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/media-buy/buy-products-request.json +3675 -0
  55. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/media-buy/control-media-buy-request.json +3030 -0
  56. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/media-buy/decline-proposals-request.json +282 -0
  57. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/media-buy/get-media-buy-delivery-request.json +1136 -0
  58. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/media-buy/get-media-buys-request.json +597 -0
  59. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/media-buy/list-products-request.json +3780 -0
  60. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/media-buy/log-event-request.json +386 -0
  61. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/media-buy/provide-performance-feedback-request.json +784 -0
  62. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/media-buy/refine-proposals-request.json +3878 -0
  63. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/media-buy/request-proposals-request.json +3852 -0
  64. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/media-buy/sync-audiences-request.json +682 -0
  65. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/media-buy/sync-catalogs-request.json +1016 -0
  66. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/media-buy/sync-event-sources-request.json +660 -0
  67. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/protocol/get-adcp-capabilities-request.json +51 -0
  68. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/protocol/get-task-status-request.json +534 -0
  69. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/protocol/list-tasks-request.json +692 -0
  70. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/protocol/sync-agent-notification-configs-request.json +129 -0
  71. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/protocol/get-adcp-capabilities-request.json +58 -0
  72. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/protocol/get-adcp-capabilities-response.json +8069 -0
  73. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/protocol/get-task-status-request.json +601 -0
  74. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/protocol/get-task-status-response.json +612 -0
  75. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/protocol/list-tasks-request.json +775 -0
  76. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/protocol/list-tasks-response.json +483 -0
  77. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/protocol/sync-agent-notification-configs-request.json +155 -0
  78. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/protocol/sync-agent-notification-configs-response.json +382 -0
  79. package/dist/lib/schemas-data/v2.5/_provenance.json +1 -1
  80. package/dist/lib/server/create-adcp-server.d.mts +27 -0
  81. package/dist/lib/server/create-adcp-server.d.ts +27 -0
  82. package/dist/lib/server/create-adcp-server.d.ts.map +1 -1
  83. package/dist/lib/server/create-adcp-server.js +120 -4
  84. package/dist/lib/server/create-adcp-server.js.map +1 -1
  85. package/dist/lib/server/create-adcp-server.mjs +121 -6
  86. package/dist/lib/server/create-adcp-server.mjs.map +1 -1
  87. package/dist/lib/server/decisioning/context.d.mts +6 -0
  88. package/dist/lib/server/decisioning/context.d.ts +6 -0
  89. package/dist/lib/server/decisioning/context.d.ts.map +1 -1
  90. package/dist/lib/server/decisioning/context.js.map +1 -1
  91. package/dist/lib/server/decisioning/index.d.mts +1 -1
  92. package/dist/lib/server/decisioning/index.d.ts +1 -1
  93. package/dist/lib/server/decisioning/index.d.ts.map +1 -1
  94. package/dist/lib/server/decisioning/index.js.map +1 -1
  95. package/dist/lib/server/decisioning/index.mjs.map +1 -1
  96. package/dist/lib/server/decisioning/platform.d.mts +21 -6
  97. package/dist/lib/server/decisioning/platform.d.ts +21 -6
  98. package/dist/lib/server/decisioning/platform.d.ts.map +1 -1
  99. package/dist/lib/server/decisioning/platform.js.map +1 -1
  100. package/dist/lib/server/decisioning/runtime/from-platform.d.ts.map +1 -1
  101. package/dist/lib/server/decisioning/runtime/from-platform.js +201 -18
  102. package/dist/lib/server/decisioning/runtime/from-platform.js.map +1 -1
  103. package/dist/lib/server/decisioning/runtime/from-platform.mjs +203 -19
  104. package/dist/lib/server/decisioning/runtime/from-platform.mjs.map +1 -1
  105. package/dist/lib/server/decisioning/runtime/to-context.d.ts.map +1 -1
  106. package/dist/lib/server/decisioning/runtime/to-context.js +6 -0
  107. package/dist/lib/server/decisioning/runtime/to-context.js.map +1 -1
  108. package/dist/lib/server/decisioning/runtime/to-context.mjs +6 -0
  109. package/dist/lib/server/decisioning/runtime/to-context.mjs.map +1 -1
  110. package/dist/lib/server/decisioning/runtime/validate-platform.d.ts.map +1 -1
  111. package/dist/lib/server/decisioning/runtime/validate-platform.js +35 -4
  112. package/dist/lib/server/decisioning/runtime/validate-platform.js.map +1 -1
  113. package/dist/lib/server/decisioning/runtime/validate-platform.mjs +35 -4
  114. package/dist/lib/server/decisioning/runtime/validate-platform.mjs.map +1 -1
  115. package/dist/lib/server/decisioning/specialisms/sales.d.mts +39 -0
  116. package/dist/lib/server/decisioning/specialisms/sales.d.ts +39 -0
  117. package/dist/lib/server/decisioning/specialisms/sales.d.ts.map +1 -1
  118. package/dist/lib/server/decisioning/specialisms/sales.js.map +1 -1
  119. package/dist/lib/testing/storyboard/validations.d.mts +1 -1
  120. package/dist/lib/testing/storyboard/validations.d.ts +1 -1
  121. package/dist/lib/validation/schema-loader.d.mts +2 -0
  122. package/dist/lib/validation/schema-loader.d.ts +2 -0
  123. package/dist/lib/validation/schema-loader.d.ts.map +1 -1
  124. package/dist/lib/validation/schema-loader.js +31 -0
  125. package/dist/lib/validation/schema-loader.js.map +1 -1
  126. package/dist/lib/validation/schema-loader.mjs +30 -0
  127. package/dist/lib/validation/schema-loader.mjs.map +1 -1
  128. package/dist/lib/version.d.mts +3 -3
  129. package/dist/lib/version.d.ts +3 -3
  130. package/dist/lib/version.js +3 -3
  131. package/dist/lib/version.js.map +1 -1
  132. package/dist/lib/version.mjs +3 -3
  133. package/dist/lib/version.mjs.map +1 -1
  134. package/docs/guides/BUILD-AN-AGENT.md +10 -1
  135. package/docs/guides/MEDIA-BUY-3.2-COMPATIBILITY.md +119 -0
  136. package/docs/llms.txt +1 -1
  137. package/docs/migration-12-to-14.md +8 -0
  138. package/docs/migration-13-to-14.md +30 -4
  139. package/docs/releases/14.0.0-beta.0.md +19 -1
  140. package/package.json +2 -1
@@ -5,7 +5,7 @@ import {
5
5
  toReleasePrecisionVersion
6
6
  } from "../version.mjs";
7
7
  import { isMovingAdcpPrereleaseFamilyAlias, resolveAdcpVersion } from "../utils/adcp-version-config.mjs";
8
- import { getValidator, hasSchemaBundle, resolveBundleKey } from "../validation/schema-loader.mjs";
8
+ import { getValidator, hasSchemaBundle, resolveBundleKey, getMcpProfileInputSchema } from "../validation/schema-loader.mjs";
9
9
  import { TOOL_INPUT_SHAPES } from "../schemas/index.mjs";
10
10
  import { TaskTypeValues } from "../types/enums.generated.mjs";
11
11
  import { bundleSupportsAdcpVersionField } from "../protocols/index.mjs";
@@ -16,7 +16,8 @@ import {
16
16
  wrapMcpServer,
17
17
  setSdkServerInstructions,
18
18
  setMcpAppResources,
19
- wrapInitializeHandler
19
+ wrapInitializeHandler,
20
+ wrapSdkRequestHandler
20
21
  } from "./adcp-server.mjs";
21
22
  import {
22
23
  mcpAppResourceMetadata,
@@ -151,6 +152,33 @@ const ADCP_PRE_TRANSPORT = /* @__PURE__ */ Symbol.for("@adcp/client.preTransport
151
152
  const ADCP_SIGNED_REQUESTS_STATE = /* @__PURE__ */ Symbol.for("@adcp/client.signedRequestsState");
152
153
  const ADCP_INSTRUCTIONS_FN = /* @__PURE__ */ Symbol.for("@adcp/client.instructionsFn");
153
154
  const ADCP_INSTRUCTIONS_RESOLVER = /* @__PURE__ */ Symbol.for("@adcp/client.instructionsResolver");
155
+ const MEDIA_BUY_MCP_TOOL_PROFILE = [
156
+ "accept_proposal",
157
+ "buy_products",
158
+ "control_media_buy",
159
+ "decline_proposals",
160
+ "get_account_financials",
161
+ "get_adcp_capabilities",
162
+ "get_media_buy_delivery",
163
+ "get_media_buys",
164
+ "get_task_status",
165
+ "list_accounts",
166
+ "list_creatives",
167
+ "list_products",
168
+ "list_tasks",
169
+ "log_event",
170
+ "provide_performance_feedback",
171
+ "refine_proposals",
172
+ "report_usage",
173
+ "request_proposals",
174
+ "sync_accounts",
175
+ "sync_agent_notification_configs",
176
+ "sync_audiences",
177
+ "sync_catalogs",
178
+ "sync_creatives",
179
+ "sync_event_sources",
180
+ "sync_governance"
181
+ ];
154
182
  function clampReplayTtl(seconds) {
155
183
  const MIN = 3600;
156
184
  const MAX = 604800;
@@ -475,6 +503,15 @@ function taskBelongsToCaller(task, accountId, ownerScope) {
475
503
  if (task.ownerScope === void 0) return ownerScope === `account:${accountId}`;
476
504
  return task.ownerScope === ownerScope;
477
505
  }
506
+ function authenticatedPrincipalForContext(authInfo, agent) {
507
+ if (agent?.agent_url) return `agent:${agent.agent_url}`;
508
+ const credential = authInfo?.credential;
509
+ if (credential?.kind === "http_sig") return `http_sig:${credential.agent_url}`;
510
+ if (credential?.kind === "oauth") return `oauth:${credential.client_id}`;
511
+ if (credential?.kind === "api_key") return `api_key:${credential.key_id}`;
512
+ if (typeof authInfo?.clientId === "string" && authInfo.clientId.length > 0) return `client:${authInfo.clientId}`;
513
+ return void 0;
514
+ }
478
515
  function taskOwnerScopeForContext(authInfo, sessionKey, agent, accountId) {
479
516
  if (sessionKey !== void 0) return `session:${sessionKey}`;
480
517
  if (agent?.agent_url) return `agent:${agent.agent_url}`;
@@ -703,6 +740,14 @@ const COMPACT_MEDIA_BUY_LIFECYCLE_TOOLS = [
703
740
  "accept_proposal",
704
741
  "control_media_buy"
705
742
  ];
743
+ const COMPACT_MEDIA_BUY_MUTATION_TOOLS = /* @__PURE__ */ new Set([
744
+ "request_proposals",
745
+ "refine_proposals",
746
+ "decline_proposals",
747
+ "buy_products",
748
+ "accept_proposal",
749
+ "control_media_buy"
750
+ ]);
706
751
  const MEDIA_BUY_ENTRIES = [
707
752
  { handlerKey: "getProducts", toolName: "get_products" },
708
753
  { handlerKey: "listProducts", toolName: "list_products" },
@@ -1389,6 +1434,8 @@ function createAdcpServer(config) {
1389
1434
  name,
1390
1435
  version,
1391
1436
  adcpVersion: configuredAdcpVersion,
1437
+ mcpToolProfile = "auto",
1438
+ requireCompactMutationAccountScope = false,
1392
1439
  resolveAccount,
1393
1440
  resolveAccountFromAuth,
1394
1441
  resolveSessionKey,
@@ -1411,6 +1458,11 @@ function createAdcpServer(config) {
1411
1458
  testController: testControllerBridge,
1412
1459
  responseEnhancer
1413
1460
  } = config;
1461
+ if (!["auto", "media-buy", "all"].includes(mcpToolProfile)) {
1462
+ throw new Error(
1463
+ `createAdcpServer: mcpToolProfile must be "auto", "media-buy", or "all"; got ${JSON.stringify(mcpToolProfile)}`
1464
+ );
1465
+ }
1414
1466
  const notificationHandlerConfigured = typeof config.protocol?.syncAgentNotificationConfigs === "function";
1415
1467
  const notificationCapabilitySupported = capConfig?.capability_changes?.notifications?.supported === true;
1416
1468
  if (notificationHandlerConfigured !== notificationCapabilitySupported) {
@@ -1480,6 +1532,7 @@ function createAdcpServer(config) {
1480
1532
  );
1481
1533
  }
1482
1534
  const protocolBundleKey = resolveBundleKey(adcpVersion);
1535
+ const frameworkToolMeta = { adcp_version: adcpVersion };
1483
1536
  const servedAdcpVersion = (() => {
1484
1537
  const bundleKey = protocolBundleKey;
1485
1538
  return bundleSupportsAdcpVersionField(bundleKey) ? bundleKey : void 0;
@@ -2336,6 +2389,22 @@ function createAdcpServer(config) {
2336
2389
  );
2337
2390
  }
2338
2391
  }
2392
+ if (COMPACT_MEDIA_BUY_MUTATION_TOOLS.has(toolName)) {
2393
+ if (authenticatedPrincipalForContext(ctx.authInfo, ctx.agent) === void 0) {
2394
+ return finalize(
2395
+ adcpError("AUTH_MISSING", {
2396
+ message: `${toolName} requires an authenticated buyer principal`
2397
+ })
2398
+ );
2399
+ }
2400
+ if (requireCompactMutationAccountScope && ctx.account == null) {
2401
+ return finalize(
2402
+ adcpError("ACCOUNT_NOT_FOUND", {
2403
+ message: `${toolName} requires a resolved account scope`
2404
+ })
2405
+ );
2406
+ }
2407
+ }
2339
2408
  if (toolName === "refine_proposals") {
2340
2409
  if (ctx.authInfo === void 0 && ctx.agent === void 0) {
2341
2410
  return finalize(
@@ -3026,7 +3095,8 @@ function createAdcpServer(config) {
3026
3095
  toolName,
3027
3096
  {
3028
3097
  inputSchema: frameworkInputSchemaFor(toolName),
3029
- ...meta?.annotations != null && { annotations: meta.annotations }
3098
+ ...meta?.annotations != null && { annotations: meta.annotations },
3099
+ _meta: frameworkToolMeta
3030
3100
  },
3031
3101
  toolHandler
3032
3102
  );
@@ -3038,7 +3108,8 @@ function createAdcpServer(config) {
3038
3108
  "get_task_status",
3039
3109
  {
3040
3110
  inputSchema: frameworkInputSchemaFor("get_task_status"),
3041
- annotations: RO
3111
+ annotations: RO,
3112
+ _meta: frameworkToolMeta
3042
3113
  },
3043
3114
  (async (params, extra) => {
3044
3115
  const credentialError = taskToolCredentialPolicyError("get_task_status", params ?? {}, extra);
@@ -3114,7 +3185,8 @@ function createAdcpServer(config) {
3114
3185
  "list_tasks",
3115
3186
  {
3116
3187
  inputSchema: frameworkInputSchemaFor("list_tasks"),
3117
- annotations: RO
3188
+ annotations: RO,
3189
+ _meta: frameworkToolMeta
3118
3190
  },
3119
3191
  (async (params, extra) => {
3120
3192
  const credentialError = taskToolCredentialPolicyError("list_tasks", params ?? {}, extra);
@@ -3362,7 +3434,8 @@ function createAdcpServer(config) {
3362
3434
  "get_adcp_capabilities",
3363
3435
  {
3364
3436
  inputSchema: frameworkInputSchemaFor("get_adcp_capabilities"),
3365
- annotations: { readOnlyHint: true }
3437
+ annotations: { readOnlyHint: true },
3438
+ _meta: frameworkToolMeta
3366
3439
  },
3367
3440
  (async (params, extra = {}) => {
3368
3441
  const requestParams = isPlainObject(params) ? params : {};
@@ -3514,6 +3587,46 @@ function createAdcpServer(config) {
3514
3587
  })
3515
3588
  );
3516
3589
  registeredToolNames.add("get_adcp_capabilities");
3590
+ const configuredRelease = parseAdcpRelease(protocolBundleKey);
3591
+ const serves32OrNewer = configuredRelease !== void 0 && (configuredRelease.major > 3 || configuredRelease.major === 3 && configuredRelease.minor >= 2);
3592
+ if (mcpToolProfile === "media-buy" && !serves32OrNewer) {
3593
+ throw new Error('createAdcpServer: mcpToolProfile="media-buy" requires adcpVersion 3.2 or newer');
3594
+ }
3595
+ const activeMcpToolProfile = mcpToolProfile === "media-buy" || mcpToolProfile === "auto" && serves32OrNewer && compactLifecycleTools.length > 0 ? "media-buy" : "all";
3596
+ const mediaBuyProfileTools = new Set(MEDIA_BUY_MCP_TOOL_PROFILE);
3597
+ const wrappedToolsList = wrapSdkRequestHandler(server, "tools/list", async (original, request, extra) => {
3598
+ const response = await original(request, extra);
3599
+ if (response == null || typeof response !== "object") return response;
3600
+ const tools = response.tools;
3601
+ if (!Array.isArray(tools)) return response;
3602
+ const visibleTools = tools.filter((tool) => {
3603
+ const toolName = tool?.name;
3604
+ if (typeof toolName !== "string") return true;
3605
+ if (!serves32OrNewer && COMPACT_MEDIA_BUY_LIFECYCLE_TOOLS.includes(toolName)) return false;
3606
+ return activeMcpToolProfile === "all" || mediaBuyProfileTools.has(toolName);
3607
+ });
3608
+ const projectedTools = visibleTools.map((tool) => {
3609
+ if (activeMcpToolProfile !== "media-buy") return tool;
3610
+ const toolName = tool?.name;
3611
+ if (typeof toolName !== "string") return tool;
3612
+ const inputSchema = getMcpProfileInputSchema(toolName, "media-buy", adcpVersion);
3613
+ return inputSchema ? { ...tool, inputSchema } : tool;
3614
+ });
3615
+ return {
3616
+ ...response,
3617
+ tools: projectedTools,
3618
+ _meta: {
3619
+ ...response._meta ?? {},
3620
+ adcp_version: adcpVersion,
3621
+ adcp_profile: activeMcpToolProfile
3622
+ }
3623
+ };
3624
+ });
3625
+ if (!wrappedToolsList) {
3626
+ throw new Error(
3627
+ "createAdcpServer: failed to install MCP tools/list profile filtering; the MCP SDK request-handler internals may have changed"
3628
+ );
3629
+ }
3517
3630
  validateCredentialPolicy(credentialPolicy, registeredToolNames);
3518
3631
  const compliance = {
3519
3632
  async reset({
@@ -3608,6 +3721,8 @@ export {
3608
3721
  ADCP_INSTRUCTIONS_RESOLVER,
3609
3722
  ADCP_PRE_TRANSPORT,
3610
3723
  ADCP_SIGNED_REQUESTS_STATE,
3724
+ COMPACT_MEDIA_BUY_MUTATION_TOOLS,
3725
+ MEDIA_BUY_MCP_TOOL_PROFILE,
3611
3726
  createAdcpServer,
3612
3727
  requireSessionKey
3613
3728
  };