@cesteral/cm360-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 (239) hide show
  1. package/LICENSE.md +201 -0
  2. package/README.md +428 -0
  3. package/dist/config/index.d.ts +88 -0
  4. package/dist/config/index.d.ts.map +1 -0
  5. package/dist/config/index.js +31 -0
  6. package/dist/config/index.js.map +1 -0
  7. package/dist/generated/types.d.ts +2058 -0
  8. package/dist/generated/types.d.ts.map +1 -0
  9. package/dist/generated/types.js +2 -0
  10. package/dist/generated/types.js.map +1 -0
  11. package/dist/index.d.ts +3 -0
  12. package/dist/index.d.ts.map +1 -0
  13. package/dist/index.js +52 -0
  14. package/dist/index.js.map +1 -0
  15. package/dist/mcp-server/prompts/definitions/bulk-operations-workflow.prompt.d.ts +4 -0
  16. package/dist/mcp-server/prompts/definitions/bulk-operations-workflow.prompt.d.ts.map +1 -0
  17. package/dist/mcp-server/prompts/definitions/bulk-operations-workflow.prompt.js +92 -0
  18. package/dist/mcp-server/prompts/definitions/bulk-operations-workflow.prompt.js.map +1 -0
  19. package/dist/mcp-server/prompts/definitions/campaign-setup-workflow.prompt.d.ts +4 -0
  20. package/dist/mcp-server/prompts/definitions/campaign-setup-workflow.prompt.d.ts.map +1 -0
  21. package/dist/mcp-server/prompts/definitions/campaign-setup-workflow.prompt.js +171 -0
  22. package/dist/mcp-server/prompts/definitions/campaign-setup-workflow.prompt.js.map +1 -0
  23. package/dist/mcp-server/prompts/definitions/cross-platform-campaign-setup.prompt.d.ts +4 -0
  24. package/dist/mcp-server/prompts/definitions/cross-platform-campaign-setup.prompt.d.ts.map +1 -0
  25. package/dist/mcp-server/prompts/definitions/cross-platform-campaign-setup.prompt.js +74 -0
  26. package/dist/mcp-server/prompts/definitions/cross-platform-campaign-setup.prompt.js.map +1 -0
  27. package/dist/mcp-server/prompts/definitions/cross-platform-performance.prompt.d.ts +4 -0
  28. package/dist/mcp-server/prompts/definitions/cross-platform-performance.prompt.d.ts.map +1 -0
  29. package/dist/mcp-server/prompts/definitions/cross-platform-performance.prompt.js +74 -0
  30. package/dist/mcp-server/prompts/definitions/cross-platform-performance.prompt.js.map +1 -0
  31. package/dist/mcp-server/prompts/definitions/entity-update-workflow.prompt.d.ts +4 -0
  32. package/dist/mcp-server/prompts/definitions/entity-update-workflow.prompt.d.ts.map +1 -0
  33. package/dist/mcp-server/prompts/definitions/entity-update-workflow.prompt.js +92 -0
  34. package/dist/mcp-server/prompts/definitions/entity-update-workflow.prompt.js.map +1 -0
  35. package/dist/mcp-server/prompts/definitions/floodlight-workflow.prompt.d.ts +4 -0
  36. package/dist/mcp-server/prompts/definitions/floodlight-workflow.prompt.d.ts.map +1 -0
  37. package/dist/mcp-server/prompts/definitions/floodlight-workflow.prompt.js +114 -0
  38. package/dist/mcp-server/prompts/definitions/floodlight-workflow.prompt.js.map +1 -0
  39. package/dist/mcp-server/prompts/definitions/reporting-workflow.prompt.d.ts +4 -0
  40. package/dist/mcp-server/prompts/definitions/reporting-workflow.prompt.d.ts.map +1 -0
  41. package/dist/mcp-server/prompts/definitions/reporting-workflow.prompt.js +101 -0
  42. package/dist/mcp-server/prompts/definitions/reporting-workflow.prompt.js.map +1 -0
  43. package/dist/mcp-server/prompts/definitions/targeting-discovery-workflow.prompt.d.ts +4 -0
  44. package/dist/mcp-server/prompts/definitions/targeting-discovery-workflow.prompt.d.ts.map +1 -0
  45. package/dist/mcp-server/prompts/definitions/targeting-discovery-workflow.prompt.js +52 -0
  46. package/dist/mcp-server/prompts/definitions/targeting-discovery-workflow.prompt.js.map +1 -0
  47. package/dist/mcp-server/prompts/definitions/tool-schema-exploration.prompt.d.ts +4 -0
  48. package/dist/mcp-server/prompts/definitions/tool-schema-exploration.prompt.d.ts.map +1 -0
  49. package/dist/mcp-server/prompts/definitions/tool-schema-exploration.prompt.js +106 -0
  50. package/dist/mcp-server/prompts/definitions/tool-schema-exploration.prompt.js.map +1 -0
  51. package/dist/mcp-server/prompts/definitions/troubleshoot-entity.prompt.d.ts +4 -0
  52. package/dist/mcp-server/prompts/definitions/troubleshoot-entity.prompt.d.ts.map +1 -0
  53. package/dist/mcp-server/prompts/definitions/troubleshoot-entity.prompt.js +69 -0
  54. package/dist/mcp-server/prompts/definitions/troubleshoot-entity.prompt.js.map +1 -0
  55. package/dist/mcp-server/prompts/index.d.ts +9 -0
  56. package/dist/mcp-server/prompts/index.d.ts.map +1 -0
  57. package/dist/mcp-server/prompts/index.js +89 -0
  58. package/dist/mcp-server/prompts/index.js.map +1 -0
  59. package/dist/mcp-server/resources/definitions/entity-examples.resource.d.ts +4 -0
  60. package/dist/mcp-server/resources/definitions/entity-examples.resource.d.ts.map +1 -0
  61. package/dist/mcp-server/resources/definitions/entity-examples.resource.js +140 -0
  62. package/dist/mcp-server/resources/definitions/entity-examples.resource.js.map +1 -0
  63. package/dist/mcp-server/resources/definitions/entity-hierarchy.resource.d.ts +3 -0
  64. package/dist/mcp-server/resources/definitions/entity-hierarchy.resource.d.ts.map +1 -0
  65. package/dist/mcp-server/resources/definitions/entity-hierarchy.resource.js +104 -0
  66. package/dist/mcp-server/resources/definitions/entity-hierarchy.resource.js.map +1 -0
  67. package/dist/mcp-server/resources/definitions/entity-schemas.resource.d.ts +4 -0
  68. package/dist/mcp-server/resources/definitions/entity-schemas.resource.d.ts.map +1 -0
  69. package/dist/mcp-server/resources/definitions/entity-schemas.resource.js +111 -0
  70. package/dist/mcp-server/resources/definitions/entity-schemas.resource.js.map +1 -0
  71. package/dist/mcp-server/resources/definitions/index.d.ts +8 -0
  72. package/dist/mcp-server/resources/definitions/index.d.ts.map +1 -0
  73. package/dist/mcp-server/resources/definitions/index.js +49 -0
  74. package/dist/mcp-server/resources/definitions/index.js.map +1 -0
  75. package/dist/mcp-server/resources/definitions/reporting-reference.resource.d.ts +3 -0
  76. package/dist/mcp-server/resources/definitions/reporting-reference.resource.d.ts.map +1 -0
  77. package/dist/mcp-server/resources/definitions/reporting-reference.resource.js +62 -0
  78. package/dist/mcp-server/resources/definitions/reporting-reference.resource.js.map +1 -0
  79. package/dist/mcp-server/resources/definitions/targeting-reference.resource.d.ts +3 -0
  80. package/dist/mcp-server/resources/definitions/targeting-reference.resource.d.ts.map +1 -0
  81. package/dist/mcp-server/resources/definitions/targeting-reference.resource.js +46 -0
  82. package/dist/mcp-server/resources/definitions/targeting-reference.resource.js.map +1 -0
  83. package/dist/mcp-server/resources/index.d.ts +3 -0
  84. package/dist/mcp-server/resources/index.d.ts.map +1 -0
  85. package/dist/mcp-server/resources/index.js +2 -0
  86. package/dist/mcp-server/resources/index.js.map +1 -0
  87. package/dist/mcp-server/resources/types.d.ts +8 -0
  88. package/dist/mcp-server/resources/types.d.ts.map +1 -0
  89. package/dist/mcp-server/resources/types.js +2 -0
  90. package/dist/mcp-server/resources/types.js.map +1 -0
  91. package/dist/mcp-server/server.d.ts +5 -0
  92. package/dist/mcp-server/server.d.ts.map +1 -0
  93. package/dist/mcp-server/server.js +124 -0
  94. package/dist/mcp-server/server.js.map +1 -0
  95. package/dist/mcp-server/tools/definitions/bulk-create-entities.tool.d.ts +147 -0
  96. package/dist/mcp-server/tools/definitions/bulk-create-entities.tool.d.ts.map +1 -0
  97. package/dist/mcp-server/tools/definitions/bulk-create-entities.tool.js +109 -0
  98. package/dist/mcp-server/tools/definitions/bulk-create-entities.tool.js.map +1 -0
  99. package/dist/mcp-server/tools/definitions/bulk-update-entities.tool.d.ts +187 -0
  100. package/dist/mcp-server/tools/definitions/bulk-update-entities.tool.d.ts.map +1 -0
  101. package/dist/mcp-server/tools/definitions/bulk-update-entities.tool.js +141 -0
  102. package/dist/mcp-server/tools/definitions/bulk-update-entities.tool.js.map +1 -0
  103. package/dist/mcp-server/tools/definitions/bulk-update-status.tool.d.ts +147 -0
  104. package/dist/mcp-server/tools/definitions/bulk-update-status.tool.d.ts.map +1 -0
  105. package/dist/mcp-server/tools/definitions/bulk-update-status.tool.js +168 -0
  106. package/dist/mcp-server/tools/definitions/bulk-update-status.tool.js.map +1 -0
  107. package/dist/mcp-server/tools/definitions/check-report-status.tool.d.ts +138 -0
  108. package/dist/mcp-server/tools/definitions/check-report-status.tool.d.ts.map +1 -0
  109. package/dist/mcp-server/tools/definitions/check-report-status.tool.js +82 -0
  110. package/dist/mcp-server/tools/definitions/check-report-status.tool.js.map +1 -0
  111. package/dist/mcp-server/tools/definitions/create-entity.tool.d.ts +101 -0
  112. package/dist/mcp-server/tools/definitions/create-entity.tool.d.ts.map +1 -0
  113. package/dist/mcp-server/tools/definitions/create-entity.tool.js +84 -0
  114. package/dist/mcp-server/tools/definitions/create-entity.tool.js.map +1 -0
  115. package/dist/mcp-server/tools/definitions/create-report-schedule.tool.d.ts +384 -0
  116. package/dist/mcp-server/tools/definitions/create-report-schedule.tool.d.ts.map +1 -0
  117. package/dist/mcp-server/tools/definitions/create-report-schedule.tool.js +141 -0
  118. package/dist/mcp-server/tools/definitions/create-report-schedule.tool.js.map +1 -0
  119. package/dist/mcp-server/tools/definitions/delete-entity.tool.d.ts +94 -0
  120. package/dist/mcp-server/tools/definitions/delete-entity.tool.d.ts.map +1 -0
  121. package/dist/mcp-server/tools/definitions/delete-entity.tool.js +93 -0
  122. package/dist/mcp-server/tools/definitions/delete-entity.tool.js.map +1 -0
  123. package/dist/mcp-server/tools/definitions/delete-report-schedule.tool.d.ts +86 -0
  124. package/dist/mcp-server/tools/definitions/delete-report-schedule.tool.d.ts.map +1 -0
  125. package/dist/mcp-server/tools/definitions/delete-report-schedule.tool.js +91 -0
  126. package/dist/mcp-server/tools/definitions/delete-report-schedule.tool.js.map +1 -0
  127. package/dist/mcp-server/tools/definitions/download-report.tool.d.ts +164 -0
  128. package/dist/mcp-server/tools/definitions/download-report.tool.d.ts.map +1 -0
  129. package/dist/mcp-server/tools/definitions/download-report.tool.js +144 -0
  130. package/dist/mcp-server/tools/definitions/download-report.tool.js.map +1 -0
  131. package/dist/mcp-server/tools/definitions/get-ad-preview.tool.d.ts +87 -0
  132. package/dist/mcp-server/tools/definitions/get-ad-preview.tool.d.ts.map +1 -0
  133. package/dist/mcp-server/tools/definitions/get-ad-preview.tool.js +72 -0
  134. package/dist/mcp-server/tools/definitions/get-ad-preview.tool.js.map +1 -0
  135. package/dist/mcp-server/tools/definitions/get-entity.tool.d.ts +76 -0
  136. package/dist/mcp-server/tools/definitions/get-entity.tool.d.ts.map +1 -0
  137. package/dist/mcp-server/tools/definitions/get-entity.tool.js +71 -0
  138. package/dist/mcp-server/tools/definitions/get-entity.tool.js.map +1 -0
  139. package/dist/mcp-server/tools/definitions/get-report-breakdowns.tool.d.ts +208 -0
  140. package/dist/mcp-server/tools/definitions/get-report-breakdowns.tool.d.ts.map +1 -0
  141. package/dist/mcp-server/tools/definitions/get-report-breakdowns.tool.js +143 -0
  142. package/dist/mcp-server/tools/definitions/get-report-breakdowns.tool.js.map +1 -0
  143. package/dist/mcp-server/tools/definitions/get-report.tool.d.ts +206 -0
  144. package/dist/mcp-server/tools/definitions/get-report.tool.d.ts.map +1 -0
  145. package/dist/mcp-server/tools/definitions/get-report.tool.js +114 -0
  146. package/dist/mcp-server/tools/definitions/get-report.tool.js.map +1 -0
  147. package/dist/mcp-server/tools/definitions/index.d.ts +23 -0
  148. package/dist/mcp-server/tools/definitions/index.d.ts.map +1 -0
  149. package/dist/mcp-server/tools/definitions/index.js +69 -0
  150. package/dist/mcp-server/tools/definitions/index.js.map +1 -0
  151. package/dist/mcp-server/tools/definitions/list-entities.tool.d.ts +177 -0
  152. package/dist/mcp-server/tools/definitions/list-entities.tool.d.ts.map +1 -0
  153. package/dist/mcp-server/tools/definitions/list-entities.tool.js +105 -0
  154. package/dist/mcp-server/tools/definitions/list-entities.tool.js.map +1 -0
  155. package/dist/mcp-server/tools/definitions/list-report-schedules.tool.d.ts +275 -0
  156. package/dist/mcp-server/tools/definitions/list-report-schedules.tool.d.ts.map +1 -0
  157. package/dist/mcp-server/tools/definitions/list-report-schedules.tool.js +90 -0
  158. package/dist/mcp-server/tools/definitions/list-report-schedules.tool.js.map +1 -0
  159. package/dist/mcp-server/tools/definitions/list-targeting-options.tool.d.ts +163 -0
  160. package/dist/mcp-server/tools/definitions/list-targeting-options.tool.d.ts.map +1 -0
  161. package/dist/mcp-server/tools/definitions/list-targeting-options.tool.js +105 -0
  162. package/dist/mcp-server/tools/definitions/list-targeting-options.tool.js.map +1 -0
  163. package/dist/mcp-server/tools/definitions/list-user-profiles.tool.d.ts +53 -0
  164. package/dist/mcp-server/tools/definitions/list-user-profiles.tool.d.ts.map +1 -0
  165. package/dist/mcp-server/tools/definitions/list-user-profiles.tool.js +58 -0
  166. package/dist/mcp-server/tools/definitions/list-user-profiles.tool.js.map +1 -0
  167. package/dist/mcp-server/tools/definitions/submit-report.tool.d.ts +195 -0
  168. package/dist/mcp-server/tools/definitions/submit-report.tool.d.ts.map +1 -0
  169. package/dist/mcp-server/tools/definitions/submit-report.tool.js +107 -0
  170. package/dist/mcp-server/tools/definitions/submit-report.tool.js.map +1 -0
  171. package/dist/mcp-server/tools/definitions/update-entity.tool.d.ts +89 -0
  172. package/dist/mcp-server/tools/definitions/update-entity.tool.d.ts.map +1 -0
  173. package/dist/mcp-server/tools/definitions/update-entity.tool.js +76 -0
  174. package/dist/mcp-server/tools/definitions/update-entity.tool.js.map +1 -0
  175. package/dist/mcp-server/tools/definitions/validate-entity.tool.d.ts +184 -0
  176. package/dist/mcp-server/tools/definitions/validate-entity.tool.d.ts.map +1 -0
  177. package/dist/mcp-server/tools/definitions/validate-entity.tool.js +260 -0
  178. package/dist/mcp-server/tools/definitions/validate-entity.tool.js.map +1 -0
  179. package/dist/mcp-server/tools/index.d.ts +2 -0
  180. package/dist/mcp-server/tools/index.d.ts.map +1 -0
  181. package/dist/mcp-server/tools/index.js +2 -0
  182. package/dist/mcp-server/tools/index.js.map +1 -0
  183. package/dist/mcp-server/tools/utils/entity-mapping.d.ts +12 -0
  184. package/dist/mcp-server/tools/utils/entity-mapping.d.ts.map +1 -0
  185. package/dist/mcp-server/tools/utils/entity-mapping.js +67 -0
  186. package/dist/mcp-server/tools/utils/entity-mapping.js.map +1 -0
  187. package/dist/mcp-server/tools/utils/report-config.d.ts +73 -0
  188. package/dist/mcp-server/tools/utils/report-config.d.ts.map +1 -0
  189. package/dist/mcp-server/tools/utils/report-config.js +161 -0
  190. package/dist/mcp-server/tools/utils/report-config.js.map +1 -0
  191. package/dist/mcp-server/tools/utils/resolve-session.d.ts +4 -0
  192. package/dist/mcp-server/tools/utils/resolve-session.d.ts.map +1 -0
  193. package/dist/mcp-server/tools/utils/resolve-session.js +6 -0
  194. package/dist/mcp-server/tools/utils/resolve-session.js.map +1 -0
  195. package/dist/mcp-server/transports/streamable-http-transport.d.ts +43 -0
  196. package/dist/mcp-server/transports/streamable-http-transport.d.ts.map +1 -0
  197. package/dist/mcp-server/transports/streamable-http-transport.js +58 -0
  198. package/dist/mcp-server/transports/streamable-http-transport.js.map +1 -0
  199. package/dist/services/cm360/cm360-http-client.d.ts +12 -0
  200. package/dist/services/cm360/cm360-http-client.d.ts.map +1 -0
  201. package/dist/services/cm360/cm360-http-client.js +77 -0
  202. package/dist/services/cm360/cm360-http-client.js.map +1 -0
  203. package/dist/services/cm360/cm360-reporting-service.d.ts +50 -0
  204. package/dist/services/cm360/cm360-reporting-service.d.ts.map +1 -0
  205. package/dist/services/cm360/cm360-reporting-service.js +123 -0
  206. package/dist/services/cm360/cm360-reporting-service.js.map +1 -0
  207. package/dist/services/cm360/cm360-service.d.ts +60 -0
  208. package/dist/services/cm360/cm360-service.d.ts.map +1 -0
  209. package/dist/services/cm360/cm360-service.js +146 -0
  210. package/dist/services/cm360/cm360-service.js.map +1 -0
  211. package/dist/services/session-services.d.ts +16 -0
  212. package/dist/services/session-services.d.ts.map +1 -0
  213. package/dist/services/session-services.js +15 -0
  214. package/dist/services/session-services.js.map +1 -0
  215. package/dist/types-global/mcp.d.ts +2 -0
  216. package/dist/types-global/mcp.d.ts.map +1 -0
  217. package/dist/types-global/mcp.js +2 -0
  218. package/dist/types-global/mcp.js.map +1 -0
  219. package/dist/utils/errors/index.d.ts +2 -0
  220. package/dist/utils/errors/index.d.ts.map +1 -0
  221. package/dist/utils/errors/index.js +2 -0
  222. package/dist/utils/errors/index.js.map +1 -0
  223. package/dist/utils/platform.d.ts +3 -0
  224. package/dist/utils/platform.d.ts.map +1 -0
  225. package/dist/utils/platform.js +5 -0
  226. package/dist/utils/platform.js.map +1 -0
  227. package/dist/utils/security/rate-limiter.d.ts +3 -0
  228. package/dist/utils/security/rate-limiter.d.ts.map +1 -0
  229. package/dist/utils/security/rate-limiter.js +5 -0
  230. package/dist/utils/security/rate-limiter.js.map +1 -0
  231. package/dist/utils/telemetry/index.d.ts +2 -0
  232. package/dist/utils/telemetry/index.d.ts.map +1 -0
  233. package/dist/utils/telemetry/index.js +2 -0
  234. package/dist/utils/telemetry/index.js.map +1 -0
  235. package/dist/utils/telemetry/tracing.d.ts +3 -0
  236. package/dist/utils/telemetry/tracing.d.ts.map +1 -0
  237. package/dist/utils/telemetry/tracing.js +4 -0
  238. package/dist/utils/telemetry/tracing.js.map +1 -0
  239. package/package.json +58 -0
