@cesteral/amazon-dsp-mcp 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (255) hide show
  1. package/LICENSE.md +201 -0
  2. package/README.md +59 -0
  3. package/dist/auth/amazon-dsp-auth-adapter.d.ts +42 -0
  4. package/dist/auth/amazon-dsp-auth-adapter.d.ts.map +1 -0
  5. package/dist/auth/amazon-dsp-auth-adapter.js +126 -0
  6. package/dist/auth/amazon-dsp-auth-adapter.js.map +1 -0
  7. package/dist/auth/amazon-dsp-auth-strategy.d.ts +14 -0
  8. package/dist/auth/amazon-dsp-auth-strategy.d.ts.map +1 -0
  9. package/dist/auth/amazon-dsp-auth-strategy.js +58 -0
  10. package/dist/auth/amazon-dsp-auth-strategy.js.map +1 -0
  11. package/dist/auth/index.d.ts +3 -0
  12. package/dist/auth/index.d.ts.map +1 -0
  13. package/dist/auth/index.js +3 -0
  14. package/dist/auth/index.js.map +1 -0
  15. package/dist/config/index.d.ts +116 -0
  16. package/dist/config/index.d.ts.map +1 -0
  17. package/dist/config/index.js +49 -0
  18. package/dist/config/index.js.map +1 -0
  19. package/dist/index.d.ts +3 -0
  20. package/dist/index.d.ts.map +1 -0
  21. package/dist/index.js +65 -0
  22. package/dist/index.js.map +1 -0
  23. package/dist/mcp-server/prompts/definitions/bulk-operations-workflow.prompt.d.ts +4 -0
  24. package/dist/mcp-server/prompts/definitions/bulk-operations-workflow.prompt.d.ts.map +1 -0
  25. package/dist/mcp-server/prompts/definitions/bulk-operations-workflow.prompt.js +127 -0
  26. package/dist/mcp-server/prompts/definitions/bulk-operations-workflow.prompt.js.map +1 -0
  27. package/dist/mcp-server/prompts/definitions/campaign-setup-workflow.prompt.d.ts +4 -0
  28. package/dist/mcp-server/prompts/definitions/campaign-setup-workflow.prompt.d.ts.map +1 -0
  29. package/dist/mcp-server/prompts/definitions/campaign-setup-workflow.prompt.js +120 -0
  30. package/dist/mcp-server/prompts/definitions/campaign-setup-workflow.prompt.js.map +1 -0
  31. package/dist/mcp-server/prompts/definitions/creative-upload-workflow.prompt.d.ts +4 -0
  32. package/dist/mcp-server/prompts/definitions/creative-upload-workflow.prompt.d.ts.map +1 -0
  33. package/dist/mcp-server/prompts/definitions/creative-upload-workflow.prompt.js +116 -0
  34. package/dist/mcp-server/prompts/definitions/creative-upload-workflow.prompt.js.map +1 -0
  35. package/dist/mcp-server/prompts/definitions/cross-platform-campaign-setup.prompt.d.ts +4 -0
  36. package/dist/mcp-server/prompts/definitions/cross-platform-campaign-setup.prompt.d.ts.map +1 -0
  37. package/dist/mcp-server/prompts/definitions/cross-platform-campaign-setup.prompt.js +299 -0
  38. package/dist/mcp-server/prompts/definitions/cross-platform-campaign-setup.prompt.js.map +1 -0
  39. package/dist/mcp-server/prompts/definitions/cross-platform-performance.prompt.d.ts +4 -0
  40. package/dist/mcp-server/prompts/definitions/cross-platform-performance.prompt.d.ts.map +1 -0
  41. package/dist/mcp-server/prompts/definitions/cross-platform-performance.prompt.js +170 -0
  42. package/dist/mcp-server/prompts/definitions/cross-platform-performance.prompt.js.map +1 -0
  43. package/dist/mcp-server/prompts/definitions/entity-duplication-workflow.prompt.d.ts +4 -0
  44. package/dist/mcp-server/prompts/definitions/entity-duplication-workflow.prompt.d.ts.map +1 -0
  45. package/dist/mcp-server/prompts/definitions/entity-duplication-workflow.prompt.js +200 -0
  46. package/dist/mcp-server/prompts/definitions/entity-duplication-workflow.prompt.js.map +1 -0
  47. package/dist/mcp-server/prompts/definitions/entity-update-workflow.prompt.d.ts +4 -0
  48. package/dist/mcp-server/prompts/definitions/entity-update-workflow.prompt.d.ts.map +1 -0
  49. package/dist/mcp-server/prompts/definitions/entity-update-workflow.prompt.js +183 -0
  50. package/dist/mcp-server/prompts/definitions/entity-update-workflow.prompt.js.map +1 -0
  51. package/dist/mcp-server/prompts/definitions/reporting-workflow.prompt.d.ts +4 -0
  52. package/dist/mcp-server/prompts/definitions/reporting-workflow.prompt.d.ts.map +1 -0
  53. package/dist/mcp-server/prompts/definitions/reporting-workflow.prompt.js +126 -0
  54. package/dist/mcp-server/prompts/definitions/reporting-workflow.prompt.js.map +1 -0
  55. package/dist/mcp-server/prompts/definitions/targeting-discovery-workflow.prompt.d.ts +4 -0
  56. package/dist/mcp-server/prompts/definitions/targeting-discovery-workflow.prompt.d.ts.map +1 -0
  57. package/dist/mcp-server/prompts/definitions/targeting-discovery-workflow.prompt.js +198 -0
  58. package/dist/mcp-server/prompts/definitions/targeting-discovery-workflow.prompt.js.map +1 -0
  59. package/dist/mcp-server/prompts/definitions/tool-schema-exploration.prompt.d.ts +4 -0
  60. package/dist/mcp-server/prompts/definitions/tool-schema-exploration.prompt.d.ts.map +1 -0
  61. package/dist/mcp-server/prompts/definitions/tool-schema-exploration.prompt.js +96 -0
  62. package/dist/mcp-server/prompts/definitions/tool-schema-exploration.prompt.js.map +1 -0
  63. package/dist/mcp-server/prompts/definitions/troubleshoot-entity.prompt.d.ts +4 -0
  64. package/dist/mcp-server/prompts/definitions/troubleshoot-entity.prompt.d.ts.map +1 -0
  65. package/dist/mcp-server/prompts/definitions/troubleshoot-entity.prompt.js +111 -0
  66. package/dist/mcp-server/prompts/definitions/troubleshoot-entity.prompt.js.map +1 -0
  67. package/dist/mcp-server/prompts/index.d.ts +9 -0
  68. package/dist/mcp-server/prompts/index.d.ts.map +1 -0
  69. package/dist/mcp-server/prompts/index.js +97 -0
  70. package/dist/mcp-server/prompts/index.js.map +1 -0
  71. package/dist/mcp-server/resources/definitions/entity-examples.resource.d.ts +4 -0
  72. package/dist/mcp-server/resources/definitions/entity-examples.resource.d.ts.map +1 -0
  73. package/dist/mcp-server/resources/definitions/entity-examples.resource.js +121 -0
  74. package/dist/mcp-server/resources/definitions/entity-examples.resource.js.map +1 -0
  75. package/dist/mcp-server/resources/definitions/entity-hierarchy.resource.d.ts +3 -0
  76. package/dist/mcp-server/resources/definitions/entity-hierarchy.resource.d.ts.map +1 -0
  77. package/dist/mcp-server/resources/definitions/entity-hierarchy.resource.js +58 -0
  78. package/dist/mcp-server/resources/definitions/entity-hierarchy.resource.js.map +1 -0
  79. package/dist/mcp-server/resources/definitions/entity-schemas.resource.d.ts +4 -0
  80. package/dist/mcp-server/resources/definitions/entity-schemas.resource.d.ts.map +1 -0
  81. package/dist/mcp-server/resources/definitions/entity-schemas.resource.js +51 -0
  82. package/dist/mcp-server/resources/definitions/entity-schemas.resource.js.map +1 -0
  83. package/dist/mcp-server/resources/definitions/index.d.ts +7 -0
  84. package/dist/mcp-server/resources/definitions/index.d.ts.map +1 -0
  85. package/dist/mcp-server/resources/definitions/index.js +53 -0
  86. package/dist/mcp-server/resources/definitions/index.js.map +1 -0
  87. package/dist/mcp-server/resources/definitions/reporting-reference.resource.d.ts +3 -0
  88. package/dist/mcp-server/resources/definitions/reporting-reference.resource.d.ts.map +1 -0
  89. package/dist/mcp-server/resources/definitions/reporting-reference.resource.js +50 -0
  90. package/dist/mcp-server/resources/definitions/reporting-reference.resource.js.map +1 -0
  91. package/dist/mcp-server/resources/index.d.ts +3 -0
  92. package/dist/mcp-server/resources/index.d.ts.map +1 -0
  93. package/dist/mcp-server/resources/index.js +2 -0
  94. package/dist/mcp-server/resources/index.js.map +1 -0
  95. package/dist/mcp-server/resources/types.d.ts +8 -0
  96. package/dist/mcp-server/resources/types.d.ts.map +1 -0
  97. package/dist/mcp-server/resources/types.js +2 -0
  98. package/dist/mcp-server/resources/types.js.map +1 -0
  99. package/dist/mcp-server/server.d.ts +5 -0
  100. package/dist/mcp-server/server.d.ts.map +1 -0
  101. package/dist/mcp-server/server.js +137 -0
  102. package/dist/mcp-server/server.js.map +1 -0
  103. package/dist/mcp-server/tools/definitions/adjust-bids.tool.d.ts +215 -0
  104. package/dist/mcp-server/tools/definitions/adjust-bids.tool.d.ts.map +1 -0
  105. package/dist/mcp-server/tools/definitions/adjust-bids.tool.js +147 -0
  106. package/dist/mcp-server/tools/definitions/adjust-bids.tool.js.map +1 -0
  107. package/dist/mcp-server/tools/definitions/bulk-create-entities.tool.d.ts +152 -0
  108. package/dist/mcp-server/tools/definitions/bulk-create-entities.tool.d.ts.map +1 -0
  109. package/dist/mcp-server/tools/definitions/bulk-create-entities.tool.js +111 -0
  110. package/dist/mcp-server/tools/definitions/bulk-create-entities.tool.js.map +1 -0
  111. package/dist/mcp-server/tools/definitions/bulk-update-entities.tool.d.ts +193 -0
  112. package/dist/mcp-server/tools/definitions/bulk-update-entities.tool.d.ts.map +1 -0
  113. package/dist/mcp-server/tools/definitions/bulk-update-entities.tool.js +127 -0
  114. package/dist/mcp-server/tools/definitions/bulk-update-entities.tool.js.map +1 -0
  115. package/dist/mcp-server/tools/definitions/bulk-update-status.tool.d.ts +153 -0
  116. package/dist/mcp-server/tools/definitions/bulk-update-status.tool.d.ts.map +1 -0
  117. package/dist/mcp-server/tools/definitions/bulk-update-status.tool.js +136 -0
  118. package/dist/mcp-server/tools/definitions/bulk-update-status.tool.js.map +1 -0
  119. package/dist/mcp-server/tools/definitions/check-report-status.tool.d.ts +112 -0
  120. package/dist/mcp-server/tools/definitions/check-report-status.tool.d.ts.map +1 -0
  121. package/dist/mcp-server/tools/definitions/check-report-status.tool.js +87 -0
  122. package/dist/mcp-server/tools/definitions/check-report-status.tool.js.map +1 -0
  123. package/dist/mcp-server/tools/definitions/create-entity.tool.d.ts +111 -0
  124. package/dist/mcp-server/tools/definitions/create-entity.tool.d.ts.map +1 -0
  125. package/dist/mcp-server/tools/definitions/create-entity.tool.js +96 -0
  126. package/dist/mcp-server/tools/definitions/create-entity.tool.js.map +1 -0
  127. package/dist/mcp-server/tools/definitions/delete-entity.tool.d.ts +152 -0
  128. package/dist/mcp-server/tools/definitions/delete-entity.tool.d.ts.map +1 -0
  129. package/dist/mcp-server/tools/definitions/delete-entity.tool.js +142 -0
  130. package/dist/mcp-server/tools/definitions/delete-entity.tool.js.map +1 -0
  131. package/dist/mcp-server/tools/definitions/download-report.tool.d.ts +297 -0
  132. package/dist/mcp-server/tools/definitions/download-report.tool.d.ts.map +1 -0
  133. package/dist/mcp-server/tools/definitions/download-report.tool.js +107 -0
  134. package/dist/mcp-server/tools/definitions/download-report.tool.js.map +1 -0
  135. package/dist/mcp-server/tools/definitions/duplicate-entity.tool.d.ts +105 -0
  136. package/dist/mcp-server/tools/definitions/duplicate-entity.tool.d.ts.map +1 -0
  137. package/dist/mcp-server/tools/definitions/duplicate-entity.tool.js +85 -0
  138. package/dist/mcp-server/tools/definitions/duplicate-entity.tool.js.map +1 -0
  139. package/dist/mcp-server/tools/definitions/get-ad-preview.tool.d.ts +75 -0
  140. package/dist/mcp-server/tools/definitions/get-ad-preview.tool.d.ts.map +1 -0
  141. package/dist/mcp-server/tools/definitions/get-ad-preview.tool.js +63 -0
  142. package/dist/mcp-server/tools/definitions/get-ad-preview.tool.js.map +1 -0
  143. package/dist/mcp-server/tools/definitions/get-audience-estimate.tool.d.ts +85 -0
  144. package/dist/mcp-server/tools/definitions/get-audience-estimate.tool.d.ts.map +1 -0
  145. package/dist/mcp-server/tools/definitions/get-audience-estimate.tool.js +91 -0
  146. package/dist/mcp-server/tools/definitions/get-audience-estimate.tool.js.map +1 -0
  147. package/dist/mcp-server/tools/definitions/get-entity.tool.d.ts +76 -0
  148. package/dist/mcp-server/tools/definitions/get-entity.tool.d.ts.map +1 -0
  149. package/dist/mcp-server/tools/definitions/get-entity.tool.js +71 -0
  150. package/dist/mcp-server/tools/definitions/get-entity.tool.js.map +1 -0
  151. package/dist/mcp-server/tools/definitions/get-report-breakdowns.tool.d.ts +289 -0
  152. package/dist/mcp-server/tools/definitions/get-report-breakdowns.tool.d.ts.map +1 -0
  153. package/dist/mcp-server/tools/definitions/get-report-breakdowns.tool.js +181 -0
  154. package/dist/mcp-server/tools/definitions/get-report-breakdowns.tool.js.map +1 -0
  155. package/dist/mcp-server/tools/definitions/get-report.tool.d.ts +271 -0
  156. package/dist/mcp-server/tools/definitions/get-report.tool.d.ts.map +1 -0
  157. package/dist/mcp-server/tools/definitions/get-report.tool.js +174 -0
  158. package/dist/mcp-server/tools/definitions/get-report.tool.js.map +1 -0
  159. package/dist/mcp-server/tools/definitions/get-targeting-options.tool.d.ts +75 -0
  160. package/dist/mcp-server/tools/definitions/get-targeting-options.tool.d.ts.map +1 -0
  161. package/dist/mcp-server/tools/definitions/get-targeting-options.tool.js +75 -0
  162. package/dist/mcp-server/tools/definitions/get-targeting-options.tool.js.map +1 -0
  163. package/dist/mcp-server/tools/definitions/index.d.ts +21 -0
  164. package/dist/mcp-server/tools/definitions/index.d.ts.map +1 -0
  165. package/dist/mcp-server/tools/definitions/index.js +63 -0
  166. package/dist/mcp-server/tools/definitions/index.js.map +1 -0
  167. package/dist/mcp-server/tools/definitions/list-advertisers.tool.d.ts +54 -0
  168. package/dist/mcp-server/tools/definitions/list-advertisers.tool.d.ts.map +1 -0
  169. package/dist/mcp-server/tools/definitions/list-advertisers.tool.js +58 -0
  170. package/dist/mcp-server/tools/definitions/list-advertisers.tool.js.map +1 -0
  171. package/dist/mcp-server/tools/definitions/list-entities.tool.d.ts +171 -0
  172. package/dist/mcp-server/tools/definitions/list-entities.tool.d.ts.map +1 -0
  173. package/dist/mcp-server/tools/definitions/list-entities.tool.js +112 -0
  174. package/dist/mcp-server/tools/definitions/list-entities.tool.js.map +1 -0
  175. package/dist/mcp-server/tools/definitions/search-targeting.tool.d.ts +89 -0
  176. package/dist/mcp-server/tools/definitions/search-targeting.tool.d.ts.map +1 -0
  177. package/dist/mcp-server/tools/definitions/search-targeting.tool.js +93 -0
  178. package/dist/mcp-server/tools/definitions/search-targeting.tool.js.map +1 -0
  179. package/dist/mcp-server/tools/definitions/submit-report.tool.d.ts +134 -0
  180. package/dist/mcp-server/tools/definitions/submit-report.tool.d.ts.map +1 -0
  181. package/dist/mcp-server/tools/definitions/submit-report.tool.js +119 -0
  182. package/dist/mcp-server/tools/definitions/submit-report.tool.js.map +1 -0
  183. package/dist/mcp-server/tools/definitions/update-entity.tool.d.ts +114 -0
  184. package/dist/mcp-server/tools/definitions/update-entity.tool.d.ts.map +1 -0
  185. package/dist/mcp-server/tools/definitions/update-entity.tool.js +89 -0
  186. package/dist/mcp-server/tools/definitions/update-entity.tool.js.map +1 -0
  187. package/dist/mcp-server/tools/definitions/validate-entity.tool.d.ts +169 -0
  188. package/dist/mcp-server/tools/definitions/validate-entity.tool.d.ts.map +1 -0
  189. package/dist/mcp-server/tools/definitions/validate-entity.tool.js +104 -0
  190. package/dist/mcp-server/tools/definitions/validate-entity.tool.js.map +1 -0
  191. package/dist/mcp-server/tools/index.d.ts +2 -0
  192. package/dist/mcp-server/tools/index.d.ts.map +1 -0
  193. package/dist/mcp-server/tools/index.js +2 -0
  194. package/dist/mcp-server/tools/index.js.map +1 -0
  195. package/dist/mcp-server/tools/utils/entity-mapping.d.ts +24 -0
  196. package/dist/mcp-server/tools/utils/entity-mapping.d.ts.map +1 -0
  197. package/dist/mcp-server/tools/utils/entity-mapping.js +42 -0
  198. package/dist/mcp-server/tools/utils/entity-mapping.js.map +1 -0
  199. package/dist/mcp-server/tools/utils/resolve-session.d.ts +4 -0
  200. package/dist/mcp-server/tools/utils/resolve-session.d.ts.map +1 -0
  201. package/dist/mcp-server/tools/utils/resolve-session.js +6 -0
  202. package/dist/mcp-server/tools/utils/resolve-session.js.map +1 -0
  203. package/dist/mcp-server/transports/streamable-http-transport.d.ts +57 -0
  204. package/dist/mcp-server/transports/streamable-http-transport.d.ts.map +1 -0
  205. package/dist/mcp-server/transports/streamable-http-transport.js +105 -0
  206. package/dist/mcp-server/transports/streamable-http-transport.js.map +1 -0
  207. package/dist/services/amazon-dsp/amazon-dsp-api-contract.d.ts +43 -0
  208. package/dist/services/amazon-dsp/amazon-dsp-api-contract.d.ts.map +1 -0
  209. package/dist/services/amazon-dsp/amazon-dsp-api-contract.js +193 -0
  210. package/dist/services/amazon-dsp/amazon-dsp-api-contract.js.map +1 -0
  211. package/dist/services/amazon-dsp/amazon-dsp-http-client.d.ts +15 -0
  212. package/dist/services/amazon-dsp/amazon-dsp-http-client.d.ts.map +1 -0
  213. package/dist/services/amazon-dsp/amazon-dsp-http-client.js +138 -0
  214. package/dist/services/amazon-dsp/amazon-dsp-http-client.js.map +1 -0
  215. package/dist/services/amazon-dsp/amazon-dsp-reporting-service.d.ts +63 -0
  216. package/dist/services/amazon-dsp/amazon-dsp-reporting-service.d.ts.map +1 -0
  217. package/dist/services/amazon-dsp/amazon-dsp-reporting-service.js +134 -0
  218. package/dist/services/amazon-dsp/amazon-dsp-reporting-service.js.map +1 -0
  219. package/dist/services/amazon-dsp/amazon-dsp-service.d.ts +85 -0
  220. package/dist/services/amazon-dsp/amazon-dsp-service.d.ts.map +1 -0
  221. package/dist/services/amazon-dsp/amazon-dsp-service.js +182 -0
  222. package/dist/services/amazon-dsp/amazon-dsp-service.js.map +1 -0
  223. package/dist/services/amazon-dsp/types.d.ts +142 -0
  224. package/dist/services/amazon-dsp/types.d.ts.map +1 -0
  225. package/dist/services/amazon-dsp/types.js +24 -0
  226. package/dist/services/amazon-dsp/types.js.map +1 -0
  227. package/dist/services/session-services.d.ts +20 -0
  228. package/dist/services/session-services.d.ts.map +1 -0
  229. package/dist/services/session-services.js +23 -0
  230. package/dist/services/session-services.js.map +1 -0
  231. package/dist/types-global/mcp.d.ts +2 -0
  232. package/dist/types-global/mcp.d.ts.map +1 -0
  233. package/dist/types-global/mcp.js +2 -0
  234. package/dist/types-global/mcp.js.map +1 -0
  235. package/dist/utils/errors/index.d.ts +2 -0
  236. package/dist/utils/errors/index.d.ts.map +1 -0
  237. package/dist/utils/errors/index.js +2 -0
  238. package/dist/utils/errors/index.js.map +1 -0
  239. package/dist/utils/platform.d.ts +3 -0
  240. package/dist/utils/platform.d.ts.map +1 -0
  241. package/dist/utils/platform.js +5 -0
  242. package/dist/utils/platform.js.map +1 -0
  243. package/dist/utils/security/rate-limiter.d.ts +3 -0
  244. package/dist/utils/security/rate-limiter.d.ts.map +1 -0
  245. package/dist/utils/security/rate-limiter.js +5 -0
  246. package/dist/utils/security/rate-limiter.js.map +1 -0
  247. package/dist/utils/telemetry/index.d.ts +2 -0
  248. package/dist/utils/telemetry/index.d.ts.map +1 -0
  249. package/dist/utils/telemetry/index.js +2 -0
  250. package/dist/utils/telemetry/index.js.map +1 -0
  251. package/dist/utils/telemetry/tracing.d.ts +3 -0
  252. package/dist/utils/telemetry/tracing.d.ts.map +1 -0
  253. package/dist/utils/telemetry/tracing.js +4 -0
  254. package/dist/utils/telemetry/tracing.js.map +1 -0
  255. package/package.json +55 -0
