@cesteral/snapchat-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 (263) hide show
  1. package/LICENSE.md +201 -0
  2. package/README.md +336 -0
  3. package/dist/auth/index.d.ts +3 -0
  4. package/dist/auth/index.d.ts.map +1 -0
  5. package/dist/auth/index.js +3 -0
  6. package/dist/auth/index.js.map +1 -0
  7. package/dist/auth/snapchat-auth-adapter.d.ts +44 -0
  8. package/dist/auth/snapchat-auth-adapter.d.ts.map +1 -0
  9. package/dist/auth/snapchat-auth-adapter.js +127 -0
  10. package/dist/auth/snapchat-auth-adapter.js.map +1 -0
  11. package/dist/auth/snapchat-auth-strategy.d.ts +13 -0
  12. package/dist/auth/snapchat-auth-strategy.d.ts.map +1 -0
  13. package/dist/auth/snapchat-auth-strategy.js +54 -0
  14. package/dist/auth/snapchat-auth-strategy.js.map +1 -0
  15. package/dist/config/index.d.ts +124 -0
  16. package/dist/config/index.d.ts.map +1 -0
  17. package/dist/config/index.js +57 -0
  18. package/dist/config/index.js.map +1 -0
  19. package/dist/index.d.ts +3 -0
  20. package/dist/index.d.ts.map +1 -0
  21. package/dist/index.js +46 -0
  22. package/dist/index.js.map +1 -0
  23. package/dist/mcp-server/prompts/definitions/bulk-operations-workflow.prompt.d.ts +4 -0
  24. package/dist/mcp-server/prompts/definitions/bulk-operations-workflow.prompt.d.ts.map +1 -0
  25. package/dist/mcp-server/prompts/definitions/bulk-operations-workflow.prompt.js +127 -0
  26. package/dist/mcp-server/prompts/definitions/bulk-operations-workflow.prompt.js.map +1 -0
  27. package/dist/mcp-server/prompts/definitions/campaign-setup-workflow.prompt.d.ts +4 -0
  28. package/dist/mcp-server/prompts/definitions/campaign-setup-workflow.prompt.d.ts.map +1 -0
  29. package/dist/mcp-server/prompts/definitions/campaign-setup-workflow.prompt.js +121 -0
  30. package/dist/mcp-server/prompts/definitions/campaign-setup-workflow.prompt.js.map +1 -0
  31. package/dist/mcp-server/prompts/definitions/creative-upload-workflow.prompt.d.ts +4 -0
  32. package/dist/mcp-server/prompts/definitions/creative-upload-workflow.prompt.d.ts.map +1 -0
  33. package/dist/mcp-server/prompts/definitions/creative-upload-workflow.prompt.js +121 -0
  34. package/dist/mcp-server/prompts/definitions/creative-upload-workflow.prompt.js.map +1 -0
  35. package/dist/mcp-server/prompts/definitions/cross-platform-campaign-setup.prompt.d.ts +4 -0
  36. package/dist/mcp-server/prompts/definitions/cross-platform-campaign-setup.prompt.d.ts.map +1 -0
  37. package/dist/mcp-server/prompts/definitions/cross-platform-campaign-setup.prompt.js +299 -0
  38. package/dist/mcp-server/prompts/definitions/cross-platform-campaign-setup.prompt.js.map +1 -0
  39. package/dist/mcp-server/prompts/definitions/cross-platform-performance.prompt.d.ts +4 -0
  40. package/dist/mcp-server/prompts/definitions/cross-platform-performance.prompt.d.ts.map +1 -0
  41. package/dist/mcp-server/prompts/definitions/cross-platform-performance.prompt.js +170 -0
  42. package/dist/mcp-server/prompts/definitions/cross-platform-performance.prompt.js.map +1 -0
  43. package/dist/mcp-server/prompts/definitions/entity-duplication-workflow.prompt.d.ts +4 -0
  44. package/dist/mcp-server/prompts/definitions/entity-duplication-workflow.prompt.d.ts.map +1 -0
  45. package/dist/mcp-server/prompts/definitions/entity-duplication-workflow.prompt.js +198 -0
  46. package/dist/mcp-server/prompts/definitions/entity-duplication-workflow.prompt.js.map +1 -0
  47. package/dist/mcp-server/prompts/definitions/entity-update-workflow.prompt.d.ts +4 -0
  48. package/dist/mcp-server/prompts/definitions/entity-update-workflow.prompt.d.ts.map +1 -0
  49. package/dist/mcp-server/prompts/definitions/entity-update-workflow.prompt.js +189 -0
  50. package/dist/mcp-server/prompts/definitions/entity-update-workflow.prompt.js.map +1 -0
  51. package/dist/mcp-server/prompts/definitions/reporting-workflow.prompt.d.ts +4 -0
  52. package/dist/mcp-server/prompts/definitions/reporting-workflow.prompt.d.ts.map +1 -0
  53. package/dist/mcp-server/prompts/definitions/reporting-workflow.prompt.js +126 -0
  54. package/dist/mcp-server/prompts/definitions/reporting-workflow.prompt.js.map +1 -0
  55. package/dist/mcp-server/prompts/definitions/targeting-discovery-workflow.prompt.d.ts +4 -0
  56. package/dist/mcp-server/prompts/definitions/targeting-discovery-workflow.prompt.d.ts.map +1 -0
  57. package/dist/mcp-server/prompts/definitions/targeting-discovery-workflow.prompt.js +198 -0
  58. package/dist/mcp-server/prompts/definitions/targeting-discovery-workflow.prompt.js.map +1 -0
  59. package/dist/mcp-server/prompts/definitions/tool-schema-exploration.prompt.d.ts +4 -0
  60. package/dist/mcp-server/prompts/definitions/tool-schema-exploration.prompt.d.ts.map +1 -0
  61. package/dist/mcp-server/prompts/definitions/tool-schema-exploration.prompt.js +91 -0
  62. package/dist/mcp-server/prompts/definitions/tool-schema-exploration.prompt.js.map +1 -0
  63. package/dist/mcp-server/prompts/definitions/troubleshoot-entity.prompt.d.ts +4 -0
  64. package/dist/mcp-server/prompts/definitions/troubleshoot-entity.prompt.d.ts.map +1 -0
  65. package/dist/mcp-server/prompts/definitions/troubleshoot-entity.prompt.js +111 -0
  66. package/dist/mcp-server/prompts/definitions/troubleshoot-entity.prompt.js.map +1 -0
  67. package/dist/mcp-server/prompts/index.d.ts +9 -0
  68. package/dist/mcp-server/prompts/index.d.ts.map +1 -0
  69. package/dist/mcp-server/prompts/index.js +89 -0
  70. package/dist/mcp-server/prompts/index.js.map +1 -0
  71. package/dist/mcp-server/resources/definitions/entity-examples.resource.d.ts +4 -0
  72. package/dist/mcp-server/resources/definitions/entity-examples.resource.d.ts.map +1 -0
  73. package/dist/mcp-server/resources/definitions/entity-examples.resource.js +177 -0
  74. package/dist/mcp-server/resources/definitions/entity-examples.resource.js.map +1 -0
  75. package/dist/mcp-server/resources/definitions/entity-hierarchy.resource.d.ts +3 -0
  76. package/dist/mcp-server/resources/definitions/entity-hierarchy.resource.d.ts.map +1 -0
  77. package/dist/mcp-server/resources/definitions/entity-hierarchy.resource.js +194 -0
  78. package/dist/mcp-server/resources/definitions/entity-hierarchy.resource.js.map +1 -0
  79. package/dist/mcp-server/resources/definitions/entity-schemas.resource.d.ts +4 -0
  80. package/dist/mcp-server/resources/definitions/entity-schemas.resource.d.ts.map +1 -0
  81. package/dist/mcp-server/resources/definitions/entity-schemas.resource.js +117 -0
  82. package/dist/mcp-server/resources/definitions/entity-schemas.resource.js.map +1 -0
  83. package/dist/mcp-server/resources/definitions/index.d.ts +7 -0
  84. package/dist/mcp-server/resources/definitions/index.d.ts.map +1 -0
  85. package/dist/mcp-server/resources/definitions/index.js +54 -0
  86. package/dist/mcp-server/resources/definitions/index.js.map +1 -0
  87. package/dist/mcp-server/resources/definitions/reporting-reference.resource.d.ts +3 -0
  88. package/dist/mcp-server/resources/definitions/reporting-reference.resource.d.ts.map +1 -0
  89. package/dist/mcp-server/resources/definitions/reporting-reference.resource.js +148 -0
  90. package/dist/mcp-server/resources/definitions/reporting-reference.resource.js.map +1 -0
  91. package/dist/mcp-server/resources/index.d.ts +3 -0
  92. package/dist/mcp-server/resources/index.d.ts.map +1 -0
  93. package/dist/mcp-server/resources/index.js +2 -0
  94. package/dist/mcp-server/resources/index.js.map +1 -0
  95. package/dist/mcp-server/resources/types.d.ts +8 -0
  96. package/dist/mcp-server/resources/types.d.ts.map +1 -0
  97. package/dist/mcp-server/resources/types.js +2 -0
  98. package/dist/mcp-server/resources/types.js.map +1 -0
  99. package/dist/mcp-server/server.d.ts +5 -0
  100. package/dist/mcp-server/server.d.ts.map +1 -0
  101. package/dist/mcp-server/server.js +134 -0
  102. package/dist/mcp-server/server.js.map +1 -0
  103. package/dist/mcp-server/tools/definitions/adjust-bids.tool.d.ts +209 -0
  104. package/dist/mcp-server/tools/definitions/adjust-bids.tool.d.ts.map +1 -0
  105. package/dist/mcp-server/tools/definitions/adjust-bids.tool.js +141 -0
  106. package/dist/mcp-server/tools/definitions/adjust-bids.tool.js.map +1 -0
  107. package/dist/mcp-server/tools/definitions/bulk-create-entities.tool.d.ts +163 -0
  108. package/dist/mcp-server/tools/definitions/bulk-create-entities.tool.d.ts.map +1 -0
  109. package/dist/mcp-server/tools/definitions/bulk-create-entities.tool.js +119 -0
  110. package/dist/mcp-server/tools/definitions/bulk-create-entities.tool.js.map +1 -0
  111. package/dist/mcp-server/tools/definitions/bulk-update-entities.tool.d.ts +241 -0
  112. package/dist/mcp-server/tools/definitions/bulk-update-entities.tool.d.ts.map +1 -0
  113. package/dist/mcp-server/tools/definitions/bulk-update-entities.tool.js +149 -0
  114. package/dist/mcp-server/tools/definitions/bulk-update-entities.tool.js.map +1 -0
  115. package/dist/mcp-server/tools/definitions/bulk-update-status.tool.d.ts +203 -0
  116. package/dist/mcp-server/tools/definitions/bulk-update-status.tool.d.ts.map +1 -0
  117. package/dist/mcp-server/tools/definitions/bulk-update-status.tool.js +154 -0
  118. package/dist/mcp-server/tools/definitions/bulk-update-status.tool.js.map +1 -0
  119. package/dist/mcp-server/tools/definitions/check-report-status.tool.d.ts +119 -0
  120. package/dist/mcp-server/tools/definitions/check-report-status.tool.d.ts.map +1 -0
  121. package/dist/mcp-server/tools/definitions/check-report-status.tool.js +89 -0
  122. package/dist/mcp-server/tools/definitions/check-report-status.tool.js.map +1 -0
  123. package/dist/mcp-server/tools/definitions/create-entity.tool.d.ts +131 -0
  124. package/dist/mcp-server/tools/definitions/create-entity.tool.d.ts.map +1 -0
  125. package/dist/mcp-server/tools/definitions/create-entity.tool.js +116 -0
  126. package/dist/mcp-server/tools/definitions/create-entity.tool.js.map +1 -0
  127. package/dist/mcp-server/tools/definitions/delete-entity.tool.d.ts +100 -0
  128. package/dist/mcp-server/tools/definitions/delete-entity.tool.d.ts.map +1 -0
  129. package/dist/mcp-server/tools/definitions/delete-entity.tool.js +110 -0
  130. package/dist/mcp-server/tools/definitions/delete-entity.tool.js.map +1 -0
  131. package/dist/mcp-server/tools/definitions/download-report.tool.d.ts +297 -0
  132. package/dist/mcp-server/tools/definitions/download-report.tool.d.ts.map +1 -0
  133. package/dist/mcp-server/tools/definitions/download-report.tool.js +103 -0
  134. package/dist/mcp-server/tools/definitions/download-report.tool.js.map +1 -0
  135. package/dist/mcp-server/tools/definitions/duplicate-entity.tool.d.ts +105 -0
  136. package/dist/mcp-server/tools/definitions/duplicate-entity.tool.d.ts.map +1 -0
  137. package/dist/mcp-server/tools/definitions/duplicate-entity.tool.js +93 -0
  138. package/dist/mcp-server/tools/definitions/duplicate-entity.tool.js.map +1 -0
  139. package/dist/mcp-server/tools/definitions/get-ad-preview.tool.d.ts +68 -0
  140. package/dist/mcp-server/tools/definitions/get-ad-preview.tool.d.ts.map +1 -0
  141. package/dist/mcp-server/tools/definitions/get-ad-preview.tool.js +61 -0
  142. package/dist/mcp-server/tools/definitions/get-ad-preview.tool.js.map +1 -0
  143. package/dist/mcp-server/tools/definitions/get-audience-estimate.tool.d.ts +104 -0
  144. package/dist/mcp-server/tools/definitions/get-audience-estimate.tool.d.ts.map +1 -0
  145. package/dist/mcp-server/tools/definitions/get-audience-estimate.tool.js +107 -0
  146. package/dist/mcp-server/tools/definitions/get-audience-estimate.tool.js.map +1 -0
  147. package/dist/mcp-server/tools/definitions/get-entity.tool.d.ts +76 -0
  148. package/dist/mcp-server/tools/definitions/get-entity.tool.d.ts.map +1 -0
  149. package/dist/mcp-server/tools/definitions/get-entity.tool.js +71 -0
  150. package/dist/mcp-server/tools/definitions/get-entity.tool.js.map +1 -0
  151. package/dist/mcp-server/tools/definitions/get-report-breakdowns.tool.d.ts +295 -0
  152. package/dist/mcp-server/tools/definitions/get-report-breakdowns.tool.d.ts.map +1 -0
  153. package/dist/mcp-server/tools/definitions/get-report-breakdowns.tool.js +172 -0
  154. package/dist/mcp-server/tools/definitions/get-report-breakdowns.tool.js.map +1 -0
  155. package/dist/mcp-server/tools/definitions/get-report.tool.d.ts +279 -0
  156. package/dist/mcp-server/tools/definitions/get-report.tool.d.ts.map +1 -0
  157. package/dist/mcp-server/tools/definitions/get-report.tool.js +166 -0
  158. package/dist/mcp-server/tools/definitions/get-report.tool.js.map +1 -0
  159. package/dist/mcp-server/tools/definitions/get-targeting-options.tool.d.ts +89 -0
  160. package/dist/mcp-server/tools/definitions/get-targeting-options.tool.d.ts.map +1 -0
  161. package/dist/mcp-server/tools/definitions/get-targeting-options.tool.js +99 -0
  162. package/dist/mcp-server/tools/definitions/get-targeting-options.tool.js.map +1 -0
  163. package/dist/mcp-server/tools/definitions/index.d.ts +25 -0
  164. package/dist/mcp-server/tools/definitions/index.d.ts.map +1 -0
  165. package/dist/mcp-server/tools/definitions/index.js +75 -0
  166. package/dist/mcp-server/tools/definitions/index.js.map +1 -0
  167. package/dist/mcp-server/tools/definitions/list-advertisers.tool.d.ts +54 -0
  168. package/dist/mcp-server/tools/definitions/list-advertisers.tool.d.ts.map +1 -0
  169. package/dist/mcp-server/tools/definitions/list-advertisers.tool.js +61 -0
  170. package/dist/mcp-server/tools/definitions/list-advertisers.tool.js.map +1 -0
  171. package/dist/mcp-server/tools/definitions/list-entities.tool.d.ts +161 -0
  172. package/dist/mcp-server/tools/definitions/list-entities.tool.d.ts.map +1 -0
  173. package/dist/mcp-server/tools/definitions/list-entities.tool.js +94 -0
  174. package/dist/mcp-server/tools/definitions/list-entities.tool.js.map +1 -0
  175. package/dist/mcp-server/tools/definitions/search-targeting.tool.d.ts +103 -0
  176. package/dist/mcp-server/tools/definitions/search-targeting.tool.d.ts.map +1 -0
  177. package/dist/mcp-server/tools/definitions/search-targeting.tool.js +108 -0
  178. package/dist/mcp-server/tools/definitions/search-targeting.tool.js.map +1 -0
  179. package/dist/mcp-server/tools/definitions/submit-report.tool.d.ts +134 -0
  180. package/dist/mcp-server/tools/definitions/submit-report.tool.d.ts.map +1 -0
  181. package/dist/mcp-server/tools/definitions/submit-report.tool.js +110 -0
  182. package/dist/mcp-server/tools/definitions/submit-report.tool.js.map +1 -0
  183. package/dist/mcp-server/tools/definitions/update-entity.tool.d.ts +155 -0
  184. package/dist/mcp-server/tools/definitions/update-entity.tool.d.ts.map +1 -0
  185. package/dist/mcp-server/tools/definitions/update-entity.tool.js +115 -0
  186. package/dist/mcp-server/tools/definitions/update-entity.tool.js.map +1 -0
  187. package/dist/mcp-server/tools/definitions/upload-image.tool.d.ts +82 -0
  188. package/dist/mcp-server/tools/definitions/upload-image.tool.d.ts.map +1 -0
  189. package/dist/mcp-server/tools/definitions/upload-image.tool.js +111 -0
  190. package/dist/mcp-server/tools/definitions/upload-image.tool.js.map +1 -0
  191. package/dist/mcp-server/tools/definitions/upload-video.tool.d.ts +82 -0
  192. package/dist/mcp-server/tools/definitions/upload-video.tool.d.ts.map +1 -0
  193. package/dist/mcp-server/tools/definitions/upload-video.tool.js +109 -0
  194. package/dist/mcp-server/tools/definitions/upload-video.tool.js.map +1 -0
  195. package/dist/mcp-server/tools/definitions/validate-entity.tool.d.ts +169 -0
  196. package/dist/mcp-server/tools/definitions/validate-entity.tool.d.ts.map +1 -0
  197. package/dist/mcp-server/tools/definitions/validate-entity.tool.js +204 -0
  198. package/dist/mcp-server/tools/definitions/validate-entity.tool.js.map +1 -0
  199. package/dist/mcp-server/tools/index.d.ts +2 -0
  200. package/dist/mcp-server/tools/index.d.ts.map +1 -0
  201. package/dist/mcp-server/tools/index.js +2 -0
  202. package/dist/mcp-server/tools/index.js.map +1 -0
  203. package/dist/mcp-server/tools/utils/entity-mapping.d.ts +18 -0
  204. package/dist/mcp-server/tools/utils/entity-mapping.d.ts.map +1 -0
  205. package/dist/mcp-server/tools/utils/entity-mapping.js +96 -0
  206. package/dist/mcp-server/tools/utils/entity-mapping.js.map +1 -0
  207. package/dist/mcp-server/tools/utils/media-types.d.ts +19 -0
  208. package/dist/mcp-server/tools/utils/media-types.d.ts.map +1 -0
  209. package/dist/mcp-server/tools/utils/media-types.js +2 -0
  210. package/dist/mcp-server/tools/utils/media-types.js.map +1 -0
  211. package/dist/mcp-server/tools/utils/resolve-session.d.ts +4 -0
  212. package/dist/mcp-server/tools/utils/resolve-session.d.ts.map +1 -0
  213. package/dist/mcp-server/tools/utils/resolve-session.js +6 -0
  214. package/dist/mcp-server/tools/utils/resolve-session.js.map +1 -0
  215. package/dist/mcp-server/transports/streamable-http-transport.d.ts +61 -0
  216. package/dist/mcp-server/transports/streamable-http-transport.d.ts.map +1 -0
  217. package/dist/mcp-server/transports/streamable-http-transport.js +105 -0
  218. package/dist/mcp-server/transports/streamable-http-transport.js.map +1 -0
  219. package/dist/services/session-services.d.ts +20 -0
  220. package/dist/services/session-services.d.ts.map +1 -0
  221. package/dist/services/session-services.js +23 -0
  222. package/dist/services/session-services.js.map +1 -0
  223. package/dist/services/snapchat/snapchat-http-client.d.ts +16 -0
  224. package/dist/services/snapchat/snapchat-http-client.d.ts.map +1 -0
  225. package/dist/services/snapchat/snapchat-http-client.js +153 -0
  226. package/dist/services/snapchat/snapchat-http-client.js.map +1 -0
  227. package/dist/services/snapchat/snapchat-reporting-service.d.ts +64 -0
  228. package/dist/services/snapchat/snapchat-reporting-service.d.ts.map +1 -0
  229. package/dist/services/snapchat/snapchat-reporting-service.js +172 -0
  230. package/dist/services/snapchat/snapchat-reporting-service.js.map +1 -0
  231. package/dist/services/snapchat/snapchat-service.d.ts +82 -0
  232. package/dist/services/snapchat/snapchat-service.d.ts.map +1 -0
  233. package/dist/services/snapchat/snapchat-service.js +321 -0
  234. package/dist/services/snapchat/snapchat-service.js.map +1 -0
  235. package/dist/services/snapchat/types.d.ts +136 -0
  236. package/dist/services/snapchat/types.d.ts.map +1 -0
  237. package/dist/services/snapchat/types.js +59 -0
  238. package/dist/services/snapchat/types.js.map +1 -0
  239. package/dist/types-global/mcp.d.ts +2 -0
  240. package/dist/types-global/mcp.d.ts.map +1 -0
  241. package/dist/types-global/mcp.js +2 -0
  242. package/dist/types-global/mcp.js.map +1 -0
  243. package/dist/utils/errors/index.d.ts +2 -0
  244. package/dist/utils/errors/index.d.ts.map +1 -0
  245. package/dist/utils/errors/index.js +2 -0
  246. package/dist/utils/errors/index.js.map +1 -0
  247. package/dist/utils/platform.d.ts +3 -0
  248. package/dist/utils/platform.d.ts.map +1 -0
  249. package/dist/utils/platform.js +5 -0
  250. package/dist/utils/platform.js.map +1 -0
  251. package/dist/utils/security/rate-limiter.d.ts +3 -0
  252. package/dist/utils/security/rate-limiter.d.ts.map +1 -0
  253. package/dist/utils/security/rate-limiter.js +5 -0
  254. package/dist/utils/security/rate-limiter.js.map +1 -0
  255. package/dist/utils/telemetry/index.d.ts +2 -0
  256. package/dist/utils/telemetry/index.d.ts.map +1 -0
  257. package/dist/utils/telemetry/index.js +2 -0
  258. package/dist/utils/telemetry/index.js.map +1 -0
  259. package/dist/utils/telemetry/tracing.d.ts +3 -0
  260. package/dist/utils/telemetry/tracing.d.ts.map +1 -0
  261. package/dist/utils/telemetry/tracing.js +4 -0
  262. package/dist/utils/telemetry/tracing.js.map +1 -0
  263. package/package.json +55 -0
