@cesteral/pinterest-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 +348 -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/pinterest-auth-adapter.d.ts +38 -0
- package/dist/auth/pinterest-auth-adapter.d.ts.map +1 -0
- package/dist/auth/pinterest-auth-adapter.js +117 -0
- package/dist/auth/pinterest-auth-adapter.js.map +1 -0
- package/dist/auth/pinterest-auth-strategy.d.ts +13 -0
- package/dist/auth/pinterest-auth-strategy.d.ts.map +1 -0
- package/dist/auth/pinterest-auth-strategy.js +52 -0
- package/dist/auth/pinterest-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/generated/types.d.ts +18119 -0
- package/dist/generated/types.d.ts.map +1 -0
- package/dist/generated/types.js +2 -0
- package/dist/generated/types.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 +125 -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 +105 -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 +95 -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 +301 -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 +188 -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 +197 -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 +180 -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 +140 -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 +125 -0
- package/dist/mcp-server/resources/definitions/entity-schemas.resource.js.map +1 -0
- package/dist/mcp-server/resources/definitions/index.d.ts +7 -0
- package/dist/mcp-server/resources/definitions/index.d.ts.map +1 -0
- package/dist/mcp-server/resources/definitions/index.js +58 -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 +148 -0
- package/dist/mcp-server/resources/definitions/reporting-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 +133 -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 +109 -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 +127 -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 +134 -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 +91 -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 +113 -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 +99 -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 +110 -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-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 +319 -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 +183 -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 +301 -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 +176 -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 +75 -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 +72 -0
- package/dist/mcp-server/tools/definitions/get-targeting-options.tool.js.map +1 -0
- package/dist/mcp-server/tools/definitions/index.d.ts +25 -0
- package/dist/mcp-server/tools/definitions/index.d.ts.map +1 -0
- package/dist/mcp-server/tools/definitions/index.js +75 -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 +180 -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 +116 -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 +103 -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 +98 -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 +164 -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 +118 -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 +81 -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 +73 -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 +82 -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 +100 -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 +169 -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 +154 -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 +105 -0
- package/dist/mcp-server/tools/utils/entity-mapping.js.map +1 -0
- package/dist/mcp-server/tools/utils/media-types.d.ts +14 -0
- package/dist/mcp-server/tools/utils/media-types.d.ts.map +1 -0
- package/dist/mcp-server/tools/utils/media-types.js +2 -0
- package/dist/mcp-server/tools/utils/media-types.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/pinterest/pinterest-http-client.d.ts +22 -0
- package/dist/services/pinterest/pinterest-http-client.d.ts.map +1 -0
- package/dist/services/pinterest/pinterest-http-client.js +149 -0
- package/dist/services/pinterest/pinterest-http-client.js.map +1 -0
- package/dist/services/pinterest/pinterest-reporting-service.d.ts +60 -0
- package/dist/services/pinterest/pinterest-reporting-service.d.ts.map +1 -0
- package/dist/services/pinterest/pinterest-reporting-service.js +132 -0
- package/dist/services/pinterest/pinterest-reporting-service.js.map +1 -0
- package/dist/services/pinterest/pinterest-service.d.ts +110 -0
- package/dist/services/pinterest/pinterest-service.d.ts.map +1 -0
- package/dist/services/pinterest/pinterest-service.js +238 -0
- package/dist/services/pinterest/pinterest-service.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 +23 -0
- package/dist/services/session-services.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 +57 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entity-duplication-workflow.prompt.js","sourceRoot":"","sources":["../../../../src/mcp-server/prompts/definitions/entity-duplication-workflow.prompt.ts"],"names":[],"mappings":"AAWA,MAAM,CAAC,MAAM,wCAAwC,GAAW;IAC9D,IAAI,EAAE,uCAAuC;IAC7C,WAAW,EACT,qKAAqK;IACvK,SAAS,EAAE;QACT;YACE,IAAI,EAAE,YAAY;YAClB,WAAW,EAAE,oDAAoD;YACjE,QAAQ,EAAE,IAAI;SACf;QACD;YACE,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,uCAAuC;YACpD,QAAQ,EAAE,IAAI;SACf;QACD;YACE,IAAI,EAAE,aAAa;YACnB,WAAW,EAAE,yBAAyB;YACtC,QAAQ,EAAE,IAAI;SACf;KACF;CACF,CAAC;AAEF,MAAM,UAAU,4CAA4C,CAC1D,IAA6B;IAE7B,MAAM,UAAU,GAAG,IAAI,EAAE,UAAU,IAAI,cAAc,CAAC;IACtD,MAAM,QAAQ,GAAG,IAAI,EAAE,QAAQ,IAAI,YAAY,CAAC;IAChD,MAAM,WAAW,GAAG,IAAI,EAAE,WAAW,IAAI,eAAe,CAAC;IAEzD,OAAO;;iBAEQ,UAAU;eACZ,QAAQ;mBACJ,WAAW;;;;;;;;;;;;;;;;;;;;;;;;qBAwBT,UAAU;sBACT,WAAW;mBACd,QAAQ;;;;;;;;;;;;;;;qBAeN,UAAU;sBACT,WAAW;mBACd,QAAQ;;4BAEC,UAAU,IAAI,QAAQ;;;;;;;;;;;;;;;;;;;;;;qBAsB7B,UAAU;sBACT,WAAW;;;;;;;;;;;;;;;;;sBAiBX,WAAW;;;;;;;;;;;;;;;;;;;;;;;qBAuBZ,UAAU;sBACT,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBA0CZ,UAAU;sBACT,WAAW;;;;;;;;;;;;;;CAchC,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { Prompt } from "@modelcontextprotocol/sdk/types.js";
|
|
2
|
+
export declare const pinterestEntityUpdateWorkflowPrompt: Prompt;
|
|
3
|
+
export declare function getPinterestEntityUpdateWorkflowMessage(args?: Record<string, string>): string;
|
|
4
|
+
//# sourceMappingURL=entity-update-workflow.prompt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entity-update-workflow.prompt.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/prompts/definitions/entity-update-workflow.prompt.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AASjE,eAAO,MAAM,mCAAmC,EAAE,MAqBjD,CAAC;AAEF,wBAAgB,uCAAuC,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAsK7F"}
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
export const pinterestEntityUpdateWorkflowPrompt = {
|
|
2
|
+
name: "pinterest_entity_update_workflow",
|
|
3
|
+
description: "Step-by-step guide for safely updating Pinterest Ads entities — covers field updates vs status changes (separate endpoints), budget values in account currency, and verification.",
|
|
4
|
+
arguments: [
|
|
5
|
+
{
|
|
6
|
+
name: "entityType",
|
|
7
|
+
description: "Entity type to update: campaign, adGroup, or ad",
|
|
8
|
+
required: true,
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
name: "entityId",
|
|
12
|
+
description: "Numeric ID of the entity to update",
|
|
13
|
+
required: true,
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
name: "adAccountId",
|
|
17
|
+
description: "Pinterest Advertiser ID",
|
|
18
|
+
required: true,
|
|
19
|
+
},
|
|
20
|
+
],
|
|
21
|
+
};
|
|
22
|
+
export function getPinterestEntityUpdateWorkflowMessage(args) {
|
|
23
|
+
const entityType = args?.entityType || "{entityType}";
|
|
24
|
+
const entityId = args?.entityId || "{entityId}";
|
|
25
|
+
const adAccountId = args?.adAccountId || "{adAccountId}";
|
|
26
|
+
return `# Pinterest Ads Entity Update Workflow
|
|
27
|
+
|
|
28
|
+
Entity Type: \`${entityType}\`
|
|
29
|
+
Entity ID: \`${entityId}\`
|
|
30
|
+
Advertiser ID: \`${adAccountId}\`
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## Step 1: Fetch Current State
|
|
35
|
+
|
|
36
|
+
Before updating, always read the entity's current configuration:
|
|
37
|
+
|
|
38
|
+
\`\`\`json
|
|
39
|
+
{
|
|
40
|
+
"tool": "pinterest_get_entity",
|
|
41
|
+
"params": {
|
|
42
|
+
"entityType": "${entityType}",
|
|
43
|
+
"adAccountId": "${adAccountId}",
|
|
44
|
+
"entityId": "${entityId}"
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
\`\`\`
|
|
48
|
+
|
|
49
|
+
Review the current values. Save the current state for rollback reference.
|
|
50
|
+
|
|
51
|
+
**Resource reference:** Fetch \`entity-schema://pinterest/${entityType}\` for the full field schema and \`entity-examples://pinterest/${entityType}\` for common update patterns.
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## Step 2: Update Entity Fields
|
|
56
|
+
|
|
57
|
+
Use \`pinterest_update_entity\` for **field changes** (name, budget, bid, targeting):
|
|
58
|
+
|
|
59
|
+
### Campaign Updates
|
|
60
|
+
|
|
61
|
+
\`\`\`json
|
|
62
|
+
{
|
|
63
|
+
"tool": "pinterest_update_entity",
|
|
64
|
+
"params": {
|
|
65
|
+
"entityType": "campaign",
|
|
66
|
+
"adAccountId": "${adAccountId}",
|
|
67
|
+
"entityId": "${entityId}",
|
|
68
|
+
"data": {
|
|
69
|
+
"name": "Updated Campaign Name",
|
|
70
|
+
"daily_spend_cap": 100000000
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
\`\`\`
|
|
75
|
+
|
|
76
|
+
### Ad Group Updates
|
|
77
|
+
|
|
78
|
+
\`\`\`json
|
|
79
|
+
{
|
|
80
|
+
"tool": "pinterest_update_entity",
|
|
81
|
+
"params": {
|
|
82
|
+
"entityType": "adGroup",
|
|
83
|
+
"adAccountId": "${adAccountId}",
|
|
84
|
+
"entityId": "${entityId}",
|
|
85
|
+
"data": {
|
|
86
|
+
"name": "Updated Ad Group",
|
|
87
|
+
"budget": 100,
|
|
88
|
+
"bid_price": 0.8,
|
|
89
|
+
"age": ["AGE_25_34", "AGE_35_44"],
|
|
90
|
+
"gender": ["GENDER_UNLIMITED"],
|
|
91
|
+
"location_ids": ["US", "GB"]
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
\`\`\`
|
|
96
|
+
|
|
97
|
+
### Ad Updates
|
|
98
|
+
|
|
99
|
+
\`\`\`json
|
|
100
|
+
{
|
|
101
|
+
"tool": "pinterest_update_entity",
|
|
102
|
+
"params": {
|
|
103
|
+
"entityType": "ad",
|
|
104
|
+
"adAccountId": "${adAccountId}",
|
|
105
|
+
"entityId": "${entityId}",
|
|
106
|
+
"data": {
|
|
107
|
+
"ad_name": "Updated Ad Name",
|
|
108
|
+
"ad_text": "New ad copy (max 100 chars)",
|
|
109
|
+
"call_to_action": "SHOP_NOW",
|
|
110
|
+
"landing_page_url": "https://example.com/new-page"
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
\`\`\`
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
## Step 3: Update Status (Separate Endpoint)
|
|
119
|
+
|
|
120
|
+
⚠️ **CRITICAL GOTCHA**: Pinterest uses a **separate endpoint** for status changes. Do NOT include \`operation_status\` in \`pinterest_update_entity\` — it won't work.
|
|
121
|
+
|
|
122
|
+
Use \`pinterest_bulk_update_status\` for all status changes:
|
|
123
|
+
|
|
124
|
+
\`\`\`json
|
|
125
|
+
{
|
|
126
|
+
"tool": "pinterest_bulk_update_status",
|
|
127
|
+
"params": {
|
|
128
|
+
"entityType": "${entityType}",
|
|
129
|
+
"adAccountId": "${adAccountId}",
|
|
130
|
+
"entityIds": ["${entityId}"],
|
|
131
|
+
"operationStatus": "ACTIVE"
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
\`\`\`
|
|
135
|
+
|
|
136
|
+
Valid status values: \`"ACTIVE"\`, \`"PAUSED"\`, \`"ARCHIVED"\`
|
|
137
|
+
|
|
138
|
+
---
|
|
139
|
+
|
|
140
|
+
## Step 4: Verify Changes
|
|
141
|
+
|
|
142
|
+
After the update call succeeds, verify the changes:
|
|
143
|
+
|
|
144
|
+
\`\`\`json
|
|
145
|
+
{
|
|
146
|
+
"tool": "pinterest_get_entity",
|
|
147
|
+
"params": {
|
|
148
|
+
"entityType": "${entityType}",
|
|
149
|
+
"adAccountId": "${adAccountId}",
|
|
150
|
+
"entityId": "${entityId}"
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
\`\`\`
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
## Gotchas
|
|
158
|
+
|
|
159
|
+
- **Status changes use a different tool**: Never use \`pinterest_update_entity\` for enabling/disabling entities — use \`pinterest_bulk_update_status\`.
|
|
160
|
+
- **Budget values are in account currency**: \`budget: 100\` means $100.00 (not cents, not micros).
|
|
161
|
+
- **Targeting replaces on ad group**: When updating targeting fields on an ad group, include all targeting you want to keep.
|
|
162
|
+
- **Video IDs are immutable**: You cannot change the video on an existing ad. Delete and recreate instead.
|
|
163
|
+
- **Ad review re-triggered**: Updating ad copy or creative may trigger a new review cycle (24-48h).
|
|
164
|
+
|
|
165
|
+
---
|
|
166
|
+
|
|
167
|
+
## Rollback
|
|
168
|
+
|
|
169
|
+
If an update causes issues, reverse it by sending the original values:
|
|
170
|
+
|
|
171
|
+
\`\`\`json
|
|
172
|
+
{
|
|
173
|
+
"tool": "pinterest_update_entity",
|
|
174
|
+
"params": {
|
|
175
|
+
"entityType": "${entityType}",
|
|
176
|
+
"adAccountId": "${adAccountId}",
|
|
177
|
+
"entityId": "${entityId}",
|
|
178
|
+
"data": {
|
|
179
|
+
"field_that_was_changed": "{original_value}"
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
\`\`\`
|
|
184
|
+
|
|
185
|
+
Report the rollback hint (original values) whenever you make a change so the user can revert if needed.
|
|
186
|
+
`;
|
|
187
|
+
}
|
|
188
|
+
//# sourceMappingURL=entity-update-workflow.prompt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entity-update-workflow.prompt.js","sourceRoot":"","sources":["../../../../src/mcp-server/prompts/definitions/entity-update-workflow.prompt.ts"],"names":[],"mappings":"AAYA,MAAM,CAAC,MAAM,mCAAmC,GAAW;IACzD,IAAI,EAAE,kCAAkC;IACxC,WAAW,EACT,mLAAmL;IACrL,SAAS,EAAE;QACT;YACE,IAAI,EAAE,YAAY;YAClB,WAAW,EAAE,iDAAiD;YAC9D,QAAQ,EAAE,IAAI;SACf;QACD;YACE,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,oCAAoC;YACjD,QAAQ,EAAE,IAAI;SACf;QACD;YACE,IAAI,EAAE,aAAa;YACnB,WAAW,EAAE,yBAAyB;YACtC,QAAQ,EAAE,IAAI;SACf;KACF;CACF,CAAC;AAEF,MAAM,UAAU,uCAAuC,CAAC,IAA6B;IACnF,MAAM,UAAU,GAAG,IAAI,EAAE,UAAU,IAAI,cAAc,CAAC;IACtD,MAAM,QAAQ,GAAG,IAAI,EAAE,QAAQ,IAAI,YAAY,CAAC;IAChD,MAAM,WAAW,GAAG,IAAI,EAAE,WAAW,IAAI,eAAe,CAAC;IAEzD,OAAO;;iBAEQ,UAAU;eACZ,QAAQ;mBACJ,WAAW;;;;;;;;;;;;qBAYT,UAAU;sBACT,WAAW;mBACd,QAAQ;;;;;;;4DAOiC,UAAU,kEAAkE,UAAU;;;;;;;;;;;;;;;sBAe5H,WAAW;mBACd,QAAQ;;;;;;;;;;;;;;;;sBAgBL,WAAW;mBACd,QAAQ;;;;;;;;;;;;;;;;;;;;sBAoBL,WAAW;mBACd,QAAQ;;;;;;;;;;;;;;;;;;;;;;;qBAuBN,UAAU;sBACT,WAAW;qBACZ,QAAQ;;;;;;;;;;;;;;;;;;qBAkBR,UAAU;sBACT,WAAW;mBACd,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;qBAyBN,UAAU;sBACT,WAAW;mBACd,QAAQ;;;;;;;;;CAS1B,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { Prompt } from "@modelcontextprotocol/sdk/types.js";
|
|
2
|
+
export declare const pinterestReportingWorkflowPrompt: Prompt;
|
|
3
|
+
export declare function getPinterestReportingWorkflowMessage(args?: Record<string, string>): string;
|
|
4
|
+
//# sourceMappingURL=reporting-workflow.prompt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reporting-workflow.prompt.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/prompts/definitions/reporting-workflow.prompt.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAEjE,eAAO,MAAM,gCAAgC,EAAE,MAgB9C,CAAC;AAEF,wBAAgB,oCAAoC,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CA6G1F"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
export const pinterestReportingWorkflowPrompt = {
|
|
2
|
+
name: "pinterest_reporting_workflow",
|
|
3
|
+
description: "Guide for submitting and retrieving Pinterest Ads async reports with dimensions, metrics, and breakdowns",
|
|
4
|
+
arguments: [
|
|
5
|
+
{
|
|
6
|
+
name: "adAccountId",
|
|
7
|
+
description: "Pinterest 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 getPinterestReportingWorkflowMessage(args) {
|
|
18
|
+
const adAccountId = args?.adAccountId || "{adAccountId}";
|
|
19
|
+
const reportLevel = args?.reportLevel || "AUCTION";
|
|
20
|
+
return `# Pinterest Reporting Workflow
|
|
21
|
+
|
|
22
|
+
Advertiser: \`${adAccountId}\`
|
|
23
|
+
Report Level: \`${reportLevel}\`
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Overview
|
|
28
|
+
|
|
29
|
+
Pinterest reports are **async** — \`pinterest_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
|
+
pinterest_get_report({
|
|
37
|
+
"adAccountId": "${adAccountId}",
|
|
38
|
+
"dimensions": ["campaign_id", "stat_time_day"],
|
|
39
|
+
"metrics": ["impressions", "clicks", "spend", "ctr", "cpc", "conversions", "cost_per_conversion"],
|
|
40
|
+
"startDate": "2026-02-01",
|
|
41
|
+
"endDate": "2026-03-07"
|
|
42
|
+
})
|
|
43
|
+
\`\`\`
|
|
44
|
+
|
|
45
|
+
## Step 2: Ad Group Level Report
|
|
46
|
+
|
|
47
|
+
\`\`\`json
|
|
48
|
+
pinterest_get_report({
|
|
49
|
+
"adAccountId": "${adAccountId}",
|
|
50
|
+
"dimensions": ["adgroup_id", "stat_time_day"],
|
|
51
|
+
"metrics": ["impressions", "clicks", "spend", "video_play_actions", "video_watched_2s", "video_watched_6s"],
|
|
52
|
+
"startDate": "2026-02-01",
|
|
53
|
+
"endDate": "2026-03-07"
|
|
54
|
+
})
|
|
55
|
+
\`\`\`
|
|
56
|
+
|
|
57
|
+
## Step 3: Breakdown Report
|
|
58
|
+
|
|
59
|
+
Add demographic and contextual breakdowns to your report:
|
|
60
|
+
|
|
61
|
+
\`\`\`json
|
|
62
|
+
pinterest_get_report_breakdowns({
|
|
63
|
+
"adAccountId": "${adAccountId}",
|
|
64
|
+
"dimensions": ["campaign_id"],
|
|
65
|
+
"breakdowns": ["gender", "age"],
|
|
66
|
+
"metrics": ["impressions", "clicks", "spend", "conversions"],
|
|
67
|
+
"startDate": "2026-02-01",
|
|
68
|
+
"endDate": "2026-03-07"
|
|
69
|
+
})
|
|
70
|
+
\`\`\`
|
|
71
|
+
|
|
72
|
+
## Step 4: Video Engagement Report
|
|
73
|
+
|
|
74
|
+
\`\`\`json
|
|
75
|
+
pinterest_get_report({
|
|
76
|
+
"adAccountId": "${adAccountId}",
|
|
77
|
+
"dimensions": ["ad_id"],
|
|
78
|
+
"metrics": [
|
|
79
|
+
"impressions", "video_play_actions", "video_watched_2s",
|
|
80
|
+
"video_watched_6s", "video_views_p25", "video_views_p50",
|
|
81
|
+
"video_views_p75", "video_views_p100"
|
|
82
|
+
],
|
|
83
|
+
"startDate": "2026-02-01",
|
|
84
|
+
"endDate": "2026-03-07"
|
|
85
|
+
})
|
|
86
|
+
\`\`\`
|
|
87
|
+
|
|
88
|
+
## Resource References
|
|
89
|
+
|
|
90
|
+
- Fetch \`reporting-reference://pinterest\` for full metrics and dimensions list
|
|
91
|
+
- Fetch \`entity-hierarchy://pinterest/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,gCAAgC,GAAW;IACtD,IAAI,EAAE,8BAA8B;IACpC,WAAW,EACT,0GAA0G;IAC5G,SAAS,EAAE;QACT;YACE,IAAI,EAAE,aAAa;YACnB,WAAW,EAAE,yBAAyB;YACtC,QAAQ,EAAE,IAAI;SACf;QACD;YACE,IAAI,EAAE,aAAa;YACnB,WAAW,EAAE,uDAAuD;YACpE,QAAQ,EAAE,KAAK;SAChB;KACF;CACF,CAAC;AAEF,MAAM,UAAU,oCAAoC,CAAC,IAA6B;IAChF,MAAM,WAAW,GAAG,IAAI,EAAE,WAAW,IAAI,eAAe,CAAC;IACzD,MAAM,WAAW,GAAG,IAAI,EAAE,WAAW,IAAI,SAAS,CAAC;IAEnD,OAAO;;gBAEO,WAAW;kBACT,WAAW;;;;;;;;;;;;;;oBAcT,WAAW;;;;;;;;;;;;oBAYX,WAAW;;;;;;;;;;;;;;oBAcX,WAAW;;;;;;;;;;;;;oBAaX,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgD9B,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { Prompt } from "@modelcontextprotocol/sdk/types.js";
|
|
2
|
+
export declare const pinterestTargetingDiscoveryWorkflowPrompt: Prompt;
|
|
3
|
+
export declare function getPinterestTargetingDiscoveryWorkflowMessage(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,yCAAyC,EAAE,MAiBvD,CAAC;AAEF,wBAAgB,6CAA6C,CAC3D,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC5B,MAAM,CAoLR"}
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
export const pinterestTargetingDiscoveryWorkflowPrompt = {
|
|
2
|
+
name: "pinterest_targeting_discovery_workflow",
|
|
3
|
+
description: "Step-by-step guide for researching Pinterest audiences: search interest categories, browse behaviors, build targeting configs, and estimate audience size before ad group creation.",
|
|
4
|
+
arguments: [
|
|
5
|
+
{
|
|
6
|
+
name: "adAccountId",
|
|
7
|
+
description: "Pinterest 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 getPinterestTargetingDiscoveryWorkflowMessage(args) {
|
|
18
|
+
const adAccountId = args?.adAccountId || "{adAccountId}";
|
|
19
|
+
const goal = args?.goal || "search";
|
|
20
|
+
return `# Pinterest Targeting Discovery Workflow
|
|
21
|
+
|
|
22
|
+
Advertiser: \`${adAccountId}\`
|
|
23
|
+
Goal: \`${goal}\`
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Overview
|
|
28
|
+
|
|
29
|
+
Before creating ad groups, you need to build a **targeting configuration** — the fields that define your Pinterest audience. This workflow helps you discover and validate targeting options.
|
|
30
|
+
|
|
31
|
+
| Tool | Purpose | Use When |
|
|
32
|
+
|------|---------|----------|
|
|
33
|
+
| \`pinterest_search_targeting\` | Search by keyword | You know the audience you want |
|
|
34
|
+
| \`pinterest_get_targeting_options\` | Browse available targeting | You want to explore what's available |
|
|
35
|
+
| \`pinterest_get_audience_estimate\` | Estimate audience size | Before committing to targeting |
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## Step 1: Search Targeting Options
|
|
40
|
+
|
|
41
|
+
Search for interest categories by keyword:
|
|
42
|
+
|
|
43
|
+
\`\`\`json
|
|
44
|
+
{
|
|
45
|
+
"tool": "pinterest_search_targeting",
|
|
46
|
+
"params": {
|
|
47
|
+
"adAccountId": "${adAccountId}",
|
|
48
|
+
"targetingType": "INTEREST_KEYWORD",
|
|
49
|
+
"query": "fitness"
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
\`\`\`
|
|
53
|
+
|
|
54
|
+
Each result includes:
|
|
55
|
+
- \`id\` — The targeting ID to use in your ad group
|
|
56
|
+
- \`name\` — Human-readable label
|
|
57
|
+
|
|
58
|
+
### Key Targeting Types
|
|
59
|
+
|
|
60
|
+
| Targeting Type | What It Searches | Example |
|
|
61
|
+
|----------------|-----------------|---------|
|
|
62
|
+
| \`INTEREST_KEYWORD\` | Interest categories | "fitness", "gaming" |
|
|
63
|
+
| \`BEHAVIOR\` | Behavioral segments | App engagement behaviors |
|
|
64
|
+
| \`HASHTAG\` | Hashtag interest groups | "DIY", "travel" |
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## Step 2: Browse Targeting Categories
|
|
69
|
+
|
|
70
|
+
To explore all available targeting options for your account:
|
|
71
|
+
|
|
72
|
+
\`\`\`json
|
|
73
|
+
{
|
|
74
|
+
"tool": "pinterest_get_targeting_options",
|
|
75
|
+
"params": {
|
|
76
|
+
"adAccountId": "${adAccountId}"
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
\`\`\`
|
|
80
|
+
|
|
81
|
+
Filter by type:
|
|
82
|
+
|
|
83
|
+
\`\`\`json
|
|
84
|
+
{
|
|
85
|
+
"tool": "pinterest_get_targeting_options",
|
|
86
|
+
"params": {
|
|
87
|
+
"adAccountId": "${adAccountId}",
|
|
88
|
+
"targetingType": "INTEREST"
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
\`\`\`
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## Step 3: Build Ad Group Targeting
|
|
96
|
+
|
|
97
|
+
Combine your research into an ad group payload:
|
|
98
|
+
|
|
99
|
+
\`\`\`json
|
|
100
|
+
{
|
|
101
|
+
"age": ["AGE_18_24", "AGE_25_34", "AGE_35_44"],
|
|
102
|
+
"gender": ["GENDER_UNLIMITED"],
|
|
103
|
+
"location_ids": ["US", "GB"],
|
|
104
|
+
"interest_keyword_ids": ["123456", "789012"],
|
|
105
|
+
"operating_systems": ["IOS", "ANDROID"],
|
|
106
|
+
"placement_type": "PLACEMENT_TYPE_NORMAL",
|
|
107
|
+
"bid_type": "BID_TYPE_CUSTOM",
|
|
108
|
+
"bid_price": 0.5,
|
|
109
|
+
"optimize_goal": "CLICK"
|
|
110
|
+
}
|
|
111
|
+
\`\`\`
|
|
112
|
+
|
|
113
|
+
### Key Targeting Fields
|
|
114
|
+
|
|
115
|
+
| Field | Type | Description |
|
|
116
|
+
|-------|------|-------------|
|
|
117
|
+
| \`age\` | Array | Age groups: AGE_13_17 through AGE_55_PLUS |
|
|
118
|
+
| \`gender\` | Array | GENDER_MALE, GENDER_FEMALE, GENDER_UNLIMITED |
|
|
119
|
+
| \`location_ids\` | Array | Country codes or location IDs |
|
|
120
|
+
| \`interest_keyword_ids\` | Array | Interest keyword IDs from search |
|
|
121
|
+
| \`operating_systems\` | Array | IOS, ANDROID |
|
|
122
|
+
| \`placement_type\` | String | PLACEMENT_TYPE_NORMAL (auto), PLACEMENT_TYPE_SEARCH |
|
|
123
|
+
| \`bid_price\` | Number | Bid in account currency |
|
|
124
|
+
|
|
125
|
+
⚠️ **GOTCHA**: Age group values are enum strings — use exact values like \`AGE_18_24\`, not ranges like \`18-24\`.
|
|
126
|
+
|
|
127
|
+
⚠️ **GOTCHA**: Location IDs can be country codes (e.g., "US") or numeric IDs for cities/regions — use \`pinterest_search_targeting\` to find valid values.
|
|
128
|
+
|
|
129
|
+
---
|
|
130
|
+
|
|
131
|
+
## Step 4: Estimate Audience Size
|
|
132
|
+
|
|
133
|
+
Before creating the ad group, verify your targeting reaches a viable audience:
|
|
134
|
+
|
|
135
|
+
\`\`\`json
|
|
136
|
+
{
|
|
137
|
+
"tool": "pinterest_get_audience_estimate",
|
|
138
|
+
"params": {
|
|
139
|
+
"adAccountId": "${adAccountId}",
|
|
140
|
+
"targetingConfig": {
|
|
141
|
+
"age": ["AGE_18_24", "AGE_25_34"],
|
|
142
|
+
"gender": ["GENDER_UNLIMITED"],
|
|
143
|
+
"location_ids": ["US"],
|
|
144
|
+
"interest_keyword_ids": ["123456"]
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
\`\`\`
|
|
149
|
+
|
|
150
|
+
Interpret results:
|
|
151
|
+
- **Too narrow** (< 50K reach) → Broaden age groups or add more interests
|
|
152
|
+
- **Too broad** (> 100M reach) → Add more specific interests or narrow demographics
|
|
153
|
+
- **Sweet spot**: 1M–50M for most Pinterest campaigns
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
## Step 5: Apply to Ad Group
|
|
158
|
+
|
|
159
|
+
Use the targeting when creating or updating an ad group:
|
|
160
|
+
|
|
161
|
+
\`\`\`json
|
|
162
|
+
{
|
|
163
|
+
"tool": "pinterest_create_entity",
|
|
164
|
+
"params": {
|
|
165
|
+
"entityType": "adGroup",
|
|
166
|
+
"adAccountId": "${adAccountId}",
|
|
167
|
+
"data": {
|
|
168
|
+
"campaign_id": "{campaignId}",
|
|
169
|
+
"name": "US Fitness Enthusiasts 18-34",
|
|
170
|
+
"placement_type": "PLACEMENT_TYPE_NORMAL",
|
|
171
|
+
"daily_spend_cap": 50000000,
|
|
172
|
+
"schedule_type": "SCHEDULE_START_END",
|
|
173
|
+
"schedule_start_time": "2026-03-10 00:00:00",
|
|
174
|
+
"schedule_end_time": "2026-12-31 23:59:59",
|
|
175
|
+
"optimize_goal": "CLICK",
|
|
176
|
+
"bid_type": "BID_TYPE_CUSTOM",
|
|
177
|
+
"bid_price": 0.5,
|
|
178
|
+
"age": ["AGE_18_24", "AGE_25_34"],
|
|
179
|
+
"gender": ["GENDER_UNLIMITED"],
|
|
180
|
+
"location_ids": ["US"],
|
|
181
|
+
"interest_keyword_ids": ["123456"]
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
\`\`\`
|
|
186
|
+
|
|
187
|
+
⚠️ **GOTCHA**: Budget values are in **account currency** — \`budget: 50\` means $50.00.
|
|
188
|
+
|
|
189
|
+
---
|
|
190
|
+
|
|
191
|
+
## Related Resources
|
|
192
|
+
- \`reporting-reference://pinterest\` — Reporting metrics and dimensions
|
|
193
|
+
- \`entity-schema://pinterest/adGroup\` — Ad Group fields including all targeting parameters
|
|
194
|
+
- \`entity-examples://pinterest/adGroup\` — Example ad group payloads with targeting
|
|
195
|
+
`;
|
|
196
|
+
}
|
|
197
|
+
//# 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,yCAAyC,GAAW;IAC/D,IAAI,EAAE,wCAAwC;IAC9C,WAAW,EACT,qLAAqL;IACvL,SAAS,EAAE;QACT;YACE,IAAI,EAAE,aAAa;YACnB,WAAW,EAAE,yBAAyB;YACtC,QAAQ,EAAE,IAAI;SACf;QACD;YACE,IAAI,EAAE,MAAM;YACZ,WAAW,EACT,yHAAyH;YAC3H,QAAQ,EAAE,KAAK;SAChB;KACF;CACF,CAAC;AAEF,MAAM,UAAU,6CAA6C,CAC3D,IAA6B;IAE7B,MAAM,WAAW,GAAG,IAAI,EAAE,WAAW,IAAI,eAAe,CAAC;IACzD,MAAM,IAAI,GAAG,IAAI,EAAE,IAAI,IAAI,QAAQ,CAAC;IAEpC,OAAO;;gBAEO,WAAW;UACjB,IAAI;;;;;;;;;;;;;;;;;;;;;;;;sBAwBQ,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBA6BX,WAAW;;;;;;;;;;;sBAWX,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAoDX,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;sBA2BX,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6BhC,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { Prompt } from "@modelcontextprotocol/sdk/types.js";
|
|
2
|
+
export declare const pinterestToolSchemaExplorationPrompt: Prompt;
|
|
3
|
+
export declare function getPinterestToolSchemaExplorationMessage(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,oCAAoC,EAAE,MAYlD,CAAC;AAEF,wBAAgB,wCAAwC,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAiF9F"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
export const pinterestToolSchemaExplorationPrompt = {
|
|
2
|
+
name: "pinterest_tool_schema_exploration",
|
|
3
|
+
description: "Guide for discovering and understanding Pinterest 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 getPinterestToolSchemaExplorationMessage(args) {
|
|
13
|
+
const objective = args?.objective || "general capability discovery";
|
|
14
|
+
return `# Pinterest MCP Tool & Schema Exploration Guide
|
|
15
|
+
|
|
16
|
+
## Context
|
|
17
|
+
- Server: pinterest-mcp (Pinterest Ads Campaign Management)
|
|
18
|
+
- Objective: ${objective}
|
|
19
|
+
|
|
20
|
+
Use this workflow to discover Pinterest 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://pinterest/all\` | Entity relationships, API patterns, creation order |
|
|
31
|
+
| \`entity-schema://pinterest/campaign\` | Campaign fields |
|
|
32
|
+
| \`entity-schema://pinterest/adGroup\` | Ad Group fields + targeting |
|
|
33
|
+
| \`entity-schema://pinterest/ad\` | Ad fields |
|
|
34
|
+
| \`entity-schema://pinterest/creative\` | Creative fields |
|
|
35
|
+
| \`entity-examples://pinterest/all\` | All entity examples |
|
|
36
|
+
| \`entity-examples://pinterest/{type}\` | Examples for specific type |
|
|
37
|
+
| \`reporting-reference://pinterest\` | Metrics, dimensions, and breakdown options |
|
|
38
|
+
|
|
39
|
+
## Tool Categories
|
|
40
|
+
|
|
41
|
+
### Read Operations
|
|
42
|
+
- \`pinterest_list_ad_accounts\` — List accessible advertiser accounts
|
|
43
|
+
- \`pinterest_list_entities\` — List entities with page pagination
|
|
44
|
+
- \`pinterest_get_entity\` — Get single entity by ID
|
|
45
|
+
|
|
46
|
+
### Write Operations
|
|
47
|
+
- \`pinterest_create_entity\` — Create entity
|
|
48
|
+
- \`pinterest_update_entity\` — Update entity fields
|
|
49
|
+
- \`pinterest_delete_entity\` — Delete entities
|
|
50
|
+
|
|
51
|
+
### Reporting (Async)
|
|
52
|
+
- \`pinterest_get_report\` — Submit async report and download results
|
|
53
|
+
- \`pinterest_get_report_breakdowns\` — Report with breakdown dimensions
|
|
54
|
+
|
|
55
|
+
### Bulk Operations
|
|
56
|
+
- \`pinterest_bulk_update_status\` — Batch enable/disable/delete entities
|
|
57
|
+
- \`pinterest_bulk_create_entities\` — Batch creation (up to 50)
|
|
58
|
+
- \`pinterest_bulk_update_entities\` — Batch updates (up to 50)
|
|
59
|
+
- \`pinterest_adjust_bids\` — Batch adjust ad group bid prices
|
|
60
|
+
|
|
61
|
+
### Targeting
|
|
62
|
+
- \`pinterest_search_targeting\` — Search interest categories, behaviors, demographics
|
|
63
|
+
- \`pinterest_get_targeting_options\` — Browse targeting categories
|
|
64
|
+
|
|
65
|
+
### Specialized
|
|
66
|
+
- \`pinterest_duplicate_entity\` — Copy campaigns, ad groups, ads
|
|
67
|
+
- \`pinterest_get_audience_estimate\` — Audience size estimation
|
|
68
|
+
- \`pinterest_get_ad_preview\` — Ad preview for video/image ads
|
|
69
|
+
|
|
70
|
+
### Validation
|
|
71
|
+
- \`pinterest_validate_entity\` — Client-side entity validation
|
|
72
|
+
|
|
73
|
+
## Workflow Prompts
|
|
74
|
+
|
|
75
|
+
| Task | Prompt |
|
|
76
|
+
|------|--------|
|
|
77
|
+
| Create a full campaign structure | \`pinterest_campaign_setup_workflow\` |
|
|
78
|
+
| Research audiences & build targeting | \`pinterest_targeting_discovery_workflow\` |
|
|
79
|
+
| Update entities safely | \`pinterest_entity_update_workflow\` |
|
|
80
|
+
| Duplicate campaigns/ad groups/ads | \`pinterest_entity_duplication_workflow\` |
|
|
81
|
+
| Bulk create/update/status/bids | \`pinterest_bulk_operations_workflow\` |
|
|
82
|
+
| Async reporting & breakdowns | \`pinterest_reporting_workflow\` |
|
|
83
|
+
| Troubleshoot entity issues | \`pinterest_troubleshoot_entity\` |
|
|
84
|
+
|
|
85
|
+
## Recommended Exploration Order
|
|
86
|
+
|
|
87
|
+
1. Start with \`pinterest_list_ad_accounts\` to find your account
|
|
88
|
+
2. Fetch \`entity-hierarchy://pinterest/all\` for API patterns
|
|
89
|
+
3. Fetch \`entity-schema://pinterest/{type}\` for field details
|
|
90
|
+
4. Fetch \`entity-examples://pinterest/{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,oCAAoC,GAAW;IAC1D,IAAI,EAAE,mCAAmC;IACzC,WAAW,EACT,qFAAqF;IACvF,SAAS,EAAE;QACT;YACE,IAAI,EAAE,WAAW;YACjB,WAAW,EACT,0FAA0F;YAC5F,QAAQ,EAAE,KAAK;SAChB;KACF;CACF,CAAC;AAEF,MAAM,UAAU,wCAAwC,CAAC,IAA6B;IACpF,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 pinterestTroubleshootEntityPrompt: Prompt;
|
|
3
|
+
export declare function getPinterestTroubleshootEntityMessage(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,iCAAiC,EAAE,MAoB/C,CAAC;AAEF,wBAAgB,qCAAqC,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAyF3F"}
|