@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 @@
1
+ {"version":3,"file":"cross-platform-campaign-setup.prompt.js","sourceRoot":"","sources":["../../../../src/mcp-server/prompts/definitions/cross-platform-campaign-setup.prompt.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,MAAM,gCAAgC,GAAW;IACtD,IAAI,EAAE,+BAA+B;IACrC,WAAW,EAAE,mFAAmF;IAChG,SAAS,EAAE;QACT;YACE,IAAI,EAAE,aAAa;YACnB,WAAW,EAAE,qCAAqC;YAClD,QAAQ,EAAE,KAAK;SAChB;QACD;YACE,IAAI,EAAE,WAAW;YACjB,WAAW,EAAE,0DAA0D;YACvE,QAAQ,EAAE,KAAK;SAChB;KACF;CACF,CAAC;AAEF,MAAM,UAAU,oCAAoC,CAAC,IAA6B;IAChF,MAAM,WAAW,GAAG,IAAI,EAAE,WAAW,IAAI,eAAe,CAAC;IACzD,MAAM,SAAS,GAAG,IAAI,EAAE,SAAS,IAAI,YAAY,CAAC;IAClD,OAAO;;cAEK,WAAW,iBAAiB,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkDlD,CAAC;AACF,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { Prompt } from "@modelcontextprotocol/sdk/types.js";
2
+ export declare const crossPlatformPerformancePrompt: Prompt;
3
+ export declare function getCrossPlatformPerformanceMessage(args?: Record<string, string>): string;
4
+ //# sourceMappingURL=cross-platform-performance.prompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cross-platform-performance.prompt.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/prompts/definitions/cross-platform-performance.prompt.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAEjE,eAAO,MAAM,8BAA8B,EAAE,MAU5C,CAAC;AAEF,wBAAgB,kCAAkC,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CA6DxF"}
@@ -0,0 +1,74 @@
1
+ export const crossPlatformPerformancePrompt = {
2
+ name: "cross_platform_performance_comparison",
3
+ description: "Cross-platform performance comparison and budget reallocation guide",
4
+ arguments: [
5
+ {
6
+ name: "dateRange",
7
+ description: "Date range (e.g., LAST_7_DAYS, LAST_30_DAYS, or custom dates)",
8
+ required: false,
9
+ },
10
+ ],
11
+ };
12
+ export function getCrossPlatformPerformanceMessage(args) {
13
+ const dateRange = args?.dateRange || "LAST_7_DAYS";
14
+ return `# Cross-Platform Performance Comparison
15
+
16
+ ## Date Range: ${dateRange}
17
+
18
+ ## Step 1: Gather Metrics Per Platform
19
+
20
+ ### DV360 (via dbm-mcp)
21
+ \`\`\`json
22
+ { "tool": "dbm_get_performance_metrics", "params": { "campaignId": "CID", "advertiserId": "AID", "dateRange": "${dateRange}" } }
23
+ \`\`\`
24
+
25
+ ### Google Ads (via gads-mcp)
26
+ \`\`\`json
27
+ { "tool": "gads_get_insights", "params": { "customerId": "CID", "entityType": "campaign", "dateRange": "${dateRange}" } }
28
+ \`\`\`
29
+
30
+ ### Meta (via meta-mcp)
31
+ \`\`\`json
32
+ { "tool": "meta_get_insights", "params": { "entityId": "CAMPAIGN_ID", "datePreset": "last_7d", "fields": ["impressions", "clicks", "spend", "actions"] } }
33
+ \`\`\`
34
+
35
+ ### CM360 (via cm360-mcp)
36
+ \`\`\`json
37
+ { "tool": "cm360_get_report", "params": { "profileId": "PID", "reportType": "STANDARD", "dateRange": { "startDate": "2026-03-05", "endDate": "2026-03-12" }, "dimensions": ["campaign"], "metrics": ["impressions", "clicks", "totalConversions"] } }
38
+ \`\`\`
39
+
40
+ ### SA360 (via sa360-mcp)
41
+ \`\`\`json
42
+ { "tool": "sa360_get_insights", "params": { "customerId": "CID", "entityType": "campaign", "dateRange": "${dateRange}" } }
43
+ \`\`\`
44
+
45
+ ## Step 2: Normalize Metrics
46
+
47
+ | Metric | Formula |
48
+ |--------|---------|
49
+ | CPM | (Spend / Impressions) x 1000 |
50
+ | CPC | Spend / Clicks |
51
+ | CTR | Clicks / Impressions |
52
+ | CPA | Spend / Conversions |
53
+ | ROAS | Revenue / Spend |
54
+
55
+ **Budget unit conversion**: DV360/GAds use micros (divide by 1,000,000), Meta/LinkedIn use cents (divide by 100), TTD/TikTok use dollars.
56
+
57
+ ## Step 3: Compare
58
+
59
+ | Platform | Impressions | Clicks | CTR | CPC | Conversions | CPA | ROAS |
60
+ |----------|-------------|--------|-----|-----|-------------|-----|------|
61
+ | DV360 | | | | | | | |
62
+ | Google Ads | | | | | | | |
63
+ | Meta | | | | | | | |
64
+ | CM360 | | | | | | | |
65
+ | SA360 | | | | | | | |
66
+
67
+ ## Step 4: Reallocate Budget
68
+
69
+ - **Winners** (lowest CPA or highest ROAS): Increase budget 20-30%
70
+ - **Average**: Hold steady
71
+ - **Underperformers**: Reduce by 20-30% or pause
72
+ `;
73
+ }
74
+ //# sourceMappingURL=cross-platform-performance.prompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cross-platform-performance.prompt.js","sourceRoot":"","sources":["../../../../src/mcp-server/prompts/definitions/cross-platform-performance.prompt.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,MAAM,8BAA8B,GAAW;IACpD,IAAI,EAAE,uCAAuC;IAC7C,WAAW,EAAE,qEAAqE;IAClF,SAAS,EAAE;QACT;YACE,IAAI,EAAE,WAAW;YACjB,WAAW,EAAE,+DAA+D;YAC5E,QAAQ,EAAE,KAAK;SAChB;KACF;CACF,CAAC;AAEF,MAAM,UAAU,kCAAkC,CAAC,IAA6B;IAC9E,MAAM,SAAS,GAAG,IAAI,EAAE,SAAS,IAAI,aAAa,CAAC;IACnD,OAAO;;iBAEQ,SAAS;;;;;;iHAMuF,SAAS;;;;;0GAKhB,SAAS;;;;;;;;;;;;;;;2GAeR,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8BnH,CAAC;AACF,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { Prompt } from "@modelcontextprotocol/sdk/types.js";
2
+ export declare const entityUpdateWorkflowPrompt: Prompt;
3
+ export declare function getEntityUpdateWorkflowMessage(args?: Record<string, string>): string;
4
+ //# sourceMappingURL=entity-update-workflow.prompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entity-update-workflow.prompt.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/prompts/definitions/entity-update-workflow.prompt.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAEjE,eAAO,MAAM,0BAA0B,EAAE,MAgBxC,CAAC;AAEF,wBAAgB,8BAA8B,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CA0EpF"}
@@ -0,0 +1,92 @@
1
+ export const entityUpdateWorkflowPrompt = {
2
+ name: "cm360_entity_update_workflow",
3
+ description: "Safe entity update workflow for CM360 (PUT semantics — full object required)",
4
+ arguments: [
5
+ {
6
+ name: "entityType",
7
+ description: "Entity type (campaign, placement, ad, creative, site, advertiser, floodlightActivity, floodlightConfiguration)",
8
+ required: true,
9
+ },
10
+ {
11
+ name: "entityId",
12
+ description: "Entity ID to update",
13
+ required: true,
14
+ },
15
+ ],
16
+ };
17
+ export function getEntityUpdateWorkflowMessage(args) {
18
+ const entityType = args?.entityType || "{entityType}";
19
+ const entityId = args?.entityId || "{entityId}";
20
+ return `# CM360 Entity Update Workflow
21
+
22
+ ## CRITICAL: CM360 uses PUT semantics
23
+ Unlike other platforms, CM360 requires the **full entity object** for updates. Missing fields will be reset to defaults.
24
+
25
+ ## Entity: ${entityType} (ID: ${entityId})
26
+
27
+ ## Step 1: Fetch Current State
28
+
29
+ \`\`\`json
30
+ {
31
+ "tool": "cm360_get_entity",
32
+ "params": {
33
+ "profileId": "PROFILE_ID",
34
+ "entityType": "${entityType}",
35
+ "entityId": "${entityId}"
36
+ }
37
+ }
38
+ \`\`\`
39
+
40
+ ## Step 2: Validate Changes (Dry Run)
41
+
42
+ \`\`\`json
43
+ {
44
+ "tool": "cm360_validate_entity",
45
+ "params": {
46
+ "entityType": "${entityType}",
47
+ "mode": "update",
48
+ "data": { "...full object with modifications..." }
49
+ }
50
+ }
51
+ \`\`\`
52
+
53
+ ## Step 3: Apply Update
54
+
55
+ Merge your changes into the full object from Step 1:
56
+
57
+ \`\`\`json
58
+ {
59
+ "tool": "cm360_update_entity",
60
+ "params": {
61
+ "profileId": "PROFILE_ID",
62
+ "entityType": "${entityType}",
63
+ "entityId": "${entityId}",
64
+ "data": { "...full merged object..." }
65
+ }
66
+ }
67
+ \`\`\`
68
+
69
+ ## Step 4: Verify
70
+
71
+ \`\`\`json
72
+ {
73
+ "tool": "cm360_get_entity",
74
+ "params": {
75
+ "profileId": "PROFILE_ID",
76
+ "entityType": "${entityType}",
77
+ "entityId": "${entityId}"
78
+ }
79
+ }
80
+ \`\`\`
81
+
82
+ ## Gotchas
83
+
84
+ | Issue | Solution |
85
+ |-------|----------|
86
+ | PUT replaces entire object | Always fetch then merge then update |
87
+ | Read-only fields rejected | Remove \`id\`, \`kind\`, \`accountId\` from payload |
88
+ | Status changes may cascade | Deactivating campaign affects placements/ads |
89
+ | Some entities can't be deleted | Use archived/inactive status instead |
90
+ `;
91
+ }
92
+ //# sourceMappingURL=entity-update-workflow.prompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entity-update-workflow.prompt.js","sourceRoot":"","sources":["../../../../src/mcp-server/prompts/definitions/entity-update-workflow.prompt.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,MAAM,0BAA0B,GAAW;IAChD,IAAI,EAAE,8BAA8B;IACpC,WAAW,EAAE,8EAA8E;IAC3F,SAAS,EAAE;QACT;YACE,IAAI,EAAE,YAAY;YAClB,WAAW,EACT,gHAAgH;YAClH,QAAQ,EAAE,IAAI;SACf;QACD;YACE,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,qBAAqB;YAClC,QAAQ,EAAE,IAAI;SACf;KACF;CACF,CAAC;AAEF,MAAM,UAAU,8BAA8B,CAAC,IAA6B;IAC1E,MAAM,UAAU,GAAG,IAAI,EAAE,UAAU,IAAI,cAAc,CAAC;IACtD,MAAM,QAAQ,GAAG,IAAI,EAAE,QAAQ,IAAI,YAAY,CAAC;IAChD,OAAO;;;;;aAKI,UAAU,SAAS,QAAQ;;;;;;;;;qBASnB,UAAU;mBACZ,QAAQ;;;;;;;;;;;qBAWN,UAAU;;;;;;;;;;;;;;;;qBAgBV,UAAU;mBACZ,QAAQ;;;;;;;;;;;;;qBAaN,UAAU;mBACZ,QAAQ;;;;;;;;;;;;;CAa1B,CAAC;AACF,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { Prompt } from "@modelcontextprotocol/sdk/types.js";
2
+ export declare const floodlightWorkflowPrompt: Prompt;
3
+ export declare function getFloodlightWorkflowMessage(args?: Record<string, string>): string;
4
+ //# sourceMappingURL=floodlight-workflow.prompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"floodlight-workflow.prompt.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/prompts/definitions/floodlight-workflow.prompt.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAEjE,eAAO,MAAM,wBAAwB,EAAE,MAetC,CAAC;AAEF,wBAAgB,4BAA4B,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAgGlF"}
@@ -0,0 +1,114 @@
1
+ export const floodlightWorkflowPrompt = {
2
+ name: "cm360_floodlight_workflow",
3
+ description: "Guide for setting up CM360 Floodlight conversion tracking",
4
+ arguments: [
5
+ {
6
+ name: "profileId",
7
+ description: "CM360 User Profile ID",
8
+ required: true,
9
+ },
10
+ {
11
+ name: "advertiserId",
12
+ description: "CM360 Advertiser ID",
13
+ required: true,
14
+ },
15
+ ],
16
+ };
17
+ export function getFloodlightWorkflowMessage(args) {
18
+ const profileId = args?.profileId || "{profileId}";
19
+ const advertiserId = args?.advertiserId || "{advertiserId}";
20
+ return `# CM360 Floodlight Conversion Tracking Setup
21
+
22
+ ## Profile ID: ${profileId}
23
+ ## Advertiser ID: ${advertiserId}
24
+
25
+ Floodlight is CM360's conversion tracking system. It consists of:
26
+ - **Floodlight Configuration**: Account-level settings (one per advertiser)
27
+ - **Floodlight Activities**: Individual conversion events
28
+
29
+ ## Step 1: Check Existing Configuration
30
+
31
+ \`\`\`json
32
+ {
33
+ "tool": "cm360_list_entities",
34
+ "params": {
35
+ "profileId": "${profileId}",
36
+ "entityType": "floodlightConfiguration",
37
+ "advertiserId": "${advertiserId}"
38
+ }
39
+ }
40
+ \`\`\`
41
+
42
+ ## Step 2: List Existing Activities
43
+
44
+ \`\`\`json
45
+ {
46
+ "tool": "cm360_list_entities",
47
+ "params": {
48
+ "profileId": "${profileId}",
49
+ "entityType": "floodlightActivity",
50
+ "advertiserId": "${advertiserId}"
51
+ }
52
+ }
53
+ \`\`\`
54
+
55
+ ## Step 3: Create a Floodlight Activity
56
+
57
+ \`\`\`json
58
+ {
59
+ "tool": "cm360_create_entity",
60
+ "params": {
61
+ "profileId": "${profileId}",
62
+ "entityType": "floodlightActivity",
63
+ "advertiserId": "${advertiserId}",
64
+ "data": {
65
+ "name": "Purchase Confirmation",
66
+ "floodlightConfigurationId": "FLOODLIGHT_CONFIG_ID",
67
+ "floodlightActivityGroupName": "conversions",
68
+ "floodlightTagType": "GLOBAL_SITE_TAG",
69
+ "countingMethod": "STANDARD_COUNTING",
70
+ "expectedUrl": "https://example.com/thank-you"
71
+ }
72
+ }
73
+ }
74
+ \`\`\`
75
+
76
+ ## Step 4: Generate Tag
77
+
78
+ After creating the activity, generate and deploy the Floodlight tag on your website.
79
+
80
+ ## Step 5: Run Floodlight Report
81
+
82
+ \`\`\`json
83
+ {
84
+ "tool": "cm360_get_report",
85
+ "params": {
86
+ "profileId": "${profileId}",
87
+ "reportType": "FLOODLIGHT",
88
+ "dateRange": { "startDate": "2026-03-01", "endDate": "2026-03-12" },
89
+ "dimensions": ["floodlightActivity", "campaign"],
90
+ "metrics": ["totalConversions", "totalConversionsRevenue"]
91
+ }
92
+ }
93
+ \`\`\`
94
+
95
+ ## Counting Methods
96
+
97
+ | Method | Description |
98
+ |--------|-------------|
99
+ | STANDARD_COUNTING | Count every conversion |
100
+ | UNIQUE_COUNTING | One conversion per user per 24 hours |
101
+ | PER_INTERACTION_COUNTING | One per interaction |
102
+ | SESSION_COUNTING | One per session |
103
+
104
+ ## Gotchas
105
+
106
+ | Issue | Solution |
107
+ |-------|----------|
108
+ | Floodlight config is per-advertiser | Can't create new configs, only modify existing |
109
+ | Activities can be deleted | Unlike campaigns, floodlight activities support delete |
110
+ | Tag type matters | GLOBAL_SITE_TAG for modern implementations |
111
+ | Lookback windows | Set at configuration level, not activity level |
112
+ `;
113
+ }
114
+ //# sourceMappingURL=floodlight-workflow.prompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"floodlight-workflow.prompt.js","sourceRoot":"","sources":["../../../../src/mcp-server/prompts/definitions/floodlight-workflow.prompt.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,MAAM,wBAAwB,GAAW;IAC9C,IAAI,EAAE,2BAA2B;IACjC,WAAW,EAAE,2DAA2D;IACxE,SAAS,EAAE;QACT;YACE,IAAI,EAAE,WAAW;YACjB,WAAW,EAAE,uBAAuB;YACpC,QAAQ,EAAE,IAAI;SACf;QACD;YACE,IAAI,EAAE,cAAc;YACpB,WAAW,EAAE,qBAAqB;YAClC,QAAQ,EAAE,IAAI;SACf;KACF;CACF,CAAC;AAEF,MAAM,UAAU,4BAA4B,CAAC,IAA6B;IACxE,MAAM,SAAS,GAAG,IAAI,EAAE,SAAS,IAAI,aAAa,CAAC;IACnD,MAAM,YAAY,GAAG,IAAI,EAAE,YAAY,IAAI,gBAAgB,CAAC;IAC5D,OAAO;;iBAEQ,SAAS;oBACN,YAAY;;;;;;;;;;;;oBAYZ,SAAS;;uBAEN,YAAY;;;;;;;;;;;oBAWf,SAAS;;uBAEN,YAAY;;;;;;;;;;;oBAWf,SAAS;;uBAEN,YAAY;;;;;;;;;;;;;;;;;;;;;;;oBAuBf,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;CA0B5B,CAAC;AACF,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { Prompt } from "@modelcontextprotocol/sdk/types.js";
2
+ export declare const reportingWorkflowPrompt: Prompt;
3
+ export declare function getReportingWorkflowMessage(args?: Record<string, string>): string;
4
+ //# sourceMappingURL=reporting-workflow.prompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reporting-workflow.prompt.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/prompts/definitions/reporting-workflow.prompt.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAEjE,eAAO,MAAM,uBAAuB,EAAE,MAUrC,CAAC;AAEF,wBAAgB,2BAA2B,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAwFjF"}
@@ -0,0 +1,101 @@
1
+ export const reportingWorkflowPrompt = {
2
+ name: "cm360_reporting_workflow",
3
+ description: "Guide for generating async CM360 reports",
4
+ arguments: [
5
+ {
6
+ name: "profileId",
7
+ description: "CM360 User Profile ID",
8
+ required: true,
9
+ },
10
+ ],
11
+ };
12
+ export function getReportingWorkflowMessage(args) {
13
+ const profileId = args?.profileId || "{profileId}";
14
+ return `# CM360 Reporting Workflow
15
+
16
+ ## Profile ID: ${profileId}
17
+
18
+ CM360 reports are async: submit a report definition, wait for processing, then download results.
19
+
20
+ ## Option A: Blocking (Recommended)
21
+
22
+ Use \`cm360_get_report\` which submits, polls, and returns results in one call:
23
+
24
+ \`\`\`json
25
+ {
26
+ "tool": "cm360_get_report",
27
+ "params": {
28
+ "profileId": "${profileId}",
29
+ "reportType": "STANDARD",
30
+ "dateRange": { "startDate": "2026-01-01", "endDate": "2026-01-31" },
31
+ "dimensions": ["campaign", "site"],
32
+ "metrics": ["impressions", "clicks", "totalConversions"],
33
+ "filters": {
34
+ "advertiserId": "ADVERTISER_ID"
35
+ }
36
+ }
37
+ }
38
+ \`\`\`
39
+
40
+ ## Option B: Non-Blocking (Advanced)
41
+
42
+ ### Step 1: Submit report
43
+
44
+ \`\`\`json
45
+ {
46
+ "tool": "cm360_submit_report",
47
+ "params": {
48
+ "profileId": "${profileId}",
49
+ "reportType": "STANDARD",
50
+ "dateRange": { "startDate": "2026-01-01", "endDate": "2026-01-31" },
51
+ "dimensions": ["campaign"],
52
+ "metrics": ["impressions", "clicks"]
53
+ }
54
+ }
55
+ \`\`\`
56
+
57
+ ### Step 2: Check status
58
+
59
+ \`\`\`json
60
+ {
61
+ "tool": "cm360_check_report_status",
62
+ "params": {
63
+ "profileId": "${profileId}",
64
+ "reportId": "REPORT_ID",
65
+ "fileId": "FILE_ID"
66
+ }
67
+ }
68
+ \`\`\`
69
+
70
+ ### Step 3: Download results
71
+
72
+ \`\`\`json
73
+ {
74
+ "tool": "cm360_download_report",
75
+ "params": {
76
+ "downloadUrl": "DOWNLOAD_URL",
77
+ "maxRows": 1000
78
+ }
79
+ }
80
+ \`\`\`
81
+
82
+ ## Report Types
83
+
84
+ | Type | Description |
85
+ |------|-------------|
86
+ | STANDARD | Standard delivery report |
87
+ | REACH | Reach and frequency |
88
+ | FLOODLIGHT | Conversion (floodlight) report |
89
+ | PATH_TO_CONVERSION | Multi-touch attribution |
90
+ | CROSS_DIMENSION_REACH | Cross-dimension reach |
91
+
92
+ ## Gotchas
93
+
94
+ | Issue | Solution |
95
+ |-------|----------|
96
+ | Reports are async | Use blocking \`cm360_get_report\` for simplicity |
97
+ | Large reports timeout | Use non-blocking flow for reports with millions of rows |
98
+ | Date format | Use YYYY-MM-DD format |
99
+ `;
100
+ }
101
+ //# sourceMappingURL=reporting-workflow.prompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reporting-workflow.prompt.js","sourceRoot":"","sources":["../../../../src/mcp-server/prompts/definitions/reporting-workflow.prompt.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,MAAM,uBAAuB,GAAW;IAC7C,IAAI,EAAE,0BAA0B;IAChC,WAAW,EAAE,0CAA0C;IACvD,SAAS,EAAE;QACT;YACE,IAAI,EAAE,WAAW;YACjB,WAAW,EAAE,uBAAuB;YACpC,QAAQ,EAAE,IAAI;SACf;KACF;CACF,CAAC;AAEF,MAAM,UAAU,2BAA2B,CAAC,IAA6B;IACvE,MAAM,SAAS,GAAG,IAAI,EAAE,SAAS,IAAI,aAAa,CAAC;IACnD,OAAO;;iBAEQ,SAAS;;;;;;;;;;;;oBAYN,SAAS;;;;;;;;;;;;;;;;;;;;oBAoBT,SAAS;;;;;;;;;;;;;;;oBAeT,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoC5B,CAAC;AACF,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { Prompt } from "@modelcontextprotocol/sdk/types.js";
2
+ export declare const targetingDiscoveryWorkflowPrompt: Prompt;
3
+ export declare function getTargetingDiscoveryWorkflowMessage(args?: Record<string, string>): string;
4
+ //# sourceMappingURL=targeting-discovery-workflow.prompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"targeting-discovery-workflow.prompt.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/prompts/definitions/targeting-discovery-workflow.prompt.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAEjE,eAAO,MAAM,gCAAgC,EAAE,MAU9C,CAAC;AAEF,wBAAgB,oCAAoC,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAuC1F"}
@@ -0,0 +1,52 @@
1
+ export const targetingDiscoveryWorkflowPrompt = {
2
+ name: "cm360_targeting_discovery_workflow",
3
+ description: "Guide for browsing CM360 targeting options",
4
+ arguments: [
5
+ {
6
+ name: "profileId",
7
+ description: "CM360 User Profile ID",
8
+ required: true,
9
+ },
10
+ ],
11
+ };
12
+ export function getTargetingDiscoveryWorkflowMessage(args) {
13
+ const profileId = args?.profileId || "{profileId}";
14
+ return `# CM360 Targeting Discovery Workflow
15
+
16
+ ## Profile ID: ${profileId}
17
+
18
+ ## Step 1: Browse Targeting Categories
19
+
20
+ \`\`\`json
21
+ {
22
+ "tool": "cm360_list_targeting_options",
23
+ "params": {
24
+ "profileId": "${profileId}",
25
+ "targetingType": "all"
26
+ }
27
+ }
28
+ \`\`\`
29
+
30
+ ## Targeting Types
31
+
32
+ | Type | Description |
33
+ |------|-------------|
34
+ | Geographic | Countries, regions, cities, DMAs |
35
+ | Content | Content categories, keywords |
36
+ | Technology | Browsers, operating systems, device types |
37
+ | Audience | First-party and third-party audience lists |
38
+ | Language | Language targeting |
39
+ | Day/Time | Day parting and time-based targeting |
40
+
41
+ ## Step 2: Apply to Placement
42
+
43
+ Targeting in CM360 is typically set at the **placement** or **ad** level, not campaign level.
44
+
45
+ ## Notes
46
+
47
+ - CM360 targeting is simpler than self-serve platforms
48
+ - Most targeting is managed via the ad server trafficking workflow
49
+ - Use \`cm360_list_targeting_options\` to discover available options
50
+ `;
51
+ }
52
+ //# sourceMappingURL=targeting-discovery-workflow.prompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"targeting-discovery-workflow.prompt.js","sourceRoot":"","sources":["../../../../src/mcp-server/prompts/definitions/targeting-discovery-workflow.prompt.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,MAAM,gCAAgC,GAAW;IACtD,IAAI,EAAE,oCAAoC;IAC1C,WAAW,EAAE,4CAA4C;IACzD,SAAS,EAAE;QACT;YACE,IAAI,EAAE,WAAW;YACjB,WAAW,EAAE,uBAAuB;YACpC,QAAQ,EAAE,IAAI;SACf;KACF;CACF,CAAC;AAEF,MAAM,UAAU,oCAAoC,CAAC,IAA6B;IAChF,MAAM,SAAS,GAAG,IAAI,EAAE,SAAS,IAAI,aAAa,CAAC;IACnD,OAAO;;iBAEQ,SAAS;;;;;;;;oBAQN,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;CA0B5B,CAAC;AACF,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { Prompt } from "@modelcontextprotocol/sdk/types.js";
2
+ export declare const toolSchemaExplorationPrompt: Prompt;
3
+ export declare function getToolSchemaExplorationMessage(args?: Record<string, string>): string;
4
+ //# sourceMappingURL=tool-schema-exploration.prompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-schema-exploration.prompt.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/prompts/definitions/tool-schema-exploration.prompt.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAEjE,eAAO,MAAM,2BAA2B,EAAE,MAUzC,CAAC;AAEF,wBAAgB,+BAA+B,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CA6FrF"}
@@ -0,0 +1,106 @@
1
+ export const toolSchemaExplorationPrompt = {
2
+ name: "cm360_tool_schema_exploration",
3
+ description: "Guide for discovering and understanding CM360 MCP tools, resources, and schemas",
4
+ arguments: [
5
+ {
6
+ name: "objective",
7
+ description: "Exploration objective (e.g., campaign management, reporting, floodlight setup)",
8
+ required: false,
9
+ },
10
+ ],
11
+ };
12
+ export function getToolSchemaExplorationMessage(args) {
13
+ const objective = args?.objective || "general capability discovery";
14
+ return `# CM360 MCP Tool & Schema Exploration Guide
15
+
16
+ ## Context
17
+ - Server: cm360-mcp (Campaign Manager 360 Management)
18
+ - Objective: ${objective}
19
+
20
+ Use this workflow to discover CM360 MCP capabilities while minimizing token usage.
21
+
22
+ ---
23
+
24
+ ## Available MCP Resources
25
+
26
+ Fetch these resources for detailed schema information:
27
+
28
+ | Resource URI | Content |
29
+ |-------------|---------|
30
+ | \`entity-hierarchy://all\` | Entity relationships, API patterns, creation order |
31
+ | \`entity-schema://all\` | All entity field schemas |
32
+ | \`entity-schema://campaign\` | Campaign fields |
33
+ | \`entity-schema://placement\` | Placement fields |
34
+ | \`entity-schema://ad\` | Ad fields |
35
+ | \`entity-schema://creative\` | Creative fields |
36
+ | \`entity-schema://site\` | Site fields |
37
+ | \`entity-schema://advertiser\` | Advertiser fields |
38
+ | \`entity-schema://floodlightActivity\` | Floodlight Activity fields |
39
+ | \`entity-schema://floodlightConfiguration\` | Floodlight Configuration fields |
40
+ | \`entity-examples://all\` | All entity examples |
41
+ | \`entity-examples://{type}\` | Examples for specific type |
42
+ | \`reporting-reference://all\` | Report types, dimensions, metrics |
43
+ | \`targeting-reference://all\` | Targeting option types |
44
+
45
+ ## Tool Categories
46
+
47
+ ### Account Discovery
48
+ - \`cm360_list_user_profiles\` — List accessible CM360 user profiles (discover your profileId)
49
+
50
+ ### Read Operations
51
+ - \`cm360_list_entities\` — List entities with filters
52
+ - \`cm360_get_entity\` — Get single entity by ID
53
+
54
+ ### Write Operations
55
+ - \`cm360_create_entity\` — Create entity
56
+ - \`cm360_update_entity\` — Update entity (PUT semantics — full object required)
57
+ - \`cm360_delete_entity\` — Delete entity (creative, floodlightActivity only)
58
+
59
+ ### Reporting (Async)
60
+ - \`cm360_get_report\` — Submit report and wait for results (blocking)
61
+ - \`cm360_get_report_breakdowns\` — Submit report with breakdown dimensions and wait for results
62
+ - \`cm360_submit_report\` — Submit report without waiting (non-blocking)
63
+ - \`cm360_check_report_status\` — Check report execution status
64
+ - \`cm360_download_report\` — Download and parse report CSV
65
+
66
+ ### Reporting Schedules
67
+ - \`cm360_create_report_schedule\` — Create a scheduled report
68
+ - \`cm360_list_report_schedules\` — List reports with schedules
69
+ - \`cm360_delete_report_schedule\` — Delete a scheduled report
70
+
71
+ ### Bulk Operations
72
+ - \`cm360_bulk_update_status\` — Batch status updates
73
+ - \`cm360_bulk_create_entities\` — Batch entity creation
74
+ - \`cm360_bulk_update_entities\` — Batch entity updates
75
+
76
+ ### Specialized
77
+ - \`cm360_get_ad_preview\` — Ad preview URL
78
+ - \`cm360_list_targeting_options\` — Browse targeting option categories
79
+
80
+ ### Validation
81
+ - \`cm360_validate_entity\` — Client-side entity validation (no API call)
82
+
83
+ ### Discovery
84
+ - \`cm360_search_tools\` — Rank server tools by a natural-language query
85
+
86
+ ## Workflow Prompts
87
+
88
+ | Task | Prompt |
89
+ |------|--------|
90
+ | Create a full campaign structure | \`cm360_campaign_setup_workflow\` |
91
+ | Update entities safely | \`cm360_entity_update_workflow\` |
92
+ | Bulk create/update/status | \`cm360_bulk_operations_workflow\` |
93
+ | Async reporting workflow | \`cm360_reporting_workflow\` |
94
+ | Troubleshoot entity issues | \`cm360_troubleshoot_entity\` |
95
+ | Targeting option discovery | \`cm360_targeting_discovery_workflow\` |
96
+ | Floodlight setup | \`cm360_floodlight_workflow\` |
97
+
98
+ ## Recommended Exploration Order
99
+
100
+ 1. Start with \`cm360_list_user_profiles\` to find your profileId
101
+ 2. Fetch \`entity-hierarchy://all\` for entity relationships
102
+ 3. Fetch \`entity-schema://{type}\` for field details
103
+ 4. Fetch \`entity-examples://{type}\` for payload templates
104
+ `;
105
+ }
106
+ //# sourceMappingURL=tool-schema-exploration.prompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-schema-exploration.prompt.js","sourceRoot":"","sources":["../../../../src/mcp-server/prompts/definitions/tool-schema-exploration.prompt.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,MAAM,2BAA2B,GAAW;IACjD,IAAI,EAAE,+BAA+B;IACrC,WAAW,EAAE,iFAAiF;IAC9F,SAAS,EAAE;QACT;YACE,IAAI,EAAE,WAAW;YACjB,WAAW,EAAE,gFAAgF;YAC7F,QAAQ,EAAE,KAAK;SAChB;KACF;CACF,CAAC;AAEF,MAAM,UAAU,+BAA+B,CAAC,IAA6B;IAC3E,MAAM,SAAS,GAAG,IAAI,EAAE,SAAS,IAAI,8BAA8B,CAAC;IACpE,OAAO;;;;eAIM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsFvB,CAAC;AACF,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { Prompt } from "@modelcontextprotocol/sdk/types.js";
2
+ export declare const troubleshootEntityPrompt: Prompt;
3
+ export declare function getTroubleshootEntityMessage(args?: Record<string, string>): string;
4
+ //# sourceMappingURL=troubleshoot-entity.prompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"troubleshoot-entity.prompt.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/prompts/definitions/troubleshoot-entity.prompt.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAEjE,eAAO,MAAM,wBAAwB,EAAE,MAetC,CAAC;AAEF,wBAAgB,4BAA4B,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAmDlF"}