@cesteral/tiktok-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 (267) hide show
  1. package/LICENSE.md +201 -0
  2. package/README.md +347 -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/tiktok-auth-adapter.d.ts +40 -0
  8. package/dist/auth/tiktok-auth-adapter.d.ts.map +1 -0
  9. package/dist/auth/tiktok-auth-adapter.js +126 -0
  10. package/dist/auth/tiktok-auth-adapter.js.map +1 -0
  11. package/dist/auth/tiktok-auth-strategy.d.ts +14 -0
  12. package/dist/auth/tiktok-auth-strategy.d.ts.map +1 -0
  13. package/dist/auth/tiktok-auth-strategy.js +54 -0
  14. package/dist/auth/tiktok-auth-strategy.js.map +1 -0
  15. package/dist/config/index.d.ts +120 -0
  16. package/dist/config/index.d.ts.map +1 -0
  17. package/dist/config/index.js +55 -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 +47 -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 +104 -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 +200 -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 +93 -0
  62. package/dist/mcp-server/prompts/definitions/tool-schema-exploration.prompt.js.map +1 -0
  63. package/dist/mcp-server/prompts/definitions/troubleshoot-entity.prompt.d.ts +4 -0
  64. package/dist/mcp-server/prompts/definitions/troubleshoot-entity.prompt.d.ts.map +1 -0
  65. package/dist/mcp-server/prompts/definitions/troubleshoot-entity.prompt.js +111 -0
  66. package/dist/mcp-server/prompts/definitions/troubleshoot-entity.prompt.js.map +1 -0
  67. package/dist/mcp-server/prompts/index.d.ts +9 -0
  68. package/dist/mcp-server/prompts/index.d.ts.map +1 -0
  69. package/dist/mcp-server/prompts/index.js +97 -0
  70. package/dist/mcp-server/prompts/index.js.map +1 -0
  71. package/dist/mcp-server/resources/definitions/entity-examples.resource.d.ts +4 -0
  72. package/dist/mcp-server/resources/definitions/entity-examples.resource.d.ts.map +1 -0
  73. package/dist/mcp-server/resources/definitions/entity-examples.resource.js +182 -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 +147 -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 +135 -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 +8 -0
  84. package/dist/mcp-server/resources/definitions/index.d.ts.map +1 -0
  85. package/dist/mcp-server/resources/definitions/index.js +79 -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 +165 -0
  90. package/dist/mcp-server/resources/definitions/reporting-reference.resource.js.map +1 -0
  91. package/dist/mcp-server/resources/definitions/targeting-reference.resource.d.ts +3 -0
  92. package/dist/mcp-server/resources/definitions/targeting-reference.resource.d.ts.map +1 -0
  93. package/dist/mcp-server/resources/definitions/targeting-reference.resource.js +134 -0
  94. package/dist/mcp-server/resources/definitions/targeting-reference.resource.js.map +1 -0
  95. package/dist/mcp-server/resources/index.d.ts +3 -0
  96. package/dist/mcp-server/resources/index.d.ts.map +1 -0
  97. package/dist/mcp-server/resources/index.js +2 -0
  98. package/dist/mcp-server/resources/index.js.map +1 -0
  99. package/dist/mcp-server/resources/types.d.ts +8 -0
  100. package/dist/mcp-server/resources/types.d.ts.map +1 -0
  101. package/dist/mcp-server/resources/types.js +2 -0
  102. package/dist/mcp-server/resources/types.js.map +1 -0
  103. package/dist/mcp-server/server.d.ts +5 -0
  104. package/dist/mcp-server/server.d.ts.map +1 -0
  105. package/dist/mcp-server/server.js +134 -0
  106. package/dist/mcp-server/server.js.map +1 -0
  107. package/dist/mcp-server/tools/definitions/adjust-bids.tool.d.ts +209 -0
  108. package/dist/mcp-server/tools/definitions/adjust-bids.tool.d.ts.map +1 -0
  109. package/dist/mcp-server/tools/definitions/adjust-bids.tool.js +141 -0
  110. package/dist/mcp-server/tools/definitions/adjust-bids.tool.js.map +1 -0
  111. package/dist/mcp-server/tools/definitions/bulk-create-entities.tool.d.ts +151 -0
  112. package/dist/mcp-server/tools/definitions/bulk-create-entities.tool.d.ts.map +1 -0
  113. package/dist/mcp-server/tools/definitions/bulk-create-entities.tool.js +112 -0
  114. package/dist/mcp-server/tools/definitions/bulk-create-entities.tool.js.map +1 -0
  115. package/dist/mcp-server/tools/definitions/bulk-update-entities.tool.d.ts +193 -0
  116. package/dist/mcp-server/tools/definitions/bulk-update-entities.tool.d.ts.map +1 -0
  117. package/dist/mcp-server/tools/definitions/bulk-update-entities.tool.js +130 -0
  118. package/dist/mcp-server/tools/definitions/bulk-update-entities.tool.js.map +1 -0
  119. package/dist/mcp-server/tools/definitions/bulk-update-status.tool.d.ts +153 -0
  120. package/dist/mcp-server/tools/definitions/bulk-update-status.tool.d.ts.map +1 -0
  121. package/dist/mcp-server/tools/definitions/bulk-update-status.tool.js +137 -0
  122. package/dist/mcp-server/tools/definitions/bulk-update-status.tool.js.map +1 -0
  123. package/dist/mcp-server/tools/definitions/check-report-status.tool.d.ts +119 -0
  124. package/dist/mcp-server/tools/definitions/check-report-status.tool.d.ts.map +1 -0
  125. package/dist/mcp-server/tools/definitions/check-report-status.tool.js +89 -0
  126. package/dist/mcp-server/tools/definitions/check-report-status.tool.js.map +1 -0
  127. package/dist/mcp-server/tools/definitions/create-entity.tool.d.ts +115 -0
  128. package/dist/mcp-server/tools/definitions/create-entity.tool.d.ts.map +1 -0
  129. package/dist/mcp-server/tools/definitions/create-entity.tool.js +103 -0
  130. package/dist/mcp-server/tools/definitions/create-entity.tool.js.map +1 -0
  131. package/dist/mcp-server/tools/definitions/delete-entity.tool.d.ts +100 -0
  132. package/dist/mcp-server/tools/definitions/delete-entity.tool.d.ts.map +1 -0
  133. package/dist/mcp-server/tools/definitions/delete-entity.tool.js +110 -0
  134. package/dist/mcp-server/tools/definitions/delete-entity.tool.js.map +1 -0
  135. package/dist/mcp-server/tools/definitions/download-report.tool.d.ts +297 -0
  136. package/dist/mcp-server/tools/definitions/download-report.tool.d.ts.map +1 -0
  137. package/dist/mcp-server/tools/definitions/download-report.tool.js +105 -0
  138. package/dist/mcp-server/tools/definitions/download-report.tool.js.map +1 -0
  139. package/dist/mcp-server/tools/definitions/duplicate-entity.tool.d.ts +105 -0
  140. package/dist/mcp-server/tools/definitions/duplicate-entity.tool.d.ts.map +1 -0
  141. package/dist/mcp-server/tools/definitions/duplicate-entity.tool.js +85 -0
  142. package/dist/mcp-server/tools/definitions/duplicate-entity.tool.js.map +1 -0
  143. package/dist/mcp-server/tools/definitions/get-ad-preview.tool.d.ts +89 -0
  144. package/dist/mcp-server/tools/definitions/get-ad-preview.tool.d.ts.map +1 -0
  145. package/dist/mcp-server/tools/definitions/get-ad-preview.tool.js +74 -0
  146. package/dist/mcp-server/tools/definitions/get-ad-preview.tool.js.map +1 -0
  147. package/dist/mcp-server/tools/definitions/get-ad-previews.tool.d.ts +89 -0
  148. package/dist/mcp-server/tools/definitions/get-ad-previews.tool.d.ts.map +1 -0
  149. package/dist/mcp-server/tools/definitions/get-ad-previews.tool.js +83 -0
  150. package/dist/mcp-server/tools/definitions/get-ad-previews.tool.js.map +1 -0
  151. package/dist/mcp-server/tools/definitions/get-audience-estimate.tool.d.ts +85 -0
  152. package/dist/mcp-server/tools/definitions/get-audience-estimate.tool.d.ts.map +1 -0
  153. package/dist/mcp-server/tools/definitions/get-audience-estimate.tool.js +88 -0
  154. package/dist/mcp-server/tools/definitions/get-audience-estimate.tool.js.map +1 -0
  155. package/dist/mcp-server/tools/definitions/get-entity.tool.d.ts +76 -0
  156. package/dist/mcp-server/tools/definitions/get-entity.tool.d.ts.map +1 -0
  157. package/dist/mcp-server/tools/definitions/get-entity.tool.js +71 -0
  158. package/dist/mcp-server/tools/definitions/get-entity.tool.js.map +1 -0
  159. package/dist/mcp-server/tools/definitions/get-report-breakdowns.tool.d.ts +295 -0
  160. package/dist/mcp-server/tools/definitions/get-report-breakdowns.tool.d.ts.map +1 -0
  161. package/dist/mcp-server/tools/definitions/get-report-breakdowns.tool.js +174 -0
  162. package/dist/mcp-server/tools/definitions/get-report-breakdowns.tool.js.map +1 -0
  163. package/dist/mcp-server/tools/definitions/get-report.tool.d.ts +303 -0
  164. package/dist/mcp-server/tools/definitions/get-report.tool.d.ts.map +1 -0
  165. package/dist/mcp-server/tools/definitions/get-report.tool.js +178 -0
  166. package/dist/mcp-server/tools/definitions/get-report.tool.js.map +1 -0
  167. package/dist/mcp-server/tools/definitions/get-targeting-options.tool.d.ts +127 -0
  168. package/dist/mcp-server/tools/definitions/get-targeting-options.tool.d.ts.map +1 -0
  169. package/dist/mcp-server/tools/definitions/get-targeting-options.tool.js +120 -0
  170. package/dist/mcp-server/tools/definitions/get-targeting-options.tool.js.map +1 -0
  171. package/dist/mcp-server/tools/definitions/index.d.ts +26 -0
  172. package/dist/mcp-server/tools/definitions/index.d.ts.map +1 -0
  173. package/dist/mcp-server/tools/definitions/index.js +78 -0
  174. package/dist/mcp-server/tools/definitions/index.js.map +1 -0
  175. package/dist/mcp-server/tools/definitions/list-advertisers.tool.d.ts +54 -0
  176. package/dist/mcp-server/tools/definitions/list-advertisers.tool.d.ts.map +1 -0
  177. package/dist/mcp-server/tools/definitions/list-advertisers.tool.js +58 -0
  178. package/dist/mcp-server/tools/definitions/list-advertisers.tool.js.map +1 -0
  179. package/dist/mcp-server/tools/definitions/list-entities.tool.d.ts +167 -0
  180. package/dist/mcp-server/tools/definitions/list-entities.tool.d.ts.map +1 -0
  181. package/dist/mcp-server/tools/definitions/list-entities.tool.js +114 -0
  182. package/dist/mcp-server/tools/definitions/list-entities.tool.js.map +1 -0
  183. package/dist/mcp-server/tools/definitions/search-targeting.tool.d.ts +131 -0
  184. package/dist/mcp-server/tools/definitions/search-targeting.tool.d.ts.map +1 -0
  185. package/dist/mcp-server/tools/definitions/search-targeting.tool.js +123 -0
  186. package/dist/mcp-server/tools/definitions/search-targeting.tool.js.map +1 -0
  187. package/dist/mcp-server/tools/definitions/submit-report.tool.d.ts +153 -0
  188. package/dist/mcp-server/tools/definitions/submit-report.tool.d.ts.map +1 -0
  189. package/dist/mcp-server/tools/definitions/submit-report.tool.js +117 -0
  190. package/dist/mcp-server/tools/definitions/submit-report.tool.js.map +1 -0
  191. package/dist/mcp-server/tools/definitions/update-entity.tool.d.ts +111 -0
  192. package/dist/mcp-server/tools/definitions/update-entity.tool.d.ts.map +1 -0
  193. package/dist/mcp-server/tools/definitions/update-entity.tool.js +89 -0
  194. package/dist/mcp-server/tools/definitions/update-entity.tool.js.map +1 -0
  195. package/dist/mcp-server/tools/definitions/upload-image.tool.d.ts +87 -0
  196. package/dist/mcp-server/tools/definitions/upload-image.tool.d.ts.map +1 -0
  197. package/dist/mcp-server/tools/definitions/upload-image.tool.js +82 -0
  198. package/dist/mcp-server/tools/definitions/upload-image.tool.js.map +1 -0
  199. package/dist/mcp-server/tools/definitions/upload-video.tool.d.ts +88 -0
  200. package/dist/mcp-server/tools/definitions/upload-video.tool.d.ts.map +1 -0
  201. package/dist/mcp-server/tools/definitions/upload-video.tool.js +113 -0
  202. package/dist/mcp-server/tools/definitions/upload-video.tool.js.map +1 -0
  203. package/dist/mcp-server/tools/definitions/validate-entity.tool.d.ts +197 -0
  204. package/dist/mcp-server/tools/definitions/validate-entity.tool.d.ts.map +1 -0
  205. package/dist/mcp-server/tools/definitions/validate-entity.tool.js +237 -0
  206. package/dist/mcp-server/tools/definitions/validate-entity.tool.js.map +1 -0
  207. package/dist/mcp-server/tools/index.d.ts +2 -0
  208. package/dist/mcp-server/tools/index.d.ts.map +1 -0
  209. package/dist/mcp-server/tools/index.js +2 -0
  210. package/dist/mcp-server/tools/index.js.map +1 -0
  211. package/dist/mcp-server/tools/utils/entity-mapping.d.ts +22 -0
  212. package/dist/mcp-server/tools/utils/entity-mapping.d.ts.map +1 -0
  213. package/dist/mcp-server/tools/utils/entity-mapping.js +121 -0
  214. package/dist/mcp-server/tools/utils/entity-mapping.js.map +1 -0
  215. package/dist/mcp-server/tools/utils/resolve-session.d.ts +4 -0
  216. package/dist/mcp-server/tools/utils/resolve-session.d.ts.map +1 -0
  217. package/dist/mcp-server/tools/utils/resolve-session.js +6 -0
  218. package/dist/mcp-server/tools/utils/resolve-session.js.map +1 -0
  219. package/dist/mcp-server/transports/streamable-http-transport.d.ts +59 -0
  220. package/dist/mcp-server/transports/streamable-http-transport.d.ts.map +1 -0
  221. package/dist/mcp-server/transports/streamable-http-transport.js +107 -0
  222. package/dist/mcp-server/transports/streamable-http-transport.js.map +1 -0
  223. package/dist/services/session-services.d.ts +21 -0
  224. package/dist/services/session-services.d.ts.map +1 -0
  225. package/dist/services/session-services.js +25 -0
  226. package/dist/services/session-services.js.map +1 -0
  227. package/dist/services/tiktok/tiktok-http-client.d.ts +19 -0
  228. package/dist/services/tiktok/tiktok-http-client.d.ts.map +1 -0
  229. package/dist/services/tiktok/tiktok-http-client.js +184 -0
  230. package/dist/services/tiktok/tiktok-http-client.js.map +1 -0
  231. package/dist/services/tiktok/tiktok-reporting-service.d.ts +62 -0
  232. package/dist/services/tiktok/tiktok-reporting-service.d.ts.map +1 -0
  233. package/dist/services/tiktok/tiktok-reporting-service.js +129 -0
  234. package/dist/services/tiktok/tiktok-reporting-service.js.map +1 -0
  235. package/dist/services/tiktok/tiktok-service.d.ts +86 -0
  236. package/dist/services/tiktok/tiktok-service.d.ts.map +1 -0
  237. package/dist/services/tiktok/tiktok-service.js +217 -0
  238. package/dist/services/tiktok/tiktok-service.js.map +1 -0
  239. package/dist/services/tiktok/types.d.ts +161 -0
  240. package/dist/services/tiktok/types.d.ts.map +1 -0
  241. package/dist/services/tiktok/types.js +31 -0
  242. package/dist/services/tiktok/types.js.map +1 -0
  243. package/dist/types-global/mcp.d.ts +2 -0
  244. package/dist/types-global/mcp.d.ts.map +1 -0
  245. package/dist/types-global/mcp.js +2 -0
  246. package/dist/types-global/mcp.js.map +1 -0
  247. package/dist/utils/errors/index.d.ts +2 -0
  248. package/dist/utils/errors/index.d.ts.map +1 -0
  249. package/dist/utils/errors/index.js +2 -0
  250. package/dist/utils/errors/index.js.map +1 -0
  251. package/dist/utils/platform.d.ts +3 -0
  252. package/dist/utils/platform.d.ts.map +1 -0
  253. package/dist/utils/platform.js +5 -0
  254. package/dist/utils/platform.js.map +1 -0
  255. package/dist/utils/security/rate-limiter.d.ts +3 -0
  256. package/dist/utils/security/rate-limiter.d.ts.map +1 -0
  257. package/dist/utils/security/rate-limiter.js +5 -0
  258. package/dist/utils/security/rate-limiter.js.map +1 -0
  259. package/dist/utils/telemetry/index.d.ts +2 -0
  260. package/dist/utils/telemetry/index.d.ts.map +1 -0
  261. package/dist/utils/telemetry/index.js +2 -0
  262. package/dist/utils/telemetry/index.js.map +1 -0
  263. package/dist/utils/telemetry/tracing.d.ts +3 -0
  264. package/dist/utils/telemetry/tracing.d.ts.map +1 -0
  265. package/dist/utils/telemetry/tracing.js +4 -0
  266. package/dist/utils/telemetry/tracing.js.map +1 -0
  267. package/package.json +55 -0
