@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,126 @@
|
|
|
1
|
+
export const tiktokReportingWorkflowPrompt = {
|
|
2
|
+
name: "tiktok_reporting_workflow",
|
|
3
|
+
description: "Guide for submitting and retrieving TikTok Ads async reports with dimensions, metrics, and breakdowns",
|
|
4
|
+
arguments: [
|
|
5
|
+
{
|
|
6
|
+
name: "advertiserId",
|
|
7
|
+
description: "TikTok Advertiser ID",
|
|
8
|
+
required: true,
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
name: "reportLevel",
|
|
12
|
+
description: "Report level: AUCTION, RESERVATION (default: AUCTION)",
|
|
13
|
+
required: false,
|
|
14
|
+
},
|
|
15
|
+
],
|
|
16
|
+
};
|
|
17
|
+
export function getTiktokReportingWorkflowMessage(args) {
|
|
18
|
+
const advertiserId = args?.advertiserId || "{advertiserId}";
|
|
19
|
+
const reportLevel = args?.reportLevel || "AUCTION";
|
|
20
|
+
return `# TikTok Reporting Workflow
|
|
21
|
+
|
|
22
|
+
Advertiser: \`${advertiserId}\`
|
|
23
|
+
Report Level: \`${reportLevel}\`
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Overview
|
|
28
|
+
|
|
29
|
+
TikTok reports are **async** — \`tiktok_get_report\` submits the job, polls for completion, and returns the results when ready.
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## Step 1: Basic Campaign Report
|
|
34
|
+
|
|
35
|
+
\`\`\`json
|
|
36
|
+
tiktok_get_report({
|
|
37
|
+
"advertiserId": "${advertiserId}",
|
|
38
|
+
"dimensions": ["campaign_id", "stat_time_day"],
|
|
39
|
+
"metrics": ["impressions", "clicks", "spend", "ctr", "cpc", "conversions", "cost_per_conversion"],
|
|
40
|
+
"startDate": "2026-02-01",
|
|
41
|
+
"endDate": "2026-03-07"
|
|
42
|
+
})
|
|
43
|
+
\`\`\`
|
|
44
|
+
|
|
45
|
+
## Step 2: Ad Group Level Report
|
|
46
|
+
|
|
47
|
+
\`\`\`json
|
|
48
|
+
tiktok_get_report({
|
|
49
|
+
"advertiserId": "${advertiserId}",
|
|
50
|
+
"dimensions": ["adgroup_id", "stat_time_day"],
|
|
51
|
+
"metrics": ["impressions", "clicks", "spend", "video_play_actions", "video_watched_2s", "video_watched_6s"],
|
|
52
|
+
"startDate": "2026-02-01",
|
|
53
|
+
"endDate": "2026-03-07"
|
|
54
|
+
})
|
|
55
|
+
\`\`\`
|
|
56
|
+
|
|
57
|
+
## Step 3: Breakdown Report
|
|
58
|
+
|
|
59
|
+
Add demographic and contextual breakdowns to your report:
|
|
60
|
+
|
|
61
|
+
\`\`\`json
|
|
62
|
+
tiktok_get_report_breakdowns({
|
|
63
|
+
"advertiserId": "${advertiserId}",
|
|
64
|
+
"dimensions": ["campaign_id"],
|
|
65
|
+
"breakdowns": ["gender", "age"],
|
|
66
|
+
"metrics": ["impressions", "clicks", "spend", "conversions"],
|
|
67
|
+
"startDate": "2026-02-01",
|
|
68
|
+
"endDate": "2026-03-07"
|
|
69
|
+
})
|
|
70
|
+
\`\`\`
|
|
71
|
+
|
|
72
|
+
## Step 4: Video Engagement Report
|
|
73
|
+
|
|
74
|
+
\`\`\`json
|
|
75
|
+
tiktok_get_report({
|
|
76
|
+
"advertiserId": "${advertiserId}",
|
|
77
|
+
"dimensions": ["ad_id"],
|
|
78
|
+
"metrics": [
|
|
79
|
+
"impressions", "video_play_actions", "video_watched_2s",
|
|
80
|
+
"video_watched_6s", "video_views_p25", "video_views_p50",
|
|
81
|
+
"video_views_p75", "video_views_p100"
|
|
82
|
+
],
|
|
83
|
+
"startDate": "2026-02-01",
|
|
84
|
+
"endDate": "2026-03-07"
|
|
85
|
+
})
|
|
86
|
+
\`\`\`
|
|
87
|
+
|
|
88
|
+
## Resource References
|
|
89
|
+
|
|
90
|
+
- Fetch \`reporting-reference://tiktok\` for full metrics and dimensions list
|
|
91
|
+
- Fetch \`entity-hierarchy://tiktok/all\` for entity relationships
|
|
92
|
+
|
|
93
|
+
## Common Dimensions
|
|
94
|
+
|
|
95
|
+
| Dimension | Level |
|
|
96
|
+
|-----------|-------|
|
|
97
|
+
| \`campaign_id\` | Campaign |
|
|
98
|
+
| \`adgroup_id\` | Ad Group |
|
|
99
|
+
| \`ad_id\` | Ad |
|
|
100
|
+
| \`stat_time_day\` | Daily breakdown |
|
|
101
|
+
| \`stat_time_hour\` | Hourly breakdown |
|
|
102
|
+
|
|
103
|
+
## Common Metrics
|
|
104
|
+
|
|
105
|
+
| Metric | Description |
|
|
106
|
+
|--------|-------------|
|
|
107
|
+
| \`impressions\` | Total impressions |
|
|
108
|
+
| \`clicks\` | Total clicks |
|
|
109
|
+
| \`spend\` | Total spend (account currency) |
|
|
110
|
+
| \`ctr\` | Click-through rate |
|
|
111
|
+
| \`cpc\` | Cost per click |
|
|
112
|
+
| \`conversions\` | Total conversions |
|
|
113
|
+
| \`cost_per_conversion\` | CPA |
|
|
114
|
+
| \`video_play_actions\` | Video starts |
|
|
115
|
+
| \`video_watched_2s\` | 2-second video views |
|
|
116
|
+
| \`video_watched_6s\` | 6-second video views |
|
|
117
|
+
|
|
118
|
+
## Tips
|
|
119
|
+
|
|
120
|
+
- Reports may take **30 seconds to several minutes** depending on date range and data volume
|
|
121
|
+
- Data has a **24-48 hour lag** for finalized metrics
|
|
122
|
+
- Max date range per report is **180 days**
|
|
123
|
+
- Budget and spend values are in **account currency** (not cents, not micros)
|
|
124
|
+
`;
|
|
125
|
+
}
|
|
126
|
+
//# sourceMappingURL=reporting-workflow.prompt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reporting-workflow.prompt.js","sourceRoot":"","sources":["../../../../src/mcp-server/prompts/definitions/reporting-workflow.prompt.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,MAAM,6BAA6B,GAAW;IACnD,IAAI,EAAE,2BAA2B;IACjC,WAAW,EACT,uGAAuG;IACzG,SAAS,EAAE;QACT;YACE,IAAI,EAAE,cAAc;YACpB,WAAW,EAAE,sBAAsB;YACnC,QAAQ,EAAE,IAAI;SACf;QACD;YACE,IAAI,EAAE,aAAa;YACnB,WAAW,EAAE,uDAAuD;YACpE,QAAQ,EAAE,KAAK;SAChB;KACF;CACF,CAAC;AAEF,MAAM,UAAU,iCAAiC,CAAC,IAA6B;IAC7E,MAAM,YAAY,GAAG,IAAI,EAAE,YAAY,IAAI,gBAAgB,CAAC;IAC5D,MAAM,WAAW,GAAG,IAAI,EAAE,WAAW,IAAI,SAAS,CAAC;IAEnD,OAAO;;gBAEO,YAAY;kBACV,WAAW;;;;;;;;;;;;;;qBAcR,YAAY;;;;;;;;;;;;qBAYZ,YAAY;;;;;;;;;;;;;;qBAcZ,YAAY;;;;;;;;;;;;;qBAaZ,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgDhC,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { Prompt } from "@modelcontextprotocol/sdk/types.js";
|
|
2
|
+
export declare const tiktokTargetingDiscoveryWorkflowPrompt: Prompt;
|
|
3
|
+
export declare function getTiktokTargetingDiscoveryWorkflowMessage(args?: Record<string, string>): string;
|
|
4
|
+
//# sourceMappingURL=targeting-discovery-workflow.prompt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"targeting-discovery-workflow.prompt.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/prompts/definitions/targeting-discovery-workflow.prompt.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAQjE,eAAO,MAAM,sCAAsC,EAAE,MAiBpD,CAAC;AAEF,wBAAgB,0CAA0C,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAuLhG"}
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
export const tiktokTargetingDiscoveryWorkflowPrompt = {
|
|
2
|
+
name: "tiktok_targeting_discovery_workflow",
|
|
3
|
+
description: "Step-by-step guide for researching TikTok audiences: search geo and ISP targeting tags, browse official targeting metadata, build targeting configs, and estimate audience size before ad group creation.",
|
|
4
|
+
arguments: [
|
|
5
|
+
{
|
|
6
|
+
name: "advertiserId",
|
|
7
|
+
description: "TikTok Advertiser ID",
|
|
8
|
+
required: true,
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
name: "goal",
|
|
12
|
+
description: "Research goal: 'search' (find by keyword), 'browse' (explore options), or 'build' (assemble targeting). Default: search",
|
|
13
|
+
required: false,
|
|
14
|
+
},
|
|
15
|
+
],
|
|
16
|
+
};
|
|
17
|
+
export function getTiktokTargetingDiscoveryWorkflowMessage(args) {
|
|
18
|
+
const advertiserId = args?.advertiserId || "{advertiserId}";
|
|
19
|
+
const goal = args?.goal || "search";
|
|
20
|
+
return `# TikTok Targeting Discovery Workflow
|
|
21
|
+
|
|
22
|
+
Advertiser: \`${advertiserId}\`
|
|
23
|
+
Goal: \`${goal}\`
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Overview
|
|
28
|
+
|
|
29
|
+
Before creating ad groups, you need to build a **targeting configuration** — the fields that define your TikTok audience. This workflow helps you discover and validate targeting options.
|
|
30
|
+
|
|
31
|
+
| Tool | Purpose | Use When |
|
|
32
|
+
|------|---------|----------|
|
|
33
|
+
| \`tiktok_search_targeting\` | Search by keyword | You know the audience you want |
|
|
34
|
+
| \`tiktok_get_targeting_options\` | Browse available targeting | You want to explore what's available |
|
|
35
|
+
| \`tiktok_get_audience_estimate\` | Estimate audience size | Before committing to targeting |
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## Step 1: Search Targeting Options
|
|
40
|
+
|
|
41
|
+
Search for geo targeting tags by keyword:
|
|
42
|
+
|
|
43
|
+
\`\`\`json
|
|
44
|
+
{
|
|
45
|
+
"tool": "tiktok_search_targeting",
|
|
46
|
+
"params": {
|
|
47
|
+
"advertiserId": "${advertiserId}",
|
|
48
|
+
"query": "stockholm",
|
|
49
|
+
"scene": "GEO",
|
|
50
|
+
"placements": ["PLACEMENT_TIKTOK"],
|
|
51
|
+
"objectiveType": "TRAFFIC"
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
\`\`\`
|
|
55
|
+
|
|
56
|
+
Each result includes:
|
|
57
|
+
- \`id\` — The targeting ID to use in your ad group
|
|
58
|
+
- \`name\` — Human-readable label
|
|
59
|
+
|
|
60
|
+
### Key Targeting Types
|
|
61
|
+
|
|
62
|
+
| Targeting Type | What It Searches | Example |
|
|
63
|
+
|----------------|-----------------|---------|
|
|
64
|
+
| \`GEO\` | Geo tags such as regions, postal codes, cities | "stockholm", "new york" |
|
|
65
|
+
| \`ISP\` | Internet service provider targeting tags | "telia", "verizon" |
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## Step 2: Browse Targeting Categories
|
|
70
|
+
|
|
71
|
+
To explore all available targeting options for your account:
|
|
72
|
+
|
|
73
|
+
\`\`\`json
|
|
74
|
+
{
|
|
75
|
+
"tool": "tiktok_get_targeting_options",
|
|
76
|
+
"params": {
|
|
77
|
+
"advertiserId": "${advertiserId}",
|
|
78
|
+
"optionType": "LANGUAGE"
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
\`\`\`
|
|
82
|
+
|
|
83
|
+
Filter by type:
|
|
84
|
+
|
|
85
|
+
\`\`\`json
|
|
86
|
+
{
|
|
87
|
+
"tool": "tiktok_get_targeting_options",
|
|
88
|
+
"params": {
|
|
89
|
+
"advertiserId": "${advertiserId}",
|
|
90
|
+
"optionType": "LOCATION",
|
|
91
|
+
"placements": ["PLACEMENT_TIKTOK"],
|
|
92
|
+
"objectiveType": "TRAFFIC"
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
\`\`\`
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## Step 3: Build Ad Group Targeting
|
|
100
|
+
|
|
101
|
+
Combine your research into an ad group payload:
|
|
102
|
+
|
|
103
|
+
\`\`\`json
|
|
104
|
+
{
|
|
105
|
+
"age": ["AGE_18_24", "AGE_25_34", "AGE_35_44"],
|
|
106
|
+
"gender": ["GENDER_UNLIMITED"],
|
|
107
|
+
"location_ids": ["US", "GB"],
|
|
108
|
+
"interest_keyword_ids": ["123456", "789012"],
|
|
109
|
+
"operating_systems": ["IOS", "ANDROID"],
|
|
110
|
+
"placements": ["PLACEMENT_TIKTOK"],
|
|
111
|
+
"bid_price": 0.5,
|
|
112
|
+
"optimization_goal": "CLICK"
|
|
113
|
+
}
|
|
114
|
+
\`\`\`
|
|
115
|
+
|
|
116
|
+
### Key Targeting Fields
|
|
117
|
+
|
|
118
|
+
| Field | Type | Description |
|
|
119
|
+
|-------|------|-------------|
|
|
120
|
+
| \`age\` | Array | Age groups: AGE_13_17 through AGE_55_PLUS |
|
|
121
|
+
| \`gender\` | Array | GENDER_MALE, GENDER_FEMALE, GENDER_UNLIMITED |
|
|
122
|
+
| \`location_ids\` | Array | Country codes or location IDs |
|
|
123
|
+
| \`interest_keyword_ids\` | Array | Interest keyword IDs from search |
|
|
124
|
+
| \`operating_systems\` | Array | IOS, ANDROID |
|
|
125
|
+
| \`placements\` | Array | Placement enums such as PLACEMENT_TIKTOK |
|
|
126
|
+
| \`bid_price\` | Number | Bid in account currency |
|
|
127
|
+
|
|
128
|
+
⚠️ **GOTCHA**: Age group values are enum strings — use exact values like \`AGE_18_24\`, not ranges like \`18-24\`.
|
|
129
|
+
|
|
130
|
+
⚠️ **GOTCHA**: Location IDs can be country codes (e.g., "US") or numeric IDs for cities/regions — use \`tiktok_search_targeting\` to find valid values.
|
|
131
|
+
|
|
132
|
+
---
|
|
133
|
+
|
|
134
|
+
## Step 4: Estimate Audience Size
|
|
135
|
+
|
|
136
|
+
Before creating the ad group, verify your targeting reaches a viable audience:
|
|
137
|
+
|
|
138
|
+
\`\`\`json
|
|
139
|
+
{
|
|
140
|
+
"tool": "tiktok_get_audience_estimate",
|
|
141
|
+
"params": {
|
|
142
|
+
"advertiserId": "${advertiserId}",
|
|
143
|
+
"targetingConfig": {
|
|
144
|
+
"age": ["AGE_18_24", "AGE_25_34"],
|
|
145
|
+
"gender": ["GENDER_UNLIMITED"],
|
|
146
|
+
"location_ids": ["US"],
|
|
147
|
+
"interest_keyword_ids": ["123456"]
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
\`\`\`
|
|
152
|
+
|
|
153
|
+
Interpret results:
|
|
154
|
+
- **Too narrow** (< 50K reach) → Broaden age groups or add more interests
|
|
155
|
+
- **Too broad** (> 100M reach) → Add more specific interests or narrow demographics
|
|
156
|
+
- **Sweet spot**: 1M–50M for most TikTok campaigns
|
|
157
|
+
|
|
158
|
+
---
|
|
159
|
+
|
|
160
|
+
## Step 5: Apply to Ad Group
|
|
161
|
+
|
|
162
|
+
Use the targeting when creating or updating an ad group:
|
|
163
|
+
|
|
164
|
+
\`\`\`json
|
|
165
|
+
{
|
|
166
|
+
"tool": "tiktok_create_entity",
|
|
167
|
+
"params": {
|
|
168
|
+
"entityType": "adGroup",
|
|
169
|
+
"advertiserId": "${advertiserId}",
|
|
170
|
+
"data": {
|
|
171
|
+
"campaign_id": "{campaignId}",
|
|
172
|
+
"adgroup_name": "US Fitness Enthusiasts 18-34",
|
|
173
|
+
"placements": ["PLACEMENT_TIKTOK"],
|
|
174
|
+
"budget_mode": "BUDGET_MODE_DAY",
|
|
175
|
+
"budget": 50,
|
|
176
|
+
"schedule_type": "SCHEDULE_START_END",
|
|
177
|
+
"schedule_start_time": "2026-03-10 00:00:00",
|
|
178
|
+
"schedule_end_time": "2026-12-31 23:59:59",
|
|
179
|
+
"optimization_goal": "CLICK",
|
|
180
|
+
"bid_price": 0.5,
|
|
181
|
+
"age": ["AGE_18_24", "AGE_25_34"],
|
|
182
|
+
"gender": ["GENDER_UNLIMITED"],
|
|
183
|
+
"location_ids": ["US"],
|
|
184
|
+
"interest_keyword_ids": ["123456"]
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
\`\`\`
|
|
189
|
+
|
|
190
|
+
⚠️ **GOTCHA**: Budget values are in **account currency** — \`budget: 50\` means $50.00.
|
|
191
|
+
|
|
192
|
+
---
|
|
193
|
+
|
|
194
|
+
## Related Resources
|
|
195
|
+
- \`reporting-reference://tiktok\` — Reporting metrics and dimensions
|
|
196
|
+
- \`entity-schema://tiktok/adGroup\` — Ad Group fields including all targeting parameters
|
|
197
|
+
- \`entity-examples://tiktok/adGroup\` — Example ad group payloads with targeting
|
|
198
|
+
`;
|
|
199
|
+
}
|
|
200
|
+
//# sourceMappingURL=targeting-discovery-workflow.prompt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"targeting-discovery-workflow.prompt.js","sourceRoot":"","sources":["../../../../src/mcp-server/prompts/definitions/targeting-discovery-workflow.prompt.ts"],"names":[],"mappings":"AAWA,MAAM,CAAC,MAAM,sCAAsC,GAAW;IAC5D,IAAI,EAAE,qCAAqC;IAC3C,WAAW,EACT,2MAA2M;IAC7M,SAAS,EAAE;QACT;YACE,IAAI,EAAE,cAAc;YACpB,WAAW,EAAE,sBAAsB;YACnC,QAAQ,EAAE,IAAI;SACf;QACD;YACE,IAAI,EAAE,MAAM;YACZ,WAAW,EACT,yHAAyH;YAC3H,QAAQ,EAAE,KAAK;SAChB;KACF;CACF,CAAC;AAEF,MAAM,UAAU,0CAA0C,CAAC,IAA6B;IACtF,MAAM,YAAY,GAAG,IAAI,EAAE,YAAY,IAAI,gBAAgB,CAAC;IAC5D,MAAM,IAAI,GAAG,IAAI,EAAE,IAAI,IAAI,QAAQ,CAAC;IAEpC,OAAO;;gBAEO,YAAY;UAClB,IAAI;;;;;;;;;;;;;;;;;;;;;;;;uBAwBS,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBA8BZ,YAAY;;;;;;;;;;;;uBAYZ,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBAqDZ,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;uBA2BZ,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6BlC,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { Prompt } from "@modelcontextprotocol/sdk/types.js";
|
|
2
|
+
export declare const tiktokToolSchemaExplorationPrompt: Prompt;
|
|
3
|
+
export declare function getTiktokToolSchemaExplorationMessage(args?: Record<string, string>): string;
|
|
4
|
+
//# sourceMappingURL=tool-schema-exploration.prompt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-schema-exploration.prompt.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/prompts/definitions/tool-schema-exploration.prompt.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAEjE,eAAO,MAAM,iCAAiC,EAAE,MAW/C,CAAC;AAEF,wBAAgB,qCAAqC,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAiF3F"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
export const tiktokToolSchemaExplorationPrompt = {
|
|
2
|
+
name: "tiktok_tool_schema_exploration",
|
|
3
|
+
description: "Guide for discovering and understanding TikTok MCP tools, resources, and schemas",
|
|
4
|
+
arguments: [
|
|
5
|
+
{
|
|
6
|
+
name: "objective",
|
|
7
|
+
description: "Exploration objective (e.g., campaign management, reporting, targeting, bulk operations)",
|
|
8
|
+
required: false,
|
|
9
|
+
},
|
|
10
|
+
],
|
|
11
|
+
};
|
|
12
|
+
export function getTiktokToolSchemaExplorationMessage(args) {
|
|
13
|
+
const objective = args?.objective || "general capability discovery";
|
|
14
|
+
return `# TikTok MCP Tool & Schema Exploration Guide
|
|
15
|
+
|
|
16
|
+
## Context
|
|
17
|
+
- Server: tiktok-mcp (TikTok Ads Campaign Management)
|
|
18
|
+
- Objective: ${objective}
|
|
19
|
+
|
|
20
|
+
Use this workflow to discover TikTok MCP capabilities while minimizing token usage.
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## Available MCP Resources
|
|
25
|
+
|
|
26
|
+
Fetch these resources for detailed schema information:
|
|
27
|
+
|
|
28
|
+
| Resource URI | Content |
|
|
29
|
+
|-------------|---------|
|
|
30
|
+
| \`entity-hierarchy://tiktok/all\` | Entity relationships, API patterns, creation order |
|
|
31
|
+
| \`entity-schema://tiktok/campaign\` | Campaign fields |
|
|
32
|
+
| \`entity-schema://tiktok/adGroup\` | Ad Group fields + targeting |
|
|
33
|
+
| \`entity-schema://tiktok/ad\` | Ad fields |
|
|
34
|
+
| \`entity-schema://tiktok/creative\` | Creative fields |
|
|
35
|
+
| \`entity-examples://tiktok/all\` | All entity examples |
|
|
36
|
+
| \`entity-examples://tiktok/{type}\` | Examples for specific type |
|
|
37
|
+
| \`reporting-reference://tiktok\` | Metrics, dimensions, and breakdown options |
|
|
38
|
+
|
|
39
|
+
## Tool Categories
|
|
40
|
+
|
|
41
|
+
### Read Operations
|
|
42
|
+
- \`tiktok_list_advertisers\` — List accessible advertiser accounts
|
|
43
|
+
- \`tiktok_list_entities\` — List entities with page pagination
|
|
44
|
+
- \`tiktok_get_entity\` — Get single entity by ID
|
|
45
|
+
|
|
46
|
+
### Write Operations
|
|
47
|
+
- \`tiktok_create_entity\` — Create entity
|
|
48
|
+
- \`tiktok_update_entity\` — Update entity fields
|
|
49
|
+
- \`tiktok_delete_entity\` — Delete entities
|
|
50
|
+
|
|
51
|
+
### Reporting (Async)
|
|
52
|
+
- \`tiktok_get_report\` — Submit async report and download results
|
|
53
|
+
- \`tiktok_get_report_breakdowns\` — Report with breakdown dimensions
|
|
54
|
+
|
|
55
|
+
### Bulk Operations
|
|
56
|
+
- \`tiktok_bulk_update_status\` — Batch enable/disable/delete entities
|
|
57
|
+
- \`tiktok_bulk_create_entities\` — Batch creation (up to 50)
|
|
58
|
+
- \`tiktok_bulk_update_entities\` — Batch updates (up to 50)
|
|
59
|
+
- \`tiktok_adjust_bids\` — Batch adjust ad group bid prices
|
|
60
|
+
|
|
61
|
+
### Targeting
|
|
62
|
+
- \`tiktok_search_targeting\` — Search interest categories, behaviors, demographics
|
|
63
|
+
- \`tiktok_get_targeting_options\` — Browse targeting categories
|
|
64
|
+
|
|
65
|
+
### Specialized
|
|
66
|
+
- \`tiktok_duplicate_entity\` — Copy campaigns, ad groups, ads
|
|
67
|
+
- \`tiktok_get_audience_estimate\` — Audience size estimation
|
|
68
|
+
- \`tiktok_get_ad_preview\` — Ad preview for video/image ads
|
|
69
|
+
|
|
70
|
+
### Validation
|
|
71
|
+
- \`tiktok_validate_entity\` — Client-side entity validation
|
|
72
|
+
|
|
73
|
+
## Workflow Prompts
|
|
74
|
+
|
|
75
|
+
| Task | Prompt |
|
|
76
|
+
|------|--------|
|
|
77
|
+
| Create a full campaign structure | \`tiktok_campaign_setup_workflow\` |
|
|
78
|
+
| Research audiences & build targeting | \`tiktok_targeting_discovery_workflow\` |
|
|
79
|
+
| Update entities safely | \`tiktok_entity_update_workflow\` |
|
|
80
|
+
| Duplicate campaigns/ad groups/ads | \`tiktok_entity_duplication_workflow\` |
|
|
81
|
+
| Bulk create/update/status/bids | \`tiktok_bulk_operations_workflow\` |
|
|
82
|
+
| Async reporting & breakdowns | \`tiktok_reporting_workflow\` |
|
|
83
|
+
| Troubleshoot entity issues | \`tiktok_troubleshoot_entity\` |
|
|
84
|
+
|
|
85
|
+
## Recommended Exploration Order
|
|
86
|
+
|
|
87
|
+
1. Start with \`tiktok_list_advertisers\` to find your account
|
|
88
|
+
2. Fetch \`entity-hierarchy://tiktok/all\` for API patterns
|
|
89
|
+
3. Fetch \`entity-schema://tiktok/{type}\` for field details
|
|
90
|
+
4. Fetch \`entity-examples://tiktok/{type}\` for payload templates
|
|
91
|
+
`;
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=tool-schema-exploration.prompt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-schema-exploration.prompt.js","sourceRoot":"","sources":["../../../../src/mcp-server/prompts/definitions/tool-schema-exploration.prompt.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,MAAM,iCAAiC,GAAW;IACvD,IAAI,EAAE,gCAAgC;IACtC,WAAW,EAAE,kFAAkF;IAC/F,SAAS,EAAE;QACT;YACE,IAAI,EAAE,WAAW;YACjB,WAAW,EACT,0FAA0F;YAC5F,QAAQ,EAAE,KAAK;SAChB;KACF;CACF,CAAC;AAEF,MAAM,UAAU,qCAAqC,CAAC,IAA6B;IACjF,MAAM,SAAS,GAAG,IAAI,EAAE,SAAS,IAAI,8BAA8B,CAAC;IAEpE,OAAO;;;;eAIM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyEvB,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { Prompt } from "@modelcontextprotocol/sdk/types.js";
|
|
2
|
+
export declare const tiktokTroubleshootEntityPrompt: Prompt;
|
|
3
|
+
export declare function getTiktokTroubleshootEntityMessage(args?: Record<string, string>): string;
|
|
4
|
+
//# sourceMappingURL=troubleshoot-entity.prompt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"troubleshoot-entity.prompt.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/prompts/definitions/troubleshoot-entity.prompt.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAEjE,eAAO,MAAM,8BAA8B,EAAE,MAoB5C,CAAC;AAEF,wBAAgB,kCAAkC,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAyFxF"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
export const tiktokTroubleshootEntityPrompt = {
|
|
2
|
+
name: "tiktok_troubleshoot_entity",
|
|
3
|
+
description: "Diagnostic workflow for troubleshooting TikTok Ads entity issues",
|
|
4
|
+
arguments: [
|
|
5
|
+
{
|
|
6
|
+
name: "entityType",
|
|
7
|
+
description: "Entity type (campaign, adGroup, ad, creative)",
|
|
8
|
+
required: true,
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
name: "entityId",
|
|
12
|
+
description: "Numeric entity ID to troubleshoot",
|
|
13
|
+
required: true,
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
name: "advertiserId",
|
|
17
|
+
description: "TikTok Advertiser ID",
|
|
18
|
+
required: true,
|
|
19
|
+
},
|
|
20
|
+
],
|
|
21
|
+
};
|
|
22
|
+
export function getTiktokTroubleshootEntityMessage(args) {
|
|
23
|
+
const entityType = args?.entityType || "{entityType}";
|
|
24
|
+
const entityId = args?.entityId || "{entityId}";
|
|
25
|
+
const advertiserId = args?.advertiserId || "{advertiserId}";
|
|
26
|
+
return `# TikTok Entity Troubleshoot Workflow
|
|
27
|
+
|
|
28
|
+
## Target: ${entityType} ${entityId} (Advertiser: ${advertiserId})
|
|
29
|
+
|
|
30
|
+
## Step 1: Fetch Entity Details
|
|
31
|
+
|
|
32
|
+
\`\`\`json
|
|
33
|
+
tiktok_get_entity({
|
|
34
|
+
"entityType": "${entityType}",
|
|
35
|
+
"advertiserId": "${advertiserId}",
|
|
36
|
+
"entityId": "${entityId}"
|
|
37
|
+
})
|
|
38
|
+
\`\`\`
|
|
39
|
+
|
|
40
|
+
Check: operation_status, primary_status, secondary_status, and any rejection reasons.
|
|
41
|
+
|
|
42
|
+
## Step 2: Check Recent Performance
|
|
43
|
+
|
|
44
|
+
\`\`\`json
|
|
45
|
+
tiktok_get_report({
|
|
46
|
+
"advertiserId": "${advertiserId}",
|
|
47
|
+
"dimensions": ["campaign_id", "stat_time_day"],
|
|
48
|
+
"metrics": ["impressions", "clicks", "spend", "conversions"],
|
|
49
|
+
"startDate": "2026-02-01",
|
|
50
|
+
"endDate": "2026-03-07"
|
|
51
|
+
})
|
|
52
|
+
\`\`\`
|
|
53
|
+
|
|
54
|
+
## Step 3: Check Parent Entity
|
|
55
|
+
|
|
56
|
+
If ad group or ad, check parent entity status:
|
|
57
|
+
\`\`\`json
|
|
58
|
+
tiktok_get_entity({
|
|
59
|
+
"entityType": "campaign",
|
|
60
|
+
"advertiserId": "${advertiserId}",
|
|
61
|
+
"entityId": "{parentCampaignId}"
|
|
62
|
+
})
|
|
63
|
+
\`\`\`
|
|
64
|
+
|
|
65
|
+
## Common Issues
|
|
66
|
+
|
|
67
|
+
| Symptom | Likely Cause | Fix |
|
|
68
|
+
|---------|-------------|-----|
|
|
69
|
+
| No delivery | Entity DISABLED | Use \`tiktok_bulk_update_status\` with operationStatus: "ENABLE" |
|
|
70
|
+
| No delivery, ENABLE | Parent disabled | Enable parent campaign or ad group |
|
|
71
|
+
| No delivery, all ENABLE | Budget exhausted | Increase budget |
|
|
72
|
+
| No delivery, budget OK | Targeting too narrow | Check audience estimate |
|
|
73
|
+
| Ad under review | TikTok ad review in progress | Allow 24-48h for review |
|
|
74
|
+
| Ad rejected | Policy violation | Review TikTok creative guidelines |
|
|
75
|
+
| Video not playing | Video upload incomplete | Check video status in Creative Library |
|
|
76
|
+
| Low reach | Targeting too narrow | Broaden age, interests, or geos |
|
|
77
|
+
|
|
78
|
+
## Step 4: Audience Estimate
|
|
79
|
+
|
|
80
|
+
\`\`\`json
|
|
81
|
+
tiktok_get_audience_estimate({
|
|
82
|
+
"advertiserId": "${advertiserId}",
|
|
83
|
+
"targetingConfig": { ... targeting from adGroup ... }
|
|
84
|
+
})
|
|
85
|
+
\`\`\`
|
|
86
|
+
|
|
87
|
+
## Step 5: Validate Entity Payload
|
|
88
|
+
|
|
89
|
+
\`\`\`json
|
|
90
|
+
tiktok_validate_entity({
|
|
91
|
+
"entityType": "${entityType}",
|
|
92
|
+
"mode": "update",
|
|
93
|
+
"data": { ... current entity data ... }
|
|
94
|
+
})
|
|
95
|
+
\`\`\`
|
|
96
|
+
|
|
97
|
+
## Status Update Tool
|
|
98
|
+
|
|
99
|
+
TikTok uses a separate status endpoint — do NOT use \`tiktok_update_entity\` for status changes:
|
|
100
|
+
|
|
101
|
+
\`\`\`json
|
|
102
|
+
tiktok_bulk_update_status({
|
|
103
|
+
"entityType": "${entityType}",
|
|
104
|
+
"advertiserId": "${advertiserId}",
|
|
105
|
+
"entityIds": ["${entityId}"],
|
|
106
|
+
"operationStatus": "ENABLE"
|
|
107
|
+
})
|
|
108
|
+
\`\`\`
|
|
109
|
+
`;
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=troubleshoot-entity.prompt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"troubleshoot-entity.prompt.js","sourceRoot":"","sources":["../../../../src/mcp-server/prompts/definitions/troubleshoot-entity.prompt.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,MAAM,8BAA8B,GAAW;IACpD,IAAI,EAAE,4BAA4B;IAClC,WAAW,EAAE,kEAAkE;IAC/E,SAAS,EAAE;QACT;YACE,IAAI,EAAE,YAAY;YAClB,WAAW,EAAE,+CAA+C;YAC5D,QAAQ,EAAE,IAAI;SACf;QACD;YACE,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,mCAAmC;YAChD,QAAQ,EAAE,IAAI;SACf;QACD;YACE,IAAI,EAAE,cAAc;YACpB,WAAW,EAAE,sBAAsB;YACnC,QAAQ,EAAE,IAAI;SACf;KACF;CACF,CAAC;AAEF,MAAM,UAAU,kCAAkC,CAAC,IAA6B;IAC9E,MAAM,UAAU,GAAG,IAAI,EAAE,UAAU,IAAI,cAAc,CAAC;IACtD,MAAM,QAAQ,GAAG,IAAI,EAAE,QAAQ,IAAI,YAAY,CAAC;IAChD,MAAM,YAAY,GAAG,IAAI,EAAE,YAAY,IAAI,gBAAgB,CAAC;IAE5D,OAAO;;aAEI,UAAU,IAAI,QAAQ,iBAAiB,YAAY;;;;;;mBAM7C,UAAU;qBACR,YAAY;iBAChB,QAAQ;;;;;;;;;;qBAUJ,YAAY;;;;;;;;;;;;;;qBAcZ,YAAY;;;;;;;;;;;;;;;;;;;;;;qBAsBZ,YAAY;;;;;;;;;mBASd,UAAU;;;;;;;;;;;;mBAYV,UAAU;qBACR,YAAY;mBACd,QAAQ;;;;CAI1B,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Prompt } from "@modelcontextprotocol/sdk/types.js";
|
|
2
|
+
export interface PromptDefinition {
|
|
3
|
+
prompt: Prompt;
|
|
4
|
+
generateMessage: (args?: Record<string, string>) => string;
|
|
5
|
+
}
|
|
6
|
+
export declare const promptRegistry: Map<string, PromptDefinition>;
|
|
7
|
+
export declare function getAllPrompts(): Prompt[];
|
|
8
|
+
export declare function getPromptDefinition(name: string): PromptDefinition | undefined;
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/mcp-server/prompts/index.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AA8CjE,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,MAAM,CAAC;CAC5D;AAED,eAAO,MAAM,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CA8EvD,CAAC;AAEH,wBAAgB,aAAa,IAAI,MAAM,EAAE,CAExC;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAE9E"}
|