@@ -0,0 +1,143 @@
1
+ import { z } from "zod";
2
+ import { resolveSessionServices } from "../utils/resolve-session.js";
3
+ import { buildTypedReportConfig, CM360DatePresetSchema, CM360ReportTypeSchema, ensureReportSupportsBreakdowns, genericCriteriaSchema, getReportCriteriaFromConfig, validateTypedCriteriaUsage, } from "../utils/report-config.js";
4
+ const TOOL_NAME = "cm360_get_report_breakdowns";
5
+ const TOOL_TITLE = "Get CM360 Report with Breakdowns";
6
+ const TOOL_DESCRIPTION = `Create and run a CM360 report with additional breakdown dimensions (blocking).
7
+
8
+ Like \`cm360_get_report\` but merges \`breakdownDimensions\` into the report criteria alongside any
9
+ dimensions already specified in \`criteria\`. Use this to segment results by device, date, geography,
10
+ creative, or any other CM360 dimension.
11
+
12
+ **Common breakdown dimensions:** date, campaign, advertiser, site, creative, creativeType, device, country
13
+
14
+ This may take 30-120 seconds depending on report complexity.
15
+
16
+ Returns a \`downloadUrl\`. Use \`cm360_download_report\` with \`includeComputedMetrics: true\` to fetch the CSV data with computed CPA, ROAS, CPM, CTR, CPC appended.`;
17
+ export const GetReportBreakdownsInputSchema = z
18
+ .object({
19
+ profileId: z.string().min(1).describe("CM360 User Profile ID"),
20
+ name: z.string().describe("Name for the report"),
21
+ type: CM360ReportTypeSchema.describe("Report type"),
22
+ breakdownDimensions: z
23
+ .array(z.string().min(1))
24
+ .min(1)
25
+ .describe("Dimension names to break down by (e.g., ['date', 'device', 'country']). These are merged into criteria.dimensions."),
26
+ datePreset: CM360DatePresetSchema.optional().describe("Preset date range. Injected into the correct report criteria dateRange when not already set"),
27
+ criteria: genericCriteriaSchema.optional().describe("Criteria for STANDARD reports"),
28
+ reachCriteria: genericCriteriaSchema.optional().describe("Criteria for REACH reports"),
29
+ floodlightCriteria: genericCriteriaSchema
30
+ .optional()
31
+ .describe("Criteria for FLOODLIGHT reports"),
32
+ crossMediaReachCriteria: genericCriteriaSchema
33
+ .optional()
34
+ .describe("Criteria for CROSS_MEDIA_REACH reports"),
35
+ additionalConfig: z
36
+ .record(z.any())
37
+ .optional()
38
+ .describe("Additional report configuration fields (schedule, delivery, etc.)"),
39
+ })
40
+ .superRefine((input, ctx) => {
41
+ validateTypedCriteriaUsage(input, ctx);
42
+ if (input.type === "PATH_TO_CONVERSION") {
43
+ ctx.addIssue({
44
+ code: z.ZodIssueCode.custom,
45
+ path: ["type"],
46
+ message: "cm360_get_report_breakdowns does not support PATH_TO_CONVERSION",
47
+ });
48
+ }
49
+ })
50
+ .describe("Parameters for generating a CM360 report with breakdown dimensions");
51
+ export const GetReportBreakdownsOutputSchema = z
52
+ .object({
53
+ reportId: z.string().describe("Report ID"),
54
+ fileId: z.string().describe("Report file ID"),
55
+ file: z.record(z.any()).describe("Report file details"),
56
+ downloadUrl: z.string().optional().describe("URL to download report results"),
57
+ appliedDimensions: z.array(z.string()).describe("All dimension names used in the report"),
58
+ timestamp: z.string().datetime(),
59
+ })
60
+ .describe("Report with breakdowns result");
61
+ export async function getReportBreakdownsLogic(input, context, sdkContext) {
62
+ const { cm360ReportingService } = resolveSessionServices(sdkContext);
63
+ const criteriaField = ensureReportSupportsBreakdowns(input.type);
64
+ const baseCriteria = (getReportCriteriaFromConfig(input, input.type) ?? {});
65
+ const existingDimensions = baseCriteria?.dimensions ?? [];
66
+ const existingDimensionNames = new Set(existingDimensions.map((d) => d.name));
67
+ const breakdownDimensionObjects = input.breakdownDimensions
68
+ .filter((d) => !existingDimensionNames.has(d))
69
+ .map((d) => ({ name: d }));
70
+ const mergedDimensions = [...existingDimensions, ...breakdownDimensionObjects];
71
+ const mergedCriteria = {
72
+ ...baseCriteria,
73
+ dimensions: mergedDimensions,
74
+ };
75
+ const reportConfig = buildTypedReportConfig({
76
+ ...input,
77
+ [criteriaField]: mergedCriteria,
78
+ });
79
+ const result = (await cm360ReportingService.runReport(input.profileId, reportConfig, context));
80
+ return {
81
+ reportId: result.reportId,
82
+ fileId: result.fileId,
83
+ file: result.file || {},
84
+ downloadUrl: result.downloadUrl,
85
+ appliedDimensions: mergedDimensions.map((d) => d.name),
86
+ timestamp: new Date().toISOString(),
87
+ };
88
+ }
89
+ export function getReportBreakdownsResponseFormatter(result) {
90
+ const downloadInfo = result.downloadUrl
91
+ ? `\n\nDownload URL: ${result.downloadUrl}`
92
+ : "\n\nNo download URL available yet.";
93
+ return [
94
+ {
95
+ type: "text",
96
+ text: `Report generated: ${result.reportId} (file: ${result.fileId})\nApplied dimensions: ${result.appliedDimensions.join(", ")}${downloadInfo}\n\nFile details:\n${JSON.stringify(result.file, null, 2)}\n\nTimestamp: ${result.timestamp}`,
97
+ },
98
+ ];
99
+ }
100
+ export const getReportBreakdownsTool = {
101
+ name: TOOL_NAME,
102
+ title: TOOL_TITLE,
103
+ description: TOOL_DESCRIPTION,
104
+ inputSchema: GetReportBreakdownsInputSchema,
105
+ outputSchema: GetReportBreakdownsOutputSchema,
106
+ annotations: {
107
+ readOnlyHint: true,
108
+ openWorldHint: true,
109
+ destructiveHint: false,
110
+ idempotentHint: false,
111
+ },
112
+ inputExamples: [
113
+ {
114
+ label: "Standard report broken down by date and device using datePreset",
115
+ input: {
116
+ profileId: "123456",
117
+ name: "Campaign Performance by Device - Last 7 Days",
118
+ type: "STANDARD",
119
+ breakdownDimensions: ["date", "device"],
120
+ datePreset: "LAST_7_DAYS",
121
+ criteria: {
122
+ metricNames: ["impressions", "clicks", "mediaCost"],
123
+ },
124
+ },
125
+ },
126
+ {
127
+ label: "Floodlight report broken down by country and creative",
128
+ input: {
129
+ profileId: "123456",
130
+ name: "Floodlight by Country - MTD",
131
+ type: "FLOODLIGHT",
132
+ breakdownDimensions: ["country", "creative"],
133
+ floodlightCriteria: {
134
+ dateRange: { relativeDateRange: "MONTH_TO_DATE" },
135
+ metricNames: ["floodlightImpressions", "floodlightClicks", "floodlightRevenue"],
136
+ },
137
+ },
138
+ },
139
+ ],
140
+ logic: getReportBreakdownsLogic,
141
+ responseFormatter: getReportBreakdownsResponseFormatter,
142
+ };
143
+ //# sourceMappingURL=get-report-breakdowns.tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-report-breakdowns.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-report-breakdowns.tool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,206 @@
1
+ import { z } from "zod";
2
+ import type { RequestContext, McpTextContent } from "@cesteral/shared";
3
+ import type { SdkContext } from "@cesteral/shared";
4
+ export declare const GetReportInputSchema: z.ZodEffects<z.ZodObject<{
5
+ profileId: z.ZodString;
6
+ name: z.ZodString;
7
+ type: z.ZodEnum<["STANDARD", "REACH", "PATH_TO_CONVERSION", "FLOODLIGHT", "CROSS_MEDIA_REACH"]>;
8
+ datePreset: z.ZodOptional<z.ZodEnum<["TODAY", "YESTERDAY", "LAST_7_DAYS", "LAST_14_DAYS", "LAST_30_DAYS", "THIS_MONTH", "LAST_MONTH", "LAST_90_DAYS"]>>;
9
+ criteria: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
10
+ reachCriteria: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
11
+ pathToConversionCriteria: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
12
+ floodlightCriteria: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
13
+ crossMediaReachCriteria: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
14
+ additionalConfig: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
15
+ }, "strip", z.ZodTypeAny, {
16
+ type: "STANDARD" | "REACH" | "PATH_TO_CONVERSION" | "FLOODLIGHT" | "CROSS_MEDIA_REACH";
17
+ name: string;
18
+ profileId: string;
19
+ criteria?: Record<string, any> | undefined;
20
+ reachCriteria?: Record<string, any> | undefined;
21
+ pathToConversionCriteria?: Record<string, any> | undefined;
22
+ floodlightCriteria?: Record<string, any> | undefined;
23
+ crossMediaReachCriteria?: Record<string, any> | undefined;
24
+ datePreset?: "TODAY" | "YESTERDAY" | "LAST_7_DAYS" | "LAST_14_DAYS" | "LAST_30_DAYS" | "THIS_MONTH" | "LAST_MONTH" | "LAST_90_DAYS" | undefined;
25
+ additionalConfig?: Record<string, any> | undefined;
26
+ }, {
27
+ type: "STANDARD" | "REACH" | "PATH_TO_CONVERSION" | "FLOODLIGHT" | "CROSS_MEDIA_REACH";
28
+ name: string;
29
+ profileId: string;
30
+ criteria?: Record<string, any> | undefined;
31
+ reachCriteria?: Record<string, any> | undefined;
32
+ pathToConversionCriteria?: Record<string, any> | undefined;
33
+ floodlightCriteria?: Record<string, any> | undefined;
34
+ crossMediaReachCriteria?: Record<string, any> | undefined;
35
+ datePreset?: "TODAY" | "YESTERDAY" | "LAST_7_DAYS" | "LAST_14_DAYS" | "LAST_30_DAYS" | "THIS_MONTH" | "LAST_MONTH" | "LAST_90_DAYS" | undefined;
36
+ additionalConfig?: Record<string, any> | undefined;
37
+ }>, {
38
+ type: "STANDARD" | "REACH" | "PATH_TO_CONVERSION" | "FLOODLIGHT" | "CROSS_MEDIA_REACH";
39
+ name: string;
40
+ profileId: string;
41
+ criteria?: Record<string, any> | undefined;
42
+ reachCriteria?: Record<string, any> | undefined;
43
+ pathToConversionCriteria?: Record<string, any> | undefined;
44
+ floodlightCriteria?: Record<string, any> | undefined;
45
+ crossMediaReachCriteria?: Record<string, any> | undefined;
46
+ datePreset?: "TODAY" | "YESTERDAY" | "LAST_7_DAYS" | "LAST_14_DAYS" | "LAST_30_DAYS" | "THIS_MONTH" | "LAST_MONTH" | "LAST_90_DAYS" | undefined;
47
+ additionalConfig?: Record<string, any> | undefined;
48
+ }, {
49
+ type: "STANDARD" | "REACH" | "PATH_TO_CONVERSION" | "FLOODLIGHT" | "CROSS_MEDIA_REACH";
50
+ name: string;
51
+ profileId: string;
52
+ criteria?: Record<string, any> | undefined;
53
+ reachCriteria?: Record<string, any> | undefined;
54
+ pathToConversionCriteria?: Record<string, any> | undefined;
55
+ floodlightCriteria?: Record<string, any> | undefined;
56
+ crossMediaReachCriteria?: Record<string, any> | undefined;
57
+ datePreset?: "TODAY" | "YESTERDAY" | "LAST_7_DAYS" | "LAST_14_DAYS" | "LAST_30_DAYS" | "THIS_MONTH" | "LAST_MONTH" | "LAST_90_DAYS" | undefined;
58
+ additionalConfig?: Record<string, any> | undefined;
59
+ }>;
60
+ export declare const GetReportOutputSchema: z.ZodObject<{
61
+ reportId: z.ZodString;
62
+ fileId: z.ZodString;
63
+ file: z.ZodRecord<z.ZodString, z.ZodAny>;
64
+ downloadUrl: z.ZodOptional<z.ZodString>;
65
+ timestamp: z.ZodString;
66
+ }, "strip", z.ZodTypeAny, {
67
+ reportId: string;
68
+ fileId: string;
69
+ file: Record<string, any>;
70
+ timestamp: string;
71
+ downloadUrl?: string | undefined;
72
+ }, {
73
+ reportId: string;
74
+ fileId: string;
75
+ file: Record<string, any>;
76
+ timestamp: string;
77
+ downloadUrl?: string | undefined;
78
+ }>;
79
+ type GetReportInput = z.infer<typeof GetReportInputSchema>;
80
+ type GetReportOutput = z.infer<typeof GetReportOutputSchema>;
81
+ export declare function getReportLogic(input: GetReportInput, context: RequestContext, sdkContext?: SdkContext): Promise<GetReportOutput>;
82
+ export declare function getReportResponseFormatter(result: GetReportOutput): McpTextContent[];
83
+ export declare const getReportTool: {
84
+ name: string;
85
+ title: string;
86
+ description: string;
87
+ inputSchema: z.ZodEffects<z.ZodObject<{
88
+ profileId: z.ZodString;
89
+ name: z.ZodString;
90
+ type: z.ZodEnum<["STANDARD", "REACH", "PATH_TO_CONVERSION", "FLOODLIGHT", "CROSS_MEDIA_REACH"]>;
91
+ datePreset: z.ZodOptional<z.ZodEnum<["TODAY", "YESTERDAY", "LAST_7_DAYS", "LAST_14_DAYS", "LAST_30_DAYS", "THIS_MONTH", "LAST_MONTH", "LAST_90_DAYS"]>>;
92
+ criteria: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
93
+ reachCriteria: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
94
+ pathToConversionCriteria: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
95
+ floodlightCriteria: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
96
+ crossMediaReachCriteria: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
97
+ additionalConfig: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
98
+ }, "strip", z.ZodTypeAny, {
99
+ type: "STANDARD" | "REACH" | "PATH_TO_CONVERSION" | "FLOODLIGHT" | "CROSS_MEDIA_REACH";
100
+ name: string;
101
+ profileId: string;
102
+ criteria?: Record<string, any> | undefined;
103
+ reachCriteria?: Record<string, any> | undefined;
104
+ pathToConversionCriteria?: Record<string, any> | undefined;
105
+ floodlightCriteria?: Record<string, any> | undefined;
106
+ crossMediaReachCriteria?: Record<string, any> | undefined;
107
+ datePreset?: "TODAY" | "YESTERDAY" | "LAST_7_DAYS" | "LAST_14_DAYS" | "LAST_30_DAYS" | "THIS_MONTH" | "LAST_MONTH" | "LAST_90_DAYS" | undefined;
108
+ additionalConfig?: Record<string, any> | undefined;
109
+ }, {
110
+ type: "STANDARD" | "REACH" | "PATH_TO_CONVERSION" | "FLOODLIGHT" | "CROSS_MEDIA_REACH";
111
+ name: string;
112
+ profileId: string;
113
+ criteria?: Record<string, any> | undefined;
114
+ reachCriteria?: Record<string, any> | undefined;
115
+ pathToConversionCriteria?: Record<string, any> | undefined;
116
+ floodlightCriteria?: Record<string, any> | undefined;
117
+ crossMediaReachCriteria?: Record<string, any> | undefined;
118
+ datePreset?: "TODAY" | "YESTERDAY" | "LAST_7_DAYS" | "LAST_14_DAYS" | "LAST_30_DAYS" | "THIS_MONTH" | "LAST_MONTH" | "LAST_90_DAYS" | undefined;
119
+ additionalConfig?: Record<string, any> | undefined;
120
+ }>, {
121
+ type: "STANDARD" | "REACH" | "PATH_TO_CONVERSION" | "FLOODLIGHT" | "CROSS_MEDIA_REACH";
122
+ name: string;
123
+ profileId: string;
124
+ criteria?: Record<string, any> | undefined;
125
+ reachCriteria?: Record<string, any> | undefined;
126
+ pathToConversionCriteria?: Record<string, any> | undefined;
127
+ floodlightCriteria?: Record<string, any> | undefined;
128
+ crossMediaReachCriteria?: Record<string, any> | undefined;
129
+ datePreset?: "TODAY" | "YESTERDAY" | "LAST_7_DAYS" | "LAST_14_DAYS" | "LAST_30_DAYS" | "THIS_MONTH" | "LAST_MONTH" | "LAST_90_DAYS" | undefined;
130
+ additionalConfig?: Record<string, any> | undefined;
131
+ }, {
132
+ type: "STANDARD" | "REACH" | "PATH_TO_CONVERSION" | "FLOODLIGHT" | "CROSS_MEDIA_REACH";
133
+ name: string;
134
+ profileId: string;
135
+ criteria?: Record<string, any> | undefined;
136
+ reachCriteria?: Record<string, any> | undefined;
137
+ pathToConversionCriteria?: Record<string, any> | undefined;
138
+ floodlightCriteria?: Record<string, any> | undefined;
139
+ crossMediaReachCriteria?: Record<string, any> | undefined;
140
+ datePreset?: "TODAY" | "YESTERDAY" | "LAST_7_DAYS" | "LAST_14_DAYS" | "LAST_30_DAYS" | "THIS_MONTH" | "LAST_MONTH" | "LAST_90_DAYS" | undefined;
141
+ additionalConfig?: Record<string, any> | undefined;
142
+ }>;
143
+ outputSchema: z.ZodObject<{
144
+ reportId: z.ZodString;
145
+ fileId: z.ZodString;
146
+ file: z.ZodRecord<z.ZodString, z.ZodAny>;
147
+ downloadUrl: z.ZodOptional<z.ZodString>;
148
+ timestamp: z.ZodString;
149
+ }, "strip", z.ZodTypeAny, {
150
+ reportId: string;
151
+ fileId: string;
152
+ file: Record<string, any>;
153
+ timestamp: string;
154
+ downloadUrl?: string | undefined;
155
+ }, {
156
+ reportId: string;
157
+ fileId: string;
158
+ file: Record<string, any>;
159
+ timestamp: string;
160
+ downloadUrl?: string | undefined;
161
+ }>;
162
+ annotations: {
163
+ readOnlyHint: boolean;
164
+ openWorldHint: boolean;
165
+ destructiveHint: boolean;
166
+ idempotentHint: boolean;
167
+ };
168
+ inputExamples: ({
169
+ label: string;
170
+ input: {
171
+ profileId: string;
172
+ name: string;
173
+ type: string;
174
+ datePreset: string;
175
+ criteria: {
176
+ dimensions: {
177
+ name: string;
178
+ }[];
179
+ metricNames: string[];
180
+ };
181
+ floodlightCriteria?: undefined;
182
+ };
183
+ } | {
184
+ label: string;
185
+ input: {
186
+ profileId: string;
187
+ name: string;
188
+ type: string;
189
+ floodlightCriteria: {
190
+ dateRange: {
191
+ relativeDateRange: string;
192
+ };
193
+ dimensions: {
194
+ name: string;
195
+ }[];
196
+ metricNames: string[];
197
+ };
198
+ datePreset?: undefined;
199
+ criteria?: undefined;
200
+ };
201
+ })[];
202
+ logic: typeof getReportLogic;
203
+ responseFormatter: typeof getReportResponseFormatter;
204
+ };
205
+ export {};
206
+ //# sourceMappingURL=get-report.tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-report.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-report.tool.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAsBnD,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyBsB,CAAC;AAExD,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;EAQK,CAAC;AAExC,KAAK,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAC3D,KAAK,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAE7D,wBAAsB,cAAc,CAClC,KAAK,EAAE,cAAc,EACrB,OAAO,EAAE,cAAc,EACvB,UAAU,CAAC,EAAE,UAAU,GACtB,OAAO,CAAC,eAAe,CAAC,CAkB1B;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,eAAe,GAAG,cAAc,EAAE,CAWpF;AAED,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0CzB,CAAC"}
@@ -0,0 +1,114 @@
1
+ import { z } from "zod";
2
+ import { resolveSessionServices } from "../utils/resolve-session.js";
3
+ import { buildTypedReportConfig, CM360DatePresetSchema, CM360ReportTypeSchema, genericCriteriaSchema, validateTypedCriteriaUsage, } from "../utils/report-config.js";
4
+ const TOOL_NAME = "cm360_get_report";
5
+ const TOOL_TITLE = "Get CM360 Report";
6
+ const TOOL_DESCRIPTION = `Create and run a CM360 report, polling until completion (blocking).
7
+
8
+ Uses the CM360 Reports API async workflow:
9
+ 1. Create report definition
10
+ 2. Trigger execution
11
+ 3. Poll until REPORT_AVAILABLE
12
+ 4. Return download URL
13
+
14
+ This may take 30-120 seconds depending on report complexity.`;
15
+ export const GetReportInputSchema = z
16
+ .object({
17
+ profileId: z.string().min(1).describe("CM360 User Profile ID"),
18
+ name: z.string().describe("Name for the report"),
19
+ type: CM360ReportTypeSchema.describe("Report type"),
20
+ datePreset: CM360DatePresetSchema.optional().describe("Preset date range. Injected into the correct report criteria dateRange when not already set"),
21
+ criteria: genericCriteriaSchema.optional().describe("Criteria for STANDARD reports"),
22
+ reachCriteria: genericCriteriaSchema.optional().describe("Criteria for REACH reports"),
23
+ pathToConversionCriteria: genericCriteriaSchema
24
+ .optional()
25
+ .describe("Criteria for PATH_TO_CONVERSION reports"),
26
+ floodlightCriteria: genericCriteriaSchema
27
+ .optional()
28
+ .describe("Criteria for FLOODLIGHT reports"),
29
+ crossMediaReachCriteria: genericCriteriaSchema
30
+ .optional()
31
+ .describe("Criteria for CROSS_MEDIA_REACH reports"),
32
+ additionalConfig: z
33
+ .record(z.any())
34
+ .optional()
35
+ .describe("Additional report configuration fields (schedule, delivery, etc.)"),
36
+ })
37
+ .superRefine(validateTypedCriteriaUsage)
38
+ .describe("Parameters for generating a CM360 report");
39
+ export const GetReportOutputSchema = z
40
+ .object({
41
+ reportId: z.string().describe("Report ID"),
42
+ fileId: z.string().describe("Report file ID"),
43
+ file: z.record(z.any()).describe("Report file details"),
44
+ downloadUrl: z.string().optional().describe("URL to download report results"),
45
+ timestamp: z.string().datetime(),
46
+ })
47
+ .describe("Report generation result");
48
+ export async function getReportLogic(input, context, sdkContext) {
49
+ const { cm360ReportingService } = resolveSessionServices(sdkContext);
50
+ const reportConfig = buildTypedReportConfig(input);
51
+ const result = (await cm360ReportingService.runReport(input.profileId, reportConfig, context));
52
+ return {
53
+ reportId: result.reportId,
54
+ fileId: result.fileId,
55
+ file: result.file || {},
56
+ downloadUrl: result.downloadUrl,
57
+ timestamp: new Date().toISOString(),
58
+ };
59
+ }
60
+ export function getReportResponseFormatter(result) {
61
+ const downloadInfo = result.downloadUrl
62
+ ? `\n\nDownload URL: ${result.downloadUrl}`
63
+ : "\n\nNo download URL available yet.";
64
+ return [
65
+ {
66
+ type: "text",
67
+ text: `Report generated: ${result.reportId} (file: ${result.fileId})${downloadInfo}\n\nFile details:\n${JSON.stringify(result.file, null, 2)}\n\nTimestamp: ${result.timestamp}`,
68
+ },
69
+ ];
70
+ }
71
+ export const getReportTool = {
72
+ name: TOOL_NAME,
73
+ title: TOOL_TITLE,
74
+ description: TOOL_DESCRIPTION,
75
+ inputSchema: GetReportInputSchema,
76
+ outputSchema: GetReportOutputSchema,
77
+ annotations: {
78
+ readOnlyHint: true,
79
+ openWorldHint: true,
80
+ destructiveHint: false,
81
+ idempotentHint: false,
82
+ },
83
+ inputExamples: [
84
+ {
85
+ label: "Standard campaign delivery report using datePreset",
86
+ input: {
87
+ profileId: "123456",
88
+ name: "Campaign Delivery - Last 7 Days",
89
+ type: "STANDARD",
90
+ datePreset: "LAST_7_DAYS",
91
+ criteria: {
92
+ dimensions: [{ name: "campaign" }, { name: "date" }],
93
+ metricNames: ["impressions", "clicks", "totalConversions", "mediaCost"],
94
+ },
95
+ },
96
+ },
97
+ {
98
+ label: "Floodlight conversion report",
99
+ input: {
100
+ profileId: "123456",
101
+ name: "Floodlight Conversions MTD",
102
+ type: "FLOODLIGHT",
103
+ floodlightCriteria: {
104
+ dateRange: { relativeDateRange: "MONTH_TO_DATE" },
105
+ dimensions: [{ name: "activity" }, { name: "campaign" }],
106
+ metricNames: ["floodlightImpressions", "floodlightClicks", "floodlightRevenue"],
107
+ },
108
+ },
109
+ },
110
+ ],
111
+ logic: getReportLogic,
112
+ responseFormatter: getReportResponseFormatter,
113
+ };
114
+ //# sourceMappingURL=get-report.tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-report.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-report.tool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ export { listUserProfilesTool } from "./list-user-profiles.tool.js";
2
+ export { listEntitiesTool } from "./list-entities.tool.js";
3
+ export { getEntityTool } from "./get-entity.tool.js";
4
+ export { createEntityTool } from "./create-entity.tool.js";
5
+ export { updateEntityTool } from "./update-entity.tool.js";
6
+ export { deleteEntityTool } from "./delete-entity.tool.js";
7
+ export { validateEntityTool } from "./validate-entity.tool.js";
8
+ export { getReportTool } from "./get-report.tool.js";
9
+ export { getReportBreakdownsTool } from "./get-report-breakdowns.tool.js";
10
+ export { submitReportTool } from "./submit-report.tool.js";
11
+ export { checkReportStatusTool } from "./check-report-status.tool.js";
12
+ export { downloadReportTool } from "./download-report.tool.js";
13
+ export { createReportScheduleTool } from "./create-report-schedule.tool.js";
14
+ export { listReportSchedulesTool } from "./list-report-schedules.tool.js";
15
+ export { deleteReportScheduleTool } from "./delete-report-schedule.tool.js";
16
+ export { bulkUpdateStatusTool } from "./bulk-update-status.tool.js";
17
+ export { bulkCreateEntitiesTool } from "./bulk-create-entities.tool.js";
18
+ export { bulkUpdateEntitiesTool } from "./bulk-update-entities.tool.js";
19
+ export { getAdPreviewTool } from "./get-ad-preview.tool.js";
20
+ export { listTargetingOptionsTool } from "./list-targeting-options.tool.js";
21
+ import { type ToolDefinitionForFactory } from "@cesteral/shared";
22
+ export declare const allTools: ToolDefinitionForFactory[];
23
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/index.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAsB5E,OAAO,EAGL,KAAK,wBAAwB,EAC9B,MAAM,kBAAkB,CAAC;AAoC1B,eAAO,MAAM,QAAQ,EAAE,wBAAwB,EAG9C,CAAC"}
@@ -0,0 +1,69 @@
1
+ export { listUserProfilesTool } from "./list-user-profiles.tool.js";
2
+ export { listEntitiesTool } from "./list-entities.tool.js";
3
+ export { getEntityTool } from "./get-entity.tool.js";
4
+ export { createEntityTool } from "./create-entity.tool.js";
5
+ export { updateEntityTool } from "./update-entity.tool.js";
6
+ export { deleteEntityTool } from "./delete-entity.tool.js";
7
+ export { validateEntityTool } from "./validate-entity.tool.js";
8
+ export { getReportTool } from "./get-report.tool.js";
9
+ export { getReportBreakdownsTool } from "./get-report-breakdowns.tool.js";
10
+ export { submitReportTool } from "./submit-report.tool.js";
11
+ export { checkReportStatusTool } from "./check-report-status.tool.js";
12
+ export { downloadReportTool } from "./download-report.tool.js";
13
+ export { createReportScheduleTool } from "./create-report-schedule.tool.js";
14
+ export { listReportSchedulesTool } from "./list-report-schedules.tool.js";
15
+ export { deleteReportScheduleTool } from "./delete-report-schedule.tool.js";
16
+ export { bulkUpdateStatusTool } from "./bulk-update-status.tool.js";
17
+ export { bulkCreateEntitiesTool } from "./bulk-create-entities.tool.js";
18
+ export { bulkUpdateEntitiesTool } from "./bulk-update-entities.tool.js";
19
+ export { getAdPreviewTool } from "./get-ad-preview.tool.js";
20
+ export { listTargetingOptionsTool } from "./list-targeting-options.tool.js";
21
+ import { listUserProfilesTool } from "./list-user-profiles.tool.js";
22
+ import { listEntitiesTool } from "./list-entities.tool.js";
23
+ import { getEntityTool } from "./get-entity.tool.js";
24
+ import { createEntityTool } from "./create-entity.tool.js";
25
+ import { updateEntityTool } from "./update-entity.tool.js";
26
+ import { deleteEntityTool } from "./delete-entity.tool.js";
27
+ import { validateEntityTool } from "./validate-entity.tool.js";
28
+ import { getReportTool } from "./get-report.tool.js";
29
+ import { getReportBreakdownsTool } from "./get-report-breakdowns.tool.js";
30
+ import { submitReportTool } from "./submit-report.tool.js";
31
+ import { checkReportStatusTool } from "./check-report-status.tool.js";
32
+ import { downloadReportTool } from "./download-report.tool.js";
33
+ import { createReportScheduleTool } from "./create-report-schedule.tool.js";
34
+ import { listReportSchedulesTool } from "./list-report-schedules.tool.js";
35
+ import { deleteReportScheduleTool } from "./delete-report-schedule.tool.js";
36
+ import { bulkUpdateStatusTool } from "./bulk-update-status.tool.js";
37
+ import { bulkCreateEntitiesTool } from "./bulk-create-entities.tool.js";
38
+ import { bulkUpdateEntitiesTool } from "./bulk-update-entities.tool.js";
39
+ import { getAdPreviewTool } from "./get-ad-preview.tool.js";
40
+ import { listTargetingOptionsTool } from "./list-targeting-options.tool.js";
41
+ import { conformanceTools, createToolSearchTool, } from "@cesteral/shared";
42
+ const productionTools = [
43
+ listUserProfilesTool,
44
+ listEntitiesTool,
45
+ getEntityTool,
46
+ createEntityTool,
47
+ updateEntityTool,
48
+ deleteEntityTool,
49
+ validateEntityTool,
50
+ getReportTool,
51
+ getReportBreakdownsTool,
52
+ submitReportTool,
53
+ checkReportStatusTool,
54
+ downloadReportTool,
55
+ createReportScheduleTool,
56
+ listReportSchedulesTool,
57
+ deleteReportScheduleTool,
58
+ bulkUpdateStatusTool,
59
+ bulkCreateEntitiesTool,
60
+ bulkUpdateEntitiesTool,
61
+ getAdPreviewTool,
62
+ listTargetingOptionsTool,
63
+ createToolSearchTool({ platform: "cm360", getTools: () => allTools }),
64
+ ];
65
+ export const allTools = [
66
+ ...productionTools,
67
+ ...(process.env.MCP_INCLUDE_CONFORMANCE_TOOLS === "true" ? conformanceTools : []),
68
+ ];
69
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/index.ts"],"names":[],"mappings":"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"}