@@ -0,0 +1,126 @@
1
+ export const snapchatReportingWorkflowPrompt = {
2
+ name: "snapchat_reporting_workflow",
3
+ description: "Guide for submitting and retrieving Snapchat Ads async reports with dimensions, metrics, and breakdowns",
4
+ arguments: [
5
+ {
6
+ name: "adAccountId",
7
+ description: "Snapchat Advertiser ID",
8
+ required: true,
9
+ },
10
+ {
11
+ name: "reportLevel",
12
+ description: "Report level: AUCTION, RESERVATION (default: AUCTION)",
13
+ required: false,
14
+ },
15
+ ],
16
+ };
17
+ export function getSnapchatReportingWorkflowMessage(args) {
18
+ const adAccountId = args?.adAccountId || "{adAccountId}";
19
+ const reportLevel = args?.reportLevel || "AUCTION";
20
+ return `# Snapchat Reporting Workflow
21
+
22
+ Advertiser: \`${adAccountId}\`
23
+ Report Level: \`${reportLevel}\`
24
+
25
+ ---
26
+
27
+ ## Overview
28
+
29
+ Snapchat reports are **async** — \`snapchat_get_report\` submits the job, polls for completion, and returns the results when ready.
30
+
31
+ ---
32
+
33
+ ## Step 1: Basic Campaign Report
34
+
35
+ \`\`\`json
36
+ snapchat_get_report({
37
+ "adAccountId": "${adAccountId}",
38
+ "dimensions": ["campaign_id", "stat_time_day"],
39
+ "metrics": ["impressions", "clicks", "spend", "ctr", "cpc", "conversions", "cost_per_conversion"],
40
+ "startDate": "2026-02-01",
41
+ "endDate": "2026-03-07"
42
+ })
43
+ \`\`\`
44
+
45
+ ## Step 2: Ad Group Level Report
46
+
47
+ \`\`\`json
48
+ snapchat_get_report({
49
+ "adAccountId": "${adAccountId}",
50
+ "dimensions": ["adgroup_id", "stat_time_day"],
51
+ "metrics": ["impressions", "clicks", "spend", "video_play_actions", "video_watched_2s", "video_watched_6s"],
52
+ "startDate": "2026-02-01",
53
+ "endDate": "2026-03-07"
54
+ })
55
+ \`\`\`
56
+
57
+ ## Step 3: Breakdown Report
58
+
59
+ Add demographic and contextual breakdowns to your report:
60
+
61
+ \`\`\`json
62
+ snapchat_get_report_breakdowns({
63
+ "adAccountId": "${adAccountId}",
64
+ "dimensions": ["campaign_id"],
65
+ "breakdowns": ["gender", "age"],
66
+ "metrics": ["impressions", "clicks", "spend", "conversions"],
67
+ "startDate": "2026-02-01",
68
+ "endDate": "2026-03-07"
69
+ })
70
+ \`\`\`
71
+
72
+ ## Step 4: Video Engagement Report
73
+
74
+ \`\`\`json
75
+ snapchat_get_report({
76
+ "adAccountId": "${adAccountId}",
77
+ "dimensions": ["ad_id"],
78
+ "metrics": [
79
+ "impressions", "video_play_actions", "video_watched_2s",
80
+ "video_watched_6s", "video_views_p25", "video_views_p50",
81
+ "video_views_p75", "video_views_p100"
82
+ ],
83
+ "startDate": "2026-02-01",
84
+ "endDate": "2026-03-07"
85
+ })
86
+ \`\`\`
87
+
88
+ ## Resource References
89
+
90
+ - Fetch \`reporting-reference://snapchat\` for full metrics and dimensions list
91
+ - Fetch \`entity-hierarchy://snapchat/all\` for entity relationships
92
+
93
+ ## Common Dimensions
94
+
95
+ | Dimension | Level |
96
+ |-----------|-------|
97
+ | \`campaign_id\` | Campaign |
98
+ | \`adgroup_id\` | Ad Group |
99
+ | \`ad_id\` | Ad |
100
+ | \`stat_time_day\` | Daily breakdown |
101
+ | \`stat_time_hour\` | Hourly breakdown |
102
+
103
+ ## Common Metrics
104
+
105
+ | Metric | Description |
106
+ |--------|-------------|
107
+ | \`impressions\` | Total impressions |
108
+ | \`clicks\` | Total clicks |
109
+ | \`spend\` | Total spend (account currency) |
110
+ | \`ctr\` | Click-through rate |
111
+ | \`cpc\` | Cost per click |
112
+ | \`conversions\` | Total conversions |
113
+ | \`cost_per_conversion\` | CPA |
114
+ | \`video_play_actions\` | Video starts |
115
+ | \`video_watched_2s\` | 2-second video views |
116
+ | \`video_watched_6s\` | 6-second video views |
117
+
118
+ ## Tips
119
+
120
+ - Reports may take **30 seconds to several minutes** depending on date range and data volume
121
+ - Data has a **24-48 hour lag** for finalized metrics
122
+ - Max date range per report is **180 days**
123
+ - Budget and spend values are in **account currency** (not cents, not micros)
124
+ `;
125
+ }
126
+ //# 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,+BAA+B,GAAW;IACrD,IAAI,EAAE,6BAA6B;IACnC,WAAW,EACT,yGAAyG;IAC3G,SAAS,EAAE;QACT;YACE,IAAI,EAAE,aAAa;YACnB,WAAW,EAAE,wBAAwB;YACrC,QAAQ,EAAE,IAAI;SACf;QACD;YACE,IAAI,EAAE,aAAa;YACnB,WAAW,EAAE,uDAAuD;YACpE,QAAQ,EAAE,KAAK;SAChB;KACF;CACF,CAAC;AAEF,MAAM,UAAU,mCAAmC,CAAC,IAA6B;IAC/E,MAAM,WAAW,GAAG,IAAI,EAAE,WAAW,IAAI,eAAe,CAAC;IACzD,MAAM,WAAW,GAAG,IAAI,EAAE,WAAW,IAAI,SAAS,CAAC;IAEnD,OAAO;;gBAEO,WAAW;kBACT,WAAW;;;;;;;;;;;;;;oBAcT,WAAW;;;;;;;;;;;;oBAYX,WAAW;;;;;;;;;;;;;;oBAcX,WAAW;;;;;;;;;;;;;oBAaX,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgD9B,CAAC;AACF,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { Prompt } from "@modelcontextprotocol/sdk/types.js";
2
+ export declare const snapchatTargetingDiscoveryWorkflowPrompt: Prompt;
3
+ export declare function getSnapchatTargetingDiscoveryWorkflowMessage(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;AAQjE,eAAO,MAAM,wCAAwC,EAAE,MAiBtD,CAAC;AAEF,wBAAgB,4CAA4C,CAC1D,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC5B,MAAM,CAqLR"}
@@ -0,0 +1,198 @@
1
+ export const snapchatTargetingDiscoveryWorkflowPrompt = {
2
+ name: "snapchat_targeting_discovery_workflow",
3
+ description: "Step-by-step guide for researching Snapchat audiences: search interest categories, browse behaviors, build targeting configs, and estimate audience size before ad group creation.",
4
+ arguments: [
5
+ {
6
+ name: "adAccountId",
7
+ description: "Snapchat Advertiser ID",
8
+ required: true,
9
+ },
10
+ {
11
+ name: "goal",
12
+ description: "Research goal: 'search' (find by keyword), 'browse' (explore options), or 'build' (assemble targeting). Default: search",
13
+ required: false,
14
+ },
15
+ ],
16
+ };
17
+ export function getSnapchatTargetingDiscoveryWorkflowMessage(args) {
18
+ const adAccountId = args?.adAccountId || "{adAccountId}";
19
+ const goal = args?.goal || "search";
20
+ return `# Snapchat Targeting Discovery Workflow
21
+
22
+ Advertiser: \`${adAccountId}\`
23
+ Goal: \`${goal}\`
24
+
25
+ ---
26
+
27
+ ## Overview
28
+
29
+ Before creating ad groups, you need to build a **targeting configuration** — the fields that define your Snapchat audience. This workflow helps you discover and validate targeting options.
30
+
31
+ | Tool | Purpose | Use When |
32
+ |------|---------|----------|
33
+ | \`snapchat_search_targeting\` | Search by keyword | You know the audience you want |
34
+ | \`snapchat_get_targeting_options\` | Browse available targeting | You want to explore what's available |
35
+ | \`snapchat_get_audience_estimate\` | Estimate audience size | Before committing to targeting |
36
+
37
+ ---
38
+
39
+ ## Step 1: Search Targeting Options
40
+
41
+ Search for interest categories by keyword:
42
+
43
+ \`\`\`json
44
+ {
45
+ "tool": "snapchat_search_targeting",
46
+ "params": {
47
+ "adAccountId": "${adAccountId}",
48
+ "targetingType": "INTEREST_KEYWORD",
49
+ "query": "fitness"
50
+ }
51
+ }
52
+ \`\`\`
53
+
54
+ Each result includes:
55
+ - \`id\` — The targeting ID to use in your ad group
56
+ - \`name\` — Human-readable label
57
+
58
+ ### Key Targeting Types
59
+
60
+ | Targeting Type | What It Searches | Example |
61
+ |----------------|-----------------|---------|
62
+ | \`INTEREST_KEYWORD\` | Interest categories | "fitness", "gaming" |
63
+ | \`BEHAVIOR\` | Behavioral segments | App engagement behaviors |
64
+ | \`HASHTAG\` | Hashtag interest groups | "DIY", "travel" |
65
+
66
+ ---
67
+
68
+ ## Step 2: Browse Targeting Categories
69
+
70
+ To explore all available targeting options for your account:
71
+
72
+ \`\`\`json
73
+ {
74
+ "tool": "snapchat_get_targeting_options",
75
+ "params": {
76
+ "adAccountId": "${adAccountId}"
77
+ }
78
+ }
79
+ \`\`\`
80
+
81
+ Filter by type:
82
+
83
+ \`\`\`json
84
+ {
85
+ "tool": "snapchat_get_targeting_options",
86
+ "params": {
87
+ "adAccountId": "${adAccountId}",
88
+ "targetingType": "INTEREST"
89
+ }
90
+ }
91
+ \`\`\`
92
+
93
+ ---
94
+
95
+ ## Step 3: Build Ad Group Targeting
96
+
97
+ Combine your research into an ad group payload:
98
+
99
+ \`\`\`json
100
+ {
101
+ "age": ["AGE_18_24", "AGE_25_34", "AGE_35_44"],
102
+ "gender": ["GENDER_UNLIMITED"],
103
+ "location_ids": ["US", "GB"],
104
+ "interest_keyword_ids": ["123456", "789012"],
105
+ "operating_systems": ["IOS", "ANDROID"],
106
+ "placement_type": "PLACEMENT_TYPE_NORMAL",
107
+ "bid_type": "BID_TYPE_CUSTOM",
108
+ "bid_price": 0.5,
109
+ "optimize_goal": "CLICK"
110
+ }
111
+ \`\`\`
112
+
113
+ ### Key Targeting Fields
114
+
115
+ | Field | Type | Description |
116
+ |-------|------|-------------|
117
+ | \`age\` | Array | Age groups: AGE_13_17 through AGE_55_PLUS |
118
+ | \`gender\` | Array | GENDER_MALE, GENDER_FEMALE, GENDER_UNLIMITED |
119
+ | \`location_ids\` | Array | Country codes or location IDs |
120
+ | \`interest_keyword_ids\` | Array | Interest keyword IDs from search |
121
+ | \`operating_systems\` | Array | IOS, ANDROID |
122
+ | \`placement_type\` | String | PLACEMENT_TYPE_NORMAL (auto), PLACEMENT_TYPE_SEARCH |
123
+ | \`bid_price\` | Number | Bid in account currency |
124
+
125
+ ⚠️ **GOTCHA**: Age group values are enum strings — use exact values like \`AGE_18_24\`, not ranges like \`18-24\`.
126
+
127
+ ⚠️ **GOTCHA**: Location IDs can be country codes (e.g., "US") or numeric IDs for cities/regions — use \`snapchat_search_targeting\` to find valid values.
128
+
129
+ ---
130
+
131
+ ## Step 4: Estimate Audience Size
132
+
133
+ Before creating the ad group, verify your targeting reaches a viable audience:
134
+
135
+ \`\`\`json
136
+ {
137
+ "tool": "snapchat_get_audience_estimate",
138
+ "params": {
139
+ "adAccountId": "${adAccountId}",
140
+ "targetingConfig": {
141
+ "age": ["AGE_18_24", "AGE_25_34"],
142
+ "gender": ["GENDER_UNLIMITED"],
143
+ "location_ids": ["US"],
144
+ "interest_keyword_ids": ["123456"]
145
+ }
146
+ }
147
+ }
148
+ \`\`\`
149
+
150
+ Interpret results:
151
+ - **Too narrow** (< 50K reach) → Broaden age groups or add more interests
152
+ - **Too broad** (> 100M reach) → Add more specific interests or narrow demographics
153
+ - **Sweet spot**: 1M–50M for most Snapchat campaigns
154
+
155
+ ---
156
+
157
+ ## Step 5: Apply to Ad Group
158
+
159
+ Use the targeting when creating or updating an ad group:
160
+
161
+ \`\`\`json
162
+ {
163
+ "tool": "snapchat_create_entity",
164
+ "params": {
165
+ "entityType": "adGroup",
166
+ "adAccountId": "${adAccountId}",
167
+ "data": {
168
+ "campaign_id": "{campaignId}",
169
+ "adgroup_name": "US Fitness Enthusiasts 18-34",
170
+ "placement_type": "PLACEMENT_TYPE_NORMAL",
171
+ "budget_mode": "BUDGET_MODE_DAY",
172
+ "budget": 50,
173
+ "schedule_type": "SCHEDULE_START_END",
174
+ "schedule_start_time": "2026-03-10 00:00:00",
175
+ "schedule_end_time": "2026-12-31 23:59:59",
176
+ "optimize_goal": "CLICK",
177
+ "bid_type": "BID_TYPE_CUSTOM",
178
+ "bid_price": 0.5,
179
+ "age": ["AGE_18_24", "AGE_25_34"],
180
+ "gender": ["GENDER_UNLIMITED"],
181
+ "location_ids": ["US"],
182
+ "interest_keyword_ids": ["123456"]
183
+ }
184
+ }
185
+ }
186
+ \`\`\`
187
+
188
+ ⚠️ **GOTCHA**: Budget values are in **account currency** — \`budget: 50\` means $50.00.
189
+
190
+ ---
191
+
192
+ ## Related Resources
193
+ - \`reporting-reference://snapchat\` — Reporting metrics and dimensions
194
+ - \`entity-schema://snapchat/adGroup\` — Ad Group fields including all targeting parameters
195
+ - \`entity-examples://snapchat/adGroup\` — Example ad group payloads with targeting
196
+ `;
197
+ }
198
+ //# 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":"AAWA,MAAM,CAAC,MAAM,wCAAwC,GAAW;IAC9D,IAAI,EAAE,uCAAuC;IAC7C,WAAW,EACT,oLAAoL;IACtL,SAAS,EAAE;QACT;YACE,IAAI,EAAE,aAAa;YACnB,WAAW,EAAE,wBAAwB;YACrC,QAAQ,EAAE,IAAI;SACf;QACD;YACE,IAAI,EAAE,MAAM;YACZ,WAAW,EACT,yHAAyH;YAC3H,QAAQ,EAAE,KAAK;SAChB;KACF;CACF,CAAC;AAEF,MAAM,UAAU,4CAA4C,CAC1D,IAA6B;IAE7B,MAAM,WAAW,GAAG,IAAI,EAAE,WAAW,IAAI,eAAe,CAAC;IACzD,MAAM,IAAI,GAAG,IAAI,EAAE,IAAI,IAAI,QAAQ,CAAC;IAEpC,OAAO;;gBAEO,WAAW;UACjB,IAAI;;;;;;;;;;;;;;;;;;;;;;;;sBAwBQ,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBA6BX,WAAW;;;;;;;;;;;sBAWX,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAoDX,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;sBA2BX,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8BhC,CAAC;AACF,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { Prompt } from "@modelcontextprotocol/sdk/types.js";
2
+ export declare const snapchatToolSchemaExplorationPrompt: Prompt;
3
+ export declare function getSnapchatToolSchemaExplorationMessage(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,mCAAmC,EAAE,MAWjD,CAAC;AAEF,wBAAgB,uCAAuC,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CA+E7F"}
@@ -0,0 +1,91 @@
1
+ export const snapchatToolSchemaExplorationPrompt = {
2
+ name: "snapchat_tool_schema_exploration",
3
+ description: "Guide for discovering and understanding Snapchat MCP tools, resources, and schemas",
4
+ arguments: [
5
+ {
6
+ name: "objective",
7
+ description: "Exploration objective (e.g., campaign management, reporting, targeting, bulk operations)",
8
+ required: false,
9
+ },
10
+ ],
11
+ };
12
+ export function getSnapchatToolSchemaExplorationMessage(args) {
13
+ const objective = args?.objective || "general capability discovery";
14
+ return `# Snapchat MCP Tool & Schema Exploration Guide
15
+
16
+ ## Context
17
+ - Server: snapchat-mcp (Snapchat Ads Campaign Management)
18
+ - Objective: ${objective}
19
+
20
+ Use this workflow to discover Snapchat 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://snapchat/all\` | Entity relationships, API patterns, creation order |
31
+ | \`entity-schema://snapchat/campaign\` | Campaign fields |
32
+ | \`entity-schema://snapchat/adGroup\` | Ad Group fields + targeting |
33
+ | \`entity-schema://snapchat/ad\` | Ad fields |
34
+ | \`entity-schema://snapchat/creative\` | Creative fields |
35
+ | \`entity-examples://snapchat/all\` | All entity examples |
36
+ | \`entity-examples://snapchat/{type}\` | Examples for specific type |
37
+ | \`reporting-reference://snapchat\` | Metrics, dimensions, and breakdown options |
38
+
39
+ ## Tool Categories
40
+
41
+ ### Read Operations
42
+ - \`snapchat_list_ad_accounts\` — List accessible advertiser accounts
43
+ - \`snapchat_list_entities\` — List entities with page pagination
44
+ - \`snapchat_get_entity\` — Get single entity by ID
45
+
46
+ ### Write Operations
47
+ - \`snapchat_create_entity\` — Create entity
48
+ - \`snapchat_update_entity\` — Update entity fields
49
+ - \`snapchat_delete_entity\` — Delete entities
50
+
51
+ ### Reporting (Async)
52
+ - \`snapchat_get_report\` — Submit async report and download results
53
+ - \`snapchat_get_report_breakdowns\` — Report with breakdown dimensions
54
+
55
+ ### Bulk Operations
56
+ - \`snapchat_bulk_update_status\` — Batch enable/disable/delete entities
57
+ - \`snapchat_bulk_create_entities\` — Batch creation (up to 50)
58
+ - \`snapchat_bulk_update_entities\` — Batch updates (up to 50)
59
+ - \`snapchat_adjust_bids\` — Batch adjust ad group bid prices
60
+
61
+ ### Targeting
62
+ - \`snapchat_search_targeting\` — Search interest categories, behaviors, demographics
63
+ - \`snapchat_get_targeting_options\` — Browse targeting categories
64
+
65
+ ### Specialized
66
+ - \`snapchat_get_audience_estimate\` — Audience size estimation
67
+ - \`snapchat_get_ad_preview\` — Ad preview for video/image ads
68
+
69
+ ### Validation
70
+ - \`snapchat_validate_entity\` — Client-side entity validation
71
+
72
+ ## Workflow Prompts
73
+
74
+ | Task | Prompt |
75
+ |------|--------|
76
+ | Create a full campaign structure | \`snapchat_campaign_setup_workflow\` |
77
+ | Research audiences & build targeting | \`snapchat_targeting_discovery_workflow\` |
78
+ | Update entities safely | \`snapchat_entity_update_workflow\` |
79
+ | Bulk create/update/status/bids | \`snapchat_bulk_operations_workflow\` |
80
+ | Async reporting & breakdowns | \`snapchat_reporting_workflow\` |
81
+ | Troubleshoot entity issues | \`snapchat_troubleshoot_entity\` |
82
+
83
+ ## Recommended Exploration Order
84
+
85
+ 1. Start with \`snapchat_list_ad_accounts\` to find your account
86
+ 2. Fetch \`entity-hierarchy://snapchat/all\` for API patterns
87
+ 3. Fetch \`entity-schema://snapchat/{type}\` for field details
88
+ 4. Fetch \`entity-examples://snapchat/{type}\` for payload templates
89
+ `;
90
+ }
91
+ //# 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,mCAAmC,GAAW;IACzD,IAAI,EAAE,kCAAkC;IACxC,WAAW,EAAE,oFAAoF;IACjG,SAAS,EAAE;QACT;YACE,IAAI,EAAE,WAAW;YACjB,WAAW,EACT,0FAA0F;YAC5F,QAAQ,EAAE,KAAK;SAChB;KACF;CACF,CAAC;AAEF,MAAM,UAAU,uCAAuC,CAAC,IAA6B;IACnF,MAAM,SAAS,GAAG,IAAI,EAAE,SAAS,IAAI,8BAA8B,CAAC;IAEpE,OAAO;;;;eAIM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuEvB,CAAC;AACF,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { Prompt } from "@modelcontextprotocol/sdk/types.js";
2
+ export declare const snapchatTroubleshootEntityPrompt: Prompt;
3
+ export declare function getSnapchatTroubleshootEntityMessage(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,gCAAgC,EAAE,MAoB9C,CAAC;AAEF,wBAAgB,oCAAoC,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAyF1F"}
@@ -0,0 +1,111 @@
1
+ export const snapchatTroubleshootEntityPrompt = {
2
+ name: "snapchat_troubleshoot_entity",
3
+ description: "Diagnostic workflow for troubleshooting Snapchat Ads entity issues",
4
+ arguments: [
5
+ {
6
+ name: "entityType",
7
+ description: "Entity type (campaign, adGroup, ad, creative)",
8
+ required: true,
9
+ },
10
+ {
11
+ name: "entityId",
12
+ description: "Numeric entity ID to troubleshoot",
13
+ required: true,
14
+ },
15
+ {
16
+ name: "adAccountId",
17
+ description: "Snapchat Advertiser ID",
18
+ required: true,
19
+ },
20
+ ],
21
+ };
22
+ export function getSnapchatTroubleshootEntityMessage(args) {
23
+ const entityType = args?.entityType || "{entityType}";
24
+ const entityId = args?.entityId || "{entityId}";
25
+ const adAccountId = args?.adAccountId || "{adAccountId}";
26
+ return `# Snapchat Entity Troubleshoot Workflow
27
+
28
+ ## Target: ${entityType} ${entityId} (Advertiser: ${adAccountId})
29
+
30
+ ## Step 1: Fetch Entity Details
31
+
32
+ \`\`\`json
33
+ snapchat_get_entity({
34
+ "entityType": "${entityType}",
35
+ "adAccountId": "${adAccountId}",
36
+ "entityId": "${entityId}"
37
+ })
38
+ \`\`\`
39
+
40
+ Check: operation_status, primary_status, secondary_status, and any rejection reasons.
41
+
42
+ ## Step 2: Check Recent Performance
43
+
44
+ \`\`\`json
45
+ snapchat_get_report({
46
+ "adAccountId": "${adAccountId}",
47
+ "dimensions": ["campaign_id", "stat_time_day"],
48
+ "metrics": ["impressions", "clicks", "spend", "conversions"],
49
+ "startDate": "2026-02-01",
50
+ "endDate": "2026-03-07"
51
+ })
52
+ \`\`\`
53
+
54
+ ## Step 3: Check Parent Entity
55
+
56
+ If ad group or ad, check parent entity status:
57
+ \`\`\`json
58
+ snapchat_get_entity({
59
+ "entityType": "campaign",
60
+ "adAccountId": "${adAccountId}",
61
+ "entityId": "{parentCampaignId}"
62
+ })
63
+ \`\`\`
64
+
65
+ ## Common Issues
66
+
67
+ | Symptom | Likely Cause | Fix |
68
+ |---------|-------------|-----|
69
+ | No delivery | Entity DISABLED | Use \`snapchat_bulk_update_status\` with operationStatus: "ENABLE" |
70
+ | No delivery, ENABLE | Parent disabled | Enable parent campaign or ad group |
71
+ | No delivery, all ENABLE | Budget exhausted | Increase budget |
72
+ | No delivery, budget OK | Targeting too narrow | Check audience estimate |
73
+ | Ad under review | Snapchat ad review in progress | Allow 24-48h for review |
74
+ | Ad rejected | Policy violation | Review Snapchat creative guidelines |
75
+ | Video not playing | Video upload incomplete | Check video status in Creative Library |
76
+ | Low reach | Targeting too narrow | Broaden age, interests, or geos |
77
+
78
+ ## Step 4: Audience Estimate
79
+
80
+ \`\`\`json
81
+ snapchat_get_audience_estimate({
82
+ "adAccountId": "${adAccountId}",
83
+ "targetingConfig": { ... targeting from adGroup ... }
84
+ })
85
+ \`\`\`
86
+
87
+ ## Step 5: Validate Entity Payload
88
+
89
+ \`\`\`json
90
+ snapchat_validate_entity({
91
+ "entityType": "${entityType}",
92
+ "mode": "update",
93
+ "data": { ... current entity data ... }
94
+ })
95
+ \`\`\`
96
+
97
+ ## Status Update Tool
98
+
99
+ Snapchat uses a separate status endpoint — do NOT use \`snapchat_update_entity\` for status changes:
100
+
101
+ \`\`\`json
102
+ snapchat_bulk_update_status({
103
+ "entityType": "${entityType}",
104
+ "adAccountId": "${adAccountId}",
105
+ "entityIds": ["${entityId}"],
106
+ "operationStatus": "ENABLE"
107
+ })
108
+ \`\`\`
109
+ `;
110
+ }
111
+ //# 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,gCAAgC,GAAW;IACtD,IAAI,EAAE,8BAA8B;IACpC,WAAW,EAAE,oEAAoE;IACjF,SAAS,EAAE;QACT;YACE,IAAI,EAAE,YAAY;YAClB,WAAW,EAAE,+CAA+C;YAC5D,QAAQ,EAAE,IAAI;SACf;QACD;YACE,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,mCAAmC;YAChD,QAAQ,EAAE,IAAI;SACf;QACD;YACE,IAAI,EAAE,aAAa;YACnB,WAAW,EAAE,wBAAwB;YACrC,QAAQ,EAAE,IAAI;SACf;KACF;CACF,CAAC;AAEF,MAAM,UAAU,oCAAoC,CAAC,IAA6B;IAChF,MAAM,UAAU,GAAG,IAAI,EAAE,UAAU,IAAI,cAAc,CAAC;IACtD,MAAM,QAAQ,GAAG,IAAI,EAAE,QAAQ,IAAI,YAAY,CAAC;IAChD,MAAM,WAAW,GAAG,IAAI,EAAE,WAAW,IAAI,eAAe,CAAC;IAEzD,OAAO;;aAEI,UAAU,IAAI,QAAQ,iBAAiB,WAAW;;;;;;mBAM5C,UAAU;oBACT,WAAW;iBACd,QAAQ;;;;;;;;;;oBAUL,WAAW;;;;;;;;;;;;;;oBAcX,WAAW;;;;;;;;;;;;;;;;;;;;;;oBAsBX,WAAW;;;;;;;;;mBASZ,UAAU;;;;;;;;;;;;mBAYV,UAAU;oBACT,WAAW;mBACZ,QAAQ;;;;CAI1B,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 { campaignSetupWorkflowPrompt, getCampaignSetupWorkflowMessage, } from "./definitions/campaign-setup-workflow.prompt.js";
2
+ import { bulkOperationsWorkflowPrompt, getBulkOperationsWorkflowMessage, } from "./definitions/bulk-operations-workflow.prompt.js";
3
+ import { snapchatToolSchemaExplorationPrompt, getSnapchatToolSchemaExplorationMessage, } from "./definitions/tool-schema-exploration.prompt.js";
4
+ import { snapchatTroubleshootEntityPrompt, getSnapchatTroubleshootEntityMessage, } from "./definitions/troubleshoot-entity.prompt.js";
5
+ import { snapchatReportingWorkflowPrompt, getSnapchatReportingWorkflowMessage, } from "./definitions/reporting-workflow.prompt.js";
6
+ import { snapchatEntityUpdateWorkflowPrompt, getSnapchatEntityUpdateWorkflowMessage, } from "./definitions/entity-update-workflow.prompt.js";
7
+ import { snapchatTargetingDiscoveryWorkflowPrompt, getSnapchatTargetingDiscoveryWorkflowMessage, } from "./definitions/targeting-discovery-workflow.prompt.js";
8
+ import { crossPlatformPerformancePrompt, getCrossPlatformPerformanceMessage, } from "./definitions/cross-platform-performance.prompt.js";
9
+ import { crossPlatformCampaignSetupPrompt, getCrossPlatformCampaignSetupMessage, } from "./definitions/cross-platform-campaign-setup.prompt.js";
10
+ import { snapchatCreativeUploadWorkflowPrompt, getSnapchatCreativeUploadWorkflowMessage, } from "./definitions/creative-upload-workflow.prompt.js";
11
+ export const promptRegistry = new Map([
12
+ [
13
+ campaignSetupWorkflowPrompt.name,
14
+ {
15
+ prompt: campaignSetupWorkflowPrompt,
16
+ generateMessage: getCampaignSetupWorkflowMessage,
17
+ },
18
+ ],
19
+ [
20
+ bulkOperationsWorkflowPrompt.name,
21
+ {
22
+ prompt: bulkOperationsWorkflowPrompt,
23
+ generateMessage: getBulkOperationsWorkflowMessage,
24
+ },
25
+ ],
26
+ [
27
+ snapchatToolSchemaExplorationPrompt.name,
28
+ {
29
+ prompt: snapchatToolSchemaExplorationPrompt,
30
+ generateMessage: getSnapchatToolSchemaExplorationMessage,
31
+ },
32
+ ],
33
+ [
34
+ snapchatTroubleshootEntityPrompt.name,
35
+ {
36
+ prompt: snapchatTroubleshootEntityPrompt,
37
+ generateMessage: getSnapchatTroubleshootEntityMessage,
38
+ },
39
+ ],
40
+ [
41
+ snapchatReportingWorkflowPrompt.name,
42
+ {
43
+ prompt: snapchatReportingWorkflowPrompt,
44
+ generateMessage: getSnapchatReportingWorkflowMessage,
45
+ },
46
+ ],
47
+ [
48
+ snapchatEntityUpdateWorkflowPrompt.name,
49
+ {
50
+ prompt: snapchatEntityUpdateWorkflowPrompt,
51
+ generateMessage: getSnapchatEntityUpdateWorkflowMessage,
52
+ },
53
+ ],
54
+ [
55
+ snapchatTargetingDiscoveryWorkflowPrompt.name,
56
+ {
57
+ prompt: snapchatTargetingDiscoveryWorkflowPrompt,
58
+ generateMessage: getSnapchatTargetingDiscoveryWorkflowMessage,
59
+ },
60
+ ],
61
+ [
62
+ crossPlatformPerformancePrompt.name,
63
+ {
64
+ prompt: crossPlatformPerformancePrompt,
65
+ generateMessage: getCrossPlatformPerformanceMessage,
66
+ },
67
+ ],
68
+ [
69
+ crossPlatformCampaignSetupPrompt.name,
70
+ {
71
+ prompt: crossPlatformCampaignSetupPrompt,
72
+ generateMessage: getCrossPlatformCampaignSetupMessage,
73
+ },
74
+ ],
75
+ [
76
+ snapchatCreativeUploadWorkflowPrompt.name,
77
+ {
78
+ prompt: snapchatCreativeUploadWorkflowPrompt,
79
+ generateMessage: getSnapchatCreativeUploadWorkflowMessage,
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