@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.
- package/LICENSE.md +201 -0
- package/README.md +347 -0
- package/dist/auth/index.d.ts +3 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +3 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/auth/tiktok-auth-adapter.d.ts +40 -0
- package/dist/auth/tiktok-auth-adapter.d.ts.map +1 -0
- package/dist/auth/tiktok-auth-adapter.js +126 -0
- package/dist/auth/tiktok-auth-adapter.js.map +1 -0
- package/dist/auth/tiktok-auth-strategy.d.ts +14 -0
- package/dist/auth/tiktok-auth-strategy.d.ts.map +1 -0
- package/dist/auth/tiktok-auth-strategy.js +54 -0
- package/dist/auth/tiktok-auth-strategy.js.map +1 -0
- package/dist/config/index.d.ts +120 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +55 -0
- package/dist/config/index.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +47 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp-server/prompts/definitions/bulk-operations-workflow.prompt.d.ts +4 -0
- package/dist/mcp-server/prompts/definitions/bulk-operations-workflow.prompt.d.ts.map +1 -0
- package/dist/mcp-server/prompts/definitions/bulk-operations-workflow.prompt.js +127 -0
- package/dist/mcp-server/prompts/definitions/bulk-operations-workflow.prompt.js.map +1 -0
- package/dist/mcp-server/prompts/definitions/campaign-setup-workflow.prompt.d.ts +4 -0
- package/dist/mcp-server/prompts/definitions/campaign-setup-workflow.prompt.d.ts.map +1 -0
- package/dist/mcp-server/prompts/definitions/campaign-setup-workflow.prompt.js +104 -0
- package/dist/mcp-server/prompts/definitions/campaign-setup-workflow.prompt.js.map +1 -0
- package/dist/mcp-server/prompts/definitions/creative-upload-workflow.prompt.d.ts +4 -0
- package/dist/mcp-server/prompts/definitions/creative-upload-workflow.prompt.d.ts.map +1 -0
- package/dist/mcp-server/prompts/definitions/creative-upload-workflow.prompt.js +121 -0
- package/dist/mcp-server/prompts/definitions/creative-upload-workflow.prompt.js.map +1 -0
- package/dist/mcp-server/prompts/definitions/cross-platform-campaign-setup.prompt.d.ts +4 -0
- package/dist/mcp-server/prompts/definitions/cross-platform-campaign-setup.prompt.d.ts.map +1 -0
- package/dist/mcp-server/prompts/definitions/cross-platform-campaign-setup.prompt.js +299 -0
- package/dist/mcp-server/prompts/definitions/cross-platform-campaign-setup.prompt.js.map +1 -0
- package/dist/mcp-server/prompts/definitions/cross-platform-performance.prompt.d.ts +4 -0
- package/dist/mcp-server/prompts/definitions/cross-platform-performance.prompt.d.ts.map +1 -0
- package/dist/mcp-server/prompts/definitions/cross-platform-performance.prompt.js +170 -0
- package/dist/mcp-server/prompts/definitions/cross-platform-performance.prompt.js.map +1 -0
- package/dist/mcp-server/prompts/definitions/entity-duplication-workflow.prompt.d.ts +4 -0
- package/dist/mcp-server/prompts/definitions/entity-duplication-workflow.prompt.d.ts.map +1 -0
- package/dist/mcp-server/prompts/definitions/entity-duplication-workflow.prompt.js +198 -0
- package/dist/mcp-server/prompts/definitions/entity-duplication-workflow.prompt.js.map +1 -0
- package/dist/mcp-server/prompts/definitions/entity-update-workflow.prompt.d.ts +4 -0
- package/dist/mcp-server/prompts/definitions/entity-update-workflow.prompt.d.ts.map +1 -0
- package/dist/mcp-server/prompts/definitions/entity-update-workflow.prompt.js +189 -0
- package/dist/mcp-server/prompts/definitions/entity-update-workflow.prompt.js.map +1 -0
- package/dist/mcp-server/prompts/definitions/reporting-workflow.prompt.d.ts +4 -0
- package/dist/mcp-server/prompts/definitions/reporting-workflow.prompt.d.ts.map +1 -0
- package/dist/mcp-server/prompts/definitions/reporting-workflow.prompt.js +126 -0
- package/dist/mcp-server/prompts/definitions/reporting-workflow.prompt.js.map +1 -0
- package/dist/mcp-server/prompts/definitions/targeting-discovery-workflow.prompt.d.ts +4 -0
- package/dist/mcp-server/prompts/definitions/targeting-discovery-workflow.prompt.d.ts.map +1 -0
- package/dist/mcp-server/prompts/definitions/targeting-discovery-workflow.prompt.js +200 -0
- package/dist/mcp-server/prompts/definitions/targeting-discovery-workflow.prompt.js.map +1 -0
- package/dist/mcp-server/prompts/definitions/tool-schema-exploration.prompt.d.ts +4 -0
- package/dist/mcp-server/prompts/definitions/tool-schema-exploration.prompt.d.ts.map +1 -0
- package/dist/mcp-server/prompts/definitions/tool-schema-exploration.prompt.js +93 -0
- package/dist/mcp-server/prompts/definitions/tool-schema-exploration.prompt.js.map +1 -0
- package/dist/mcp-server/prompts/definitions/troubleshoot-entity.prompt.d.ts +4 -0
- package/dist/mcp-server/prompts/definitions/troubleshoot-entity.prompt.d.ts.map +1 -0
- package/dist/mcp-server/prompts/definitions/troubleshoot-entity.prompt.js +111 -0
- package/dist/mcp-server/prompts/definitions/troubleshoot-entity.prompt.js.map +1 -0
- package/dist/mcp-server/prompts/index.d.ts +9 -0
- package/dist/mcp-server/prompts/index.d.ts.map +1 -0
- package/dist/mcp-server/prompts/index.js +97 -0
- package/dist/mcp-server/prompts/index.js.map +1 -0
- package/dist/mcp-server/resources/definitions/entity-examples.resource.d.ts +4 -0
- package/dist/mcp-server/resources/definitions/entity-examples.resource.d.ts.map +1 -0
- package/dist/mcp-server/resources/definitions/entity-examples.resource.js +182 -0
- package/dist/mcp-server/resources/definitions/entity-examples.resource.js.map +1 -0
- package/dist/mcp-server/resources/definitions/entity-hierarchy.resource.d.ts +3 -0
- package/dist/mcp-server/resources/definitions/entity-hierarchy.resource.d.ts.map +1 -0
- package/dist/mcp-server/resources/definitions/entity-hierarchy.resource.js +147 -0
- package/dist/mcp-server/resources/definitions/entity-hierarchy.resource.js.map +1 -0
- package/dist/mcp-server/resources/definitions/entity-schemas.resource.d.ts +4 -0
- package/dist/mcp-server/resources/definitions/entity-schemas.resource.d.ts.map +1 -0
- package/dist/mcp-server/resources/definitions/entity-schemas.resource.js +135 -0
- package/dist/mcp-server/resources/definitions/entity-schemas.resource.js.map +1 -0
- package/dist/mcp-server/resources/definitions/index.d.ts +8 -0
- package/dist/mcp-server/resources/definitions/index.d.ts.map +1 -0
- package/dist/mcp-server/resources/definitions/index.js +79 -0
- package/dist/mcp-server/resources/definitions/index.js.map +1 -0
- package/dist/mcp-server/resources/definitions/reporting-reference.resource.d.ts +3 -0
- package/dist/mcp-server/resources/definitions/reporting-reference.resource.d.ts.map +1 -0
- package/dist/mcp-server/resources/definitions/reporting-reference.resource.js +165 -0
- package/dist/mcp-server/resources/definitions/reporting-reference.resource.js.map +1 -0
- package/dist/mcp-server/resources/definitions/targeting-reference.resource.d.ts +3 -0
- package/dist/mcp-server/resources/definitions/targeting-reference.resource.d.ts.map +1 -0
- package/dist/mcp-server/resources/definitions/targeting-reference.resource.js +134 -0
- package/dist/mcp-server/resources/definitions/targeting-reference.resource.js.map +1 -0
- package/dist/mcp-server/resources/index.d.ts +3 -0
- package/dist/mcp-server/resources/index.d.ts.map +1 -0
- package/dist/mcp-server/resources/index.js +2 -0
- package/dist/mcp-server/resources/index.js.map +1 -0
- package/dist/mcp-server/resources/types.d.ts +8 -0
- package/dist/mcp-server/resources/types.d.ts.map +1 -0
- package/dist/mcp-server/resources/types.js +2 -0
- package/dist/mcp-server/resources/types.js.map +1 -0
- package/dist/mcp-server/server.d.ts +5 -0
- package/dist/mcp-server/server.d.ts.map +1 -0
- package/dist/mcp-server/server.js +134 -0
- package/dist/mcp-server/server.js.map +1 -0
- package/dist/mcp-server/tools/definitions/adjust-bids.tool.d.ts +209 -0
- package/dist/mcp-server/tools/definitions/adjust-bids.tool.d.ts.map +1 -0
- package/dist/mcp-server/tools/definitions/adjust-bids.tool.js +141 -0
- package/dist/mcp-server/tools/definitions/adjust-bids.tool.js.map +1 -0
- package/dist/mcp-server/tools/definitions/bulk-create-entities.tool.d.ts +151 -0
- package/dist/mcp-server/tools/definitions/bulk-create-entities.tool.d.ts.map +1 -0
- package/dist/mcp-server/tools/definitions/bulk-create-entities.tool.js +112 -0
- package/dist/mcp-server/tools/definitions/bulk-create-entities.tool.js.map +1 -0
- package/dist/mcp-server/tools/definitions/bulk-update-entities.tool.d.ts +193 -0
- package/dist/mcp-server/tools/definitions/bulk-update-entities.tool.d.ts.map +1 -0
- package/dist/mcp-server/tools/definitions/bulk-update-entities.tool.js +130 -0
- package/dist/mcp-server/tools/definitions/bulk-update-entities.tool.js.map +1 -0
- package/dist/mcp-server/tools/definitions/bulk-update-status.tool.d.ts +153 -0
- package/dist/mcp-server/tools/definitions/bulk-update-status.tool.d.ts.map +1 -0
- package/dist/mcp-server/tools/definitions/bulk-update-status.tool.js +137 -0
- package/dist/mcp-server/tools/definitions/bulk-update-status.tool.js.map +1 -0
- package/dist/mcp-server/tools/definitions/check-report-status.tool.d.ts +119 -0
- package/dist/mcp-server/tools/definitions/check-report-status.tool.d.ts.map +1 -0
- package/dist/mcp-server/tools/definitions/check-report-status.tool.js +89 -0
- package/dist/mcp-server/tools/definitions/check-report-status.tool.js.map +1 -0
- package/dist/mcp-server/tools/definitions/create-entity.tool.d.ts +115 -0
- package/dist/mcp-server/tools/definitions/create-entity.tool.d.ts.map +1 -0
- package/dist/mcp-server/tools/definitions/create-entity.tool.js +103 -0
- package/dist/mcp-server/tools/definitions/create-entity.tool.js.map +1 -0
- package/dist/mcp-server/tools/definitions/delete-entity.tool.d.ts +100 -0
- package/dist/mcp-server/tools/definitions/delete-entity.tool.d.ts.map +1 -0
- package/dist/mcp-server/tools/definitions/delete-entity.tool.js +110 -0
- package/dist/mcp-server/tools/definitions/delete-entity.tool.js.map +1 -0
- package/dist/mcp-server/tools/definitions/download-report.tool.d.ts +297 -0
- package/dist/mcp-server/tools/definitions/download-report.tool.d.ts.map +1 -0
- package/dist/mcp-server/tools/definitions/download-report.tool.js +105 -0
- package/dist/mcp-server/tools/definitions/download-report.tool.js.map +1 -0
- package/dist/mcp-server/tools/definitions/duplicate-entity.tool.d.ts +105 -0
- package/dist/mcp-server/tools/definitions/duplicate-entity.tool.d.ts.map +1 -0
- package/dist/mcp-server/tools/definitions/duplicate-entity.tool.js +85 -0
- package/dist/mcp-server/tools/definitions/duplicate-entity.tool.js.map +1 -0
- package/dist/mcp-server/tools/definitions/get-ad-preview.tool.d.ts +89 -0
- package/dist/mcp-server/tools/definitions/get-ad-preview.tool.d.ts.map +1 -0
- package/dist/mcp-server/tools/definitions/get-ad-preview.tool.js +74 -0
- package/dist/mcp-server/tools/definitions/get-ad-preview.tool.js.map +1 -0
- package/dist/mcp-server/tools/definitions/get-ad-previews.tool.d.ts +89 -0
- package/dist/mcp-server/tools/definitions/get-ad-previews.tool.d.ts.map +1 -0
- package/dist/mcp-server/tools/definitions/get-ad-previews.tool.js +83 -0
- package/dist/mcp-server/tools/definitions/get-ad-previews.tool.js.map +1 -0
- package/dist/mcp-server/tools/definitions/get-audience-estimate.tool.d.ts +85 -0
- package/dist/mcp-server/tools/definitions/get-audience-estimate.tool.d.ts.map +1 -0
- package/dist/mcp-server/tools/definitions/get-audience-estimate.tool.js +88 -0
- package/dist/mcp-server/tools/definitions/get-audience-estimate.tool.js.map +1 -0
- package/dist/mcp-server/tools/definitions/get-entity.tool.d.ts +76 -0
- package/dist/mcp-server/tools/definitions/get-entity.tool.d.ts.map +1 -0
- package/dist/mcp-server/tools/definitions/get-entity.tool.js +71 -0
- package/dist/mcp-server/tools/definitions/get-entity.tool.js.map +1 -0
- package/dist/mcp-server/tools/definitions/get-report-breakdowns.tool.d.ts +295 -0
- package/dist/mcp-server/tools/definitions/get-report-breakdowns.tool.d.ts.map +1 -0
- package/dist/mcp-server/tools/definitions/get-report-breakdowns.tool.js +174 -0
- package/dist/mcp-server/tools/definitions/get-report-breakdowns.tool.js.map +1 -0
- package/dist/mcp-server/tools/definitions/get-report.tool.d.ts +303 -0
- package/dist/mcp-server/tools/definitions/get-report.tool.d.ts.map +1 -0
- package/dist/mcp-server/tools/definitions/get-report.tool.js +178 -0
- package/dist/mcp-server/tools/definitions/get-report.tool.js.map +1 -0
- package/dist/mcp-server/tools/definitions/get-targeting-options.tool.d.ts +127 -0
- package/dist/mcp-server/tools/definitions/get-targeting-options.tool.d.ts.map +1 -0
- package/dist/mcp-server/tools/definitions/get-targeting-options.tool.js +120 -0
- package/dist/mcp-server/tools/definitions/get-targeting-options.tool.js.map +1 -0
- package/dist/mcp-server/tools/definitions/index.d.ts +26 -0
- package/dist/mcp-server/tools/definitions/index.d.ts.map +1 -0
- package/dist/mcp-server/tools/definitions/index.js +78 -0
- package/dist/mcp-server/tools/definitions/index.js.map +1 -0
- package/dist/mcp-server/tools/definitions/list-advertisers.tool.d.ts +54 -0
- package/dist/mcp-server/tools/definitions/list-advertisers.tool.d.ts.map +1 -0
- package/dist/mcp-server/tools/definitions/list-advertisers.tool.js +58 -0
- package/dist/mcp-server/tools/definitions/list-advertisers.tool.js.map +1 -0
- package/dist/mcp-server/tools/definitions/list-entities.tool.d.ts +167 -0
- package/dist/mcp-server/tools/definitions/list-entities.tool.d.ts.map +1 -0
- package/dist/mcp-server/tools/definitions/list-entities.tool.js +114 -0
- package/dist/mcp-server/tools/definitions/list-entities.tool.js.map +1 -0
- package/dist/mcp-server/tools/definitions/search-targeting.tool.d.ts +131 -0
- package/dist/mcp-server/tools/definitions/search-targeting.tool.d.ts.map +1 -0
- package/dist/mcp-server/tools/definitions/search-targeting.tool.js +123 -0
- package/dist/mcp-server/tools/definitions/search-targeting.tool.js.map +1 -0
- package/dist/mcp-server/tools/definitions/submit-report.tool.d.ts +153 -0
- package/dist/mcp-server/tools/definitions/submit-report.tool.d.ts.map +1 -0
- package/dist/mcp-server/tools/definitions/submit-report.tool.js +117 -0
- package/dist/mcp-server/tools/definitions/submit-report.tool.js.map +1 -0
- package/dist/mcp-server/tools/definitions/update-entity.tool.d.ts +111 -0
- package/dist/mcp-server/tools/definitions/update-entity.tool.d.ts.map +1 -0
- package/dist/mcp-server/tools/definitions/update-entity.tool.js +89 -0
- package/dist/mcp-server/tools/definitions/update-entity.tool.js.map +1 -0
- package/dist/mcp-server/tools/definitions/upload-image.tool.d.ts +87 -0
- package/dist/mcp-server/tools/definitions/upload-image.tool.d.ts.map +1 -0
- package/dist/mcp-server/tools/definitions/upload-image.tool.js +82 -0
- package/dist/mcp-server/tools/definitions/upload-image.tool.js.map +1 -0
- package/dist/mcp-server/tools/definitions/upload-video.tool.d.ts +88 -0
- package/dist/mcp-server/tools/definitions/upload-video.tool.d.ts.map +1 -0
- package/dist/mcp-server/tools/definitions/upload-video.tool.js +113 -0
- package/dist/mcp-server/tools/definitions/upload-video.tool.js.map +1 -0
- package/dist/mcp-server/tools/definitions/validate-entity.tool.d.ts +197 -0
- package/dist/mcp-server/tools/definitions/validate-entity.tool.d.ts.map +1 -0
- package/dist/mcp-server/tools/definitions/validate-entity.tool.js +237 -0
- package/dist/mcp-server/tools/definitions/validate-entity.tool.js.map +1 -0
- package/dist/mcp-server/tools/index.d.ts +2 -0
- package/dist/mcp-server/tools/index.d.ts.map +1 -0
- package/dist/mcp-server/tools/index.js +2 -0
- package/dist/mcp-server/tools/index.js.map +1 -0
- package/dist/mcp-server/tools/utils/entity-mapping.d.ts +22 -0
- package/dist/mcp-server/tools/utils/entity-mapping.d.ts.map +1 -0
- package/dist/mcp-server/tools/utils/entity-mapping.js +121 -0
- package/dist/mcp-server/tools/utils/entity-mapping.js.map +1 -0
- package/dist/mcp-server/tools/utils/resolve-session.d.ts +4 -0
- package/dist/mcp-server/tools/utils/resolve-session.d.ts.map +1 -0
- package/dist/mcp-server/tools/utils/resolve-session.js +6 -0
- package/dist/mcp-server/tools/utils/resolve-session.js.map +1 -0
- package/dist/mcp-server/transports/streamable-http-transport.d.ts +59 -0
- package/dist/mcp-server/transports/streamable-http-transport.d.ts.map +1 -0
- package/dist/mcp-server/transports/streamable-http-transport.js +107 -0
- package/dist/mcp-server/transports/streamable-http-transport.js.map +1 -0
- package/dist/services/session-services.d.ts +21 -0
- package/dist/services/session-services.d.ts.map +1 -0
- package/dist/services/session-services.js +25 -0
- package/dist/services/session-services.js.map +1 -0
- package/dist/services/tiktok/tiktok-http-client.d.ts +19 -0
- package/dist/services/tiktok/tiktok-http-client.d.ts.map +1 -0
- package/dist/services/tiktok/tiktok-http-client.js +184 -0
- package/dist/services/tiktok/tiktok-http-client.js.map +1 -0
- package/dist/services/tiktok/tiktok-reporting-service.d.ts +62 -0
- package/dist/services/tiktok/tiktok-reporting-service.d.ts.map +1 -0
- package/dist/services/tiktok/tiktok-reporting-service.js +129 -0
- package/dist/services/tiktok/tiktok-reporting-service.js.map +1 -0
- package/dist/services/tiktok/tiktok-service.d.ts +86 -0
- package/dist/services/tiktok/tiktok-service.d.ts.map +1 -0
- package/dist/services/tiktok/tiktok-service.js +217 -0
- package/dist/services/tiktok/tiktok-service.js.map +1 -0
- package/dist/services/tiktok/types.d.ts +161 -0
- package/dist/services/tiktok/types.d.ts.map +1 -0
- package/dist/services/tiktok/types.js +31 -0
- package/dist/services/tiktok/types.js.map +1 -0
- package/dist/types-global/mcp.d.ts +2 -0
- package/dist/types-global/mcp.d.ts.map +1 -0
- package/dist/types-global/mcp.js +2 -0
- package/dist/types-global/mcp.js.map +1 -0
- package/dist/utils/errors/index.d.ts +2 -0
- package/dist/utils/errors/index.d.ts.map +1 -0
- package/dist/utils/errors/index.js +2 -0
- package/dist/utils/errors/index.js.map +1 -0
- package/dist/utils/platform.d.ts +3 -0
- package/dist/utils/platform.d.ts.map +1 -0
- package/dist/utils/platform.js +5 -0
- package/dist/utils/platform.js.map +1 -0
- package/dist/utils/security/rate-limiter.d.ts +3 -0
- package/dist/utils/security/rate-limiter.d.ts.map +1 -0
- package/dist/utils/security/rate-limiter.js +5 -0
- package/dist/utils/security/rate-limiter.js.map +1 -0
- package/dist/utils/telemetry/index.d.ts +2 -0
- package/dist/utils/telemetry/index.d.ts.map +1 -0
- package/dist/utils/telemetry/index.js +2 -0
- package/dist/utils/telemetry/index.js.map +1 -0
- package/dist/utils/telemetry/tracing.d.ts +3 -0
- package/dist/utils/telemetry/tracing.d.ts.map +1 -0
- package/dist/utils/telemetry/tracing.js +4 -0
- package/dist/utils/telemetry/tracing.js.map +1 -0
- package/package.json +55 -0
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { campaignSetupWorkflowPrompt, getCampaignSetupWorkflowMessage, } from "./definitions/campaign-setup-workflow.prompt.js";
|
|
2
|
+
import { bulkOperationsWorkflowPrompt, getBulkOperationsWorkflowMessage, } from "./definitions/bulk-operations-workflow.prompt.js";
|
|
3
|
+
import { tiktokToolSchemaExplorationPrompt, getTiktokToolSchemaExplorationMessage, } from "./definitions/tool-schema-exploration.prompt.js";
|
|
4
|
+
import { tiktokTroubleshootEntityPrompt, getTiktokTroubleshootEntityMessage, } from "./definitions/troubleshoot-entity.prompt.js";
|
|
5
|
+
import { tiktokReportingWorkflowPrompt, getTiktokReportingWorkflowMessage, } from "./definitions/reporting-workflow.prompt.js";
|
|
6
|
+
import { tiktokEntityUpdateWorkflowPrompt, getTiktokEntityUpdateWorkflowMessage, } from "./definitions/entity-update-workflow.prompt.js";
|
|
7
|
+
import { tiktokTargetingDiscoveryWorkflowPrompt, getTiktokTargetingDiscoveryWorkflowMessage, } from "./definitions/targeting-discovery-workflow.prompt.js";
|
|
8
|
+
import { tiktokEntityDuplicationWorkflowPrompt, getTiktokEntityDuplicationWorkflowMessage, } from "./definitions/entity-duplication-workflow.prompt.js";
|
|
9
|
+
import { crossPlatformPerformancePrompt, getCrossPlatformPerformanceMessage, } from "./definitions/cross-platform-performance.prompt.js";
|
|
10
|
+
import { crossPlatformCampaignSetupPrompt, getCrossPlatformCampaignSetupMessage, } from "./definitions/cross-platform-campaign-setup.prompt.js";
|
|
11
|
+
import { tiktokCreativeUploadWorkflowPrompt, getTiktokCreativeUploadWorkflowMessage, } from "./definitions/creative-upload-workflow.prompt.js";
|
|
12
|
+
export const promptRegistry = new Map([
|
|
13
|
+
[
|
|
14
|
+
campaignSetupWorkflowPrompt.name,
|
|
15
|
+
{
|
|
16
|
+
prompt: campaignSetupWorkflowPrompt,
|
|
17
|
+
generateMessage: getCampaignSetupWorkflowMessage,
|
|
18
|
+
},
|
|
19
|
+
],
|
|
20
|
+
[
|
|
21
|
+
bulkOperationsWorkflowPrompt.name,
|
|
22
|
+
{
|
|
23
|
+
prompt: bulkOperationsWorkflowPrompt,
|
|
24
|
+
generateMessage: getBulkOperationsWorkflowMessage,
|
|
25
|
+
},
|
|
26
|
+
],
|
|
27
|
+
[
|
|
28
|
+
tiktokToolSchemaExplorationPrompt.name,
|
|
29
|
+
{
|
|
30
|
+
prompt: tiktokToolSchemaExplorationPrompt,
|
|
31
|
+
generateMessage: getTiktokToolSchemaExplorationMessage,
|
|
32
|
+
},
|
|
33
|
+
],
|
|
34
|
+
[
|
|
35
|
+
tiktokTroubleshootEntityPrompt.name,
|
|
36
|
+
{
|
|
37
|
+
prompt: tiktokTroubleshootEntityPrompt,
|
|
38
|
+
generateMessage: getTiktokTroubleshootEntityMessage,
|
|
39
|
+
},
|
|
40
|
+
],
|
|
41
|
+
[
|
|
42
|
+
tiktokReportingWorkflowPrompt.name,
|
|
43
|
+
{
|
|
44
|
+
prompt: tiktokReportingWorkflowPrompt,
|
|
45
|
+
generateMessage: getTiktokReportingWorkflowMessage,
|
|
46
|
+
},
|
|
47
|
+
],
|
|
48
|
+
[
|
|
49
|
+
tiktokEntityUpdateWorkflowPrompt.name,
|
|
50
|
+
{
|
|
51
|
+
prompt: tiktokEntityUpdateWorkflowPrompt,
|
|
52
|
+
generateMessage: getTiktokEntityUpdateWorkflowMessage,
|
|
53
|
+
},
|
|
54
|
+
],
|
|
55
|
+
[
|
|
56
|
+
tiktokTargetingDiscoveryWorkflowPrompt.name,
|
|
57
|
+
{
|
|
58
|
+
prompt: tiktokTargetingDiscoveryWorkflowPrompt,
|
|
59
|
+
generateMessage: getTiktokTargetingDiscoveryWorkflowMessage,
|
|
60
|
+
},
|
|
61
|
+
],
|
|
62
|
+
[
|
|
63
|
+
tiktokEntityDuplicationWorkflowPrompt.name,
|
|
64
|
+
{
|
|
65
|
+
prompt: tiktokEntityDuplicationWorkflowPrompt,
|
|
66
|
+
generateMessage: getTiktokEntityDuplicationWorkflowMessage,
|
|
67
|
+
},
|
|
68
|
+
],
|
|
69
|
+
[
|
|
70
|
+
crossPlatformPerformancePrompt.name,
|
|
71
|
+
{
|
|
72
|
+
prompt: crossPlatformPerformancePrompt,
|
|
73
|
+
generateMessage: getCrossPlatformPerformanceMessage,
|
|
74
|
+
},
|
|
75
|
+
],
|
|
76
|
+
[
|
|
77
|
+
crossPlatformCampaignSetupPrompt.name,
|
|
78
|
+
{
|
|
79
|
+
prompt: crossPlatformCampaignSetupPrompt,
|
|
80
|
+
generateMessage: getCrossPlatformCampaignSetupMessage,
|
|
81
|
+
},
|
|
82
|
+
],
|
|
83
|
+
[
|
|
84
|
+
tiktokCreativeUploadWorkflowPrompt.name,
|
|
85
|
+
{
|
|
86
|
+
prompt: tiktokCreativeUploadWorkflowPrompt,
|
|
87
|
+
generateMessage: getTiktokCreativeUploadWorkflowMessage,
|
|
88
|
+
},
|
|
89
|
+
],
|
|
90
|
+
]);
|
|
91
|
+
export function getAllPrompts() {
|
|
92
|
+
return Array.from(promptRegistry.values()).map((def) => def.prompt);
|
|
93
|
+
}
|
|
94
|
+
export function getPromptDefinition(name) {
|
|
95
|
+
return promptRegistry.get(name);
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mcp-server/prompts/index.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,2BAA2B,EAC3B,+BAA+B,GAChC,MAAM,iDAAiD,CAAC;AACzD,OAAO,EACL,4BAA4B,EAC5B,gCAAgC,GACjC,MAAM,kDAAkD,CAAC;AAC1D,OAAO,EACL,iCAAiC,EACjC,qCAAqC,GACtC,MAAM,iDAAiD,CAAC;AACzD,OAAO,EACL,8BAA8B,EAC9B,kCAAkC,GACnC,MAAM,6CAA6C,CAAC;AACrD,OAAO,EACL,6BAA6B,EAC7B,iCAAiC,GAClC,MAAM,4CAA4C,CAAC;AACpD,OAAO,EACL,gCAAgC,EAChC,oCAAoC,GACrC,MAAM,gDAAgD,CAAC;AACxD,OAAO,EACL,sCAAsC,EACtC,0CAA0C,GAC3C,MAAM,sDAAsD,CAAC;AAC9D,OAAO,EACL,qCAAqC,EACrC,yCAAyC,GAC1C,MAAM,qDAAqD,CAAC;AAC7D,OAAO,EACL,8BAA8B,EAC9B,kCAAkC,GACnC,MAAM,oDAAoD,CAAC;AAC5D,OAAO,EACL,gCAAgC,EAChC,oCAAoC,GACrC,MAAM,uDAAuD,CAAC;AAC/D,OAAO,EACL,kCAAkC,EAClC,sCAAsC,GACvC,MAAM,kDAAkD,CAAC;AAO1D,MAAM,CAAC,MAAM,cAAc,GAAkC,IAAI,GAAG,CAAC;IACnE;QACE,2BAA2B,CAAC,IAAI;QAChC;YACE,MAAM,EAAE,2BAA2B;YACnC,eAAe,EAAE,+BAA+B;SACjD;KACF;IACD;QACE,4BAA4B,CAAC,IAAI;QACjC;YACE,MAAM,EAAE,4BAA4B;YACpC,eAAe,EAAE,gCAAgC;SAClD;KACF;IACD;QACE,iCAAiC,CAAC,IAAI;QACtC;YACE,MAAM,EAAE,iCAAiC;YACzC,eAAe,EAAE,qCAAqC;SACvD;KACF;IACD;QACE,8BAA8B,CAAC,IAAI;QACnC;YACE,MAAM,EAAE,8BAA8B;YACtC,eAAe,EAAE,kCAAkC;SACpD;KACF;IACD;QACE,6BAA6B,CAAC,IAAI;QAClC;YACE,MAAM,EAAE,6BAA6B;YACrC,eAAe,EAAE,iCAAiC;SACnD;KACF;IACD;QACE,gCAAgC,CAAC,IAAI;QACrC;YACE,MAAM,EAAE,gCAAgC;YACxC,eAAe,EAAE,oCAAoC;SACtD;KACF;IACD;QACE,sCAAsC,CAAC,IAAI;QAC3C;YACE,MAAM,EAAE,sCAAsC;YAC9C,eAAe,EAAE,0CAA0C;SAC5D;KACF;IACD;QACE,qCAAqC,CAAC,IAAI;QAC1C;YACE,MAAM,EAAE,qCAAqC;YAC7C,eAAe,EAAE,yCAAyC;SAC3D;KACF;IACD;QACE,8BAA8B,CAAC,IAAI;QACnC;YACE,MAAM,EAAE,8BAA8B;YACtC,eAAe,EAAE,kCAAkC;SACpD;KACF;IACD;QACE,gCAAgC,CAAC,IAAI;QACrC;YACE,MAAM,EAAE,gCAAgC;YACxC,eAAe,EAAE,oCAAoC;SACtD;KACF;IACD;QACE,kCAAkC,CAAC,IAAI;QACvC;YACE,MAAM,EAAE,kCAAkC;YAC1C,eAAe,EAAE,sCAAsC;SACxD;KACF;CACF,CAAC,CAAC;AAEH,MAAM,UAAU,aAAa;IAC3B,OAAO,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACtE,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC9C,OAAO,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAClC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entity-examples.resource.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/resources/definitions/entity-examples.resource.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAgL5C,eAAO,MAAM,sBAAsB,EAAE,QAAQ,EAQ1C,CAAC;AAEJ,eAAO,MAAM,wBAAwB,EAAE,QAMtC,CAAC"}
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
import { getSupportedEntityTypes, } from "../../tools/utils/entity-mapping.js";
|
|
2
|
+
const ENTITY_EXAMPLE_CONTENT = {
|
|
3
|
+
campaign: `# TikTok Campaign Examples
|
|
4
|
+
|
|
5
|
+
## Create a Traffic Campaign (daily budget)
|
|
6
|
+
\`\`\`json
|
|
7
|
+
{
|
|
8
|
+
"entityType": "campaign",
|
|
9
|
+
"advertiserId": "1234567890",
|
|
10
|
+
"data": {
|
|
11
|
+
"campaign_name": "Summer Sale 2026 - Traffic",
|
|
12
|
+
"objective_type": "TRAFFIC",
|
|
13
|
+
"budget_mode": "BUDGET_MODE_DAY",
|
|
14
|
+
"budget": 100
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
\`\`\`
|
|
18
|
+
|
|
19
|
+
## Create an App Install Campaign (lifetime budget)
|
|
20
|
+
\`\`\`json
|
|
21
|
+
{
|
|
22
|
+
"entityType": "campaign",
|
|
23
|
+
"advertiserId": "1234567890",
|
|
24
|
+
"data": {
|
|
25
|
+
"campaign_name": "App Install Q1 2026",
|
|
26
|
+
"objective_type": "APP_PROMOTION",
|
|
27
|
+
"budget_mode": "BUDGET_MODE_TOTAL",
|
|
28
|
+
"budget": 5000,
|
|
29
|
+
"app_promotion_type": "APP_INSTALL"
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
\`\`\`
|
|
33
|
+
|
|
34
|
+
## Update Campaign Budget
|
|
35
|
+
\`\`\`json
|
|
36
|
+
{
|
|
37
|
+
"entityType": "campaign",
|
|
38
|
+
"advertiserId": "1234567890",
|
|
39
|
+
"entityId": "1800123456789",
|
|
40
|
+
"data": {
|
|
41
|
+
"budget": 200
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
\`\`\`
|
|
45
|
+
`,
|
|
46
|
+
adGroup: `# TikTok Ad Group Examples
|
|
47
|
+
|
|
48
|
+
## Create an Ad Group with Interest Targeting
|
|
49
|
+
\`\`\`json
|
|
50
|
+
{
|
|
51
|
+
"entityType": "adGroup",
|
|
52
|
+
"advertiserId": "1234567890",
|
|
53
|
+
"data": {
|
|
54
|
+
"campaign_id": "1800123456789",
|
|
55
|
+
"adgroup_name": "US Gaming 18-34",
|
|
56
|
+
"placements": ["PLACEMENT_TIKTOK"],
|
|
57
|
+
"budget_mode": "BUDGET_MODE_DAY",
|
|
58
|
+
"budget": 50,
|
|
59
|
+
"schedule_type": "SCHEDULE_START_END",
|
|
60
|
+
"pacing": "PACING_MODE_SMOOTH",
|
|
61
|
+
"schedule_start_time": "2026-03-01 00:00:00",
|
|
62
|
+
"schedule_end_time": "2026-03-31 23:59:59",
|
|
63
|
+
"optimization_goal": "CLICK",
|
|
64
|
+
"bid_price": 0.5,
|
|
65
|
+
"age": ["AGE_18_24", "AGE_25_34"],
|
|
66
|
+
"gender": ["GENDER_UNLIMITED"],
|
|
67
|
+
"location_ids": ["US"],
|
|
68
|
+
"interest_category_ids": ["123456789"]
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
\`\`\`
|
|
72
|
+
|
|
73
|
+
## Create an Always-On Ad Group (no schedule end)
|
|
74
|
+
\`\`\`json
|
|
75
|
+
{
|
|
76
|
+
"entityType": "adGroup",
|
|
77
|
+
"advertiserId": "1234567890",
|
|
78
|
+
"data": {
|
|
79
|
+
"campaign_id": "1800123456789",
|
|
80
|
+
"adgroup_name": "Retargeting - Website Visitors",
|
|
81
|
+
"placements": ["PLACEMENT_TIKTOK"],
|
|
82
|
+
"budget_mode": "BUDGET_MODE_DAY",
|
|
83
|
+
"budget": 30,
|
|
84
|
+
"schedule_type": "SCHEDULE_ALWAYS",
|
|
85
|
+
"optimization_goal": "CLICK"
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
\`\`\`
|
|
89
|
+
`,
|
|
90
|
+
ad: `# TikTok Ad Examples
|
|
91
|
+
|
|
92
|
+
## Create a Single Video Ad
|
|
93
|
+
\`\`\`json
|
|
94
|
+
{
|
|
95
|
+
"entityType": "ad",
|
|
96
|
+
"advertiserId": "1234567890",
|
|
97
|
+
"data": {
|
|
98
|
+
"adgroup_id": "1700123456789",
|
|
99
|
+
"creatives": [
|
|
100
|
+
{
|
|
101
|
+
"ad_name": "Summer Sale Video Ad",
|
|
102
|
+
"video_id": "v0200fg10000cekdqpbc77ue1tvq1ns0",
|
|
103
|
+
"call_to_action": "SHOP_NOW",
|
|
104
|
+
"landing_page_url": "https://example.com/summer-sale"
|
|
105
|
+
}
|
|
106
|
+
]
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
\`\`\`
|
|
110
|
+
|
|
111
|
+
## Create a Single Image Ad
|
|
112
|
+
\`\`\`json
|
|
113
|
+
{
|
|
114
|
+
"entityType": "ad",
|
|
115
|
+
"advertiserId": "1234567890",
|
|
116
|
+
"data": {
|
|
117
|
+
"adgroup_id": "1700123456789",
|
|
118
|
+
"creatives": [
|
|
119
|
+
{
|
|
120
|
+
"ad_name": "Product Banner Ad",
|
|
121
|
+
"image_ids": ["imt0000100000011abc123"],
|
|
122
|
+
"call_to_action": "LEARN_MORE",
|
|
123
|
+
"landing_page_url": "https://example.com/new-arrivals"
|
|
124
|
+
}
|
|
125
|
+
]
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
\`\`\`
|
|
129
|
+
`,
|
|
130
|
+
creative: `# TikTok Creative Examples
|
|
131
|
+
|
|
132
|
+
## Create a Video Creative
|
|
133
|
+
\`\`\`json
|
|
134
|
+
{
|
|
135
|
+
"entityType": "creative",
|
|
136
|
+
"advertiserId": "1234567890",
|
|
137
|
+
"data": {
|
|
138
|
+
"display_name": "Summer Sale Video Creative",
|
|
139
|
+
"video_id": "v0200fg10000cekdqpbc77ue1tvq1ns0",
|
|
140
|
+
"ad_text": "Shop the Summer Sale — 50% off!",
|
|
141
|
+
"call_to_action": "SHOP_NOW",
|
|
142
|
+
"landing_page_url": "https://example.com/sale"
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
\`\`\`
|
|
146
|
+
|
|
147
|
+
## Create an Image Creative
|
|
148
|
+
\`\`\`json
|
|
149
|
+
{
|
|
150
|
+
"entityType": "creative",
|
|
151
|
+
"advertiserId": "1234567890",
|
|
152
|
+
"data": {
|
|
153
|
+
"display_name": "Product Banner Creative",
|
|
154
|
+
"image_ids": ["imt0000100000011abc123"],
|
|
155
|
+
"ad_text": "New arrivals every week",
|
|
156
|
+
"call_to_action": "LEARN_MORE"
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
\`\`\`
|
|
160
|
+
`,
|
|
161
|
+
};
|
|
162
|
+
function buildAllExamplesMarkdown() {
|
|
163
|
+
return getSupportedEntityTypes()
|
|
164
|
+
.map((t) => ENTITY_EXAMPLE_CONTENT[t])
|
|
165
|
+
.join("\n\n---\n\n");
|
|
166
|
+
}
|
|
167
|
+
export const entityExampleResources = getSupportedEntityTypes().map((entityType) => ({
|
|
168
|
+
uri: `entity-examples://tiktok/${entityType}`,
|
|
169
|
+
name: `TikTok ${entityType} Examples`,
|
|
170
|
+
description: `Example payloads for creating and updating TikTok ${entityType} entities`,
|
|
171
|
+
mimeType: "text/markdown",
|
|
172
|
+
getContent: () => ENTITY_EXAMPLE_CONTENT[entityType] ??
|
|
173
|
+
`# TikTok ${entityType} Examples\n\nNo examples available.\n`,
|
|
174
|
+
}));
|
|
175
|
+
export const entityExampleAllResource = {
|
|
176
|
+
uri: "entity-examples://tiktok/all",
|
|
177
|
+
name: "TikTok All Entity Examples",
|
|
178
|
+
description: "Combined example payloads for all TikTok Ads entity types",
|
|
179
|
+
mimeType: "text/markdown",
|
|
180
|
+
getContent: buildAllExamplesMarkdown,
|
|
181
|
+
};
|
|
182
|
+
//# sourceMappingURL=entity-examples.resource.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entity-examples.resource.js","sourceRoot":"","sources":["../../../../src/mcp-server/resources/definitions/entity-examples.resource.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,uBAAuB,GAExB,MAAM,qCAAqC,CAAC;AAE7C,MAAM,sBAAsB,GAAqC;IAC/D,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0CX;IAEC,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2CV;IAEC,EAAE,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuCL;IAEC,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8BX;CACA,CAAC;AAEF,SAAS,wBAAwB;IAC/B,OAAO,uBAAuB,EAAE;SAC7B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;SACrC,IAAI,CAAC,aAAa,CAAC,CAAC;AACzB,CAAC;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAe,uBAAuB,EAAE,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAC/F,GAAG,EAAE,4BAA4B,UAAU,EAAE;IAC7C,IAAI,EAAE,UAAU,UAAU,WAAW;IACrC,WAAW,EAAE,qDAAqD,UAAU,WAAW;IACvF,QAAQ,EAAE,eAAe;IACzB,UAAU,EAAE,GAAG,EAAE,CACf,sBAAsB,CAAC,UAAU,CAAC;QAClC,YAAY,UAAU,uCAAuC;CAChE,CAAC,CAAC,CAAC;AAEJ,MAAM,CAAC,MAAM,wBAAwB,GAAa;IAChD,GAAG,EAAE,8BAA8B;IACnC,IAAI,EAAE,4BAA4B;IAClC,WAAW,EAAE,2DAA2D;IACxE,QAAQ,EAAE,eAAe;IACzB,UAAU,EAAE,wBAAwB;CACrC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entity-hierarchy.resource.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/resources/definitions/entity-hierarchy.resource.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AA4I5C,eAAO,MAAM,uBAAuB,EAAE,QAUrC,CAAC"}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
let cachedContent;
|
|
2
|
+
function formatEntityHierarchyMarkdown() {
|
|
3
|
+
return `# TikTok Ads Entity Hierarchy
|
|
4
|
+
|
|
5
|
+
## Relationship Diagram
|
|
6
|
+
|
|
7
|
+
\`\`\`
|
|
8
|
+
Advertiser (advertiser_id: XXXXXXXXXX)
|
|
9
|
+
├── Campaign (campaign_id)
|
|
10
|
+
│ └── Ad Group (adgroup_id)
|
|
11
|
+
│ └── Ad (ad_id) ← references Creative
|
|
12
|
+
└── Creative (creative_id, reusable across ads)
|
|
13
|
+
\`\`\`
|
|
14
|
+
|
|
15
|
+
## Entity Types (4 total)
|
|
16
|
+
|
|
17
|
+
| Entity Type | List Endpoint | Create Endpoint | ID Field |
|
|
18
|
+
|-------------|---------------|-----------------|----------|
|
|
19
|
+
| **campaign** | \`/open_api/v1.3/campaign/get/\` | \`/open_api/v1.3/campaign/create/\` | campaign_id |
|
|
20
|
+
| **adGroup** | \`/open_api/v1.3/adgroup/get/\` | \`/open_api/v1.3/adgroup/create/\` | adgroup_id |
|
|
21
|
+
| **ad** | \`/open_api/v1.3/ad/get/\` | \`/open_api/v1.3/ad/create/\` | ad_id |
|
|
22
|
+
| **creative** | \`/open_api/v1.3/creative/adcreative/get/\` | \`/open_api/v1.3/creative/adcreative/create/\` | creative_id |
|
|
23
|
+
|
|
24
|
+
## Key Relationships
|
|
25
|
+
|
|
26
|
+
### Core Hierarchy: Advertiser → Campaign → Ad Group → Ad
|
|
27
|
+
- A campaign has one or more ad groups.
|
|
28
|
+
- An ad group has one or more ads.
|
|
29
|
+
- An ad references creative assets (video_id or image_ids).
|
|
30
|
+
|
|
31
|
+
### Reusable Entities
|
|
32
|
+
- **Creatives** can be referenced by multiple ads within the same advertiser.
|
|
33
|
+
|
|
34
|
+
## Creation Order
|
|
35
|
+
|
|
36
|
+
Full campaign structure (top-down):
|
|
37
|
+
|
|
38
|
+
1. **Advertiser** — pre-exists; discover with \`tiktok_list_advertisers\`
|
|
39
|
+
2. **Creative(s)** — optional; can upload via Creative Library or reference video/image IDs
|
|
40
|
+
3. **Campaign** — requires \`campaign_name\`, \`objective_type\`, \`budget_mode\`, \`budget\`
|
|
41
|
+
4. **Ad Group(s)** — requires \`campaign_id\`, \`adgroup_name\`, plus objective-dependent delivery fields
|
|
42
|
+
5. **Ad(s)** — requires \`adgroup_id\` and \`creatives\`
|
|
43
|
+
|
|
44
|
+
## TikTok API Patterns
|
|
45
|
+
|
|
46
|
+
### Read: GET with advertiser_id in query params
|
|
47
|
+
\`\`\`
|
|
48
|
+
GET /open_api/v1.3/campaign/get/?advertiser_id=123&page=1&page_size=10
|
|
49
|
+
Authorization: Bearer <token>
|
|
50
|
+
\`\`\`
|
|
51
|
+
|
|
52
|
+
### Create: POST with advertiser_id in JSON body
|
|
53
|
+
\`\`\`
|
|
54
|
+
POST /open_api/v1.3/campaign/create/
|
|
55
|
+
{ "advertiser_id": "123", "campaign_name": "...", ... }
|
|
56
|
+
\`\`\`
|
|
57
|
+
|
|
58
|
+
### Update: POST with entity ID + advertiser_id in JSON body
|
|
59
|
+
\`\`\`
|
|
60
|
+
POST /open_api/v1.3/campaign/update/
|
|
61
|
+
{ "advertiser_id": "123", "campaign_id": "456", "budget": 200 }
|
|
62
|
+
\`\`\`
|
|
63
|
+
|
|
64
|
+
### Status Update: Separate endpoint, POST with IDs array
|
|
65
|
+
\`\`\`
|
|
66
|
+
POST /open_api/v1.3/campaign/status/update/
|
|
67
|
+
{ "advertiser_id": "123", "campaign_ids": ["456", "789"], "operation_status": "DISABLE" }
|
|
68
|
+
\`\`\`
|
|
69
|
+
|
|
70
|
+
### Delete: Separate endpoint, POST with IDs array
|
|
71
|
+
\`\`\`
|
|
72
|
+
POST /open_api/v1.3/campaign/delete/
|
|
73
|
+
{ "advertiser_id": "123", "campaign_ids": ["456"] }
|
|
74
|
+
\`\`\`
|
|
75
|
+
|
|
76
|
+
### Response Shape
|
|
77
|
+
All TikTok API responses follow this structure:
|
|
78
|
+
\`\`\`json
|
|
79
|
+
{
|
|
80
|
+
"code": 0,
|
|
81
|
+
"message": "OK",
|
|
82
|
+
"data": { "list": [...], "page_info": { "page": 1, "page_size": 10, "total_number": 100, "total_page": 10 } }
|
|
83
|
+
}
|
|
84
|
+
\`\`\`
|
|
85
|
+
- \`code: 0\` = success
|
|
86
|
+
- \`code != 0\` = error (check \`message\` for details)
|
|
87
|
+
|
|
88
|
+
## Pagination
|
|
89
|
+
|
|
90
|
+
TikTok uses page-based pagination (NOT cursor-based):
|
|
91
|
+
- \`page\` — page number (1-based)
|
|
92
|
+
- \`page_size\` — items per page (max 1000 for some endpoints)
|
|
93
|
+
- Response: \`page_info.total_page\` shows total pages
|
|
94
|
+
|
|
95
|
+
## Available Tools Summary
|
|
96
|
+
|
|
97
|
+
| Tool | Purpose | Batch? |
|
|
98
|
+
|------|---------|--------|
|
|
99
|
+
| \`tiktok_list_entities\` | List entities with filters | |
|
|
100
|
+
| \`tiktok_get_entity\` | Get single entity | |
|
|
101
|
+
| \`tiktok_create_entity\` | Create single entity | |
|
|
102
|
+
| \`tiktok_update_entity\` | Update single entity | |
|
|
103
|
+
| \`tiktok_delete_entity\` | Delete entities | ✓ |
|
|
104
|
+
| \`tiktok_list_advertisers\` | List accessible advertisers | |
|
|
105
|
+
| \`tiktok_get_report\` | Async report with polling | |
|
|
106
|
+
| \`tiktok_get_report_breakdowns\` | Report with breakdown dimensions | |
|
|
107
|
+
| \`tiktok_bulk_update_status\` | Batch status update | ✓ |
|
|
108
|
+
| \`tiktok_bulk_create_entities\` | Batch entity creation | ✓ |
|
|
109
|
+
| \`tiktok_bulk_update_entities\` | Batch entity updates | ✓ |
|
|
110
|
+
| \`tiktok_adjust_bids\` | Batch bid adjustment | ✓ |
|
|
111
|
+
| \`tiktok_search_targeting\` | Search targeting options | |
|
|
112
|
+
| \`tiktok_get_targeting_options\` | Browse targeting categories | |
|
|
113
|
+
| \`tiktok_duplicate_entity\` | Duplicate campaign/adGroup/ad | |
|
|
114
|
+
| \`tiktok_get_audience_estimate\` | Audience size estimation | |
|
|
115
|
+
| \`tiktok_get_ad_preview\` | Ad preview data | |
|
|
116
|
+
| \`tiktok_validate_entity\` | Client-side payload validation | |
|
|
117
|
+
|
|
118
|
+
## Budget Notes
|
|
119
|
+
|
|
120
|
+
- Budget values are in the advertiser's account currency (no cents conversion)
|
|
121
|
+
- \`budget_mode\`: BUDGET_MODE_DAY (daily) or BUDGET_MODE_TOTAL (lifetime)
|
|
122
|
+
- Minimum budget varies by objective and market
|
|
123
|
+
|
|
124
|
+
## Campaign Objectives
|
|
125
|
+
|
|
126
|
+
| Objective | Use Case |
|
|
127
|
+
|-----------|----------|
|
|
128
|
+
| TRAFFIC | Drive website/app traffic |
|
|
129
|
+
| APP_PROMOTION | Drive app installs or re-engagement |
|
|
130
|
+
| WEB_CONVERSIONS | Optimize for website conversion events |
|
|
131
|
+
| ENGAGEMENT | Community and engagement-focused delivery |
|
|
132
|
+
| VIDEO_VIEWS | Maximize video plays |
|
|
133
|
+
| LEAD_GENERATION | In-app lead forms |
|
|
134
|
+
| PRODUCT_SALES | Dynamic product ads |
|
|
135
|
+
`;
|
|
136
|
+
}
|
|
137
|
+
export const entityHierarchyResource = {
|
|
138
|
+
uri: "entity-hierarchy://tiktok/all",
|
|
139
|
+
name: "TikTok Entity Hierarchy",
|
|
140
|
+
description: "Parent-child relationships between TikTok Ads entities, API patterns, and creation ordering",
|
|
141
|
+
mimeType: "text/markdown",
|
|
142
|
+
getContent: () => {
|
|
143
|
+
cachedContent ??= formatEntityHierarchyMarkdown();
|
|
144
|
+
return cachedContent;
|
|
145
|
+
},
|
|
146
|
+
};
|
|
147
|
+
//# sourceMappingURL=entity-hierarchy.resource.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entity-hierarchy.resource.js","sourceRoot":"","sources":["../../../../src/mcp-server/resources/definitions/entity-hierarchy.resource.ts"],"names":[],"mappings":"AAQA,IAAI,aAAiC,CAAC;AAEtC,SAAS,6BAA6B;IACpC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoIR,CAAC;AACF,CAAC;AAED,MAAM,CAAC,MAAM,uBAAuB,GAAa;IAC/C,GAAG,EAAE,+BAA+B;IACpC,IAAI,EAAE,yBAAyB;IAC/B,WAAW,EACT,6FAA6F;IAC/F,QAAQ,EAAE,eAAe;IACzB,UAAU,EAAE,GAAG,EAAE;QACf,aAAa,KAAK,6BAA6B,EAAE,CAAC;QAClD,OAAO,aAAa,CAAC;IACvB,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entity-schemas.resource.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/resources/definitions/entity-schemas.resource.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAqI5C,eAAO,MAAM,qBAAqB,EAAE,QAAQ,EAMzC,CAAC;AAEJ,eAAO,MAAM,uBAAuB,EAAE,QAMrC,CAAC"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import { getSupportedEntityTypes, } from "../../tools/utils/entity-mapping.js";
|
|
2
|
+
const ENTITY_SCHEMA_CONTENT = {
|
|
3
|
+
campaign: `# TikTok Campaign Fields
|
|
4
|
+
|
|
5
|
+
## Required Fields (create)
|
|
6
|
+
| Field | Type | Description |
|
|
7
|
+
|-------|------|-------------|
|
|
8
|
+
| campaign_name | string | Campaign display name (max 512 chars) |
|
|
9
|
+
| objective_type | string | Campaign objective such as TRAFFIC, APP_PROMOTION, WEB_CONVERSIONS, VIDEO_VIEWS, LEAD_GENERATION |
|
|
10
|
+
|
|
11
|
+
## Optional Fields
|
|
12
|
+
| Field | Type | Description |
|
|
13
|
+
|-------|------|-------------|
|
|
14
|
+
| operation_status | string | ENABLE or DISABLE |
|
|
15
|
+
| budget_mode | string | BUDGET_MODE_DAY (daily) or BUDGET_MODE_TOTAL (lifetime) |
|
|
16
|
+
| budget | number | Budget in account currency |
|
|
17
|
+
| roas_bid | number | Target ROAS (for ROAS optimization) |
|
|
18
|
+
| is_smart_performance_campaign | boolean | Enable smart performance campaign |
|
|
19
|
+
| app_promotion_type | string | App-promotion mode for APP_PROMOTION campaigns |
|
|
20
|
+
|
|
21
|
+
## Read-Only Fields
|
|
22
|
+
campaign_id, create_time, modify_time, advertiser_id
|
|
23
|
+
`,
|
|
24
|
+
adGroup: `# TikTok Ad Group Fields
|
|
25
|
+
|
|
26
|
+
## Required Fields (create)
|
|
27
|
+
| Field | Type | Description |
|
|
28
|
+
|-------|------|-------------|
|
|
29
|
+
| campaign_id | string | Parent campaign ID |
|
|
30
|
+
| adgroup_name | string | Ad group display name |
|
|
31
|
+
| placements | array | Placement enums such as PLACEMENT_TIKTOK |
|
|
32
|
+
| schedule_type | string | Schedule mode when required by TikTok |
|
|
33
|
+
| pacing | string | Pacing mode when required by TikTok |
|
|
34
|
+
|
|
35
|
+
## Optional Fields
|
|
36
|
+
| Field | Type | Description |
|
|
37
|
+
|-------|------|-------------|
|
|
38
|
+
| budget_mode | string | BUDGET_MODE_DAY or BUDGET_MODE_TOTAL |
|
|
39
|
+
| budget | number | Budget in account currency |
|
|
40
|
+
| schedule_start_time | string | Start time (YYYY-MM-DD HH:mm:ss) — required if schedule_type=SCHEDULE_START_END |
|
|
41
|
+
| schedule_end_time | string | End time (YYYY-MM-DD HH:mm:ss) |
|
|
42
|
+
| bid_price | number | Bid price in account currency |
|
|
43
|
+
| optimization_goal | string | Optimization goal such as CLICK or APP_INSTALL |
|
|
44
|
+
| billing_event | string | Billing event such as CPC, CPM, OCPM |
|
|
45
|
+
| age | array | Age ranges: AGE_13_17, AGE_18_24, AGE_25_34, AGE_35_44, AGE_45_54, AGE_55_100 |
|
|
46
|
+
| gender | array | GENDER_UNLIMITED, GENDER_MALE, GENDER_FEMALE |
|
|
47
|
+
| location_ids | array | Array of location IDs (country codes or region IDs) |
|
|
48
|
+
| interest_category_ids | array | Interest category IDs |
|
|
49
|
+
| languages | array | Language codes (e.g., ["en", "zh"]) |
|
|
50
|
+
| placements | array | Specific placement IDs |
|
|
51
|
+
| device_platforms | array | DESKTOP or MOBILE |
|
|
52
|
+
| operating_systems | array | IOS or ANDROID |
|
|
53
|
+
|
|
54
|
+
## Read-Only Fields
|
|
55
|
+
adgroup_id, campaign_id (inherited), create_time, modify_time
|
|
56
|
+
`,
|
|
57
|
+
ad: `# TikTok Ad Fields
|
|
58
|
+
|
|
59
|
+
## Required Fields (create)
|
|
60
|
+
| Field | Type | Description |
|
|
61
|
+
|-------|------|-------------|
|
|
62
|
+
| adgroup_id | string | Parent ad group ID |
|
|
63
|
+
| creatives | array | TikTok creatives array payload required by AdCreateBody |
|
|
64
|
+
|
|
65
|
+
## Common Creative Fields
|
|
66
|
+
| Field | Type | Description |
|
|
67
|
+
|-------|------|-------------|
|
|
68
|
+
| creatives[].ad_name | string | Ad display name |
|
|
69
|
+
| creatives[].video_id | string | Video ID from TikTok Creative Library |
|
|
70
|
+
| creatives[].image_ids | array | Array of image IDs (for image-based ads) |
|
|
71
|
+
|
|
72
|
+
## Optional Creative Fields
|
|
73
|
+
| Field | Type | Description |
|
|
74
|
+
|-------|------|-------------|
|
|
75
|
+
| ad_text | string | Ad copy text (max 100 chars) |
|
|
76
|
+
| app_name | string | App name shown in the ad |
|
|
77
|
+
| landing_page_url | string | Destination URL |
|
|
78
|
+
| display_name | string | Display brand name |
|
|
79
|
+
| profile_image_url | string | Brand profile image URL |
|
|
80
|
+
| call_to_action | string | CTA text: LEARN_MORE, SHOP_NOW, DOWNLOAD, SIGN_UP, etc. |
|
|
81
|
+
| patch_update | boolean | Optional partial-update behavior on update |
|
|
82
|
+
|
|
83
|
+
## Read-Only Fields
|
|
84
|
+
ad_id, adgroup_id (inherited), create_time, modify_time
|
|
85
|
+
`,
|
|
86
|
+
creative: `# TikTok Creative Fields
|
|
87
|
+
|
|
88
|
+
## Required Fields (create)
|
|
89
|
+
| Field | Type | Description |
|
|
90
|
+
|-------|------|-------------|
|
|
91
|
+
| display_name | string | Creative display name |
|
|
92
|
+
|
|
93
|
+
## Creative Asset Fields (provide at least one)
|
|
94
|
+
| Field | Type | Description |
|
|
95
|
+
|-------|------|-------------|
|
|
96
|
+
| video_id | string | Video asset ID from Creative Library |
|
|
97
|
+
| image_ids | array | Array of image asset IDs |
|
|
98
|
+
|
|
99
|
+
## Optional Fields
|
|
100
|
+
| Field | Type | Description |
|
|
101
|
+
|-------|------|-------------|
|
|
102
|
+
| ad_text | string | Ad copy text |
|
|
103
|
+
| call_to_action | string | CTA: LEARN_MORE, SHOP_NOW, DOWNLOAD, etc. |
|
|
104
|
+
| landing_page_url | string | Destination URL |
|
|
105
|
+
| profile_image_url | string | Brand profile image |
|
|
106
|
+
| app_name | string | App name for app install ads |
|
|
107
|
+
|
|
108
|
+
## Read-Only Fields
|
|
109
|
+
creative_id, advertiser_id, created_time
|
|
110
|
+
`,
|
|
111
|
+
};
|
|
112
|
+
function buildEntitySchemaMarkdown(entityType) {
|
|
113
|
+
return (ENTITY_SCHEMA_CONTENT[entityType] ??
|
|
114
|
+
`# TikTok ${entityType}\n\nNo schema information available.\n`);
|
|
115
|
+
}
|
|
116
|
+
function buildAllSchemasMarkdown() {
|
|
117
|
+
return getSupportedEntityTypes()
|
|
118
|
+
.map((t) => ENTITY_SCHEMA_CONTENT[t])
|
|
119
|
+
.join("\n\n---\n\n");
|
|
120
|
+
}
|
|
121
|
+
export const entitySchemaResources = getSupportedEntityTypes().map((entityType) => ({
|
|
122
|
+
uri: `entity-schema://tiktok/${entityType}`,
|
|
123
|
+
name: `TikTok ${entityType} Schema`,
|
|
124
|
+
description: `Field reference for TikTok ${entityType} entity including required fields, optional fields, and read-only fields`,
|
|
125
|
+
mimeType: "text/markdown",
|
|
126
|
+
getContent: () => buildEntitySchemaMarkdown(entityType),
|
|
127
|
+
}));
|
|
128
|
+
export const entitySchemaAllResource = {
|
|
129
|
+
uri: "entity-schema://tiktok/all",
|
|
130
|
+
name: "TikTok All Entity Schemas",
|
|
131
|
+
description: "Combined field reference for all TikTok Ads entity types",
|
|
132
|
+
mimeType: "text/markdown",
|
|
133
|
+
getContent: buildAllSchemasMarkdown,
|
|
134
|
+
};
|
|
135
|
+
//# sourceMappingURL=entity-schemas.resource.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entity-schemas.resource.js","sourceRoot":"","sources":["../../../../src/mcp-server/resources/definitions/entity-schemas.resource.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,uBAAuB,GAExB,MAAM,qCAAqC,CAAC;AAE7C,MAAM,qBAAqB,GAAqC;IAC9D,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;CAoBX;IAEC,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgCV;IAEC,EAAE,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BL;IAEC,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;CAwBX;CACA,CAAC;AAEF,SAAS,yBAAyB,CAAC,UAA4B;IAC7D,OAAO,CACL,qBAAqB,CAAC,UAAU,CAAC;QACjC,YAAY,UAAU,wCAAwC,CAC/D,CAAC;AACJ,CAAC;AAED,SAAS,uBAAuB;IAC9B,OAAO,uBAAuB,EAAE;SAC7B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;SACpC,IAAI,CAAC,aAAa,CAAC,CAAC;AACzB,CAAC;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAe,uBAAuB,EAAE,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAC9F,GAAG,EAAE,0BAA0B,UAAU,EAAE;IAC3C,IAAI,EAAE,UAAU,UAAU,SAAS;IACnC,WAAW,EAAE,8BAA8B,UAAU,0EAA0E;IAC/H,QAAQ,EAAE,eAAe;IACzB,UAAU,EAAE,GAAG,EAAE,CAAC,yBAAyB,CAAC,UAAU,CAAC;CACxD,CAAC,CAAC,CAAC;AAEJ,MAAM,CAAC,MAAM,uBAAuB,GAAa;IAC/C,GAAG,EAAE,4BAA4B;IACjC,IAAI,EAAE,2BAA2B;IACjC,WAAW,EAAE,0DAA0D;IACvE,QAAQ,EAAE,eAAe;IACzB,UAAU,EAAE,uBAAuB;CACpC,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { entityHierarchyResource } from "./entity-hierarchy.resource.js";
|
|
2
|
+
export { entitySchemaResources, entitySchemaAllResource } from "./entity-schemas.resource.js";
|
|
3
|
+
export { entityExampleResources, entityExampleAllResource } from "./entity-examples.resource.js";
|
|
4
|
+
export { reportingReferenceResource } from "./reporting-reference.resource.js";
|
|
5
|
+
export { targetingReferenceResource } from "./targeting-reference.resource.js";
|
|
6
|
+
import type { Resource } from "../types.js";
|
|
7
|
+
export declare const allResources: Resource[];
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/resources/definitions/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAC9F,OAAO,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACjG,OAAO,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAS/E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AA6D5C,eAAO,MAAM,YAAY,EAAE,QAAQ,EAUlC,CAAC"}
|