@@ -0,0 +1,215 @@
1
+ import { z } from "zod";
2
+ import type { RequestContext, McpTextContent } from "@cesteral/shared";
3
+ import type { SdkContext } from "@cesteral/shared";
4
+ export declare const AdjustBidsInputSchema: z.ZodObject<{
5
+ profileId: z.ZodString;
6
+ adjustments: z.ZodArray<z.ZodObject<{
7
+ lineItemId: z.ZodString;
8
+ bidAmount: z.ZodNumber;
9
+ }, "strip", z.ZodTypeAny, {
10
+ lineItemId: string;
11
+ bidAmount: number;
12
+ }, {
13
+ lineItemId: string;
14
+ bidAmount: number;
15
+ }>, "many">;
16
+ reason: z.ZodOptional<z.ZodString>;
17
+ }, "strip", z.ZodTypeAny, {
18
+ profileId: string;
19
+ adjustments: {
20
+ lineItemId: string;
21
+ bidAmount: number;
22
+ }[];
23
+ reason?: string | undefined;
24
+ }, {
25
+ profileId: string;
26
+ adjustments: {
27
+ lineItemId: string;
28
+ bidAmount: number;
29
+ }[];
30
+ reason?: string | undefined;
31
+ }>;
32
+ export declare const AdjustBidsOutputSchema: z.ZodObject<{
33
+ confirmed: z.ZodBoolean;
34
+ declineReason: z.ZodOptional<z.ZodString>;
35
+ totalRequested: z.ZodNumber;
36
+ totalSucceeded: z.ZodNumber;
37
+ totalFailed: z.ZodNumber;
38
+ reason: z.ZodOptional<z.ZodString>;
39
+ results: z.ZodArray<z.ZodObject<{
40
+ lineItemId: z.ZodString;
41
+ success: z.ZodBoolean;
42
+ previousBid: z.ZodOptional<z.ZodNumber>;
43
+ newBid: z.ZodOptional<z.ZodNumber>;
44
+ error: z.ZodOptional<z.ZodString>;
45
+ }, "strip", z.ZodTypeAny, {
46
+ lineItemId: string;
47
+ success: boolean;
48
+ error?: string | undefined;
49
+ previousBid?: number | undefined;
50
+ newBid?: number | undefined;
51
+ }, {
52
+ lineItemId: string;
53
+ success: boolean;
54
+ error?: string | undefined;
55
+ previousBid?: number | undefined;
56
+ newBid?: number | undefined;
57
+ }>, "many">;
58
+ timestamp: z.ZodString;
59
+ }, "strip", z.ZodTypeAny, {
60
+ results: {
61
+ lineItemId: string;
62
+ success: boolean;
63
+ error?: string | undefined;
64
+ previousBid?: number | undefined;
65
+ newBid?: number | undefined;
66
+ }[];
67
+ timestamp: string;
68
+ confirmed: boolean;
69
+ totalRequested: number;
70
+ totalSucceeded: number;
71
+ totalFailed: number;
72
+ declineReason?: string | undefined;
73
+ reason?: string | undefined;
74
+ }, {
75
+ results: {
76
+ lineItemId: string;
77
+ success: boolean;
78
+ error?: string | undefined;
79
+ previousBid?: number | undefined;
80
+ newBid?: number | undefined;
81
+ }[];
82
+ timestamp: string;
83
+ confirmed: boolean;
84
+ totalRequested: number;
85
+ totalSucceeded: number;
86
+ totalFailed: number;
87
+ declineReason?: string | undefined;
88
+ reason?: string | undefined;
89
+ }>;
90
+ type AdjustBidsInput = z.infer<typeof AdjustBidsInputSchema>;
91
+ type AdjustBidsOutput = z.infer<typeof AdjustBidsOutputSchema>;
92
+ export declare function adjustBidsLogic(input: AdjustBidsInput, context: RequestContext, sdkContext?: SdkContext): Promise<AdjustBidsOutput>;
93
+ export declare function adjustBidsResponseFormatter(result: AdjustBidsOutput): McpTextContent[];
94
+ export declare const adjustBidsTool: {
95
+ name: string;
96
+ title: string;
97
+ description: string;
98
+ inputSchema: z.ZodObject<{
99
+ profileId: z.ZodString;
100
+ adjustments: z.ZodArray<z.ZodObject<{
101
+ lineItemId: z.ZodString;
102
+ bidAmount: z.ZodNumber;
103
+ }, "strip", z.ZodTypeAny, {
104
+ lineItemId: string;
105
+ bidAmount: number;
106
+ }, {
107
+ lineItemId: string;
108
+ bidAmount: number;
109
+ }>, "many">;
110
+ reason: z.ZodOptional<z.ZodString>;
111
+ }, "strip", z.ZodTypeAny, {
112
+ profileId: string;
113
+ adjustments: {
114
+ lineItemId: string;
115
+ bidAmount: number;
116
+ }[];
117
+ reason?: string | undefined;
118
+ }, {
119
+ profileId: string;
120
+ adjustments: {
121
+ lineItemId: string;
122
+ bidAmount: number;
123
+ }[];
124
+ reason?: string | undefined;
125
+ }>;
126
+ outputSchema: z.ZodObject<{
127
+ confirmed: z.ZodBoolean;
128
+ declineReason: z.ZodOptional<z.ZodString>;
129
+ totalRequested: z.ZodNumber;
130
+ totalSucceeded: z.ZodNumber;
131
+ totalFailed: z.ZodNumber;
132
+ reason: z.ZodOptional<z.ZodString>;
133
+ results: z.ZodArray<z.ZodObject<{
134
+ lineItemId: z.ZodString;
135
+ success: z.ZodBoolean;
136
+ previousBid: z.ZodOptional<z.ZodNumber>;
137
+ newBid: z.ZodOptional<z.ZodNumber>;
138
+ error: z.ZodOptional<z.ZodString>;
139
+ }, "strip", z.ZodTypeAny, {
140
+ lineItemId: string;
141
+ success: boolean;
142
+ error?: string | undefined;
143
+ previousBid?: number | undefined;
144
+ newBid?: number | undefined;
145
+ }, {
146
+ lineItemId: string;
147
+ success: boolean;
148
+ error?: string | undefined;
149
+ previousBid?: number | undefined;
150
+ newBid?: number | undefined;
151
+ }>, "many">;
152
+ timestamp: z.ZodString;
153
+ }, "strip", z.ZodTypeAny, {
154
+ results: {
155
+ lineItemId: string;
156
+ success: boolean;
157
+ error?: string | undefined;
158
+ previousBid?: number | undefined;
159
+ newBid?: number | undefined;
160
+ }[];
161
+ timestamp: string;
162
+ confirmed: boolean;
163
+ totalRequested: number;
164
+ totalSucceeded: number;
165
+ totalFailed: number;
166
+ declineReason?: string | undefined;
167
+ reason?: string | undefined;
168
+ }, {
169
+ results: {
170
+ lineItemId: string;
171
+ success: boolean;
172
+ error?: string | undefined;
173
+ previousBid?: number | undefined;
174
+ newBid?: number | undefined;
175
+ }[];
176
+ timestamp: string;
177
+ confirmed: boolean;
178
+ totalRequested: number;
179
+ totalSucceeded: number;
180
+ totalFailed: number;
181
+ declineReason?: string | undefined;
182
+ reason?: string | undefined;
183
+ }>;
184
+ annotations: {
185
+ readOnlyHint: boolean;
186
+ openWorldHint: boolean;
187
+ idempotentHint: boolean;
188
+ destructiveHint: boolean;
189
+ };
190
+ inputExamples: ({
191
+ label: string;
192
+ input: {
193
+ profileId: string;
194
+ adjustments: {
195
+ lineItemId: string;
196
+ bidAmount: number;
197
+ }[];
198
+ reason?: undefined;
199
+ };
200
+ } | {
201
+ label: string;
202
+ input: {
203
+ profileId: string;
204
+ adjustments: {
205
+ lineItemId: string;
206
+ bidAmount: number;
207
+ }[];
208
+ reason: string;
209
+ };
210
+ })[];
211
+ logic: typeof adjustBidsLogic;
212
+ responseFormatter: typeof adjustBidsResponseFormatter;
213
+ };
214
+ export {};
215
+ //# sourceMappingURL=adjust-bids.tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adjust-bids.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/adjust-bids.tool.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAenD,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;EAeyC,CAAC;AAE5E,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmBE,CAAC;AAEtC,KAAK,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAC7D,KAAK,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAE/D,wBAAsB,eAAe,CACnC,KAAK,EAAE,eAAe,EACtB,OAAO,EAAE,cAAc,EACvB,UAAU,CAAC,EAAE,UAAU,GACtB,OAAO,CAAC,gBAAgB,CAAC,CA0C3B;AAED,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,gBAAgB,GAAG,cAAc,EAAE,CA+BtF;AAED,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkC1B,CAAC"}
@@ -0,0 +1,147 @@
1
+ import { z } from "zod";
2
+ import { resolveSessionServices } from "../utils/resolve-session.js";
3
+ import { elicitBidChangeConfirmation } from "@cesteral/shared";
4
+ const TOOL_NAME = "amazon_dsp_adjust_bids";
5
+ const TOOL_TITLE = "Amazon DSP Line Item Bid Adjustment";
6
+ const TOOL_DESCRIPTION = `Batch adjust line item bid prices with safe read-modify-write.
7
+
8
+ Reads current bid prices, applies new values, and reports previous/new amounts.
9
+ Bid prices are in the advertiser's account currency.
10
+
11
+ **Gotchas:**
12
+ - Only applies to line items with manual bidding (bidding.bidOptimization.bidAmount field).
13
+ - Line items using automated bidding strategies may ignore the bid amount.
14
+ - Each read + write pair consumes API quota.
15
+ - Max 50 adjustments per call.`;
16
+ export const AdjustBidsInputSchema = z
17
+ .object({
18
+ profileId: z.string().min(1).describe("AmazonDsp Advertiser ID"),
19
+ adjustments: z
20
+ .array(z.object({
21
+ lineItemId: z.string().min(1).describe("The line item ID to adjust"),
22
+ bidAmount: z.number().positive().describe("New bid amount in the advertiser's currency"),
23
+ }))
24
+ .min(1)
25
+ .max(50)
26
+ .describe("Bid adjustments to apply (max 50)"),
27
+ reason: z.string().optional().describe("Optional reason for the bid adjustment"),
28
+ })
29
+ .describe("Parameters for batch bid adjustment on Amazon DSP line items");
30
+ export const AdjustBidsOutputSchema = z
31
+ .object({
32
+ confirmed: z.boolean(),
33
+ declineReason: z.string().optional(),
34
+ totalRequested: z.number(),
35
+ totalSucceeded: z.number(),
36
+ totalFailed: z.number(),
37
+ reason: z.string().optional(),
38
+ results: z.array(z.object({
39
+ lineItemId: z.string(),
40
+ success: z.boolean(),
41
+ previousBid: z.number().optional(),
42
+ newBid: z.number().optional(),
43
+ error: z.string().optional(),
44
+ })),
45
+ timestamp: z.string().datetime(),
46
+ })
47
+ .describe("Bid adjustment results");
48
+ export async function adjustBidsLogic(input, context, sdkContext) {
49
+ const confirmed = await elicitBidChangeConfirmation({
50
+ count: input.adjustments.length,
51
+ entityLabel: "line item",
52
+ summary: input.reason ?? "Applying bidAmount changes.",
53
+ impactPreview: input.adjustments.map((a) => a.lineItemId),
54
+ sdkContext,
55
+ });
56
+ if (!confirmed) {
57
+ return {
58
+ confirmed: false,
59
+ declineReason: "user_declined",
60
+ totalRequested: input.adjustments.length,
61
+ totalSucceeded: 0,
62
+ totalFailed: 0,
63
+ reason: input.reason,
64
+ results: [],
65
+ timestamp: new Date().toISOString(),
66
+ };
67
+ }
68
+ const { amazonDspService } = resolveSessionServices(sdkContext);
69
+ const result = await amazonDspService.adjustBids(input.adjustments.map((a) => ({
70
+ lineItemId: a.lineItemId,
71
+ bidAmount: a.bidAmount,
72
+ })), context);
73
+ const totalSucceeded = result.results.filter((r) => r.success).length;
74
+ return {
75
+ confirmed: true,
76
+ totalRequested: input.adjustments.length,
77
+ totalSucceeded,
78
+ totalFailed: input.adjustments.length - totalSucceeded,
79
+ reason: input.reason,
80
+ results: result.results,
81
+ timestamp: new Date().toISOString(),
82
+ };
83
+ }
84
+ export function adjustBidsResponseFormatter(result) {
85
+ if (!result.confirmed) {
86
+ return [
87
+ {
88
+ type: "text",
89
+ text: `Bid adjustments cancelled by user.\n\nTimestamp: ${result.timestamp}`,
90
+ },
91
+ ];
92
+ }
93
+ const lines = [
94
+ `Bid adjustments: ${result.totalSucceeded}/${result.totalRequested} succeeded, ${result.totalFailed} failed`,
95
+ ];
96
+ if (result.reason) {
97
+ lines.push(`Reason: ${result.reason}`);
98
+ }
99
+ lines.push("");
100
+ for (const r of result.results) {
101
+ if (r.success) {
102
+ const prev = r.previousBid ?? "unknown";
103
+ lines.push(` ${r.lineItemId}: ${prev} -> ${r.newBid}`);
104
+ }
105
+ else {
106
+ lines.push(` ${r.lineItemId}: FAILED - ${r.error}`);
107
+ }
108
+ }
109
+ lines.push("", `Timestamp: ${result.timestamp}`);
110
+ return [{ type: "text", text: lines.join("\n") }];
111
+ }
112
+ export const adjustBidsTool = {
113
+ name: TOOL_NAME,
114
+ title: TOOL_TITLE,
115
+ description: TOOL_DESCRIPTION,
116
+ inputSchema: AdjustBidsInputSchema,
117
+ outputSchema: AdjustBidsOutputSchema,
118
+ annotations: {
119
+ readOnlyHint: false,
120
+ openWorldHint: false,
121
+ idempotentHint: true,
122
+ destructiveHint: true,
123
+ },
124
+ inputExamples: [
125
+ {
126
+ label: "Single bid adjustment",
127
+ input: {
128
+ profileId: "1234567890",
129
+ adjustments: [{ lineItemId: "1700123456789", bidAmount: 1.5 }],
130
+ },
131
+ },
132
+ {
133
+ label: "Multiple bid adjustments with reason",
134
+ input: {
135
+ profileId: "1234567890",
136
+ adjustments: [
137
+ { lineItemId: "1700111111111", bidAmount: 2.0 },
138
+ { lineItemId: "1700222222222", bidAmount: 1.2 },
139
+ ],
140
+ reason: "Increase bids to improve delivery pacing",
141
+ },
142
+ },
143
+ ],
144
+ logic: adjustBidsLogic,
145
+ responseFormatter: adjustBidsResponseFormatter,
146
+ };
147
+ //# sourceMappingURL=adjust-bids.tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adjust-bids.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/adjust-bids.tool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,152 @@
1
+ import { z } from "zod";
2
+ import type { RequestContext, McpTextContent } from "@cesteral/shared";
3
+ import type { SdkContext } from "@cesteral/shared";
4
+ export declare const BulkCreateEntitiesInputSchema: z.ZodObject<{
5
+ entityType: z.ZodEnum<[string, ...string[]]>;
6
+ profileId: z.ZodString;
7
+ items: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodAny>, "many">;
8
+ }, "strip", z.ZodTypeAny, {
9
+ entityType: string;
10
+ profileId: string;
11
+ items: Record<string, any>[];
12
+ }, {
13
+ entityType: string;
14
+ profileId: string;
15
+ items: Record<string, any>[];
16
+ }>;
17
+ export declare const BulkCreateEntitiesOutputSchema: z.ZodObject<{
18
+ totalRequested: z.ZodNumber;
19
+ successCount: z.ZodNumber;
20
+ failureCount: z.ZodNumber;
21
+ results: z.ZodArray<z.ZodObject<{
22
+ success: z.ZodBoolean;
23
+ entity: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
24
+ error: z.ZodOptional<z.ZodString>;
25
+ } & {
26
+ index: z.ZodNumber;
27
+ }, "strip", z.ZodTypeAny, {
28
+ success: boolean;
29
+ index: number;
30
+ error?: string | undefined;
31
+ entity?: Record<string, any> | undefined;
32
+ }, {
33
+ success: boolean;
34
+ index: number;
35
+ error?: string | undefined;
36
+ entity?: Record<string, any> | undefined;
37
+ }>, "many">;
38
+ timestamp: z.ZodString;
39
+ }, "strip", z.ZodTypeAny, {
40
+ results: {
41
+ success: boolean;
42
+ index: number;
43
+ error?: string | undefined;
44
+ entity?: Record<string, any> | undefined;
45
+ }[];
46
+ timestamp: string;
47
+ totalRequested: number;
48
+ successCount: number;
49
+ failureCount: number;
50
+ }, {
51
+ results: {
52
+ success: boolean;
53
+ index: number;
54
+ error?: string | undefined;
55
+ entity?: Record<string, any> | undefined;
56
+ }[];
57
+ timestamp: string;
58
+ totalRequested: number;
59
+ successCount: number;
60
+ failureCount: number;
61
+ }>;
62
+ type BulkCreateEntitiesInput = z.infer<typeof BulkCreateEntitiesInputSchema>;
63
+ type BulkCreateEntitiesOutput = z.infer<typeof BulkCreateEntitiesOutputSchema>;
64
+ export declare function bulkCreateEntitiesLogic(input: BulkCreateEntitiesInput, context: RequestContext, sdkContext?: SdkContext): Promise<BulkCreateEntitiesOutput>;
65
+ export declare function bulkCreateEntitiesResponseFormatter(result: BulkCreateEntitiesOutput): McpTextContent[];
66
+ export declare const bulkCreateEntitiesTool: {
67
+ name: string;
68
+ title: string;
69
+ description: string;
70
+ inputSchema: z.ZodObject<{
71
+ entityType: z.ZodEnum<[string, ...string[]]>;
72
+ profileId: z.ZodString;
73
+ items: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodAny>, "many">;
74
+ }, "strip", z.ZodTypeAny, {
75
+ entityType: string;
76
+ profileId: string;
77
+ items: Record<string, any>[];
78
+ }, {
79
+ entityType: string;
80
+ profileId: string;
81
+ items: Record<string, any>[];
82
+ }>;
83
+ outputSchema: z.ZodObject<{
84
+ totalRequested: z.ZodNumber;
85
+ successCount: z.ZodNumber;
86
+ failureCount: z.ZodNumber;
87
+ results: z.ZodArray<z.ZodObject<{
88
+ success: z.ZodBoolean;
89
+ entity: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
90
+ error: z.ZodOptional<z.ZodString>;
91
+ } & {
92
+ index: z.ZodNumber;
93
+ }, "strip", z.ZodTypeAny, {
94
+ success: boolean;
95
+ index: number;
96
+ error?: string | undefined;
97
+ entity?: Record<string, any> | undefined;
98
+ }, {
99
+ success: boolean;
100
+ index: number;
101
+ error?: string | undefined;
102
+ entity?: Record<string, any> | undefined;
103
+ }>, "many">;
104
+ timestamp: z.ZodString;
105
+ }, "strip", z.ZodTypeAny, {
106
+ results: {
107
+ success: boolean;
108
+ index: number;
109
+ error?: string | undefined;
110
+ entity?: Record<string, any> | undefined;
111
+ }[];
112
+ timestamp: string;
113
+ totalRequested: number;
114
+ successCount: number;
115
+ failureCount: number;
116
+ }, {
117
+ results: {
118
+ success: boolean;
119
+ index: number;
120
+ error?: string | undefined;
121
+ entity?: Record<string, any> | undefined;
122
+ }[];
123
+ timestamp: string;
124
+ totalRequested: number;
125
+ successCount: number;
126
+ failureCount: number;
127
+ }>;
128
+ annotations: {
129
+ readOnlyHint: boolean;
130
+ openWorldHint: boolean;
131
+ idempotentHint: boolean;
132
+ destructiveHint: boolean;
133
+ };
134
+ inputExamples: {
135
+ label: string;
136
+ input: {
137
+ entityType: string;
138
+ profileId: string;
139
+ items: {
140
+ name: string;
141
+ advertiserId: string;
142
+ budget: number;
143
+ startDateTime: string;
144
+ endDateTime: string;
145
+ }[];
146
+ };
147
+ }[];
148
+ logic: typeof bulkCreateEntitiesLogic;
149
+ responseFormatter: typeof bulkCreateEntitiesResponseFormatter;
150
+ };
151
+ export {};
152
+ //# sourceMappingURL=bulk-create-entities.tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bulk-create-entities.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/bulk-create-entities.tool.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAanD,eAAO,MAAM,6BAA6B;;;;;;;;;;;;EAUQ,CAAC;AAEnD,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAYV,CAAC;AAElC,KAAK,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAC7E,KAAK,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AAE/E,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,uBAAuB,EAC9B,OAAO,EAAE,cAAc,EACvB,UAAU,CAAC,EAAE,UAAU,GACtB,OAAO,CAAC,wBAAwB,CAAC,CAyBnC;AAED,wBAAgB,mCAAmC,CACjD,MAAM,EAAE,wBAAwB,GAC/B,cAAc,EAAE,CAiBlB;AAED,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuClC,CAAC"}
@@ -0,0 +1,111 @@
1
+ import { z } from "zod";
2
+ import { resolveSessionServices } from "../utils/resolve-session.js";
3
+ import { getEntityTypeEnum } from "../utils/entity-mapping.js";
4
+ import { BulkOperationResultSchema } from "@cesteral/shared";
5
+ const TOOL_NAME = "amazon_dsp_bulk_create_entities";
6
+ const TOOL_TITLE = "AmazonDsp Bulk Create Entities";
7
+ const TOOL_DESCRIPTION = `Batch create multiple AmazonDsp Ads entities of the same type.
8
+
9
+ **Supported entity types:** ${getEntityTypeEnum().join(", ")}
10
+
11
+ Creates entities sequentially (with concurrency). Each item follows the same
12
+ schema as \`amazon_dsp_create_entity\`.
13
+
14
+ Max 50 items per call. profile_id is automatically injected per item.`;
15
+ export const BulkCreateEntitiesInputSchema = z
16
+ .object({
17
+ entityType: z.enum(getEntityTypeEnum()).describe("Type of entities to create"),
18
+ profileId: z.string().min(1).describe("AmazonDsp Advertiser ID"),
19
+ items: z
20
+ .array(z.record(z.any()))
21
+ .min(1)
22
+ .max(50)
23
+ .describe("Array of entity data objects to create (max 50)"),
24
+ })
25
+ .describe("Parameters for bulk entity creation");
26
+ export const BulkCreateEntitiesOutputSchema = z
27
+ .object({
28
+ totalRequested: z.number(),
29
+ successCount: z.number(),
30
+ failureCount: z.number(),
31
+ results: z.array(BulkOperationResultSchema.extend({
32
+ index: z.number(),
33
+ })),
34
+ timestamp: z.string().datetime(),
35
+ })
36
+ .describe("Bulk create result");
37
+ export async function bulkCreateEntitiesLogic(input, context, sdkContext) {
38
+ const { amazonDspService } = resolveSessionServices(sdkContext);
39
+ const bulkResult = await amazonDspService.bulkCreateEntities(input.entityType, input.items, context);
40
+ const results = bulkResult.results.map((r, i) => ({
41
+ index: i,
42
+ success: r.success,
43
+ entity: r.entity,
44
+ error: r.error,
45
+ }));
46
+ const totalSucceeded = results.filter((r) => r.success).length;
47
+ return {
48
+ totalRequested: input.items.length,
49
+ successCount: totalSucceeded,
50
+ failureCount: input.items.length - totalSucceeded,
51
+ results,
52
+ timestamp: new Date().toISOString(),
53
+ };
54
+ }
55
+ export function bulkCreateEntitiesResponseFormatter(result) {
56
+ const lines = [
57
+ `Bulk create: ${result.successCount}/${result.totalRequested} succeeded, ${result.failureCount} failed`,
58
+ "",
59
+ ];
60
+ for (const r of result.results) {
61
+ if (r.success) {
62
+ lines.push(` [${r.index}]: SUCCESS - ${JSON.stringify(r.entity)}`);
63
+ }
64
+ else {
65
+ lines.push(` [${r.index}]: FAILED - ${r.error}`);
66
+ }
67
+ }
68
+ lines.push("", `Timestamp: ${result.timestamp}`);
69
+ return [{ type: "text", text: lines.join("\n") }];
70
+ }
71
+ export const bulkCreateEntitiesTool = {
72
+ name: TOOL_NAME,
73
+ title: TOOL_TITLE,
74
+ description: TOOL_DESCRIPTION,
75
+ inputSchema: BulkCreateEntitiesInputSchema,
76
+ outputSchema: BulkCreateEntitiesOutputSchema,
77
+ annotations: {
78
+ readOnlyHint: false,
79
+ openWorldHint: false,
80
+ idempotentHint: false,
81
+ destructiveHint: true,
82
+ },
83
+ inputExamples: [
84
+ {
85
+ label: "Bulk create orders (campaigns)",
86
+ input: {
87
+ entityType: "order",
88
+ profileId: "1234567890",
89
+ items: [
90
+ {
91
+ name: "Order A",
92
+ advertiserId: "adv_123",
93
+ budget: 10000,
94
+ startDateTime: "2026-07-01T00:00:00Z",
95
+ endDateTime: "2026-07-31T23:59:59Z",
96
+ },
97
+ {
98
+ name: "Order B",
99
+ advertiserId: "adv_123",
100
+ budget: 20000,
101
+ startDateTime: "2026-08-01T00:00:00Z",
102
+ endDateTime: "2026-08-31T23:59:59Z",
103
+ },
104
+ ],
105
+ },
106
+ },
107
+ ],
108
+ logic: bulkCreateEntitiesLogic,
109
+ responseFormatter: bulkCreateEntitiesResponseFormatter,
110
+ };
111
+ //# sourceMappingURL=bulk-create-entities.tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bulk-create-entities.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/bulk-create-entities.tool.ts"],"names":[],"mappings":"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"}