@@ -0,0 +1,79 @@
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, "tiktok-mcp");
14
+ const serverCapabilitiesResource = createServerCapabilitiesResource({
15
+ serverName: "tiktok-mcp",
16
+ allTools,
17
+ toolGroups: {
18
+ account: ["tiktok_list_advertisers"],
19
+ crud: [
20
+ "tiktok_list_entities",
21
+ "tiktok_get_entity",
22
+ "tiktok_create_entity",
23
+ "tiktok_update_entity",
24
+ "tiktok_delete_entity",
25
+ ],
26
+ reporting: [
27
+ "tiktok_get_report",
28
+ "tiktok_get_report_breakdowns",
29
+ "tiktok_submit_report",
30
+ "tiktok_check_report_status",
31
+ "tiktok_download_report",
32
+ ],
33
+ bulk: [
34
+ "tiktok_bulk_update_status",
35
+ "tiktok_bulk_create_entities",
36
+ "tiktok_bulk_update_entities",
37
+ "tiktok_adjust_bids",
38
+ ],
39
+ targeting: ["tiktok_search_targeting", "tiktok_get_targeting_options"],
40
+ media: ["tiktok_upload_image", "tiktok_upload_video"],
41
+ specialized: [
42
+ "tiktok_duplicate_entity",
43
+ "tiktok_get_audience_estimate",
44
+ "tiktok_get_ad_preview",
45
+ ],
46
+ validation: ["tiktok_validate_entity"],
47
+ discovery: ["tiktok_search_tools"],
48
+ },
49
+ commonWorkflows: ["campaign_setup", "async_reporting", "audience_targeting"],
50
+ discoveryFlow: [
51
+ "Read server-capabilities://tiktok-mcp/overview to choose a capability group.",
52
+ "Call tiktok_list_advertisers to discover accessible advertiser IDs.",
53
+ "Read entity-hierarchy://all and entity-schema://{entityType} before entity writes.",
54
+ "Read reporting-reference://all before report tools.",
55
+ "Read targeting-reference://all before targeting search or audience estimation.",
56
+ "Use tool-examples://tiktok-mcp/all only when concrete payload examples are needed.",
57
+ ],
58
+ relatedResources: [
59
+ "entity-hierarchy://all",
60
+ "entity-schema://all",
61
+ "entity-examples://all",
62
+ "reporting-reference://all",
63
+ "targeting-reference://all",
64
+ "tool-examples://tiktok-mcp/all",
65
+ ],
66
+ startHere: "tiktok_list_advertisers",
67
+ });
68
+ export const allResources = [
69
+ entityHierarchyResource,
70
+ entitySchemaAllResource,
71
+ ...entitySchemaResources,
72
+ entityExampleAllResource,
73
+ ...entityExampleResources,
74
+ reportingReferenceResource,
75
+ targetingReferenceResource,
76
+ ...(toolExamplesResource ? [toolExamplesResource] : []),
77
+ serverCapabilitiesResource,
78
+ ];
79
+ //# 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,YAAY,CAAC,CAAC;AAChF,MAAM,0BAA0B,GAAG,gCAAgC,CAAC;IAClE,UAAU,EAAE,YAAY;IACxB,QAAQ;IACR,UAAU,EAAE;QACV,OAAO,EAAE,CAAC,yBAAyB,CAAC;QACpC,IAAI,EAAE;YACJ,sBAAsB;YACtB,mBAAmB;YACnB,sBAAsB;YACtB,sBAAsB;YACtB,sBAAsB;SACvB;QACD,SAAS,EAAE;YACT,mBAAmB;YACnB,8BAA8B;YAC9B,sBAAsB;YACtB,4BAA4B;YAC5B,wBAAwB;SACzB;QACD,IAAI,EAAE;YACJ,2BAA2B;YAC3B,6BAA6B;YAC7B,6BAA6B;YAC7B,oBAAoB;SACrB;QACD,SAAS,EAAE,CAAC,yBAAyB,EAAE,8BAA8B,CAAC;QACtE,KAAK,EAAE,CAAC,qBAAqB,EAAE,qBAAqB,CAAC;QACrD,WAAW,EAAE;YACX,yBAAyB;YACzB,8BAA8B;YAC9B,uBAAuB;SACxB;QACD,UAAU,EAAE,CAAC,wBAAwB,CAAC;QACtC,SAAS,EAAE,CAAC,qBAAqB,CAAC;KACnC;IACD,eAAe,EAAE,CAAC,gBAAgB,EAAE,iBAAiB,EAAE,oBAAoB,CAAC;IAC5E,aAAa,EAAE;QACb,8EAA8E;QAC9E,qEAAqE;QACrE,oFAAoF;QACpF,qDAAqD;QACrD,gFAAgF;QAChF,oFAAoF;KACrF;IACD,gBAAgB,EAAE;QAChB,wBAAwB;QACxB,qBAAqB;QACrB,uBAAuB;QACvB,2BAA2B;QAC3B,2BAA2B;QAC3B,gCAAgC;KACjC;IACD,SAAS,EAAE,yBAAyB;CACrC,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":"AAMA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AA8J5C,eAAO,MAAM,0BAA0B,EAAE,QAUxC,CAAC"}
@@ -0,0 +1,165 @@
1
+ let cachedContent;
2
+ function formatReportingReferenceMarkdown() {
3
+ return `# TikTok Ads Reporting Reference
4
+
5
+ ## Report Types
6
+
7
+ | Report Type | Description |
8
+ |-------------|-------------|
9
+ | BASIC | Standard delivery and performance metrics |
10
+ | AUDIENCE | Audience breakdown metrics (requires audience dimensions) |
11
+ | PLAYABLE_MATERIAL | Playable ad performance metrics |
12
+
13
+ ## Async Reporting Flow
14
+
15
+ 1. **Submit**: POST \`/open_api/v1.3/report/task/create/\` → get \`task_id\`
16
+ 2. **Poll**: GET \`/open_api/v1.3/report/task/check/?task_id={id}\` → check \`status\`
17
+ 3. **Download**: GET the \`download_url\` when status = "DONE"
18
+
19
+ Status values: PENDING → RUNNING → DONE | FAILED
20
+
21
+ Use \`tiktok_get_report\` or \`tiktok_get_report_breakdowns\` — these tools handle the full flow automatically.
22
+
23
+ ## Common Dimensions
24
+
25
+ ### Time Dimensions
26
+ | Dimension | Description |
27
+ |-----------|-------------|
28
+ | stat_time_day | Daily breakdown (YYYY-MM-DD) |
29
+ | stat_time_hour | Hourly breakdown |
30
+
31
+ ### Entity Dimensions
32
+ | Dimension | Description |
33
+ |-----------|-------------|
34
+ | advertiser_id | Advertiser ID |
35
+ | campaign_id | Campaign ID |
36
+ | adgroup_id | Ad group ID |
37
+ | ad_id | Ad ID |
38
+
39
+ ### Audience Dimensions (AUDIENCE report type)
40
+ | Dimension | Description |
41
+ |-----------|-------------|
42
+ | gender | User gender breakdown |
43
+ | age | User age group breakdown |
44
+ | country_code | Country (ISO 2-letter code) |
45
+ | province_id | Province/region ID |
46
+ | platform | Operating system platform |
47
+ | device_brand_id | Device brand |
48
+ | interest_category | Interest category |
49
+ | placement | Ad placement |
50
+ | language | User language |
51
+
52
+ ## Common Metrics
53
+
54
+ ### Delivery Metrics
55
+ | Metric | Description |
56
+ |--------|-------------|
57
+ | impressions | Total impressions |
58
+ | reach | Unique users reached |
59
+ | frequency | Average impressions per user |
60
+ | clicks | Total clicks |
61
+ | ctr | Click-through rate (%) |
62
+ | cpm | Cost per mille (per 1000 impressions) |
63
+ | cpc | Cost per click |
64
+ | spend | Total amount spent |
65
+
66
+ ### Video Metrics
67
+ | Metric | Description |
68
+ |--------|-------------|
69
+ | video_play_actions | Total video plays |
70
+ | video_watched_2s | 2-second video views |
71
+ | video_watched_6s | 6-second video views |
72
+ | video_views_p25 | 25% video completion |
73
+ | video_views_p50 | 50% video completion |
74
+ | video_views_p75 | 75% video completion |
75
+ | video_views_p100 | 100% completion (full views) |
76
+ | average_video_play | Average play duration (seconds) |
77
+
78
+ ### Conversion Metrics
79
+ | Metric | Description |
80
+ |--------|-------------|
81
+ | conversions | Total conversion events |
82
+ | conversion_rate | Conversions / clicks (%) |
83
+ | cost_per_conversion | Spend / conversions |
84
+ | real_time_conversions | Real-time tracked conversions |
85
+ | total_purchase_value | Total purchase value |
86
+ | total_sales | Total sales count |
87
+ | cost_per_1000_reached | CPM by unique reach |
88
+
89
+ ### Engagement Metrics
90
+ | Metric | Description |
91
+ |--------|-------------|
92
+ | profile_visits | Profile page visits |
93
+ | follows | New followers gained |
94
+ | likes | Likes on ads |
95
+ | comments | Comments on ads |
96
+ | shares | Shares of ads |
97
+ | engaged_view | Engaged views (6s+ or interaction) |
98
+
99
+ ## Report Type Details
100
+
101
+ | Report Type | Required Dimensions | Valid Metrics | Notes |
102
+ |-------------|-------------------|---------------|-------|
103
+ | BASIC | Any entity + time dims | All delivery, video, conversion, engagement | Default; most flexible |
104
+ | AUDIENCE | Must include audience dim (age, gender, country_code, etc.) | Delivery + basic engagement | Cannot combine with video completion metrics |
105
+ | PLAYABLE_MATERIAL | Must include ad_id | Playable-specific + delivery | Only for playable ad formats |
106
+
107
+ ## Dimension/Metric Compatibility
108
+
109
+ - **Time dimensions** (stat_time_day, stat_time_hour) are compatible with all metric types
110
+ - **Entity dimensions** (campaign_id, adgroup_id, ad_id) are compatible with all metric types
111
+ - **Audience dimensions** (gender, age, country_code, etc.) require report_type = "AUDIENCE"
112
+ - **Playable dimensions** require report_type = "PLAYABLE_MATERIAL"
113
+ - Mixing audience dimensions with non-audience report type returns an error
114
+ - Maximum 3 dimensions per report (TikTok API limit)
115
+
116
+ ## Example Report Configurations
117
+
118
+ ### Campaign Daily Delivery Report
119
+ \`\`\`json
120
+ {
121
+ "advertiserId": "1234567890",
122
+ "reportType": "BASIC",
123
+ "dimensions": ["campaign_id", "stat_time_day"],
124
+ "metrics": ["impressions", "clicks", "spend", "ctr", "cpc"],
125
+ "startDate": "2026-03-01",
126
+ "endDate": "2026-03-07"
127
+ }
128
+ \`\`\`
129
+
130
+ ### Ad Performance with Video Metrics
131
+ \`\`\`json
132
+ {
133
+ "advertiserId": "1234567890",
134
+ "reportType": "BASIC",
135
+ "dimensions": ["ad_id"],
136
+ "metrics": ["impressions", "spend", "video_play_actions", "video_views_p100", "average_video_play"],
137
+ "startDate": "2026-03-01",
138
+ "endDate": "2026-03-07"
139
+ }
140
+ \`\`\`
141
+
142
+ ### Country Breakdown Report
143
+ \`\`\`json
144
+ {
145
+ "advertiserId": "1234567890",
146
+ "dimensions": ["campaign_id", "stat_time_day"],
147
+ "breakdowns": ["country_code"],
148
+ "metrics": ["impressions", "clicks", "spend", "conversions"],
149
+ "startDate": "2026-03-01",
150
+ "endDate": "2026-03-07"
151
+ }
152
+ \`\`\`
153
+ `;
154
+ }
155
+ export const reportingReferenceResource = {
156
+ uri: "reporting-reference://tiktok",
157
+ name: "TikTok Reporting Reference",
158
+ description: "Available dimensions, metrics, report types, and example configurations for TikTok Ads reporting",
159
+ mimeType: "text/markdown",
160
+ getContent: () => {
161
+ cachedContent ??= formatReportingReferenceMarkdown();
162
+ return cachedContent;
163
+ },
164
+ };
165
+ //# sourceMappingURL=reporting-reference.resource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reporting-reference.resource.js","sourceRoot":"","sources":["../../../../src/mcp-server/resources/definitions/reporting-reference.resource.ts"],"names":[],"mappings":"AAQA,IAAI,aAAiC,CAAC;AAEtC,SAAS,gCAAgC;IACvC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsJR,CAAC;AACF,CAAC;AAED,MAAM,CAAC,MAAM,0BAA0B,GAAa;IAClD,GAAG,EAAE,8BAA8B;IACnC,IAAI,EAAE,4BAA4B;IAClC,WAAW,EACT,kGAAkG;IACpG,QAAQ,EAAE,eAAe;IACzB,UAAU,EAAE,GAAG,EAAE;QACf,aAAa,KAAK,gCAAgC,EAAE,CAAC;QACrD,OAAO,aAAa,CAAC;IACvB,CAAC;CACF,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Resource } from "../types.js";
2
+ export declare const targetingReferenceResource: Resource;
3
+ //# sourceMappingURL=targeting-reference.resource.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"targeting-reference.resource.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/resources/definitions/targeting-reference.resource.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AA+H5C,eAAO,MAAM,0BAA0B,EAAE,QAUxC,CAAC"}
@@ -0,0 +1,134 @@
1
+ let cachedContent;
2
+ function formatTargetingReferenceMarkdown() {
3
+ return `# TikTok Ads Targeting Reference
4
+
5
+ ## Targeting Structure
6
+
7
+ TikTok ad groups accept targeting via the \`targeting\` object in create/update payloads.
8
+ Use \`tiktok_search_targeting\` to find valid IDs and \`tiktok_get_targeting_options\` to browse available options.
9
+
10
+ ## Objective Types
11
+
12
+ | Objective | Description |
13
+ |-----------|-------------|
14
+ | REACH | Maximize ad impressions |
15
+ | TRAFFIC | Drive website visits |
16
+ | VIDEO_VIEWS | Maximize video views |
17
+ | LEAD_GENERATION | Collect leads via forms |
18
+ | COMMUNITY_INTERACTION | Drive followers and profile visits |
19
+ | APP_PROMOTION | Drive app installs or re-engagement |
20
+ | WEBSITE_CONVERSIONS | Drive website conversion events |
21
+ | PRODUCT_SALES | Drive product sales (catalog) |
22
+
23
+ ## Age Groups
24
+
25
+ | Value | Range |
26
+ |-------|-------|
27
+ | AGE_13_17 | 13-17 years |
28
+ | AGE_18_24 | 18-24 years |
29
+ | AGE_25_34 | 25-34 years |
30
+ | AGE_35_44 | 35-44 years |
31
+ | AGE_45_54 | 45-54 years |
32
+ | AGE_55_100 | 55+ years |
33
+
34
+ ## Gender Values
35
+
36
+ | Value | Description |
37
+ |-------|-------------|
38
+ | GENDER_UNLIMITED | All genders (default) |
39
+ | GENDER_MALE | Male only |
40
+ | GENDER_FEMALE | Female only |
41
+
42
+ ## Placement Types
43
+
44
+ | Placement | Description |
45
+ |-----------|-------------|
46
+ | PLACEMENT_TIKTOK | TikTok feed |
47
+ | PLACEMENT_PANGLE | Pangle (audience network) |
48
+ | PLACEMENT_GLOBAL_APP_BUNDLE | Global App Bundle |
49
+
50
+ ## Targeting Types for Search
51
+
52
+ Use these values with \`tiktok_search_targeting\`:
53
+
54
+ | Type | Description | Supports Keyword Search |
55
+ |------|-------------|------------------------|
56
+ | INTEREST_CATEGORY | Interest categories | No (browse only) |
57
+ | INTEREST_KEYWORD | Interest keywords | Yes |
58
+ | ACTION_CATEGORY | Behavioral categories | No (browse only) |
59
+ | LOCATION | Geographic locations | Yes |
60
+ | LANGUAGE | Languages | Yes |
61
+ | DEVICE_MODEL | Device models | Yes |
62
+ | CARRIER | Mobile carriers | Yes |
63
+ | OS_VERSION | Operating system versions | No |
64
+ | ISP | Internet service providers | Yes |
65
+ | ZIPCODE | ZIP/postal codes | Yes |
66
+ | CONTEXTUAL_TAG | Contextual targeting tags | Yes |
67
+
68
+ ## Targeting Spec Example
69
+
70
+ \`\`\`json
71
+ {
72
+ "targeting": {
73
+ "age_groups": ["AGE_18_24", "AGE_25_34"],
74
+ "gender": "GENDER_UNLIMITED",
75
+ "location_ids": ["6252001"],
76
+ "languages": ["en"],
77
+ "interest_category_ids": ["100001"],
78
+ "interest_keyword_ids": ["200001"],
79
+ "operating_systems": ["ANDROID", "IOS"],
80
+ "placements": ["PLACEMENT_TIKTOK"],
81
+ "placements": ["PLACEMENT_TIKTOK"]
82
+ }
83
+ }
84
+ \`\`\`
85
+
86
+ ## Optimize Goals
87
+
88
+ | Goal | Description |
89
+ |------|-------------|
90
+ | CLICK | Optimize for clicks |
91
+ | CONVERT | Optimize for conversions |
92
+ | INSTALL | Optimize for app installs |
93
+ | SHOW | Optimize for impressions |
94
+ | REACH | Optimize for unique reach |
95
+ | VIDEO_VIEW | Optimize for video views |
96
+ | LEAD_GENERATION | Optimize for lead form submissions |
97
+ | VALUE | Optimize for value (ROAS) |
98
+
99
+ ## Bid Strategies
100
+
101
+ | Strategy | Description |
102
+ |----------|-------------|
103
+ | BID_TYPE_NO_BID | Lowest cost (automated) |
104
+ | BID_TYPE_CUSTOM | Cost cap (manual bid) |
105
+ | BID_TYPE_MAX | Maximum delivery |
106
+
107
+ ## Budget Modes
108
+
109
+ | Mode | Description |
110
+ |------|-------------|
111
+ | BUDGET_MODE_DAY | Daily budget |
112
+ | BUDGET_MODE_TOTAL | Lifetime budget |
113
+ | BUDGET_MODE_DYNAMIC | Dynamic daily budget |
114
+
115
+ ## Key Notes
116
+
117
+ - \`targeting\` on ad group **replaces entirely** -- always include all targeting fields
118
+ - Location IDs are TikTok-specific; use \`tiktok_search_targeting\` with type \`LOCATION\` to find them
119
+ - Interest category/keyword IDs must be valid TikTok IDs from the search/browse APIs
120
+ - Minimum audience size varies by market; use \`tiktok_get_audience_estimate\` to check
121
+ - Some targeting options are only available for specific objective types
122
+ `;
123
+ }
124
+ export const targetingReferenceResource = {
125
+ uri: "targeting-reference://tiktok",
126
+ name: "TikTok Targeting Reference",
127
+ description: "Targeting types, age groups, genders, placements, objectives, bid strategies, and patterns for TikTok Ads",
128
+ mimeType: "text/markdown",
129
+ getContent: () => {
130
+ cachedContent ??= formatTargetingReferenceMarkdown();
131
+ return cachedContent;
132
+ },
133
+ };
134
+ //# sourceMappingURL=targeting-reference.resource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"targeting-reference.resource.js","sourceRoot":"","sources":["../../../../src/mcp-server/resources/definitions/targeting-reference.resource.ts"],"names":[],"mappings":"AAQA,IAAI,aAAiC,CAAC;AAEtC,SAAS,gCAAgC;IACvC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuHR,CAAC;AACF,CAAC;AAED,MAAM,CAAC,MAAM,0BAA0B,GAAa;IAClD,GAAG,EAAE,8BAA8B;IACnC,IAAI,EAAE,4BAA4B;IAClC,WAAW,EACT,2GAA2G;IAC7G,QAAQ,EAAE,eAAe;IACzB,UAAU,EAAE,GAAG,EAAE;QACf,aAAa,KAAK,gCAAgC,EAAE,CAAC;QACrD,OAAO,aAAa,CAAC;IACvB,CAAC;CACF,CAAC"}
@@ -0,0 +1,3 @@
1
+ export type { Resource } from "./types.js";
2
+ export { allResources } from "./definitions/index.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/mcp-server/resources/index.ts"],"names":[],"mappings":"AAOA,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { allResources } from "./definitions/index.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mcp-server/resources/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,8 @@
1
+ export interface Resource {
2
+ uri: string;
3
+ name: string;
4
+ description: string;
5
+ mimeType: string;
6
+ getContent: () => string;
7
+ }
8
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/mcp-server/resources/types.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,QAAQ;IAEvB,GAAG,EAAE,MAAM,CAAC;IAEZ,IAAI,EAAE,MAAM,CAAC;IAEb,WAAW,EAAE,MAAM,CAAC;IAEpB,QAAQ,EAAE,MAAM,CAAC;IAEjB,UAAU,EAAE,MAAM,MAAM,CAAC;CAC1B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/mcp-server/resources/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import type { Logger } from "pino";
3
+ export declare function createMcpServer(logger: Logger, sessionId?: string, gcsBucket?: string): Promise<McpServer>;
4
+ export declare function runStdioServer(server: McpServer, logger: Logger): Promise<void>;
5
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp-server/server.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAoB,MAAM,yCAAyC,CAAC;AAmBtF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAoCnC,wBAAsB,eAAe,CACnC,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,SAAS,CAAC,CAiIpB;AAKD,wBAAsB,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKrF"}
@@ -0,0 +1,134 @@
1
+ import { McpServer, ResourceTemplate } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
3
+ import { allTools } from "./tools/index.js";
4
+ import { allResources } from "./resources/index.js";
5
+ import { promptRegistry } from "./prompts/index.js";
6
+ import { createOperationContext } from "@cesteral/shared";
7
+ import { reportCsvStore, sessionServiceStore } from "../services/session-services.js";
8
+ import { extractZodShape, registerReportCsvResource, registerToolsFromDefinitions, registerPromptsFromDefinitions, registerStaticResourcesFromDefinitions, InteractionLogger, isConformanceFixturesEnabled, } from "@cesteral/shared";
9
+ import packageJson from "../../package.json" with { type: "json" };
10
+ const TIKTOK_PACKAGE_NAME = "tiktok-mcp";
11
+ const TIKTOK_PLATFORM = "tiktok";
12
+ const tiktokWorkflowIdByToolName = {
13
+ tiktok_list_entities: "mcp.execute.tiktok_entity_read",
14
+ tiktok_get_entity: "mcp.execute.tiktok_entity_read",
15
+ tiktok_list_advertisers: "mcp.execute.tiktok_entity_read",
16
+ tiktok_create_entity: "mcp.execute.tiktok_entity_update",
17
+ tiktok_update_entity: "mcp.execute.tiktok_entity_update",
18
+ tiktok_delete_entity: "mcp.execute.tiktok_entity_update",
19
+ tiktok_get_report: "mcp.execute.tiktok_reporting",
20
+ tiktok_get_report_breakdowns: "mcp.execute.tiktok_reporting",
21
+ tiktok_bulk_update_status: "mcp.execute.tiktok_bulk_operations",
22
+ tiktok_bulk_create_entities: "mcp.execute.tiktok_bulk_operations",
23
+ tiktok_bulk_update_entities: "mcp.execute.tiktok_bulk_operations",
24
+ tiktok_adjust_bids: "mcp.execute.tiktok_bulk_operations",
25
+ tiktok_search_targeting: "mcp.execute.tiktok_entity_read",
26
+ tiktok_get_targeting_options: "mcp.execute.tiktok_entity_read",
27
+ tiktok_duplicate_entity: "mcp.execute.tiktok_entity_update",
28
+ tiktok_get_audience_estimate: "mcp.execute.tiktok_entity_read",
29
+ tiktok_get_ad_preview: "mcp.execute.tiktok_entity_read",
30
+ tiktok_validate_entity: "mcp.execute.tiktok_entity_read",
31
+ };
32
+ export async function createMcpServer(logger, sessionId, gcsBucket) {
33
+ const server = new McpServer({
34
+ name: "tiktok-mcp",
35
+ version: packageJson.version,
36
+ description: "TikTok Ads campaign management and reporting via TikTok Marketing API v1.3. Supports 4 entity types (campaign, adGroup, ad, creative), async reporting with breakdowns, bulk operations, targeting search, audience estimation, and ad previews.",
37
+ }, {
38
+ capabilities: {
39
+ logging: {},
40
+ },
41
+ instructions: "TikTok Ads campaign management and reporting server. Supports 4 entity types (campaign, adGroup, ad, creative), async reporting, targeting, and bulk operations via TikTok Marketing API v1.3. " +
42
+ "Use tiktok_list_advertisers to discover accounts, tiktok_list_entities to browse entities. " +
43
+ "See MCP Resources for entity schemas and MCP Prompts for workflow guidance.",
44
+ });
45
+ const interactionLogger = new InteractionLogger({
46
+ serverName: TIKTOK_PACKAGE_NAME,
47
+ logger,
48
+ gcsBucket,
49
+ });
50
+ registerToolsFromDefinitions({
51
+ server,
52
+ tools: allTools,
53
+ logger,
54
+ sessionId,
55
+ transformSchema: (schema) => extractZodShape(schema),
56
+ createRequestContext: (params) => createOperationContext({
57
+ operation: params.operation,
58
+ additionalContext: params.additionalContext,
59
+ }),
60
+ defaultTextFormat: "compact",
61
+ packageName: TIKTOK_PACKAGE_NAME,
62
+ platform: TIKTOK_PLATFORM,
63
+ workflowIdByToolName: tiktokWorkflowIdByToolName,
64
+ interactionLogger,
65
+ authContextResolver: sessionId
66
+ ? () => sessionServiceStore.getAuthContext(sessionId)
67
+ : undefined,
68
+ });
69
+ registerStaticResourcesFromDefinitions({
70
+ server,
71
+ resources: allResources,
72
+ logger,
73
+ });
74
+ registerReportCsvResource({
75
+ server,
76
+ ResourceTemplate,
77
+ store: reportCsvStore,
78
+ platform: "TikTok",
79
+ downloadToolName: "tiktok_download_report",
80
+ logger,
81
+ });
82
+ if (isConformanceFixturesEnabled()) {
83
+ const { conformanceResources, conformanceResourceTemplate, conformancePrompts } = await import("@cesteral/shared");
84
+ const { ResourceTemplate: McpResourceTemplate } = await import("@modelcontextprotocol/sdk/server/mcp.js");
85
+ registerStaticResourcesFromDefinitions({
86
+ server,
87
+ resources: conformanceResources,
88
+ logger,
89
+ });
90
+ const template = new McpResourceTemplate(conformanceResourceTemplate.uriTemplate, {
91
+ list: undefined,
92
+ });
93
+ server.registerResource("conformance_template", template, {
94
+ description: conformanceResourceTemplate.description,
95
+ mimeType: conformanceResourceTemplate.mimeType,
96
+ }, async (uri, variables) => {
97
+ const id = variables.id || "unknown";
98
+ const content = conformanceResourceTemplate.getContent(id);
99
+ return {
100
+ contents: [
101
+ {
102
+ uri: uri.href,
103
+ mimeType: conformanceResourceTemplate.mimeType,
104
+ text: content,
105
+ },
106
+ ],
107
+ };
108
+ });
109
+ registerPromptsFromDefinitions({
110
+ server: server,
111
+ prompts: conformancePrompts,
112
+ logger,
113
+ });
114
+ }
115
+ const allPrompts = Array.from(promptRegistry.values()).map((def) => ({
116
+ name: def.prompt.name,
117
+ description: def.prompt.description ?? "",
118
+ arguments: def.prompt.arguments,
119
+ generateMessage: def.generateMessage,
120
+ }));
121
+ registerPromptsFromDefinitions({
122
+ server: server,
123
+ prompts: allPrompts,
124
+ logger,
125
+ });
126
+ return server;
127
+ }
128
+ export async function runStdioServer(server, logger) {
129
+ logger.info("Starting MCP server with stdio transport");
130
+ const transport = new StdioServerTransport();
131
+ await server.connect(transport);
132
+ logger.info("MCP server connected via stdio");
133
+ }
134
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp-server/server.ts"],"names":[],"mappings":"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"}