@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,69 @@
1
+ export const troubleshootEntityPrompt = {
2
+ name: "cm360_troubleshoot_entity",
3
+ description: "Diagnostic workflow for troubleshooting CM360 entity issues",
4
+ arguments: [
5
+ {
6
+ name: "entityType",
7
+ description: "Entity type to troubleshoot",
8
+ required: true,
9
+ },
10
+ {
11
+ name: "entityId",
12
+ description: "Entity ID to troubleshoot",
13
+ required: true,
14
+ },
15
+ ],
16
+ };
17
+ export function getTroubleshootEntityMessage(args) {
18
+ const entityType = args?.entityType || "{entityType}";
19
+ const entityId = args?.entityId || "{entityId}";
20
+ return `# CM360 Troubleshooting: ${entityType} (${entityId})
21
+
22
+ ## Step 1: Fetch Entity
23
+
24
+ \`\`\`json
25
+ {
26
+ "tool": "cm360_get_entity",
27
+ "params": {
28
+ "profileId": "PROFILE_ID",
29
+ "entityType": "${entityType}",
30
+ "entityId": "${entityId}"
31
+ }
32
+ }
33
+ \`\`\`
34
+
35
+ ## Step 2: Check Parent Chain
36
+
37
+ Verify parent entities are active:
38
+ - Campaign: active?
39
+ - Placement: active? Site linked?
40
+ - Ad: placement + creative assigned?
41
+
42
+ ## Step 3: Run Delivery Report
43
+
44
+ \`\`\`json
45
+ {
46
+ "tool": "cm360_get_report",
47
+ "params": {
48
+ "profileId": "PROFILE_ID",
49
+ "reportType": "STANDARD",
50
+ "dateRange": { "startDate": "2026-03-01", "endDate": "2026-03-12" },
51
+ "dimensions": ["${entityType}"],
52
+ "metrics": ["impressions", "clicks"]
53
+ }
54
+ }
55
+ \`\`\`
56
+
57
+ ## Common Issues
58
+
59
+ | Symptom | Likely Cause | Fix |
60
+ |---------|-------------|-----|
61
+ | Ad not serving | Placement inactive | Activate placement |
62
+ | No impressions | Creative-placement size mismatch | Match creative size to placement |
63
+ | Creative rejected | Missing required asset | Check creative type requirements |
64
+ | Placement errors | Site not approved | Verify site status |
65
+ | Floodlight not firing | Activity configuration | Check floodlight tag and activity settings |
66
+ | Update fails | Missing required fields | Fetch full object first (PUT semantics) |
67
+ `;
68
+ }
69
+ //# sourceMappingURL=troubleshoot-entity.prompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"troubleshoot-entity.prompt.js","sourceRoot":"","sources":["../../../../src/mcp-server/prompts/definitions/troubleshoot-entity.prompt.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,MAAM,wBAAwB,GAAW;IAC9C,IAAI,EAAE,2BAA2B;IACjC,WAAW,EAAE,6DAA6D;IAC1E,SAAS,EAAE;QACT;YACE,IAAI,EAAE,YAAY;YAClB,WAAW,EAAE,6BAA6B;YAC1C,QAAQ,EAAE,IAAI;SACf;QACD;YACE,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,2BAA2B;YACxC,QAAQ,EAAE,IAAI;SACf;KACF;CACF,CAAC;AAEF,MAAM,UAAU,4BAA4B,CAAC,IAA6B;IACxE,MAAM,UAAU,GAAG,IAAI,EAAE,UAAU,IAAI,cAAc,CAAC;IACtD,MAAM,QAAQ,GAAG,IAAI,EAAE,QAAQ,IAAI,YAAY,CAAC;IAChD,OAAO,4BAA4B,UAAU,KAAK,QAAQ;;;;;;;;;qBASvC,UAAU;mBACZ,QAAQ;;;;;;;;;;;;;;;;;;;;;sBAqBL,UAAU;;;;;;;;;;;;;;;;CAgB/B,CAAC;AACF,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { Prompt } from "@modelcontextprotocol/sdk/types.js";
2
+ export interface PromptDefinition {
3
+ prompt: Prompt;
4
+ generateMessage: (args?: Record<string, string>) => string;
5
+ }
6
+ export declare const promptRegistry: Map<string, PromptDefinition>;
7
+ export declare function getAllPrompts(): Prompt[];
8
+ export declare function getPromptDefinition(name: string): PromptDefinition | undefined;
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/mcp-server/prompts/index.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AA0CjE,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,MAAM,CAAC;CAC5D;AAED,eAAO,MAAM,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAuEvD,CAAC;AAEH,wBAAgB,aAAa,IAAI,MAAM,EAAE,CAExC;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAE9E"}
@@ -0,0 +1,89 @@
1
+ import { toolSchemaExplorationPrompt, getToolSchemaExplorationMessage, } from "./definitions/tool-schema-exploration.prompt.js";
2
+ import { campaignSetupWorkflowPrompt, getCampaignSetupWorkflowMessage, } from "./definitions/campaign-setup-workflow.prompt.js";
3
+ import { entityUpdateWorkflowPrompt, getEntityUpdateWorkflowMessage, } from "./definitions/entity-update-workflow.prompt.js";
4
+ import { bulkOperationsWorkflowPrompt, getBulkOperationsWorkflowMessage, } from "./definitions/bulk-operations-workflow.prompt.js";
5
+ import { reportingWorkflowPrompt, getReportingWorkflowMessage, } from "./definitions/reporting-workflow.prompt.js";
6
+ import { troubleshootEntityPrompt, getTroubleshootEntityMessage, } from "./definitions/troubleshoot-entity.prompt.js";
7
+ import { targetingDiscoveryWorkflowPrompt, getTargetingDiscoveryWorkflowMessage, } from "./definitions/targeting-discovery-workflow.prompt.js";
8
+ import { floodlightWorkflowPrompt, getFloodlightWorkflowMessage, } from "./definitions/floodlight-workflow.prompt.js";
9
+ import { crossPlatformCampaignSetupPrompt, getCrossPlatformCampaignSetupMessage, } from "./definitions/cross-platform-campaign-setup.prompt.js";
10
+ import { crossPlatformPerformancePrompt, getCrossPlatformPerformanceMessage, } from "./definitions/cross-platform-performance.prompt.js";
11
+ export const promptRegistry = new Map([
12
+ [
13
+ toolSchemaExplorationPrompt.name,
14
+ {
15
+ prompt: toolSchemaExplorationPrompt,
16
+ generateMessage: getToolSchemaExplorationMessage,
17
+ },
18
+ ],
19
+ [
20
+ campaignSetupWorkflowPrompt.name,
21
+ {
22
+ prompt: campaignSetupWorkflowPrompt,
23
+ generateMessage: getCampaignSetupWorkflowMessage,
24
+ },
25
+ ],
26
+ [
27
+ entityUpdateWorkflowPrompt.name,
28
+ {
29
+ prompt: entityUpdateWorkflowPrompt,
30
+ generateMessage: getEntityUpdateWorkflowMessage,
31
+ },
32
+ ],
33
+ [
34
+ bulkOperationsWorkflowPrompt.name,
35
+ {
36
+ prompt: bulkOperationsWorkflowPrompt,
37
+ generateMessage: getBulkOperationsWorkflowMessage,
38
+ },
39
+ ],
40
+ [
41
+ reportingWorkflowPrompt.name,
42
+ {
43
+ prompt: reportingWorkflowPrompt,
44
+ generateMessage: getReportingWorkflowMessage,
45
+ },
46
+ ],
47
+ [
48
+ troubleshootEntityPrompt.name,
49
+ {
50
+ prompt: troubleshootEntityPrompt,
51
+ generateMessage: getTroubleshootEntityMessage,
52
+ },
53
+ ],
54
+ [
55
+ targetingDiscoveryWorkflowPrompt.name,
56
+ {
57
+ prompt: targetingDiscoveryWorkflowPrompt,
58
+ generateMessage: getTargetingDiscoveryWorkflowMessage,
59
+ },
60
+ ],
61
+ [
62
+ floodlightWorkflowPrompt.name,
63
+ {
64
+ prompt: floodlightWorkflowPrompt,
65
+ generateMessage: getFloodlightWorkflowMessage,
66
+ },
67
+ ],
68
+ [
69
+ crossPlatformCampaignSetupPrompt.name,
70
+ {
71
+ prompt: crossPlatformCampaignSetupPrompt,
72
+ generateMessage: getCrossPlatformCampaignSetupMessage,
73
+ },
74
+ ],
75
+ [
76
+ crossPlatformPerformancePrompt.name,
77
+ {
78
+ prompt: crossPlatformPerformancePrompt,
79
+ generateMessage: getCrossPlatformPerformanceMessage,
80
+ },
81
+ ],
82
+ ]);
83
+ export function getAllPrompts() {
84
+ return Array.from(promptRegistry.values()).map((def) => def.prompt);
85
+ }
86
+ export function getPromptDefinition(name) {
87
+ return promptRegistry.get(name);
88
+ }
89
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mcp-server/prompts/index.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,2BAA2B,EAC3B,+BAA+B,GAChC,MAAM,iDAAiD,CAAC;AACzD,OAAO,EACL,2BAA2B,EAC3B,+BAA+B,GAChC,MAAM,iDAAiD,CAAC;AACzD,OAAO,EACL,0BAA0B,EAC1B,8BAA8B,GAC/B,MAAM,gDAAgD,CAAC;AACxD,OAAO,EACL,4BAA4B,EAC5B,gCAAgC,GACjC,MAAM,kDAAkD,CAAC;AAC1D,OAAO,EACL,uBAAuB,EACvB,2BAA2B,GAC5B,MAAM,4CAA4C,CAAC;AACpD,OAAO,EACL,wBAAwB,EACxB,4BAA4B,GAC7B,MAAM,6CAA6C,CAAC;AACrD,OAAO,EACL,gCAAgC,EAChC,oCAAoC,GACrC,MAAM,sDAAsD,CAAC;AAC9D,OAAO,EACL,wBAAwB,EACxB,4BAA4B,GAC7B,MAAM,6CAA6C,CAAC;AACrD,OAAO,EACL,gCAAgC,EAChC,oCAAoC,GACrC,MAAM,uDAAuD,CAAC;AAC/D,OAAO,EACL,8BAA8B,EAC9B,kCAAkC,GACnC,MAAM,oDAAoD,CAAC;AAO5D,MAAM,CAAC,MAAM,cAAc,GAAkC,IAAI,GAAG,CAAC;IACnE;QACE,2BAA2B,CAAC,IAAI;QAChC;YACE,MAAM,EAAE,2BAA2B;YACnC,eAAe,EAAE,+BAA+B;SACjD;KACF;IACD;QACE,2BAA2B,CAAC,IAAI;QAChC;YACE,MAAM,EAAE,2BAA2B;YACnC,eAAe,EAAE,+BAA+B;SACjD;KACF;IACD;QACE,0BAA0B,CAAC,IAAI;QAC/B;YACE,MAAM,EAAE,0BAA0B;YAClC,eAAe,EAAE,8BAA8B;SAChD;KACF;IACD;QACE,4BAA4B,CAAC,IAAI;QACjC;YACE,MAAM,EAAE,4BAA4B;YACpC,eAAe,EAAE,gCAAgC;SAClD;KACF;IACD;QACE,uBAAuB,CAAC,IAAI;QAC5B;YACE,MAAM,EAAE,uBAAuB;YAC/B,eAAe,EAAE,2BAA2B;SAC7C;KACF;IACD;QACE,wBAAwB,CAAC,IAAI;QAC7B;YACE,MAAM,EAAE,wBAAwB;YAChC,eAAe,EAAE,4BAA4B;SAC9C;KACF;IACD;QACE,gCAAgC,CAAC,IAAI;QACrC;YACE,MAAM,EAAE,gCAAgC;YACxC,eAAe,EAAE,oCAAoC;SACtD;KACF;IACD;QACE,wBAAwB,CAAC,IAAI;QAC7B;YACE,MAAM,EAAE,wBAAwB;YAChC,eAAe,EAAE,4BAA4B;SAC9C;KACF;IACD;QACE,gCAAgC,CAAC,IAAI;QACrC;YACE,MAAM,EAAE,gCAAgC;YACxC,eAAe,EAAE,oCAAoC;SACtD;KACF;IACD;QACE,8BAA8B,CAAC,IAAI;QACnC;YACE,MAAM,EAAE,8BAA8B;YACtC,eAAe,EAAE,kCAAkC;SACpD;KACF;CACF,CAAC,CAAC;AAEH,MAAM,UAAU,aAAa;IAC3B,OAAO,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACtE,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC9C,OAAO,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAClC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { Resource } from "../types.js";
2
+ export declare const entityExampleResources: Resource[];
3
+ export declare const entityExampleAllResource: Resource;
4
+ //# sourceMappingURL=entity-examples.resource.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entity-examples.resource.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/resources/definitions/entity-examples.resource.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAqI5C,eAAO,MAAM,sBAAsB,EAAE,QAAQ,EAM1C,CAAC;AAEJ,eAAO,MAAM,wBAAwB,EAAE,QAStC,CAAC"}
@@ -0,0 +1,140 @@
1
+ import { getSupportedEntityTypes } from "../../tools/utils/entity-mapping.js";
2
+ const ENTITY_EXAMPLES = {
3
+ campaign: `# Campaign Examples
4
+
5
+ ## Create a display campaign
6
+ \`\`\`json
7
+ {
8
+ "name": "Summer Sale 2026",
9
+ "advertiserId": "ADVERTISER_ID",
10
+ "startDate": "2026-04-01",
11
+ "endDate": "2026-06-30"
12
+ }
13
+ \`\`\``,
14
+ placement: `# Placement Examples
15
+
16
+ ## Create a standard display placement
17
+ \`\`\`json
18
+ {
19
+ "name": "Homepage Banner 300x250",
20
+ "campaignId": "CAMPAIGN_ID",
21
+ "siteId": "SITE_ID",
22
+ "compatibility": "DISPLAY",
23
+ "size": { "width": 300, "height": 250 },
24
+ "paymentSource": "PLACEMENT_AGENCY_PAID",
25
+ "tagFormats": ["PLACEMENT_TAG_STANDARD"]
26
+ }
27
+ \`\`\`
28
+
29
+ ## Create a video placement
30
+ \`\`\`json
31
+ {
32
+ "name": "Pre-roll Video",
33
+ "campaignId": "CAMPAIGN_ID",
34
+ "siteId": "SITE_ID",
35
+ "compatibility": "IN_STREAM_VIDEO",
36
+ "size": { "width": 0, "height": 0 }
37
+ }
38
+ \`\`\``,
39
+ ad: `# Ad Examples
40
+
41
+ ## Create a standard ad linking creative to placement
42
+ \`\`\`json
43
+ {
44
+ "name": "Summer Sale - Banner Ad",
45
+ "campaignId": "CAMPAIGN_ID",
46
+ "type": "AD_SERVING_STANDARD_AD",
47
+ "placementAssignments": [{ "placementId": "PLACEMENT_ID", "active": true }],
48
+ "creativeAssignments": [{ "creativeId": "CREATIVE_ID", "active": true }],
49
+ "active": true
50
+ }
51
+ \`\`\``,
52
+ creative: `# Creative Examples
53
+
54
+ ## Create a display creative
55
+ \`\`\`json
56
+ {
57
+ "name": "Summer Sale Banner",
58
+ "advertiserId": "ADVERTISER_ID",
59
+ "type": "DISPLAY",
60
+ "size": { "width": 300, "height": 250 },
61
+ "active": true
62
+ }
63
+ \`\`\``,
64
+ site: `# Site Examples
65
+
66
+ ## Create a site
67
+ \`\`\`json
68
+ {
69
+ "name": "example.com",
70
+ "approved": true
71
+ }
72
+ \`\`\``,
73
+ advertiser: `# Advertiser Examples
74
+
75
+ ## Get advertiser details
76
+ Advertisers are typically pre-existing. Use \`cm360_get_entity\` to retrieve:
77
+ \`\`\`json
78
+ {
79
+ "tool": "cm360_get_entity",
80
+ "params": {
81
+ "profileId": "PROFILE_ID",
82
+ "entityType": "advertiser",
83
+ "entityId": "ADVERTISER_ID"
84
+ }
85
+ }
86
+ \`\`\``,
87
+ floodlightActivity: `# Floodlight Activity Examples
88
+
89
+ ## Create a purchase tracking activity
90
+ \`\`\`json
91
+ {
92
+ "name": "Purchase Confirmation",
93
+ "floodlightConfigurationId": "FLOODLIGHT_CONFIG_ID",
94
+ "floodlightActivityGroupName": "conversions",
95
+ "floodlightTagType": "GLOBAL_SITE_TAG",
96
+ "countingMethod": "STANDARD_COUNTING",
97
+ "expectedUrl": "https://example.com/thank-you"
98
+ }
99
+ \`\`\`
100
+
101
+ ## Create a lead form activity
102
+ \`\`\`json
103
+ {
104
+ "name": "Lead Form Submission",
105
+ "floodlightConfigurationId": "FLOODLIGHT_CONFIG_ID",
106
+ "floodlightActivityGroupName": "leads",
107
+ "floodlightTagType": "GLOBAL_SITE_TAG",
108
+ "countingMethod": "UNIQUE_COUNTING"
109
+ }
110
+ \`\`\``,
111
+ floodlightConfiguration: `# Floodlight Configuration Examples
112
+
113
+ ## Update lookback windows
114
+ \`\`\`json
115
+ {
116
+ "lookbackConfiguration": {
117
+ "clickDuration": 30,
118
+ "postImpressionActivitiesDuration": 7
119
+ }
120
+ }
121
+ \`\`\`
122
+ Note: Floodlight configurations cannot be created — one exists per advertiser.`,
123
+ };
124
+ export const entityExampleResources = getSupportedEntityTypes().map((entityType) => ({
125
+ uri: `entity-examples://${entityType}`,
126
+ name: `${entityType} Examples`,
127
+ description: `Example payloads for CM360 ${entityType} operations`,
128
+ mimeType: "text/markdown",
129
+ getContent: () => ENTITY_EXAMPLES[entityType] || `# ${entityType}\n\nNo examples yet.`,
130
+ }));
131
+ export const entityExampleAllResource = {
132
+ uri: "entity-examples://all",
133
+ name: "All CM360 Entity Examples",
134
+ description: "Combined examples for all CM360 entity types",
135
+ mimeType: "text/markdown",
136
+ getContent: () => getSupportedEntityTypes()
137
+ .map((t) => ENTITY_EXAMPLES[t])
138
+ .join("\n\n---\n\n"),
139
+ };
140
+ //# sourceMappingURL=entity-examples.resource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entity-examples.resource.js","sourceRoot":"","sources":["../../../../src/mcp-server/resources/definitions/entity-examples.resource.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,uBAAuB,EAAwB,MAAM,qCAAqC,CAAC;AAEpG,MAAM,eAAe,GAAoC;IACvD,QAAQ,EAAE;;;;;;;;;;OAUL;IAEL,SAAS,EAAE;;;;;;;;;;;;;;;;;;;;;;;;OAwBN;IAEL,EAAE,EAAE;;;;;;;;;;;;OAYC;IAEL,QAAQ,EAAE;;;;;;;;;;;OAWL;IAEL,IAAI,EAAE;;;;;;;;OAQD;IAEL,UAAU,EAAE;;;;;;;;;;;;;OAaP;IAEL,kBAAkB,EAAE;;;;;;;;;;;;;;;;;;;;;;;OAuBf;IAEL,uBAAuB,EAAE;;;;;;;;;;;+EAWoD;CAC9E,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAe,uBAAuB,EAAE,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAC/F,GAAG,EAAE,qBAAqB,UAAU,EAAE;IACtC,IAAI,EAAE,GAAG,UAAU,WAAW;IAC9B,WAAW,EAAE,8BAA8B,UAAU,aAAa;IAClE,QAAQ,EAAE,eAAe;IACzB,UAAU,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,KAAK,UAAU,sBAAsB;CACvF,CAAC,CAAC,CAAC;AAEJ,MAAM,CAAC,MAAM,wBAAwB,GAAa;IAChD,GAAG,EAAE,uBAAuB;IAC5B,IAAI,EAAE,2BAA2B;IACjC,WAAW,EAAE,8CAA8C;IAC3D,QAAQ,EAAE,eAAe;IACzB,UAAU,EAAE,GAAG,EAAE,CACf,uBAAuB,EAAE;SACtB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;SAC9B,IAAI,CAAC,aAAa,CAAC;CACzB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Resource } from "../types.js";
2
+ export declare const entityHierarchyResource: Resource;
3
+ //# sourceMappingURL=entity-hierarchy.resource.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entity-hierarchy.resource.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/resources/definitions/entity-hierarchy.resource.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAiG5C,eAAO,MAAM,uBAAuB,EAAE,QAUrC,CAAC"}
@@ -0,0 +1,104 @@
1
+ let cachedContent;
2
+ function formatEntityHierarchyMarkdown() {
3
+ return `# CM360 Entity Hierarchy
4
+
5
+ ## Relationship Diagram
6
+
7
+ \`\`\`
8
+ Account (Network)
9
+ └── Advertiser
10
+ ├── Campaign
11
+ │ └── Placement (requires Site)
12
+ │ └── Ad (references Creative)
13
+ ├── Creative (reusable across ads)
14
+ ├── Site (hosting placements)
15
+ ├── Floodlight Configuration (one per advertiser)
16
+ │ └── Floodlight Activity (conversion events)
17
+ └── Floodlight Activity (conversion events)
18
+ \`\`\`
19
+
20
+ ## Entity Types (8 total)
21
+
22
+ | Entity Type | API Collection | ID Field | Supports Delete |
23
+ |-------------|---------------|----------|:---:|
24
+ | **campaign** | \`campaigns\` | id | |
25
+ | **placement** | \`placements\` | id | |
26
+ | **ad** | \`ads\` | id | |
27
+ | **creative** | \`creatives\` | id | ✓ |
28
+ | **site** | \`sites\` | id | |
29
+ | **advertiser** | \`advertisers\` | id | |
30
+ | **floodlightActivity** | \`floodlightActivities\` | id | ✓ |
31
+ | **floodlightConfiguration** | \`floodlightConfigurations\` | id | |
32
+
33
+ ## Key Relationships
34
+
35
+ ### Core Hierarchy: Account → Advertiser → Campaign → Placement → Ad
36
+ - Placements require both a **campaign** and a **site**
37
+ - Ads require **placement assignments** and **creative assignments**
38
+ - Creatives are shared across ads within an advertiser
39
+
40
+ ### Conversion Tracking: Floodlight
41
+ - One **Floodlight Configuration** per advertiser (account-level)
42
+ - Multiple **Floodlight Activities** per configuration (individual events)
43
+
44
+ ## Creation Order
45
+
46
+ Full campaign structure (top-down):
47
+
48
+ 1. **Account** — pre-exists, use \`cm360_list_user_profiles\` to discover
49
+ 2. **Advertiser** — usually pre-exists, verify with \`cm360_get_entity\`
50
+ 3. **Site** — create or reuse for placement hosting
51
+ 4. **Campaign** — requires advertiser, start/end dates
52
+ 5. **Placement** — requires campaign + site, size, compatibility
53
+ 6. **Creative** — requires advertiser, type, size (must match placement)
54
+ 7. **Ad** — links creative to placement via assignments
55
+
56
+ ## CM360 API Patterns (v5)
57
+
58
+ ### Create: POST /dfareporting/v5/userprofiles/{profileId}/{collection}
59
+ All entities require a profileId.
60
+
61
+ ### Read: GET /dfareporting/v5/userprofiles/{profileId}/{collection}/{id}
62
+
63
+ ### Update: PUT /dfareporting/v5/userprofiles/{profileId}/{collection}
64
+ **Warning: PUT semantics**: Full entity object required. Missing fields reset to defaults.
65
+
66
+ ### Delete: DELETE (creative, floodlightActivity only)
67
+ Most entities cannot be deleted — archive or deactivate instead.
68
+
69
+ ### List: GET /dfareporting/v5/userprofiles/{profileId}/{collection}
70
+ Uses pageToken-based pagination.
71
+
72
+ ## Available Tools Summary
73
+
74
+ | Tool | Purpose | Batch? |
75
+ |------|---------|--------|
76
+ | \`cm360_list_user_profiles\` | Discover profile IDs | |
77
+ | \`cm360_list_entities\` | List entities with filters | |
78
+ | \`cm360_get_entity\` | Get single entity | |
79
+ | \`cm360_create_entity\` | Create single entity | |
80
+ | \`cm360_update_entity\` | Update entity (PUT) | |
81
+ | \`cm360_delete_entity\` | Delete entity (creative/floodlight only) | |
82
+ | \`cm360_validate_entity\` | Client-side validation | |
83
+ | \`cm360_get_report\` | Submit + wait for report | |
84
+ | \`cm360_submit_report\` | Submit report (async) | |
85
+ | \`cm360_check_report_status\` | Check report status | |
86
+ | \`cm360_download_report\` | Download report CSV | |
87
+ | \`cm360_bulk_update_status\` | Batch status update | ✓ |
88
+ | \`cm360_bulk_create_entities\` | Batch entity creation | ✓ |
89
+ | \`cm360_bulk_update_entities\` | Batch entity updates | ✓ |
90
+ | \`cm360_get_ad_preview\` | Ad preview URL | |
91
+ | \`cm360_list_targeting_options\` | Browse targeting options | |
92
+ `;
93
+ }
94
+ export const entityHierarchyResource = {
95
+ uri: "entity-hierarchy://all",
96
+ name: "CM360 Entity Hierarchy",
97
+ description: "Parent-child relationships between CM360 entities, API patterns, and creation ordering",
98
+ mimeType: "text/markdown",
99
+ getContent: () => {
100
+ cachedContent ??= formatEntityHierarchyMarkdown();
101
+ return cachedContent;
102
+ },
103
+ };
104
+ //# sourceMappingURL=entity-hierarchy.resource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entity-hierarchy.resource.js","sourceRoot":"","sources":["../../../../src/mcp-server/resources/definitions/entity-hierarchy.resource.ts"],"names":[],"mappings":"AAKA,IAAI,aAAiC,CAAC;AAEtC,SAAS,6BAA6B;IACpC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyFR,CAAC;AACF,CAAC;AAED,MAAM,CAAC,MAAM,uBAAuB,GAAa;IAC/C,GAAG,EAAE,wBAAwB;IAC7B,IAAI,EAAE,wBAAwB;IAC9B,WAAW,EACT,wFAAwF;IAC1F,QAAQ,EAAE,eAAe;IACzB,UAAU,EAAE,GAAG,EAAE;QACf,aAAa,KAAK,6BAA6B,EAAE,CAAC;QAClD,OAAO,aAAa,CAAC;IACvB,CAAC;CACF,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { Resource } from "../types.js";
2
+ export declare const entitySchemaResources: Resource[];
3
+ export declare const entitySchemaAllResource: Resource;
4
+ //# sourceMappingURL=entity-schemas.resource.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entity-schemas.resource.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/resources/definitions/entity-schemas.resource.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAwG5C,eAAO,MAAM,qBAAqB,EAAE,QAAQ,EAMzC,CAAC;AAEJ,eAAO,MAAM,uBAAuB,EAAE,QASrC,CAAC"}
@@ -0,0 +1,111 @@
1
+ import { getSupportedEntityTypes } from "../../tools/utils/entity-mapping.js";
2
+ const ENTITY_SCHEMAS = {
3
+ campaign: `# Campaign Schema
4
+
5
+ ## Required Fields
6
+ - \`name\` (string) — Campaign name
7
+ - \`advertiserId\` (string) — Parent advertiser ID
8
+ - \`startDate\` (string) — Start date (YYYY-MM-DD)
9
+ - \`endDate\` (string) — End date (YYYY-MM-DD)
10
+
11
+ ## Optional Fields
12
+ - \`archived\` (boolean) — Archive status
13
+ - \`defaultLandingPageId\` (string) — Default landing page
14
+ - \`externalId\` (string) — External identifier`,
15
+ placement: `# Placement Schema
16
+
17
+ ## Required Fields
18
+ - \`name\` (string) — Placement name
19
+ - \`campaignId\` (string) — Parent campaign ID
20
+ - \`siteId\` (string) — Site hosting the placement
21
+ - \`compatibility\` (string) — DISPLAY, IN_STREAM_VIDEO, etc.
22
+ - \`size\` (object) — { width: number, height: number }
23
+
24
+ ## Optional Fields
25
+ - \`paymentSource\` (string) — PLACEMENT_AGENCY_PAID, PLACEMENT_PUBLISHER_PAID
26
+ - \`tagFormats\` (array) — PLACEMENT_TAG_STANDARD, etc.
27
+ - \`pricingSchedule\` (object) — Pricing configuration`,
28
+ ad: `# Ad Schema
29
+
30
+ ## Required Fields
31
+ - \`name\` (string) — Ad name
32
+ - \`campaignId\` (string) — Parent campaign ID
33
+ - \`type\` (string) — AD_SERVING_STANDARD_AD, AD_SERVING_DEFAULT_AD, etc.
34
+
35
+ ## Key Fields
36
+ - \`placementAssignments\` (array) — [{ placementId, active }]
37
+ - \`creativeAssignments\` (array) — [{ creativeId, active }]
38
+ - \`active\` (boolean) — Whether ad is active
39
+ - \`startTime\` (string) — Start datetime
40
+ - \`endTime\` (string) — End datetime`,
41
+ creative: `# Creative Schema
42
+
43
+ ## Required Fields
44
+ - \`name\` (string) — Creative name
45
+ - \`advertiserId\` (string) — Parent advertiser ID
46
+ - \`type\` (string) — DISPLAY, DISPLAY_IMAGE_GALLERY, HTML5_BANNER, etc.
47
+ - \`size\` (object) — { width: number, height: number }
48
+
49
+ ## Optional Fields
50
+ - \`active\` (boolean) — Active status
51
+ - \`clickTags\` (array) — Click tracking tags
52
+ - \`backupImageClickThroughUrl\` (object) — Fallback URL`,
53
+ site: `# Site Schema
54
+
55
+ ## Required Fields
56
+ - \`name\` (string) — Site name
57
+ - \`approved\` (boolean) — Approval status
58
+
59
+ ## Optional Fields
60
+ - \`directorySiteId\` (string) — Directory site reference
61
+ - \`siteSettings\` (object) — Site-level settings`,
62
+ advertiser: `# Advertiser Schema
63
+
64
+ ## Required Fields
65
+ - \`name\` (string) — Advertiser name
66
+
67
+ ## Key Fields
68
+ - \`status\` (string) — APPROVED, ON_HOLD
69
+ - \`defaultClickThroughEventTagId\` (string)
70
+ - \`floodlightConfigurationId\` (string) — Linked Floodlight config`,
71
+ floodlightActivity: `# Floodlight Activity Schema
72
+
73
+ ## Required Fields
74
+ - \`name\` (string) — Activity name
75
+ - \`floodlightConfigurationId\` (string) — Parent config ID
76
+ - \`floodlightActivityGroupName\` (string) — Activity group name
77
+ - \`floodlightTagType\` (string) — GLOBAL_SITE_TAG, IFRAME, IMAGE
78
+
79
+ ## Optional Fields
80
+ - \`countingMethod\` (string) — STANDARD_COUNTING, UNIQUE_COUNTING, etc.
81
+ - \`expectedUrl\` (string) — Expected conversion page URL
82
+ - \`cacheBustingType\` (string) — Tag cache busting setting`,
83
+ floodlightConfiguration: `# Floodlight Configuration Schema
84
+
85
+ ## Key Fields (read-only, one per advertiser)
86
+ - \`advertiserId\` (string) — Linked advertiser
87
+ - \`lookbackConfiguration\` (object) — Attribution windows
88
+ - \`naturalSearchConversionAttributionOption\` (string) — Natural search settings
89
+ - \`firstDayOfWeek\` (string) — MONDAY or SUNDAY
90
+
91
+ ## Notes
92
+ - Cannot be created; one auto-exists per advertiser
93
+ - Can be updated to modify lookback windows`,
94
+ };
95
+ export const entitySchemaResources = getSupportedEntityTypes().map((entityType) => ({
96
+ uri: `entity-schema://${entityType}`,
97
+ name: `${entityType} Schema`,
98
+ description: `Field schema for CM360 ${entityType} entities`,
99
+ mimeType: "text/markdown",
100
+ getContent: () => ENTITY_SCHEMAS[entityType] || `# ${entityType}\n\nSchema not yet documented.`,
101
+ }));
102
+ export const entitySchemaAllResource = {
103
+ uri: "entity-schema://all",
104
+ name: "All CM360 Entity Schemas",
105
+ description: "Combined schema reference for all CM360 entity types",
106
+ mimeType: "text/markdown",
107
+ getContent: () => getSupportedEntityTypes()
108
+ .map((t) => ENTITY_SCHEMAS[t])
109
+ .join("\n\n---\n\n"),
110
+ };
111
+ //# sourceMappingURL=entity-schemas.resource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entity-schemas.resource.js","sourceRoot":"","sources":["../../../../src/mcp-server/resources/definitions/entity-schemas.resource.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,uBAAuB,EAAwB,MAAM,qCAAqC,CAAC;AAEpG,MAAM,cAAc,GAAoC;IACtD,QAAQ,EAAE;;;;;;;;;;;gDAWoC;IAE9C,SAAS,EAAE;;;;;;;;;;;;uDAY0C;IAErD,EAAE,EAAE;;;;;;;;;;;;sCAYgC;IAEpC,QAAQ,EAAE;;;;;;;;;;;yDAW6C;IAEvD,IAAI,EAAE;;;;;;;;kDAQ0C;IAEhD,UAAU,EAAE;;;;;;;;oEAQsD;IAElE,kBAAkB,EAAE;;;;;;;;;;;4DAWsC;IAE1D,uBAAuB,EAAE;;;;;;;;;;4CAUiB;CAC3C,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAe,uBAAuB,EAAE,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAC9F,GAAG,EAAE,mBAAmB,UAAU,EAAE;IACpC,IAAI,EAAE,GAAG,UAAU,SAAS;IAC5B,WAAW,EAAE,0BAA0B,UAAU,WAAW;IAC5D,QAAQ,EAAE,eAAe;IACzB,UAAU,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,KAAK,UAAU,gCAAgC;CAChG,CAAC,CAAC,CAAC;AAEJ,MAAM,CAAC,MAAM,uBAAuB,GAAa;IAC/C,GAAG,EAAE,qBAAqB;IAC1B,IAAI,EAAE,0BAA0B;IAChC,WAAW,EAAE,sDAAsD;IACnE,QAAQ,EAAE,eAAe;IACzB,UAAU,EAAE,GAAG,EAAE,CACf,uBAAuB,EAAE;SACtB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;SAC7B,IAAI,CAAC,aAAa,CAAC;CACzB,CAAC"}
@@ -0,0 +1,8 @@
1
+ export { entityHierarchyResource } from "./entity-hierarchy.resource.js";
2
+ export { entitySchemaResources, entitySchemaAllResource } from "./entity-schemas.resource.js";
3
+ export { entityExampleResources, entityExampleAllResource } from "./entity-examples.resource.js";
4
+ export { reportingReferenceResource } from "./reporting-reference.resource.js";
5
+ export { targetingReferenceResource } from "./targeting-reference.resource.js";
6
+ import type { Resource } from "../types.js";
7
+ export declare const allResources: Resource[];
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/resources/definitions/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAC9F,OAAO,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACjG,OAAO,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAS/E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AA+B5C,eAAO,MAAM,YAAY,EAAE,QAAQ,EAUlC,CAAC"}
@@ -0,0 +1,49 @@
1
+ export { entityHierarchyResource } from "./entity-hierarchy.resource.js";
2
+ export { entitySchemaResources, entitySchemaAllResource } from "./entity-schemas.resource.js";
3
+ export { entityExampleResources, entityExampleAllResource } from "./entity-examples.resource.js";
4
+ export { reportingReferenceResource } from "./reporting-reference.resource.js";
5
+ export { targetingReferenceResource } from "./targeting-reference.resource.js";
6
+ import { entityHierarchyResource } from "./entity-hierarchy.resource.js";
7
+ import { entitySchemaResources, entitySchemaAllResource } from "./entity-schemas.resource.js";
8
+ import { entityExampleResources, entityExampleAllResource } from "./entity-examples.resource.js";
9
+ import { reportingReferenceResource } from "./reporting-reference.resource.js";
10
+ import { targetingReferenceResource } from "./targeting-reference.resource.js";
11
+ import { allTools } from "../../tools/definitions/index.js";
12
+ import { createToolExamplesResource, createServerCapabilitiesResource } from "@cesteral/shared";
13
+ const toolExamplesResource = createToolExamplesResource(allTools, "cm360-mcp");
14
+ const serverCapabilitiesResource = createServerCapabilitiesResource({
15
+ serverName: "cm360-mcp",
16
+ toolGroups: {
17
+ crud: [
18
+ "cm360_list_entities",
19
+ "cm360_get_entity",
20
+ "cm360_create_entity",
21
+ "cm360_update_entity",
22
+ "cm360_delete_entity",
23
+ ],
24
+ account: ["cm360_list_user_profiles"],
25
+ reporting: [
26
+ "cm360_get_report",
27
+ "cm360_submit_report",
28
+ "cm360_check_report_status",
29
+ "cm360_download_report",
30
+ ],
31
+ bulk: ["cm360_bulk_update_status", "cm360_bulk_create_entities", "cm360_bulk_update_entities"],
32
+ specialized: ["cm360_get_ad_preview", "cm360_list_targeting_options"],
33
+ validation: ["cm360_validate_entity"],
34
+ },
35
+ commonWorkflows: ["campaign_setup", "reporting", "floodlight_tracking"],
36
+ startHere: "cm360_list_user_profiles",
37
+ });
38
+ export const allResources = [
39
+ entityHierarchyResource,
40
+ entitySchemaAllResource,
41
+ ...entitySchemaResources,
42
+ entityExampleAllResource,
43
+ ...entityExampleResources,
44
+ reportingReferenceResource,
45
+ targetingReferenceResource,
46
+ ...(toolExamplesResource ? [toolExamplesResource] : []),
47
+ serverCapabilitiesResource,
48
+ ];
49
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/mcp-server/resources/definitions/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAC9F,OAAO,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACjG,OAAO,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAE/E,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAC9F,OAAO,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACjG,OAAO,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAC5D,OAAO,EAAE,0BAA0B,EAAE,gCAAgC,EAAE,MAAM,kBAAkB,CAAC;AAGhG,MAAM,oBAAoB,GAAG,0BAA0B,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;AAC/E,MAAM,0BAA0B,GAAG,gCAAgC,CAAC;IAClE,UAAU,EAAE,WAAW;IACvB,UAAU,EAAE;QACV,IAAI,EAAE;YACJ,qBAAqB;YACrB,kBAAkB;YAClB,qBAAqB;YACrB,qBAAqB;YACrB,qBAAqB;SACtB;QACD,OAAO,EAAE,CAAC,0BAA0B,CAAC;QACrC,SAAS,EAAE;YACT,kBAAkB;YAClB,qBAAqB;YACrB,2BAA2B;YAC3B,uBAAuB;SACxB;QACD,IAAI,EAAE,CAAC,0BAA0B,EAAE,4BAA4B,EAAE,4BAA4B,CAAC;QAC9F,WAAW,EAAE,CAAC,sBAAsB,EAAE,8BAA8B,CAAC;QACrE,UAAU,EAAE,CAAC,uBAAuB,CAAC;KACtC;IACD,eAAe,EAAE,CAAC,gBAAgB,EAAE,WAAW,EAAE,qBAAqB,CAAC;IACvE,SAAS,EAAE,0BAA0B;CACtC,CAAC,CAAC;AAKH,MAAM,CAAC,MAAM,YAAY,GAAe;IACtC,uBAAuB;IACvB,uBAAuB;IACvB,GAAG,qBAAqB;IACxB,wBAAwB;IACxB,GAAG,sBAAsB;IACzB,0BAA0B;IAC1B,0BAA0B;IAC1B,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,oBAA2C,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9E,0BAAiD;CAClD,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Resource } from "../types.js";
2
+ export declare const reportingReferenceResource: Resource;
3
+ //# sourceMappingURL=reporting-reference.resource.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reporting-reference.resource.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/resources/definitions/reporting-reference.resource.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,eAAO,MAAM,0BAA0B,EAAE,QA4DxC,CAAC"}