Skip to content
Agentmart
Submit a tool

TikTok Ads MCP Server

TikTok Ads management — CRUD, async reports, targeting, and media uploads

Connector by cesteral · GitHub account verified by the MCP Registry

IndexedApache-2.0Local (stdio)Remote (HTTP)★ 8
Write a review

Install

Works with Claude Code, VS Code, Codex, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.

npx agentmarket install connector/cesteral-tiktok-mcp

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Remote endpoint

  • https://{host}/tiktok-mcp/mcp Remote (HTTP)

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

TikTok Ads management — CRUD, async reports, targeting, and media uploads

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 26, 2026.

Tools
162 read · 54 write · 91 delete · 5 not yet classified
Secrets
None asked for
Install scripts
None found
Runs as
Node.js package

Tools by what they do 312

Read from the source code; the running server may list different tools.

Read 162 · Look things up without changing anything.

  • amazon_dsp_check_report_status
  • amazon_dsp_download_report
  • amazon_dsp_get_ad_preview
  • amazon_dsp_get_campaign_forecast
  • amazon_dsp_get_commitment
  • amazon_dsp_get_commitment_spend
  • amazon_dsp_get_commitments
  • amazon_dsp_get_entity
  • amazon_dsp_get_pacing_status
  • amazon_dsp_get_report
  • amazon_dsp_get_report_breakdowns
  • amazon_dsp_list_advertisers
Show 150 more tools
  • amazon_dsp_list_commitments
  • amazon_dsp_list_entities
  • cm360_check_report_status
  • cm360_download_report
  • cm360_get_ad_preview
  • cm360_get_entity
  • cm360_get_pacing_status
  • cm360_get_report
  • cm360_get_report_breakdowns
  • cm360_list_entities
  • cm360_list_report_schedules
  • cm360_list_targeting_options
  • cm360_list_user_profiles
  • cm360_validate_entity
  • dbm_get_campaign_delivery
  • dbm_get_historical_metrics
  • dbm_get_pacing_status
  • dbm_get_performance_metrics
  • dbm_run_custom_query
  • dbm_run_custom_query_async
  • dv360_get_ad_preview
  • dv360_get_assigned_targeting
  • dv360_get_delivery_estimate
  • dv360_get_entity
  • dv360_get_pacing_status
  • dv360_list_assigned_targeting
  • dv360_list_custom_bidding_algorithms
  • dv360_list_entities
  • dv360_validate_entity
  • dv360_validate_targeting_config
  • echo
  • gads_gaql_search
  • gads_get_ad_preview
  • gads_get_entity
  • gads_get_insights
  • gads_get_pacing_status
  • gads_list_accounts
  • gads_list_entities
  • gads_validate_entity
  • linkedin_get_ad_preview
  • linkedin_get_analytics
  • linkedin_get_analytics_breakdowns
  • linkedin_get_audience_count
  • linkedin_get_delivery_forecast
  • linkedin_get_entity
  • linkedin_get_pacing_status
  • linkedin_get_targeting_options
  • linkedin_list_ad_accounts
  • linkedin_list_entities
  • linkedin_search_targeting
  • meta_check_report_status
  • meta_download_report
  • meta_get_ad_preview
  • meta_get_available_metrics
  • meta_get_delivery_estimate
  • meta_get_entity
  • meta_get_insights
  • meta_get_insights_breakdowns
  • meta_get_pacing_status
  • meta_get_targeting_options
  • meta_list_ad_accounts
  • meta_list_entities
  • meta_search_targeting
  • msads_check_report_status
  • msads_download_report
  • msads_get_ad_details
  • msads_get_entity
  • msads_get_pacing_status
  • msads_get_report
  • msads_get_report_breakdowns
  • msads_get_targeting_options
  • msads_list_accounts
  • msads_list_entities
  • msads_list_report_schedules
  • msads_search_targeting
  • msads_validate_entity
  • pinterest_check_report_status
  • pinterest_download_report
  • pinterest_get_ad_preview
  • pinterest_get_delivery_estimate
  • pinterest_get_entity
  • pinterest_get_pacing_status
  • pinterest_get_report
  • pinterest_get_report_breakdowns
  • pinterest_get_targeting_options
  • pinterest_list_ad_accounts
  • pinterest_list_entities
  • pinterest_search_targeting
  • sa360_check_report_status
  • sa360_download_report
  • sa360_gaql_search
  • sa360_get_change_history
  • sa360_get_entity
  • sa360_get_insights
  • sa360_get_insights_breakdowns
  • sa360_get_pacing_status
  • sa360_list_accounts
  • sa360_list_custom_columns
  • sa360_list_entities
  • sa360_list_report_columns
  • sa360_search_fields
  • sa360_validate_conversion
  • snapchat_check_report_status
  • snapchat_download_report
  • snapchat_get_ad_preview
  • snapchat_get_audience_estimate
  • snapchat_get_entity
  • snapchat_get_pacing_status
  • snapchat_get_report
  • snapchat_get_report_breakdowns
  • snapchat_get_targeting_options
  • snapchat_list_ad_accounts
  • snapchat_list_entities
  • snapchat_search_targeting
  • test_elicitation
  • test_elicitation_sep1034_defaults
  • test_elicitation_sep1330_enums
  • test_simple_text
  • test_tool_with_logging
  • tiktok_check_report_status
  • tiktok_download_report
  • tiktok_get_ad_preview
  • tiktok_get_audience_estimate
  • tiktok_get_entity
  • tiktok_get_pacing_status
  • tiktok_get_report
  • tiktok_get_report_breakdowns
  • tiktok_get_targeting_options
  • tiktok_list_advertisers
  • tiktok_list_entities
  • tiktok_search_targeting
  • tiktok_validate_entity
  • ttd_check_report_status
  • ttd_download_report
  • ttd_get_ad_preview
  • ttd_get_context
  • ttd_get_entity
  • ttd_get_entity_report_types
  • ttd_get_pacing_status
  • ttd_get_report
  • ttd_get_report_executions
  • ttd_get_report_schedule
  • ttd_get_report_template
  • ttd_get_report_type_schema
  • ttd_graphql_bulk_job
  • ttd_list_entities
  • ttd_list_report_schedules
  • ttd_list_report_templates
  • ttd_list_report_types
  • ttd_validate_entity

Write 54 · Create, change, send or run things.

  • amazon_dsp_bulk_update_entities
  • amazon_dsp_bulk_update_status
  • amazon_dsp_duplicate_entity
  • amazon_dsp_submit_report
  • amazon_dsp_update_commitment
  • amazon_dsp_update_entity
  • cm360_create_report_schedule
  • cm360_submit_report
  • gads_duplicate_entity
  • meta_manage_budget_schedule
  • meta_submit_report
  • meta_upload_image
Show 42 more tools
  • meta_upload_video
  • msads_adjust_bids
  • msads_bulk_create_entities
  • msads_bulk_update_entities
  • msads_create_entity
  • msads_create_report_schedule
  • msads_duplicate_entity
  • msads_import_from_google
  • msads_submit_report
  • msads_update_entity
  • pinterest_bulk_update_entities
  • pinterest_duplicate_entity
  • pinterest_submit_report
  • pinterest_update_entity
  • pinterest_upload_video
  • sa360_insert_conversions
  • sa360_submit_report
  • sa360_update_conversions
  • snapchat_bulk_update_entities
  • snapchat_duplicate_entity
  • snapchat_submit_report
  • snapchat_update_entity
  • snapchat_upload_image
  • snapchat_upload_video
  • tiktok_bulk_update_entities
  • tiktok_duplicate_entity
  • tiktok_submit_report
  • tiktok_update_entity
  • tiktok_upload_image
  • tiktok_upload_video
  • ttd_bulk_manage_bid_lists
  • ttd_create_report_schedule
  • ttd_create_report_template
  • ttd_create_template_schedule
  • ttd_duplicate_entity
  • ttd_graphql_query
  • ttd_graphql_query_bulk
  • ttd_manage_seed
  • ttd_rerun_report_schedule
  • ttd_submit_report
  • ttd_update_report_schedule
  • vec_key_ordering

Delete 91 · Delete, drop, revoke or wipe things.

  • amazon_dsp_adjust_bids
  • amazon_dsp_bulk_create_entities
  • amazon_dsp_create_commitment
  • amazon_dsp_create_entity
  • amazon_dsp_delete_entity
  • amazon_dsp_upload_video
  • cm360_bulk_create_entities
  • cm360_bulk_update_entities
  • cm360_bulk_update_status
  • cm360_create_entity
  • cm360_delete_entity
  • cm360_delete_report_schedule
Show 79 more tools
  • cm360_update_entity
  • crossrepo_update_entity
  • dv360_adjust_line_item_bids
  • dv360_bulk_create_entities
  • dv360_bulk_update_entities
  • dv360_bulk_update_status
  • dv360_create_assigned_targeting
  • dv360_create_custom_bidding_algorithm
  • dv360_create_entity
  • dv360_delete_assigned_targeting
  • dv360_delete_entity
  • dv360_duplicate_entity
  • dv360_manage_custom_bidding_rules
  • dv360_manage_custom_bidding_script
  • dv360_update_entity
  • dv360_upload_image
  • dv360_upload_video
  • gads_adjust_bids
  • gads_bulk_create_entities
  • gads_bulk_mutate
  • gads_bulk_update_status
  • gads_create_entity
  • gads_remove_entity
  • gads_update_entity
  • gads_upload_image
  • gads_upload_video
  • linkedin_adjust_bids
  • linkedin_bulk_create_entities
  • linkedin_bulk_update_entities
  • linkedin_bulk_update_status
  • linkedin_create_entity
  • linkedin_delete_entity
  • linkedin_duplicate_entity
  • linkedin_update_entity
  • linkedin_upload_image
  • linkedin_upload_video
  • meta_adjust_bids
  • meta_bulk_create_entities
  • meta_bulk_update_entities
  • meta_bulk_update_status
  • meta_create_entity
  • meta_delete_entity
  • meta_duplicate_entity
  • meta_update_entity
  • msads_bulk_update_status
  • msads_delete_entity
  • msads_delete_report_schedule
  • msads_manage_ad_extensions
  • msads_manage_criterions
  • pinterest_adjust_bids
  • pinterest_bulk_create_entities
  • pinterest_bulk_update_status
  • pinterest_create_entity
  • pinterest_delete_entity
  • snapchat_adjust_bids
  • snapchat_bulk_create_entities
  • snapchat_bulk_update_status
  • snapchat_create_entity
  • snapchat_delete_entity
  • tiktok_adjust_bids
  • tiktok_bulk_create_entities
  • tiktok_bulk_update_status
  • tiktok_create_entity
  • tiktok_delete_entity
  • ttd_adjust_bids
  • ttd_archive_entities
  • ttd_bulk_create_entities
  • ttd_bulk_update_entities
  • ttd_bulk_update_status
  • ttd_cancel_report_execution
  • ttd_create_entity
  • ttd_delete_entity
  • ttd_delete_report_schedule
  • ttd_graphql_cancel_bulk_job
  • ttd_graphql_mutation_bulk
  • ttd_manage_bid_list
  • ttd_update_entity
  • ttd_update_report_template
  • ttd_upload_video

Not yet classified 5 · We could not tell from the name and description.

  • ttd_execute_entity_report
  • vec_bool_null
  • vec_empty
  • vec_null_vs_omitted
  • vec_numbers

Network hosts it talks to 49

  • accounts.snapchat.com · found in code
  • acme.com · found in code
  • ads-developers.googleblog.com · found in code
  • adsapi.snapchat.com · found in code
  • advertising-api.amazon.com · found in code
  • advertising.amazon.com · found in code
  • analytics.pinterest.com · found in code
  • analytics.snapchat.com · found in code
  • api.amazon.com · found in code
  • api.anthropic.com · found in code
  • api.pinterest.com · found in code
  • api.thetradedesk.com · found in code
  • business-api.tiktok.com · found in code
  • campaign.api.bingads.microsoft.com · found in code
  • clientcenter.api.bingads.microsoft.com · found in code
  • corvo-reports.s3.amazonaws.com · found in code
  • desk.thetradedesk.com · found in code
  • developers.facebook.com · found in code
  • developers.google.com · found in code
  • developers.pinterest.com · found in code
  • developers.snap.com · found in code
  • dfareporting.googleapis.com · found in code
  • displayvideo.googleapis.com · found in code
  • docs.microsoft.com · found in code
  • download.api.bingads.microsoft.com · found in code
  • ext-api.sb.thetradedesk.com · found in code
  • github.com · found in code
  • google.com · found in code
  • googleads.googleapis.com · found in code
  • googleapis.com · found in code
Show 19 more hosts
  • graph.facebook.com · found in code
  • landing.google.com · found in code
  • learn.microsoft.com · found in code
  • marketingapi.snapchat.com · found in code
  • metadata.google.internal · found in code
  • oauth2.googleapis.com · found in code
  • open.thetradedesk.com · found in code
  • partner.thetradedesk.com · found in code
  • raw.githubusercontent.com · found in code
  • reporting.api.bingads.microsoft.com · found in code
  • reports.thetradedesk.com · found in code
  • searchads360.googleapis.com · found in code
  • support.google.com · found in code
  • turbo.build · found in code
  • your-click-url.com · found in code
  • your-hosted-banner.jpg · found in code
  • your-landing-page.com · found in code
  • your-vast-server.com · found in code
  • yoursite.com · found in code

Files it touches

  • Your home directory (~)
  • Any path the agent passes to its tools

Tools (312)

Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].

  • amazon_dsp_adjust_bidsAmazon DSP Line Item Bid Adjustmentcan change or delete data

    Batch adjust line item (ad group) base bids with safe read-modify-write via the Amazon Ads Unified API. For each line item: reads the ad group (`POST /adsApi/v1/query/adGroups`), then sets `bid.baseBid` to `bidAmount` (`POST /adsApi/v1/update/adGroups`, keeping `bid.maxAverageBid`), and reports previous/new amounts. Bids are in the advertiser's account currency. **Gotchas:** - `baseBid` is the lower bound bid for the ad group's ads; the ad group's `optimization.bidStrategy` decides how it is used. - Each read + write pair consumes API quota. - Max 50 adjustments per call.

  • amazon_dsp_bulk_create_entitiesAmazonDsp Bulk Create Entitiescan change or delete data

    Description is built at runtime.

  • amazon_dsp_bulk_update_entitiesAmazonDsp Bulk Update Entities

    Description is built at runtime.

  • amazon_dsp_bulk_update_statusAmazonDsp Bulk Status Update

    Description is built at runtime.

  • amazon_dsp_check_report_statusCheck Amazon DSP Report Statusread-only

    Check the status of a previously submitted Amazon DSP report task. Makes a single API call to GET /accounts/{accountId}/dsp/reports/{taskId}. Does not poll or wait. Pass the same `accountId` (DSP advertiser ID) used to submit the report. **Canonical states:** `pending`, `running`, `complete`, `failed`, `cancelled`. Amazon DSP raw statuses (`IN_PROGRESS`/`SUCCESS`/`FAILURE`) are mapped; the raw string is returned as `rawStatus`. - If state is `complete` with a `downloadUrl` (presigned S3 URL), use `amazon_dsp_download_report` to fetch results. - If not done, call this tool again in ~10 second…

  • amazon_dsp_create_commitmentCreate an Amazon DSP commitmentcan change or delete data

    Create a new committed-spend agreement on the authenticated DSP account. Single-commitment write. Internally wraps the input into a 1-element `commitments` batch and unwraps `success[0].commitment` from Amazon's multi-status response. Per-item rejections surface as McpError(InvalidParams) with the original Amazon ErrorCode + fieldLocation. Governed write (entity class): the create payload is symbolically validated, and the response carries an `after` canonical snapshot (a create has no `before`) plus `dispatchedCapability`. When `dry_run: true` the call returns a `dryRun` payload (symbolic v…

  • amazon_dsp_create_entityCreate AmazonDsp Ads Entitycan change or delete data

    Description is built at runtime.

  • amazon_dsp_delete_entityDelete AmazonDsp Ads Entitycan change or delete data

    Description is built at runtime.

  • amazon_dsp_download_reportDownload AmazonDsp Reportread-only

    Download and parse a AmazonDsp report from a download URL. After a report task is COMPLETED (via `amazon_dsp_check_report_status`), use the `downloadUrl` to fetch and parse the report data. **Workflow:** 1. `amazon_dsp_submit_report` → get `taskId` 2. `amazon_dsp_check_report_status` → get `downloadUrl` when COMPLETED 3. `amazon_dsp_download_report` with that URL → get a bounded summary or paged row slice **Options:** - `mode: "summary"` (default) returns headers, counts, and a small preview - `mode: "rows"` returns one bounded page of rows - `columns` projects returned rows to selected col…

  • amazon_dsp_duplicate_entityDuplicate AmazonDsp Ads Entity

    Description is built at runtime.

  • amazon_dsp_get_ad_previewGet AmazonDsp Ad Previewread-only

    Get a preview of how an Amazon DSP creative will appear to users. Returns preview data for the creative as served via the Amazon DSP platform. Uses the legacy `GET /dsp/creatives/{creativeId}/preview` endpoint — the Unified API has no preview operation, and whether it accepts a Unified `adId` is unverified.

  • amazon_dsp_get_campaign_forecastGet Amazon DSP campaign forecastread-only

    Retrieve a campaign forecast for one DSP campaign. The Amazon endpoint supports exactly 1 forecast description per call (the multi-status response also caps both `success` and `error` arrays at 1). Forecast warnings are nested at `success[].campaignForecast.flightForecasts[].warnings[]` — the formatter summarises them so callers know whether forecast confidence is degraded.

  • amazon_dsp_get_commitmentGet a single Amazon DSP commitmentread-only

    Fetch one commitment by ID and return its full DSPCommitment record. Used as the read partner for the governed `amazon_dsp_update_commitment` write tool so the governance control plane can capture pre/post snapshots. Internally wraps the batch retrieve endpoint with a 1-element array. If the commitment is missing or rejected, the call throws an McpError with JsonRpcErrorCode.InvalidParams carrying the Amazon ErrorCode + message. For batch reads, use `amazon_dsp_get_commitments` instead.

  • amazon_dsp_get_commitment_spendGet Amazon DSP commitment spendread-only

    Return spend accrual + projection for one commitment, optionally broken down by advertiser / campaign / deal via `spendDimension`. The Amazon endpoint caps both request and response at 1 entry per call. Returns: `accruedSpendValue`, `accruedToDateTime`, `projectedSpendValue`, `spendAtRiskValue`, `currencyCode`, and the `spendDimensionType` (ADVERTISER / CAMPAIGN / COMMITMENT / DEAL).

  • amazon_dsp_get_commitmentsGet Amazon DSP commitments (batch)read-only

    Batch-fetch commitments by ID. Returns Amazon's multi-status response shape unmodified: `success[i].commitment` carries the entity, `error[i].errors` carries one or more per-item errors with their original `fieldLocation` / `code` / `message`. Up to 1000 IDs per call. For a single commitment that returns a clean DSPCommitment (or throws on rejection), use `amazon_dsp_get_commitment`.

Show 297 more tools
  • amazon_dsp_get_entityGet AmazonDsp Ads Entityread-only

    Description is built at runtime.

  • amazon_dsp_get_pacing_statusCalculate Campaign Pacing (Client-Side)read-only

    Client-side pacing calculator — does NOT call the Amazon DSP API. Computes actual vs expected delivery given caller-supplied budget, spend-to-date, and flight dates. To populate spend, first call `amazon_dsp_get_report`; to populate budget and flight dates, first call `amazon_dsp_get_entity` for the campaign.

  • amazon_dsp_get_reportGet Amazon DSP Reportread-only

    Submit and retrieve an async Amazon DSP performance report (DSP reports v3: /accounts/{accountId}/dsp/reports). Follows the async polling pattern: submit task → poll until SUCCESS → download data. This may take 30s–5 minutes depending on the data volume. `accountId` is the DSP advertiser ID (from `amazon_dsp_list_advertisers`), not the profile ID. **Allowed `type`:** CAMPAIGN, INVENTORY, AUDIENCE, PRODUCTS, TECHNOLOGY, GEOGRAPHY, CONVERSION_SOURCE. **CAMPAIGN `dimensions`:** ORDER, LINE_ITEM, CREATIVE. **Common metrics:** impressions, clickThroughs, totalCost, viewableImpressions, viewabili…

  • amazon_dsp_get_report_breakdownsGet Amazon DSP Report with Breakdownsread-only

    Submit and retrieve an async Amazon DSP report (DSP reports v3: /accounts/{accountId}/dsp/reports) with additional breakdown dimensions appended to the base set. Like `amazon_dsp_get_report` but the `breakdowns` array is concatenated onto `dimensions` before submitting — convenient when iterating "show me X also broken down by Y". `accountId` is the DSP advertiser ID (from `amazon_dsp_list_advertisers`), not the profile ID. **Allowed `type`:** CAMPAIGN, INVENTORY, AUDIENCE, PRODUCTS, TECHNOLOGY, GEOGRAPHY, CONVERSION_SOURCE. **CAMPAIGN `dimensions` (base + breakdowns):** ORDER, LINE_ITEM, C…

  • amazon_dsp_list_advertisersList AmazonDsp Advertisersread-only

    List AmazonDsp advertiser accounts accessible to the authenticated user. Returns advertiser IDs, names, and account status information. Pass an `advertiserId` from the results as `accountId` to the entity tools (the Unified API's `Amazon-Ads-AccountId` header) and to the reporting tools. Uses the legacy `GET /dsp/advertisers` endpoint — the Unified DSP API has no advertiser listing. Amazon DSP paginates by offset. When the response's `pagination.nextCursor` is non-null, call again with `startIndex` set to it to fetch the next page.

  • amazon_dsp_list_commitmentsList Amazon DSP commitmentsread-only

    List committed-spend agreements (upfront / advance commitments) for the authenticated DSP account. Token-cursor paginated via `nextToken`. A commitment defines a guaranteed spend over a date range; line items attached to the commitment draw down against it. See `amazon_dsp_get_commitment` for the single-entity read used by governed updates.

  • amazon_dsp_list_entitiesList AmazonDsp Ads Entitiesread-only

    Description is built at runtime.

  • amazon_dsp_submit_reportSubmit Amazon DSP Report

    Submit an Amazon DSP report (DSP reports v3: POST /accounts/{accountId}/dsp/reports) without waiting for completion. Returns a `taskId` immediately. Use `amazon_dsp_check_report_status` to poll for completion (`SUCCESS` or `FAILURE`), then `amazon_dsp_download_report` to fetch results. **Non-blocking workflow:** 1. `amazon_dsp_submit_report` → get `taskId` 2. `amazon_dsp_check_report_status` (repeat every 10s) → wait for `SUCCESS` 3. `amazon_dsp_download_report` with the `downloadUrl` → parsed data Use `amazon_dsp_get_report` instead for a blocking convenience shortcut. **Report shape:** `…

  • amazon_dsp_update_commitmentUpdate an Amazon DSP commitment

    Update a single committed-spend agreement. Only fields included in `data` are sent to Amazon; the underlying endpoint replaces those fields and leaves the rest as-is. Governed write: pre-write snapshot is captured through the `amazon_dsp_get_commitment` read partner, the patch is symbolically validated, and the response carries canonical `before` / `after` / `dispatchedCapability` blocks so the governance control plane can audit the change without an out-of-band pairing. When `dry_run: true` the call returns a `dryRun` payload (symbolic validation + symbolic post-state) without touching the …

  • amazon_dsp_update_entityUpdate AmazonDsp Ads Entity

    Description is built at runtime.

  • amazon_dsp_upload_videoUpload a Video Asset to Amazon DSP (Creative Asset Library)can change or delete data

    Upload a video file to Amazon's Creative Asset Library for use in Amazon DSP video creatives. A DSP video creative references an `assetId` from the account's Creative Asset Library. This tool runs Amazon's documented three-step upload flow for you: 1. `POST /assets/upload` — register a 15-minute presigned upload location. 2. `PUT` the downloaded video bytes to that URL. 3. `POST /assets/register` — register the uploaded file as a `VIDEO` asset. The video must be reachable at a public `mediaUrl` — the server downloads it, then uploads the bytes to Amazon. Returns the registered `assetId`, wh…

  • cm360_bulk_create_entitiesBulk Create CM360 Entitiescan change or delete data

    Batch create multiple CM360 entities of the same type. CM360 has no batch endpoint: each item is one create call, paced by the per-user rate limit (`CM360_RATE_LIMIT_PER_MINUTE`, default 5/min, shared by every profile of the authenticated user). A batch that cannot clear that limit within the 2-minute queue budget is refused before anything is sent, and the error carries `itemsThatFit` and `retryAfterMs`. At the default limit, 15 items fit when nothing else is queued. Run with `dry_run` to check a batch first. The schema accepts up to 50 items.

  • cm360_bulk_update_entitiesBulk Update CM360 Entitiescan change or delete data

    Batch update multiple CM360 entities of the same type. Items are partial updates (CM360 PATCH semantics): send only the fields to change in `data`; omitted fields keep their current values. CM360 has no batch endpoint: each item is one PATCH call, paced by the per-user rate limit (`CM360_RATE_LIMIT_PER_MINUTE`, default 5/min, shared by every profile of the authenticated user). A batch that cannot clear that limit within the 2-minute queue budget is refused before anything is sent, and the error carries `itemsThatFit` and `retryAfterMs`. At the default limit, 15 items fit when nothing else is …

  • cm360_bulk_update_statusBulk Update CM360 Entity Statuscan change or delete data

    Batch update the status of multiple CM360 entities. Each entity is fetched and then written back whole (GET + PUT, because CM360's PUT replaces the entity), so every entity costs two calls. Calls are paced by the per-user rate limit (`CM360_RATE_LIMIT_PER_MINUTE`, default 5/min, shared by every profile of the authenticated user). A batch that cannot clear that limit within the 2-minute queue budget is refused before anything is sent, and the error carries `itemsThatFit` and `retryAfterMs`. At the default limit, 7 entities fit when nothing else is queued. Run with `dry_run` to check a batch fi…

  • cm360_check_report_statusCheck CM360 Report Statusread-only

    Check the status of a CM360 report file. Single status check — no polling. Canonical states: `pending`, `running`, `complete`, `failed`, `cancelled`. CM360 source states are mapped: PROCESSING → running, REPORT_AVAILABLE → complete, FAILED → failed, CANCELLED → cancelled. The original string is returned as `rawStatus`. When state is `complete`, a downloadUrl is provided. Use cm360_download_report to fetch the results.

  • cm360_create_entityCreate CM360 Entitycan change or delete data

    Description is built at runtime.

  • cm360_create_report_scheduleCreate CM360 Report Schedule

    Create a CM360 report with a recurring schedule. CM360 schedules are embedded in the report resource itself. The returned reportId is your schedule handle — use it with cm360_list_report_schedules and cm360_delete_report_schedule. **Schedule frequency values:** DAILY, WEEKLY, MONTHLY, QUARTERLY, YEARLY **Example schedule object:** ```json { "active": true, "every": 1, "repeats": "WEEKLY", "repeatsOnWeekDays": ["MONDAY"], "startDate": "2026-04-01", "expirationDate": "2026-12-31" } ```

  • cm360_delete_entityDelete CM360 Entitycan change or delete data

    Description is built at runtime.

  • cm360_delete_report_scheduleDelete CM360 Report Schedulecan change or delete data

    Delete a CM360 scheduled report (and its schedule). This permanently deletes the report resource. Use cm360_list_report_schedules to find the reportId.

  • cm360_download_reportDownload CM360 Reportread-only

    Download and parse a CM360 report from its download URL. Use the downloadUrl from cm360_get_report or cm360_check_report_status. Returns a bounded summary or paged row slice.

  • cm360_get_ad_previewGet CM360 Ad Previewread-only

    Get details for a CM360 ad, including its creative assignments and click-through configuration. Fetches the full ad entity. CM360 does not provide a native ad preview URL — use the returned creative assignments and ad configuration to understand the ad setup.

  • cm360_get_entityGet CM360 Entityread-only

    Description is built at runtime.

  • cm360_get_pacing_statusCalculate Campaign Pacing (Client-Side)read-only

    Client-side pacing calculator — does NOT call the Campaign Manager 360 API. Computes actual vs expected delivery given caller-supplied budget, spend-to-date, and flight dates. To populate spend, first call `cm360_get_report`; to populate flight dates, first call `cm360_get_entity` for the campaign (startDate / endDate). A CM360 campaign has no budget field: take the budget from your media plan, or from the placements' pricingSchedule.

  • cm360_get_reportGet CM360 Reportread-only

    Create and run a CM360 report, polling until completion (blocking). Uses the CM360 Reports API async workflow: 1. Create report definition 2. Trigger execution 3. Poll until REPORT_AVAILABLE 4. Return download URL This may take 30-120 seconds depending on report complexity.

  • cm360_get_report_breakdownsGet CM360 Report with Breakdownsread-only

    Create and run a CM360 report with additional breakdown dimensions (blocking). Like `cm360_get_report` but merges `breakdownDimensions` into the report criteria alongside any dimensions already specified in `criteria`. Use this to segment results by device, date, geography, creative, or any other CM360 dimension. **Common breakdown dimensions:** date, campaign, advertiser, site, creative, creativeType, device, country This may take 30-120 seconds depending on report complexity. Returns a `downloadUrl`. Use `cm360_download_report` with `includeComputedMetrics: true` to fetch the CSV data wi…

  • cm360_list_entitiesList CM360 Entitiesread-only

    Description is built at runtime.

  • cm360_list_report_schedulesList CM360 Report Schedulesread-only

    List CM360 reports that have an active schedule. Returns canonical ReportScheduleSummary entries for reports in the profile that contain an active schedule object. The original CM360 report envelopes are preserved on the sibling `raw` field for platform-specific debugging. Use a returned schedule's `scheduleId` as the handle for cm360_delete_report_schedule. Reads one page of CM360 reports (`scope=ALL`, so other users' reports in the account are included) and keeps the scheduled ones, so a page can hold no schedules and still have a next page: follow the pagination cursor until it is empty.

  • cm360_list_targeting_optionsList CM360 Targeting Optionsread-only

    List available targeting options from the CM360 API. Supports browsing browsers, connection types, content categories, countries, languages, metros, operating systems, platform types, and more. Most types take no parameters besides profileId and return their whole list in one response. Only contentCategories paginates (pageToken, maxResults; filters ids, searchString, sortField, sortOrder), and only cities filters (countryDartIds, dartIds, namePrefix, regionDartIds). Any other parameter is refused before the call.

  • cm360_list_user_profilesList CM360 User Profilesread-only

    List all CM360 user profiles accessible with the current credentials. This is the bootstrap call — profileId is required for all other CM360 operations. Call this first to discover available profiles.

  • cm360_submit_reportSubmit CM360 Report

    Submit a CM360 report without waiting for completion (non-blocking). Creates the report definition and triggers execution, then returns immediately with the reportId and fileId. Use cm360_check_report_status to poll for completion, then cm360_download_report to fetch results. Three-step async workflow: 1. cm360_submit_report -> get reportId + fileId 2. cm360_check_report_status -> check status 3. cm360_download_report -> download when REPORT_AVAILABLE

  • cm360_update_entityUpdate CM360 Entitycan change or delete data

    Description is built at runtime.

  • cm360_validate_entityValidate CM360 Entityread-only

    Dry-run validate a CM360 entity payload without making an API call. Checks that the data object has the expected structure for the given entity type and mode (create or update). No credentials or profileId required.

  • crossrepo_update_entitycan change or delete data

    Cross-repo golden fixture. Edited in lockstep across both repos.

  • dbm_get_campaign_deliveryGet Campaign Deliveryread-only

    Fetch DV360 delivery metrics (impressions, clicks, spend, conversions) for a campaign within a date range via Bid Manager API

  • dbm_get_historical_metricsGet Historical Metricsread-only

    Fetch time-series historical metrics for trend analysis

  • dbm_get_pacing_statusGet Pacing Statusread-only

    Get pacing status for a campaign (actual vs expected delivery) from Bid Manager report data, which lags real time by hours. Requires budget and flight dates as inputs; amounts are in the caller's currency.

  • dbm_get_performance_metricsGet Performance Metricsread-only

    Calculate performance metrics (CPM, CTR, CPA, ROAS) for a campaign within a date range

  • dbm_run_custom_queryRun Custom Queryread-only

    Execute a custom Bid Manager API query with any combination of filters and metrics. For available options, fetch these MCP Resources: - filter-types://all - Complete list of ~280 filter/dimension types - filter-types://category/{slug} - Category-specific filter subsets (e.g. filter-types://category/time) - metric-types://all - Complete list of ~100 metric types - metric-types://category/{slug} - Category-specific metric subsets (e.g. metric-types://category/video) - report-types://all - Report types and date range presets - query-examples://all - Example queries for common use cases Common g…

  • dbm_run_custom_query_asyncRun Custom Query (Async)read-only

    Execute a custom Bid Manager API query asynchronously. Returns a task handle immediately — poll via tasks/get for status, retrieve results via tasks/result when complete. Requires a client that supports MCP task-augmented tools/call; otherwise use dbm_run_custom_query. Use this for large or complex queries that may take time to execute. Accepts the same parameters as dbm_run_custom_query.

  • dv360_adjust_line_item_bidsAdjust Line Item Bidscan change or delete data

    Description is built at runtime.

  • dv360_bulk_create_entitiesBulk Create DV360 Entitiescan change or delete data

    Batch create up to 50 DV360 entities of the same type. Runs creates in parallel batches of up to 5 (DV360 API has no native batch endpoint). Failed items do not block the remaining batch — partial success is returned. Fetch entity-schema://{entityType} and entity-examples://{entityType} before calling.

  • dv360_bulk_update_entitiesBulk Update DV360 Entitiescan change or delete data

    Batch update up to 50 DV360 entities with updateMask discipline. Loops through items individually (DV360 API has no native batch endpoint). Returns partial success results — failed items do not block remaining updates. Fetch entity-fields://{entityType} and entity-examples://{entityType} before calling.

  • dv360_bulk_update_statusBulk Update Entity Statuscan change or delete data

    Description is built at runtime.

  • dv360_create_assigned_targetingCreate DV360 Assigned Targeting Optioncan change or delete data

    Create a new assigned targeting option on a DV360 entity (Advertiser, Line Item, or Ad Group). **Important:** Fetch the targeting schema first using the MCP resource `targeting-schema://{targetingType}` to understand required fields. **Example data payloads:** For TARGETING_TYPE_CHANNEL: ```json { "channelDetails": { "channelId": "123456", "negative": true } } ``` For TARGETING_TYPE_GEO_REGION: ```json { "geoRegionDetails": { "targetingOptionId": "2840", "negative": false } } ``` See MCP resource `targeting-types://` for all available targeting types.

  • dv360_create_custom_bidding_algorithmCreate Custom Bidding Algorithmcan change or delete data

    Create a new custom bidding algorithm in DV360 (Tier 2 workflow tool). **Algorithm Types:** - SCRIPT_BASED: Custom JavaScript-like bidding logic (most common) - RULE_BASED: Declarative rules (restricted to allowlisted customers) **Ownership:** - Advertiser-owned: Algorithm is scoped to a single advertiser - Partner-owned: Algorithm can be shared with multiple advertisers via sharedAdvertiserIds **Important Notes:** - Algorithm type is IMMUTABLE after creation - Ownership (advertiserId/partnerId) is IMMUTABLE after creation - Optionally upload initial script/rules during creation **Example …

  • dv360_create_entityCreate DV360 Entitycan change or delete data

    Description is built at runtime.

  • dv360_delete_assigned_targetingDelete DV360 Assigned Targeting Optioncan change or delete data

    Delete an assigned targeting option from a DV360 entity. **Warning:** This action is irreversible. The targeting option will be immediately removed from the entity. Use `dv360_list_assigned_targeting` first to find the assignedTargetingOptionId to delete.

  • dv360_delete_entityDelete Entitycan change or delete data

    Permanently delete a DV360 entity. Supported types: advertiser, campaign, insertionOrder, lineItem, adGroup, creative, inventorySourceGroup (DV360 has no delete method for customBiddingAlgorithm, inventorySource or locationList — archive those via dv360_update_entity instead). Deleted entities cannot be recovered (subsequent get returns 404). **Campaigns, insertion orders, line items and creatives must be in ENTITY_STATUS_ARCHIVED before delete** — DV360 rejects the delete otherwise, and this tool refuses before calling it. Use dv360_bulk_update_status with status=ENTITY_STATUS_ARCHIVED first,…

  • dv360_duplicate_entityDuplicate DV360 Entitycan change or delete data

    Duplicate a DV360 insertion order or line item. **Supported entity types:** insertionOrder, lineItem - **lineItem**: uses DV360's native `lineItems:duplicate` method — a server-side copy of the line item. The copy is never left running: if DV360 returns it ACTIVE it is set to PAUSED. Check its assigned targeting with dv360_list_assigned_targeting before activating it. - **insertionOrder**: DV360 has no native duplicate for insertion orders, so the tool reads the source, strips server-assigned fields and creates a new insertion order with the same configuration in **ENTITY_STATUS_DRAF…

  • dv360_get_ad_previewGet DV360 Creative Previewread-only

    Get the details needed to preview a DV360 creative. DV360's API exposes **no preview URL** for creatives (the v4 Creative resource has no such field), so this returns what can be used to render or inspect one instead: the third-party tag (HTML) for third-party display creatives, the VAST tag URL for third-party video/audio creatives, plus dimensions, creative type, hosting source and review/approval status. Use the DV360 UI to see a rendered preview of a DV360-hosted creative. **Usage:** Use creativeId from dv360_list_entities or dv360_create_entity.

  • dv360_get_assigned_targetingGet DV360 Assigned Targeting Optionread-only

    Get a single assigned targeting option by ID. Use this to retrieve details of a specific targeting configuration on an Advertiser, Line Item, or Ad Group.

  • dv360_get_delivery_estimateGet DV360 Delivery Estimateread-only

    Get delivery and targeting information for an existing DV360 line item, for campaign planning. Fetches the line item's configuration (budget, pacing, bid strategy, flight) and all of its assigned targeting options, giving a complete picture of its current delivery settings and targeting scope. This is configuration context, not a volume forecast — DV360's API exposes no advertiser-level default line item or delivery forecast to read here.

  • dv360_get_entityGet DV360 Entityread-only

    Description is built at runtime.

  • dv360_get_pacing_statusCalculate Campaign Pacing (Client-Side)read-only

    Client-side pacing calculator — does NOT call the DV360 API. Computes actual vs expected delivery given caller-supplied budget, spend-to-date, and flight dates. To populate spend, first call `dbm_get_performance_metrics` (Bid Manager API); to populate budget and flight dates, first call `dv360_get_entity` for the campaign.

  • dv360_list_assigned_targetingList DV360 Assigned Targeting Optionsread-only

    List assigned targeting options for a DV360 entity (Advertiser, Line Item, or Ad Group). **Parent Types:** - advertiser: Advertiser-wide targeting (brand safety, channel exclusions) - lineItem: Targeting at line item level (audience, inventory) - adGroup: Targeting at ad group level (keywords, placements) **Common Targeting Types:** - TARGETING_TYPE_CHANNEL: Channel inclusions/exclusions - TARGETING_TYPE_GEO_REGION: Geographic targeting - TARGETING_TYPE_KEYWORD: Keyword targeting - TARGETING_TYPE_URL: URL/placement targeting See MCP resource `targeting-types://` for full list of all 50 targ…

  • dv360_list_custom_bidding_algorithmsList Custom Bidding Algorithmsread-only

    List custom bidding algorithms accessible to a partner or advertiser (Tier 2 workflow tool). **Access Patterns:** - By Partner ID: Lists algorithms owned by the partner + shared with partner's advertisers - By Advertiser ID: Lists algorithms owned by or shared with the advertiser **Algorithm Types:** - SCRIPT_BASED: Custom JavaScript-like bidding logic - RULE_BASED: Declarative rules (restricted to allowlisted customers) **Model Readiness States:** - ACTIVE: Algorithm is trained and ready - INSUFFICIENT_DATA: Not enough data to train - TRAINING: Model is being trained - NO_VALID_SCRIPT: No …

  • dv360_list_entitiesList DV360 Entitiesread-only

    Description is built at runtime.

  • dv360_manage_custom_bidding_rulesManage Custom Bidding Rulescan change or delete data

    Upload and manage rules for RULE_BASED custom bidding algorithms (Tier 2 workflow tool). **Important:** RULE_BASED algorithms are restricted to allowlisted customers. If your account is not allowlisted, you will receive an error when trying to use this feature. **Actions:** - upload: Upload a new rules version to the algorithm - list: List all rules for an algorithm - get: Get details of a specific rules resource - getActive: Get the currently active rules **Rules States:** - ACCEPTED: Rules are ready for scoring impressions - REJECTED: Rules have errors (check error field for details) **I…

  • dv360_manage_custom_bidding_scriptManage Custom Bidding Scriptcan change or delete data

    Upload and manage scripts for SCRIPT_BASED custom bidding algorithms (Tier 2 workflow tool). **Actions:** - upload: Upload a new script version to the algorithm - list: List all scripts for an algorithm - get: Get details of a specific script - getActive: Get the currently active script **Required scope:** Pass `advertiserId` (algorithm is advertiser-owned) OR `partnerId` (algorithm is partner-owned). DV360 returns 403 'permission for partner 0' otherwise. **Script States:** - PENDING: Script is being processed by backend - ACCEPTED: Script is ready for scoring impressions - REJECTED: Scrip…

  • dv360_update_entityUpdate Entitycan change or delete data

    Description is built at runtime.

  • dv360_upload_imageUpload Image to DV360can change or delete data

    Upload an image asset to a DV360 advertiser from a URL. The server downloads the image and uploads it via the DV360 asset upload API. Returns the assetId which can be used when creating creatives. **Image requirements:** - Formats: JPEG, PNG, GIF, WEBP - Check DV360 creative specs for size/dimension requirements per creative type **Usage:** The returned assetId is used when creating or updating DV360 creatives.

  • dv360_upload_videoUpload Video to DV360can change or delete data

    Upload a video asset to a DV360 advertiser from a URL. The server downloads the video and uploads it via the DV360 asset upload API. DV360 uses the same /assets endpoint for both images and videos. Returns the assetId which can be used when creating video creatives. **Video requirements:** - Formats: MP4, MOV, AVI, WEBM - Check DV360 creative specs for duration/size requirements per creative type **Usage:** The returned assetId is used when creating or updating DV360 video creatives.

  • dv360_validate_entityValidate DV360 Entity (Client-Side)read-only

    Description is built at runtime.

  • dv360_validate_targeting_configValidate DV360 Targeting Configurationread-only

    Validate targeting configuration across multiple DV360 entities. This workflow tool fetches and validates targeting settings for: - Channel exclusions at Advertiser level - Geographic targeting at Line Item level - Placement settings at Ad Group level - Keyword exclusions at Ad Group level **Use cases:** - Audit targeting before campaign launch - Verify brand safety settings - Check geographic reach Provide entity IDs to check. The tool will fetch targeting for each and report any issues.

  • echoEchoread-only

    Echoes back the provided message. Used for connectivity testing and conformance validation.

  • gads_adjust_bidsGoogle Ads Bid Adjustmentcan change or delete data

    Batch adjust ad group bids with safe read-modify-write pattern. For each ad group, the tool: 1. Reads the current ad group to capture previous bid values 2. Applies the new CPC and/or CPM bid amounts 3. Writes the update via the :mutate endpoint with a targeted updateMask Returns both previous and new values for audit trail. **Bid amounts are in micros** (1,000,000 = $1.00 USD). For example: - $1.50 CPC = "1500000" - $5.00 CPM = "5000000" Up to 50 ad groups can be adjusted in a single call. **Note:** Uses a read-modify-write pattern. Concurrent bid adjustments to the same ad group may cau…

  • gads_bulk_create_entitiesBulk Create Google Ads Entitiescan change or delete data

    Description is built at runtime.

  • gads_bulk_mutateBulk Mutate Google Ads Entitiescan change or delete data

    Description is built at runtime.

  • gads_bulk_update_statusBulk Update Google Ads Entity Statuscan change or delete data

    Description is built at runtime.

  • gads_create_entityCreate Google Ads Entitycan change or delete data

    Description is built at runtime.

  • gads_duplicate_entityDuplicate Google Ads Entity

    Description is built at runtime.

  • gads_gaql_searchGoogle Ads GAQL Searchread-only

    Execute a Google Ads Query Language (GAQL) query against any Google Ads resource. Supports resource fields, segment fields, and metrics with SQL-like syntax. See `gaql-reference://syntax` resource for full reference.

  • gads_get_ad_previewGet Google Ads Ad Previewread-only

    Get preview information for a Google Ads ad. Fetches the ad entity via GAQL and returns its type, resource name, and final URLs. This is entity data, not a rendered preview: the Google Ads API has no ad-render endpoint. Its only preview method, customers:generateShareablePreviews, returns shareable preview URLs for asset groups (UI preview) or ad group ads (YouTube live preview) and is not called here. **Usage:** Use adId from gads_list_entities with entityType=ad or gads_create_entity. The adId is the numeric ID, not the resource name.

  • gads_get_entityGet Google Ads Entityread-only

    Description is built at runtime.

  • gads_get_insightsGoogle Ads Performance Insightsread-only

    Get performance insights for Google Ads entities using preset parameters. Convenience wrapper around GAQL that constructs queries from simple inputs. For ad-hoc queries, use `gads_gaql_search` directly. **Supported entity types:** campaign, adGroup, ad, keyword **Default metrics:** impressions, clicks, cost_micros, conversions, ctr, average_cpc **Date ranges:** Preset (TODAY, YESTERDAY, LAST_7_DAYS, etc.) OR custom (startDate + endDate) **Computed metrics:** Set includeComputedMetrics=true for derived CPA, ROAS, CPM

  • gads_get_pacing_statusCalculate Campaign Pacing (Client-Side)read-only

    Client-side pacing calculator — does NOT call the Google Ads API. Computes actual vs expected delivery given caller-supplied budget, spend-to-date, and flight dates. To populate spend, first call `gads_get_insights`; to populate budget and flight dates, first call `gads_get_entity` for the campaign. Note: spendToDate should be in actual currency units (not micros).

  • gads_list_accountsList Google Ads Accountsread-only

    List all Google Ads customer accounts accessible to the authenticated user. Returns resource names in the format `customers/{customerId}`. Use the customer IDs from this list for all other Google Ads tools.

  • gads_list_entitiesList Google Ads Entitiesread-only

    List Google Ads entities of a given type with optional GAQL filters. Filters are applied as GAQL WHERE conditions. For complex queries, use `gads_gaql_search` directly.

  • gads_remove_entityRemove Google Ads Entitycan change or delete data

    Description is built at runtime.

  • gads_update_entityUpdate Google Ads Entitycan change or delete data

    Description is built at runtime.

  • gads_upload_imageUpload Image Asset to Google Adscan change or delete data

    Upload an image to Google Ads as an ImageAsset from a URL. The server downloads the image and creates an ImageAsset via AssetService (`assets:mutate`, base64 `imageAsset.data`). The returned asset resource name is referenced by image ads and extensions. This is a convenience wrapper over `gads_create_entity` (entityType `asset`) that handles the download + base64 encoding for you. **Image requirements:** - Formats: JPEG, PNG, GIF - Max file size: 5MB Note: video assets reference a YouTube video ID rather than uploaded bytes; create them with `gads_upload_video` (or `gads_create_entity`, ent…

  • gads_upload_videoCreate a Video Asset in Google Adscan change or delete data

    Create a video asset in Google Ads from a YouTube video ID. **This tool uploads no video file.** A Google Ads video asset is a `YouTubeVideoAsset` that *references* a video already hosted on YouTube — you provide the YouTube video ID, not a file. Google Ads' YouTubeVideoUploadService (`youTubeVideoUploads:create`) can upload a file to YouTube, but no tool on this server wraps it, so host the video on YouTube first, then pass its ID here. This tool creates the asset via AssetService (`assets:mutate`, `type: YOUTUBE_VIDEO`, `youtubeVideoAsset.youtubeVideoId`) and returns the asset resource nam…

  • gads_validate_entityGoogle Ads Entity Validation (Dry Run)read-only

    Description is built at runtime.

  • linkedin_adjust_bidsLinkedIn Ads Bid Adjustmentcan change or delete data

    Batch adjust campaign bid amounts. Updates the `unitCost` (bid) for each campaign via PATCH. **bid structure:** `{ "amount": "10.00", "currencyCode": "USD" }` **Gotchas:** - Only applies to campaigns with manual bidding (bidType: CPM, CPC, etc.). - LOWEST_COST campaigns may ignore unitCost. - Each adjustment consumes 3x rate limit tokens (write operation). - Max 50 adjustments per call.

  • linkedin_bulk_create_entitiesBulk Create LinkedIn Ads Entitiescan change or delete data

    Description is built at runtime.

  • linkedin_bulk_update_entitiesBulk Update LinkedIn Ads Entitiescan change or delete data

    Description is built at runtime.

  • linkedin_bulk_update_statusBulk Update LinkedIn Ads Entity Statuscan change or delete data

    Description is built at runtime.

  • linkedin_create_entityCreate LinkedIn Ads Entitycan change or delete data

    Description is built at runtime.

  • linkedin_delete_entityDelete LinkedIn Ads Entitycan change or delete data

    Description is built at runtime.

  • linkedin_duplicate_entityDuplicate LinkedIn Ads Entitycan change or delete data

    Description is built at runtime.

  • linkedin_get_ad_previewGet LinkedIn Ads Ad Previewread-only

    Get the preview of an existing LinkedIn Ads creative. Returns one preview per placement (e.g. FEED on DESKTOP_WEBSITE and MOBILE_WEBSITE), each an `<iframe>` HTML string to embed. The iframes are valid for about 3 hours; call again for a fresh one. LinkedIn supports previews of single image, carousel, video, single job and event ads. This previews a creative that already exists. Previewing content before a creative is created is a separate LinkedIn call (livePreviewForCreative) that this tool does not make.

  • linkedin_get_analyticsGet LinkedIn Ads Analyticsread-only

    Description is built at runtime.

  • linkedin_get_analytics_breakdownsGet LinkedIn Ads Analytics with Breakdownsread-only

    Description is built at runtime.

  • linkedin_get_audience_countGet LinkedIn Ads Audience Countread-only

    Count the LinkedIn members that match a targetingCriteria. Returns `active` (members more likely to visit LinkedIn) and `total` (all matching members, a rounded approximation). LinkedIn reports `total` as 0 when the audience is under 300 members, to protect member privacy; 300 is also the minimum audience needed to run a campaign. So a total of 0 means "too small to report", not necessarily an empty audience. This is the audience size. For impressions, clicks and spend over a period, use linkedin_get_delivery_forecast.

  • linkedin_get_delivery_forecastGet LinkedIn Ads Delivery Forecastread-only

    Forecast impressions, clicks, spend and related metrics for a LinkedIn campaign setup, using LinkedIn's Ad Supply Forecasts API. Give the campaign type, a future date range, the targeting, and a budget (`dailyBudget` or `totalBudget`). With no `optimizationTarget` LinkedIn forecasts manual bidding and needs a `competingBid`; with an auto-bidding `optimizationTarget` it forecasts that. The result is `elements[{ metricType, granularity, timeSeries[{ timestamp, value, adForecastRange }] }]` — IMPRESSION, CLICK, SPENDING, REACH, … at DAILY, SEVEN_DAY, THIRTY_DAY and CUSTOM granularity, each with…

  • linkedin_get_entityGet LinkedIn Ads Entityread-only

    Description is built at runtime.

  • linkedin_get_pacing_statusCalculate Campaign Pacing (Client-Side)read-only

    Client-side pacing calculator — does NOT call the LinkedIn API. Computes actual vs expected delivery given caller-supplied budget, spend-to-date, and flight dates. To populate spend, first call `linkedin_get_analytics`; to populate budget and flight dates, first call `linkedin_get_entity` for the campaign.

  • linkedin_get_targeting_optionsList LinkedIn Ads Targeting Facetsread-only

    List the targeting facets LinkedIn offers (industries, seniorities, locations, skills, …). Each facet has a `facetName`, an `adTargetingFacetUrn` (urn:li:adTargetingFacet:<facetName>, the key used in targetingCriteria), the `entityTypes` it holds, and the `availableEntityFinders` (AD_TARGETING_FACET = browse all values, TYPEAHEAD = search, SIMILAR_ENTITIES). This is LinkedIn's plain facet list: it takes no parameters and does not depend on the ad account. Use linkedin_search_targeting to get the values inside a facet.

  • linkedin_list_ad_accountsList LinkedIn Ad Accountsread-only

    List LinkedIn Ads accounts accessible to the authenticated user. Returns ad accounts with their URNs, names, status, and currency. Use the returned URNs as `adAccountUrn` in other tools.

  • linkedin_list_entitiesList LinkedIn Ads Entitiesread-only

    List LinkedIn Ads entities with offset-based pagination. Most entity types require `adAccountUrn` for scoping. All LinkedIn IDs are URNs (e.g., `urn:li:sponsoredAccount:123`). Use `start` offset for subsequent pages.

  • linkedin_search_targetingSearch LinkedIn Ads Targeting Entitiesread-only

    Find the values inside a LinkedIn targeting facet — the URNs to put in targetingCriteria. Uses LinkedIn's adTargetingEntities API. The finder is chosen from your arguments: - `facet` alone → every value of the facet (e.g. facet "seniorities") - `facet` + `query` → search within the facet (typeahead, e.g. facet "industries", query "software") - `facet` + `entities` → values similar to the given ones (e.g. employers like urn:li:organization:1003) - `urns` alone → resolve value URNs to names (no facet) `facet` is a camelCase facet name ("locations", "skills", "titles", …) or its URN. Not every …

  • linkedin_update_entityUpdate LinkedIn Ads Entitycan change or delete data

    Description is built at runtime.

  • linkedin_upload_imageUpload Image to LinkedIn Adscan change or delete data

    Upload an image to LinkedIn Ads from a URL. The server downloads the image and uploads it to LinkedIn's Digital Media Assets library. Two requests after the download: register the upload (`POST /v2/assets?action=registerUpload`), then PUT the bytes to the returned upload URL. No confirm or finalize request is sent; the asset URN comes from the register response. **Image requirements:** - Formats: JPEG, PNG, GIF - Min: 400x400px (Sponsored Content), recommended 1200x627px - Max file size: 5MB - Aspect ratios: 1.91:1 (horizontal), 1:1 (square), 2:3 (vertical) **Usage:** The returned assetUrn …

  • linkedin_upload_videoUpload Video to LinkedIn Adscan change or delete data

    Upload a video to LinkedIn Ads from a URL. The server downloads the video and uploads it to LinkedIn's Digital Media Assets library. Two requests after the download: register the upload (`POST /v2/assets?action=registerUpload`), then PUT the bytes to the returned upload URL. No confirm or finalize request is sent; the asset URN comes from the register response. **Video requirements:** - Formats: MP4 (H.264) - Max file size: 200MB - Duration: 3 seconds to 30 minutes - Recommended: 1920x1080px (16:9), 1080x1080px (1:1) **Usage:** The returned assetUrn is referenced in creative → content → med…

  • meta_adjust_bidsMeta Ads Bid Adjustmentcan change or delete data

    Batch adjust ad set bid amounts with safe read-modify-write. Reads current bids, applies new values, and reports previous/new amounts. Amounts are in cents (100 = $1.00 USD). **Gotchas:** - Only applies to ad sets with manual bidding (bid_amount field). - Ad sets using auto-bidding strategies (e.g., LOWEST_COST_WITHOUT_CAP) may ignore bid_amount. - A warning is included in results for ad sets that appear to use auto-bidding. - Budget values are in cents (100 = $1.00 USD). - Each read + write pair consumes 4x rate limit tokens total. - Max 50 adjustments per call.

  • meta_bulk_create_entitiesBulk Create Meta Ads Entitiescan change or delete data

    Description is built at runtime.

  • meta_bulk_update_entitiesBulk Update Meta Ads Entitiescan change or delete data

    Description is built at runtime.

  • meta_bulk_update_statusBulk Update Meta Ads Entity Statuscan change or delete data

    Description is built at runtime.

  • meta_check_report_statusCheck Meta Report Statusread-only

    Check the status of an async Meta Ads insights report job. Poll this tool after `meta_submit_report` until `isComplete` is true, then call `meta_download_report`. **Canonical states:** `pending`, `running`, `complete`, `failed`, `cancelled`. Meta source states are mapped — "Job Completed" → `complete`, "Job Failed" → `failed`, "Job Started"/"Job Running" → `running`, everything else → `pending`. The original Meta status string is returned as `rawStatus`.

  • meta_create_entityCreate Meta Ads Entitycan change or delete data

    Description is built at runtime.

  • meta_delete_entityDelete Meta Ads Entitycan change or delete data

    Description is built at runtime.

  • meta_download_reportDownload Meta Report Resultsread-only

    Download results from a completed Meta Ads async insights report. Only call this after `meta_check_report_status` returns `isComplete: true` (status "Job Completed"). Returns the insights data rows from the completed report run.

  • meta_duplicate_entityDuplicate Meta Ads Entitycan change or delete data

    Description is built at runtime.

  • meta_get_ad_previewGet Meta Ad Previewread-only

    Get preview HTML for an ad in a specific format. Returns temporary HTML iframe content showing how the ad will appear. **Common ad formats:** DESKTOP_FEED_STANDARD, MOBILE_FEED_STANDARD, INSTAGRAM_STANDARD, RIGHT_COLUMN_STANDARD, AUDIENCE_NETWORK_INSTREAM_VIDEO, MARKETPLACE_MOBILE

  • meta_get_available_metricsGet Meta Available Metrics & Breakdownsread-only

    List the Meta Marketing API Insights metrics, breakdowns, and action breakdowns available for a given entity level. Use this before calling `meta_get_insights` or `meta_get_insights_breakdowns` to discover valid field names. **levels:** account, campaign, adset, ad — the entity level you plan to report on. The response groups metrics by semantic category (delivery, engagement, video, conversions, attribution, quality, other) so you can quickly pick the fields that match what you care about. Breakdowns and action breakdowns are returned as flat lists. **Source:** static catalog seeded from …

  • meta_get_delivery_estimateGet Meta Delivery Estimateread-only

    Get estimated audience size and delivery estimates for a targeting spec. Requires a targeting specification with at least one location or custom audience. Returns estimated daily reach, impressions, and audience size.

  • meta_get_entityGet Meta Ads Entityread-only

    Description is built at runtime.

  • meta_get_insightsGet Meta Ads Insightsread-only

    Get performance insights for a Meta Ads entity (account, campaign, ad set, or ad). Uses GET /{entityId}/insights with date presets or custom date ranges. **Common date presets:** today, yesterday, this_month, last_month, this_quarter, last_quarter, this_year, last_year, last_3d, last_7d, last_14d, last_28d, last_30d, last_90d, last_week_mon_sun, last_week_sun_sat, this_week_mon_today, this_week_sun_today, maximum, data_maximum **Common metrics (fields):** impressions, clicks, spend, cpc, cpm, ctr, reach, frequency, actions, action_values, conversions, cost_per_action_type **Gotchas:** - Da…

  • meta_get_insights_breakdownsGet Meta Ads Insights with Breakdownsread-only

    Get performance insights broken down by dimension (age, gender, country, device, etc.). **Common breakdowns:** age, gender, country, region, dma, device_platform, platform_position, publisher_platform **Valid combinations:** age+gender OK, country+region NOT OK (same dimension). **Action attribution windows:** 1d_click, 7d_click, 1d_view, 7d_view **Gotchas:** - Not all breakdown combinations are valid. - Some breakdowns dramatically increase result volume. - Use `maxRows` to control how many rows are returned.

  • meta_get_pacing_statusCalculate Campaign Pacing (Client-Side)read-only

    Client-side pacing calculator — does NOT call the Meta API. Computes actual vs expected delivery given caller-supplied budget, spend-to-date, and flight dates. To populate spend, first call `meta_get_insights`; to populate budget and flight dates, first call `meta_get_entity` for the campaign. Pass both amounts in the same unit: `meta_get_entity` returns `lifetime_budget` in the account currency's minor unit (cents for USD; the base unit for zero-decimal currencies such as JPY), while insights `spend` is in the major unit — so divide a USD budget by 100 before passing it as `budgetTotal`.

  • meta_get_targeting_optionsBrowse Meta Targeting Optionsread-only

    Browse available targeting categories for an ad account. Returns targeting options organized by category (interests, behaviors, demographics, etc.). Use this to discover available targeting dimensions before building a targeting spec.

  • meta_list_ad_accountsList Meta Ad Accountsread-only

    List ad accounts accessible to the authenticated user. Returns account ID (with act_ prefix), name, status, currency, timezone, and spend. Use this to discover available ad accounts before performing other operations.

  • meta_list_entitiesList Meta Ads Entitiesread-only

    List Meta Ads entities with optional filtering and cursor-based pagination. All entities are scoped to an ad account. Specify `fields` to control returned data (Meta returns no fields by default). Use `after` cursor for subsequent pages.

  • meta_manage_budget_scheduleMeta Ads Budget Schedule Management

    Create or list budget schedules for a campaign. Budget schedules allow temporary budget increases during high-demand periods (e.g., flash sales, holidays). Uses POST /{campaignId}/budget_schedules. **Operations:** - `create` — Create a new budget schedule on a campaign - `list` — List existing budget schedules for a campaign **Create requires (in `data`):** - `budget_value` (integer) — ABSOLUTE: budget amount in cents (e.g., 5000 for $50); MULTIPLIER: the multiplier value applied to the campaign's budget - `budget_value_type` — ABSOLUTE or MULTIPLIER - `time_start` (integer) — Unix timestam…

  • meta_search_targetingSearch Meta Targeting Optionsread-only

    Search for targeting options (interests, behaviors, demographics) by keyword. **Search types:** - `adinterest` — Search interests by keyword - `adinterestsuggestion` — Get suggestions based on existing interests - `adinterestvalid` — Validate interest IDs - `adTargetingCategory` — Browse targeting categories; pass the category in `targetingClass` - `adgeolocation` — Search geographic locations - `adlocale` — Search locales/languages - Also: `adcountry`, `adzipcode`, `adgeolocationmeta`, `adradiussuggestion`, `adkeyword`, `adeducationschool`, `adeducationmajor`, `adworkemployer`, `adworkpositi…

  • meta_submit_reportSubmit Meta Async Insights Report

    Submit a Meta Ads async insights report without waiting for completion. Returns a `reportRunId` immediately. Use `meta_check_report_status` to poll for completion, then `meta_download_report` to fetch results. **Non-blocking workflow:** 1. `meta_submit_report` → get `reportRunId` 2. `meta_check_report_status` (repeat every 10s) → wait for "Job Completed" 3. `meta_download_report` with the `reportRunId` → get parsed data **Status values:** "Job Not Started", "Job Started", "Job Running", "Job Completed", "Job Failed" Use `meta_get_insights` instead for a blocking convenience shortcut on sma…

  • meta_update_entityUpdate Meta Ads Entitycan change or delete data

    Description is built at runtime.

  • meta_upload_imageUpload Image to Meta Ads

    Upload an image to Meta Ads Library from a URL. The server downloads the image and uploads it to Meta's ad image library. Returns the image hash which can be used in ad creative payloads. **Image requirements:** - Formats: JPEG, PNG, GIF - Max file size: 30MB - Recommended: 1200x628px (1.91:1 ratio) for link ads - Square 1080x1080px for Stories/Reels **Usage:** The returned imageHash is used in adCreative → object_story_spec → link_data → image_hash

  • meta_upload_videoUpload Video to Meta Ads

    Description is built at runtime.

  • msads_adjust_bidsAdjust Microsoft Ads Bids

    Batch adjust bids for Microsoft Advertising keywords or ad groups. Reads the entities first to confirm they exist, then sends a minimal Update carrying only each entity's Id and bid field as a Bid object (`{ "Amount": newBid }`), so no other field is touched. Keyword bids (`Bid`) need `scope.adGroupId`; ad group bids (`CpcBid`, `CpmBid`, `CpvBid`) need `scope.campaignId` — the parent is sent as the request-body AdGroupId / CampaignId. All entities in one call share that parent.

  • msads_bulk_create_entitiesBulk Create Microsoft Ads Entities

    Batch create multiple Microsoft Advertising entities in a single operation. Items are automatically batched per entity type limits. Each batch is sent as a separate API call. All items in one call belong to one parent, sent as the request-body parent element Microsoft Ads' Add operation requires: campaign and adExtension need `accountId`, adGroup needs `campaignId`, ad and keyword need `adGroupId`. budget, label and audience take no parent.

  • msads_bulk_update_entitiesBulk Update Microsoft Ads Entities

    Batch update multiple Microsoft Advertising entities. Each item must include the Id field. Only include fields you want to change. All items in one call belong to one parent, sent as the request-body parent element Microsoft Ads' Update operation requires: campaign and adExtension need `accountId`, adGroup needs `campaignId`, ad and keyword need `adGroupId`. budget, label and audience take no parent.

  • msads_bulk_update_statusBulk Update Microsoft Ads Entity Statuscan change or delete data

    Batch update the status of multiple Microsoft Advertising entities. Valid statuses: Active, Paused. Microsoft Advertising's `Deleted` status is "for internal use only" on every one of these entity types; delete an entity with msads_delete_entity. Supported entity types are the ones with a settable Status: campaign, adGroup, ad, keyword. All IDs in one call belong to one parent, sent as the request-body parent element Microsoft Ads' Update operation requires: campaign needs `accountId`, adGroup needs `campaignId`, ad and keyword need `adGroupId`.

  • msads_check_report_statusCheck Microsoft Ads Report Statusread-only

    Check the status of a previously submitted Microsoft Advertising report. **Canonical states:** `pending`, `running`, `complete`, `failed`, `cancelled`. Microsoft Ads raw statuses (Pending/InProgress/Success/Error) are mapped; the raw string is returned as `rawStatus`. Returns the canonical state and download URL when the report is ready.

  • msads_create_entityCreate Microsoft Ads Entity

    Description is built at runtime.

  • msads_create_report_scheduleCreate Microsoft Ads Report Schedule

    NOT SUPPORTED — always fails without calling Microsoft Advertising. Nothing is scheduled. The Microsoft Advertising Reporting API v13 has no report schedules: it exposes only GenerateReport/Submit and GenerateReport/Poll, and ReportRequest has no Schedule element. No API call can create, list or delete a report schedule. For a one-off report use msads_submit_report + msads_check_report_status, or msads_get_report.

  • msads_delete_entityDelete Microsoft Ads Entitycan change or delete data

    Delete one or more Microsoft Advertising entities by their IDs. This is a destructive operation — entities will be permanently deleted.

  • msads_delete_report_scheduleDelete Microsoft Ads Report Schedulecan change or delete data

    NOT SUPPORTED — always fails without calling Microsoft Advertising. Nothing is deleted. The Microsoft Advertising Reporting API v13 has no report schedules: it exposes only GenerateReport/Submit and GenerateReport/Poll, so there is no schedule to delete via the API, and msads_create_report_schedule never creates one.

  • msads_download_reportDownload Microsoft Ads Reportread-only

    Download and parse a completed Microsoft Advertising report from its download URL. Use after msads_check_report_status returns a downloadUrl. Returns a bounded summary or paged row slice.

  • msads_duplicate_entityDuplicate Microsoft Ads Entity

    Description is built at runtime.

  • msads_get_ad_detailsGet Microsoft Ads Ad Detailsread-only

    Get the full details of one or more Microsoft Advertising ads — copy, URLs, status, and other fields. Microsoft Advertising does not expose a rendered ad-preview endpoint; this tool returns the stored ad payload via the CampaignManagement /Ads/QueryByIds operation.

  • msads_get_entityGet Microsoft Ads Entityread-only

    Retrieve a single Microsoft Advertising entity by its ID. Returns full entity details for the specified entity type and ID. Some Microsoft Advertising query operations require parent or account context in addition to the ID (campaign needs accountId, adGroup needs campaignId, etc.).

  • msads_get_pacing_statusCalculate Campaign Pacing (Client-Side)read-only

    Client-side pacing calculator — does NOT call the Microsoft Advertising API. Computes actual vs expected delivery given caller-supplied budget, spend-to-date, and flight dates. To populate spend, first call `msads_get_report`; to populate budget and flight dates, first call `msads_get_entity` for the campaign.

  • msads_get_reportGet Microsoft Ads Reportread-only

    Submit a Microsoft Advertising report request, poll until complete, and download results (blocking). Report types: CampaignPerformanceReportRequest, AdGroupPerformanceReportRequest, AdPerformanceReportRequest, KeywordPerformanceReportRequest, SearchQueryPerformanceReportRequest, etc. This is a blocking operation — it will wait for the report to complete before returning.

  • msads_get_report_breakdownsGet Microsoft Ads Report with Breakdownsread-only

    Submit a Microsoft Advertising report with additional breakdown columns and poll until complete (blocking). Like `msads_get_report` but adds `breakdownColumns` (dimension/segment columns) to segment data by device, network, time-of-day, match type, and more. **Common breakdown columns:** DeviceOS, Network, TopVsOther, MatchType, AccountName, TimePeriod Results will include one row per combination of entity + breakdown dimensions.

  • msads_get_targeting_optionsGet Microsoft Ads Targeting Options (Static Reference)read-only

    Discover the valid criterion targeting values to pass to `msads_manage_criterions`. This is the read-side counterpart to the criterion writes. This tool does NOT call the Microsoft Advertising API — the values are fixed enums in the Campaign Management API schema (not a queryable endpoint), so they are served locally. Supported targeting types: - age: AgeRange criterion values - gender: Gender criterion values - device: DeviceType criterion values - day: DayTime criterion day-of-week values (combine with FromHour/ToHour for dayparting) Location targets are NOT enumerable via the REST API — …

  • msads_import_from_googleImport from Google Ads

    Import campaigns from Google Ads into Microsoft Advertising using the ImportJobs API. This is a Microsoft Ads-specific feature that allows migrating Google Ads campaigns, ad groups, ads, and keywords into your Microsoft Ads account. Operations: - create: Create a new import job — `{ ImportJobs: [{ Type: "GoogleImportJob", Name, GoogleAccountId, CredentialId }] }`. GoogleAccountId is the numeric Google Ads customer ID (a long, no dashes); Name and CredentialId are required. The CredentialId authorizes Microsoft Advertising to read the Google Ads account and is obtained through the Microsoft A…

  • msads_list_accountsList Microsoft Ads Accountsread-only

    List accessible Microsoft Advertising accounts for the authenticated user. Uses the Customer Management API SearchAccounts operation. Microsoft Advertising requires at least one predicate for SearchAccounts.

  • msads_list_entitiesList Microsoft Ads Entitiesread-only

    Description is built at runtime.

  • msads_list_report_schedulesList Microsoft Ads Report Schedulesread-only

    List scheduled reports in Microsoft Advertising. Note: The Microsoft Advertising Reporting API v13 has no report schedules — it exposes only GenerateReport/Submit and GenerateReport/Poll — so this tool returns guidance only and never lists anything. If Microsoft Advertising exposed such an endpoint, this tool would return an array of canonical `ReportScheduleSummary` entries (the same cross-platform shape used by `ttd_list_report_schedules` and `cm360_list_report_schedules`), mapped via the shared `fromMsAdsSchedule` normalizer, with the raw Microsoft Advertising envelopes preserved on a sib…

  • msads_manage_ad_extensionsManage Microsoft Ads Ad Extensionscan change or delete data

    Manage ad extensions in Microsoft Advertising — associate/disassociate extensions with campaigns or ad groups. Operations: - setAssociations: Link ad extensions to campaigns or ad groups - deleteAssociations: Remove ad extension associations - getAssociations: Query ad extension associations for campaigns or ad groups

  • msads_manage_criterionsManage Microsoft Ads Targeting Criterionscan change or delete data

    Manage targeting criterions for Microsoft Advertising campaigns and ad groups. Operations: - add: Add targeting criterions (location, age, gender, device, etc.) - update: Update existing criterions (e.g., bid adjustments) - delete: Remove criterions - getByCampaign: Get criterions for a campaign - getByAdGroup: Get criterions for an ad group

  • msads_search_targetingList Microsoft Ads Targeting Options (Static Reference)read-only

    Static reference catalog of the demographic targeting enum values Microsoft Advertising accepts — this tool does NOT call the Microsoft Advertising API. These values are fixed enums in the Campaign Management API schema (not a queryable endpoint), so they are served locally. Supported targeting types: - age: the fixed AgeRange enum values - gender: the fixed Gender enum values - device: the fixed DeviceType enum values For the fuller criterion reference (adds dayparting days), use `msads_get_targeting_options`. Location targets are not enumerable via the REST API — use the Campaign Managemen…

  • msads_submit_reportSubmit Microsoft Ads Report

    Submit a Microsoft Advertising report request without waiting for completion (non-blocking). Returns a ReportRequestId that can be used with msads_check_report_status to poll for results.

  • msads_update_entityUpdate Microsoft Ads Entity

    Description is built at runtime.

  • msads_validate_entityValidate Microsoft Ads Entityread-only

    Dry-run validate a Microsoft Advertising entity payload without making any API calls. Checks that the entity type is valid and required fields are present. Does NOT call the Microsoft Ads API. Per-entity enum field rules are also exposed as MCP resources. Valid values: see resource `msads-field-rules://{entityType}`.

  • pinterest_adjust_bidsPinterest Ad Group Bid Adjustmentcan change or delete data

    Batch adjust ad group bid prices with safe read-modify-write. Reads current bid prices, applies new values, and reports previous/new amounts. Bid prices are in the advertiser's account currency (e.g. 1.5 = $1.50); the server converts them to Pinterest's integer `bid_in_micro_currency` (x 1,000,000). **Gotchas:** - Writes the ad group's `bid_in_micro_currency`; meaningful for manual bid strategies (`bid_strategy_type` MAX_BID / TARGET_AVG). - Ad groups on AUTOMATIC_BID are bid by Pinterest and may ignore `bid_in_micro_currency`. - Each read + write pair consumes rate limit tokens. - Max 50 ad…

  • pinterest_bulk_create_entitiesPinterest Bulk Create Entitiescan change or delete data

    Description is built at runtime.

  • pinterest_bulk_update_entitiesPinterest Bulk Update Entities

    Description is built at runtime.

  • pinterest_bulk_update_statusPinterest Bulk Status Updatecan change or delete data

    Description is built at runtime.

  • pinterest_check_report_statusCheck Pinterest Report Statusread-only

    Check the status of a previously submitted Pinterest report task. Makes a single API call to check task status. Does not poll or wait. **Canonical states:** `pending`, `running`, `complete`, `failed`. Pinterest raw statuses (IN_PROGRESS/FINISHED/FAILED/EXPIRED/DOES_NOT_EXIST/CANCELLED) are mapped; EXPIRED, DOES_NOT_EXIST and CANCELLED surface as `failed` since the report will never be retrievable. The raw string is returned as `rawStatus`. - If state is `complete` with a `downloadUrl`, use `pinterest_download_report` to fetch results. - If not finished, call this tool again in ~10 seconds.

  • pinterest_create_entityCreate Pinterest Ads Entitycan change or delete data

    Description is built at runtime.

  • pinterest_delete_entityDelete or Archive Pinterest Ads Entitiescan change or delete data

    Description is built at runtime.

  • pinterest_download_reportDownload Pinterest Reportread-only

    Download and parse a Pinterest report from a download URL. After a report task is DONE (via `pinterest_check_report_status`), use the `downloadUrl` to fetch and parse the CSV data. **Workflow:** 1. `pinterest_submit_report` → get `taskId` 2. `pinterest_check_report_status` → get `downloadUrl` when DONE 3. `pinterest_download_report` with that URL → get a bounded summary or paged row slice **Options:** - `mode: "summary"` (default) returns headers, counts, and a small preview - `mode: "rows"` returns one bounded page of rows - `columns` projects returned rows to selected columns - `offset` a…

  • pinterest_duplicate_entityDuplicate Pinterest Ads Entity

    Description is built at runtime.

  • pinterest_get_ad_previewGet Pinterest Ad Previewread-only

    Get a preview of how a Pinterest ad will appear to users. Pinterest v5 previews a Pin, not an ad id: this reads the ad to find its `pin_id`, then calls `POST /v5/ad_accounts/{ad_account_id}/ad_previews`. That endpoint needs the `ads:write` scope and creates a preview page; the returned `url` expires after 7 days. No ad, campaign or spend is changed. **Creative types (optional):** SHOPPING, COLLECTION, MAX_VIDEO, MAX_WIDTH_VIDEO_COLLECTION, MAX_WIDTH_REGULAR_COLLECTION

  • pinterest_get_delivery_estimatePinterest Delivery Estimateread-only

    Get the potential audience size for a Pinterest targeting spec. Calls `POST /v5/ad_accounts/{ad_account_id}/ad_groups/audience_sizing` with `targetingConfig` sent as the ad group `targeting_spec`. Use this to tune targeting before creating ad groups. Returns `audience_size_lower_bound` / `audience_size_upper_bound` (estimated people reachable per month; not a delivery guarantee). **Example targeting spec** (keys are Pinterest `targeting_spec` fields; find ids with `pinterest_search_targeting`): ```json { "AGE_BUCKET": ["18-24", "25-34"], "GENDER": ["female"], "LOCATION": ["US"], "INT…

  • pinterest_get_entityGet Pinterest Ads Entityread-only

    Description is built at runtime.

  • pinterest_get_pacing_statusCalculate Campaign Pacing (Client-Side)read-only

    Client-side pacing calculator — does NOT call the Pinterest API. Computes actual vs expected delivery given caller-supplied budget, spend-to-date, and flight dates. To populate spend, first call `pinterest_get_report`; to populate budget and flight dates, first call `pinterest_get_entity` for the campaign.

  • pinterest_get_reportGet Pinterest Ads Reportread-only

    Submit and retrieve an async Pinterest Ads performance report. Follows the async polling pattern: submit task → poll until FINISHED → download CSV. This may take 30s–5 minutes depending on the data volume. **Common columns:** IMPRESSION_1, CLICKTHROUGH_1, SPEND_IN_DOLLAR, CTR, CPM_IN_DOLLAR, ECPC_IN_DOLLAR, TOTAL_CONVERSIONS, TOTAL_IMPRESSION **Report types:** CAMPAIGN (default), AD_GROUP, AD (Pinterest level PIN_PROMOTION), KEYWORD, ACCOUNT (Pinterest level ADVERTISER) **Granularity:** DAY (default), TOTAL, HOUR, WEEK, MONTH

  • pinterest_get_report_breakdownsGet Pinterest Ads Report with Breakdownsread-only

    Submit and retrieve an async Pinterest Ads report broken down by targeting dimensions. Like `pinterest_get_report`, but Pinterest v5 breakdowns are not extra columns: each breakdown is a `targeting_types` value, and the report runs at the `*_TARGETING` variant of the report type (CAMPAIGN_TARGETING, AD_GROUP_TARGETING, PIN_PROMOTION_TARGETING for AD, ADVERTISER_TARGETING for ACCOUNT). KEYWORD reports cannot be broken down. **Breakdowns (up to 5):** KEYWORD, APPTYPE, GENDER, LOCATION, PLACEMENT, COUNTRY, TARGETED_INTEREST, PINNER_INTEREST, AUDIENCE_INCLUDE, GEO, AGE_BUCKET, REGION, MEDIA_TYPE…

  • pinterest_get_targeting_optionsGet Pinterest Targeting Optionsread-only

    Browse available Pinterest ad targeting options. Without `targetingType`, returns the targeting types Pinterest v5 accepts. With one, returns every option of that type from `GET /v5/resources/targeting/{targeting_type}`. Use this to discover valid targeting values before creating or updating ad groups. **Targeting types:** APPTYPE, GENDER, LOCALE, AGE_BUCKET, LOCATION, GEO, INTEREST, KEYWORD, AUDIENCE_INCLUDE, AUDIENCE_EXCLUDE

  • pinterest_list_ad_accountsList Pinterest Advertisersread-only

    List Pinterest advertiser accounts accessible to the authenticated user. Returns advertiser IDs, names, and account status information. Use the ad_account_id from results with other pinterest_* tools. Pinterest paginates with an opaque `bookmark` cursor (default page size 25). When the response's `pagination.nextCursor` is non-null, call again with `bookmark` set to it to fetch the next page.

  • pinterest_list_entitiesList Pinterest Ads Entitiesread-only

    Description is built at runtime.

  • pinterest_search_targetingPinterest Search Targeting Optionsread-only

    Search Pinterest targeting options of one type by keyword, or browse them. Reads `GET /v5/resources/targeting/{targeting_type}`. That endpoint has no search or count parameter, so the keyword match (case-insensitive, on option id and name) and the limit are applied by this server over the full option list. **Targeting types:** APPTYPE, GENDER, LOCALE, AGE_BUCKET, LOCATION, GEO, INTEREST, KEYWORD, AUDIENCE_INCLUDE, AUDIENCE_EXCLUDE Use the returned ids in an ad group's `targeting_spec` (e.g. `LOCATION`, `INTEREST`).

  • pinterest_submit_reportSubmit Pinterest Report

    Submit a Pinterest Ads report task without waiting for completion. Returns a `taskId` immediately. Use `pinterest_check_report_status` to poll for completion, then `pinterest_download_report` to fetch results. **Non-blocking workflow:** 1. `pinterest_submit_report` → get `taskId` 2. `pinterest_check_report_status` (repeat every 10s) → wait for "FINISHED" 3. `pinterest_download_report` with the `downloadUrl` → get parsed data Use `pinterest_get_report` instead for a blocking convenience shortcut.

  • pinterest_update_entityUpdate Pinterest Ads Entity

    Description is built at runtime.

  • pinterest_upload_videoUpload Video to Pinterest Ads

    Upload a video to Pinterest Ads Library from a URL. The server downloads the video and uploads it to Pinterest's ad media library. Polls until processing is complete (up to 10 minutes). **Video requirements:** - Formats: MP4, MOV (H.264 codec recommended) - Max file size: 500MB - Min resolution: 240px on shortest side - Duration: 2 to 60 seconds for standard ads **Usage:** The returned mediaId is used in ad creative payloads.

  • sa360_check_report_statusCheck SA360 Report Statusread-only

    Check the status of a previously submitted SA360 async report. Poll this endpoint until `isReportReady` is true, then use the file URLs with `sa360_download_report` to retrieve results. **Workflow:** sa360_submit_report → **sa360_check_report_status** (poll) → sa360_download_report

  • sa360_download_reportDownload SA360 Reportread-only

    Download a completed SA360 async report file. Use the download URL from `sa360_check_report_status` (when isReportReady is true). Returns a bounded summary or paged row slice. **Workflow:** sa360_submit_report → sa360_check_report_status → **sa360_download_report**

  • sa360_gaql_searchSA360 GAQL Searchread-only

    Execute a Search Ads 360 query language query against any SA360 resource. Supports resource fields, segment fields, and metrics with SQL-like syntax (same syntax as GAQL). SA360 is read-only — queries return data across Google Ads, Microsoft Ads, Yahoo Japan, and Baidu engines.

  • sa360_get_change_historyGet SA360 Change Historyread-only

    UNAVAILABLE on the pinned SA360 Reporting API v0 — every call returns an error explaining why. SA360 change history lives in the `change_event` resource, which Reporting API v0 does not expose (its SearchAds360Row has no change_event or change_status resource). This tool performs no API call. **Alternative:** to find recently modified entities, use `sa360_gaql_search` with the `last_modified_time` field that v0 exposes on campaign, ad_group, ad_group_ad, ad_group_criterion and campaign_criterion (e.g. `SELECT campaign.id, campaign.name, campaign.last_modified_time FROM campaign`). That retur…

  • sa360_get_entityGet SA360 Entityread-only

    Description is built at runtime.

  • sa360_get_insightsSA360 Performance Insightsread-only

    Description is built at runtime.

  • sa360_get_insights_breakdownsSA360 Performance Insights with Breakdownsread-only

    Description is built at runtime.

  • sa360_get_pacing_statusCalculate Campaign Pacing (Client-Side)read-only

    Client-side pacing calculator — does NOT call the Search Ads 360 API. Computes actual vs expected delivery given caller-supplied budget, spend-to-date, and flight dates. To populate spend, first call `sa360_get_insights`; to populate flight dates, first call `sa360_get_entity` for the campaign. sa360_get_entity returns only the campaign's budget resource name (campaign.campaign_budget); for the amount, query `campaign_budget.amount_micros` with `sa360_gaql_search`.

  • sa360_insert_conversionsInsert SA360 Conversions

    Insert offline conversions into SA360 via the legacy v2 API (DoubleClick Search). Upload offline conversion data to attribute conversions to SA360-tracked clicks. Each conversion needs a clickId, an advertiser-chosen conversionId, a conversionTimestamp, and the Floodlight activity (segmentationId or segmentationName). **Important:** - Uses the legacy v2 API endpoint, not the Reporting API - conversionId is chosen by you: unique within the request, and (conversionId, conversionTimestamp) unique within the advertiser. Keep it — updates identify the conversion by it - Maximum 200 conversions pe…

  • sa360_list_accountsList SA360 Accountsread-only

    List all SA360 customer accounts accessible to the authenticated user. Returns resource names in the format `customers/{customerId}`. Use the customer IDs from this list for all other SA360 tools.

  • sa360_list_custom_columnsList SA360 Custom Columnsread-only

    List custom columns defined for an SA360 customer account. Custom columns are user-defined metrics/dimensions that can be referenced in SA360 queries. Returns column metadata including ID, name, description, and value type.

  • sa360_list_entitiesList SA360 Entitiesread-only

    Description is built at runtime.

  • sa360_list_report_columnsList SA360 Report Columnsread-only

    List SA360 Reporting API fields for a given resource (campaign, ad_group, ad_group_ad, etc). Uses the live `searchAds360Fields` endpoint when credentials are available; falls back to a static catalog when the live call fails so callers always get a usable discovery surface. **resource:** one of `campaign`, `ad_group`, `ad_group_ad`, `ad_group_criterion`, `campaign_budget`, `conversion`, `conversion_action`, `customer`, or a top-level prefix like `metrics` or `segments`. When omitted, the tool returns the full fallback catalog grouping. **includeMetrics / includeSegments:** when true (defaul…

  • sa360_search_fieldsSA360 Field Discoveryread-only

    Discover available fields, resources, and metrics in the SA360 API. Uses the searchAds360Fields endpoint to explore the API schema. Query with a field name or resource name to find available fields, their types, and whether they can be selected, filtered, or sorted. **Example queries:** - `SELECT name, category, data_type, selectable, filterable, sortable FROM searchAds360Fields WHERE name = 'campaign.id'` - `SELECT name, category FROM searchAds360Fields WHERE name LIKE 'campaign.%'` - `SELECT name FROM searchAds360Fields WHERE name LIKE 'metrics.%'`

  • sa360_submit_reportSubmit SA360 Async Report

    Submit an asynchronous report request via the SA360 legacy v2 API. Returns a report ID that can be used with `sa360_check_report_status` to poll for completion, then `sa360_download_report` to retrieve results. **Report types:** campaign, adGroup, keyword, ad, advertiser, productGroup, floodlightActivity, productLeadAndCrossSell **Workflow:** submit_report → check_report_status (poll) → download_report

  • sa360_update_conversionsUpdate SA360 Conversions

    Update existing conversions in SA360 via the legacy v2 API (DoubleClick Search). Modify previously uploaded offline conversion data. Each conversion must be identified by its conversionId and conversionTimestamp. **Important:** - Uses the legacy v2 API endpoint (PUT), not the Reporting API - Maximum 200 conversions per request - conversionId is required for updates: the advertiser-assigned ID the conversion was inserted with (you chose it at insert time; SA360 does not generate it) - conversionTimestamp must match the original value exactly

  • sa360_validate_conversionValidate SA360 Conversion Payloadread-only

    Validate a conversion payload against SA360 requirements without calling the API. Checks required fields, data formats, and common configuration mistakes for both insert and update operations. The SA360 API may still reject payloads for business-rule reasons. **Validates:** - Click ID presence (clickId required) - conversionId presence (advertiser-provided; required for insert and update) - conversionTimestamp format (epoch milliseconds) - revenueMicros format (numeric string) - segmentationType presence - Floodlight activity identification (segmentationId or segmentationName) - state enum v…

  • snapchat_adjust_bidsSnapchat Ad Group Bid Adjustmentcan change or delete data

    Batch adjust ad squad (ad group) bids with safe read-modify-write. Reads each ad squad's current `bid_micro`, writes the new bid as `bid_micro`, and reports previous/new amounts. `bidPrice` is in the ad account's currency; the tool converts it to micro-currency (`bidPrice` × 1,000,000). **Gotchas:** - `bid_micro` is the bid for ad squads whose `bid_strategy` is LOWEST_COST_WITH_MAX_BID or TARGET_COST. An AUTO_BID ad squad may ignore it; change `bid_strategy` with snapchat_update_entity first. - Each read + write pair consumes rate limit tokens. - Max 50 adjustments per call.

  • snapchat_bulk_create_entitiesSnapchat Bulk Create Entitiescan change or delete data

    Description is built at runtime.

  • snapchat_bulk_update_entitiesSnapchat Bulk Update Entities

    Description is built at runtime.

  • snapchat_bulk_update_statusSnapchat Bulk Status Updatecan change or delete data

    Description is built at runtime.

  • snapchat_check_report_statusCheck Snapchat Report Statusread-only

    Check the status of a previously submitted Snapchat report task. Makes a single API call to check task status. Does not poll or wait. **Canonical states:** `pending`, `running`, `complete`, `failed`. Snapchat's `async_status` is mapped (STARTED or RUNNING → `running`, COMPLETED → `complete`, FAILED → `failed`, anything else → `pending`); the value Snapchat returned is passed through unchanged as `rawStatus`. - If state is `complete` with a `downloadUrl`, use `snapchat_download_report` to fetch results. - If not done, call this tool again in ~10 seconds.

  • snapchat_create_entityCreate Snapchat Ads Entitycan change or delete data

    Description is built at runtime.

  • snapchat_delete_entityDelete Snapchat Ads Entitycan change or delete data

    Description is built at runtime.

  • snapchat_download_reportDownload Snapchat Reportread-only

    Download and parse a Snapchat report from a download URL. After a report task is `complete` (via `snapchat_check_report_status`), use the `downloadUrl` to fetch and parse the CSV data. **Workflow:** 1. `snapchat_submit_report` → get `taskId` 2. `snapchat_check_report_status` → get `downloadUrl` when `complete` 3. `snapchat_download_report` with that URL → get a bounded summary or paged row slice **Options:** - `mode: "summary"` (default) returns headers, counts, and a small preview - `mode: "rows"` returns one bounded page of rows - `columns` projects returned rows to selected columns - `of…

  • snapchat_duplicate_entityDuplicate Snapchat Ads Entity

    Description is built at runtime.

  • snapchat_get_ad_previewGet Snapchat Creative Previewread-only

    Get a preview of how a Snapchat creative will appear to users. Returns the documented creative preview payload from Snapchat's `/v1/creatives/{creative_id}/creative_preview` endpoint.

  • snapchat_get_audience_estimateSnapchat Audience Size Estimateread-only

    Get an estimated audience size for a Snapchat targeting configuration. Use this to validate and tune targeting before creating ad groups. Backed by Snapchat's documented `audience_size_v2` endpoint. **Example ad squad spec:** ```json { "name": "App Install Prospecting", "status": "ACTIVE", "type": "SNAP_ADS", "targeting": { "geos": [{ "country_code": "us" }] }, "placement_v2": { "config": "AUTOMATIC", "platforms": ["SNAPCHAT"] }, "billing_event": "IMPRESSION", "bid_strategy": "LOWEST_COST_WITH_MAX_BID", "bid_micro": 6000000, "daily_budget_micro": 50000000, "optimiza…

  • snapchat_get_entityGet Snapchat Ads Entityread-only

    Description is built at runtime.

  • snapchat_get_pacing_statusCalculate Campaign Pacing (Client-Side)read-only

    Client-side pacing calculator — does NOT call the Snapchat API. Computes actual vs expected delivery given caller-supplied budget, spend-to-date, and flight dates. To populate spend, first call `snapchat_get_report`; to populate budget and flight dates, first call `snapchat_get_entity` for the campaign.

  • snapchat_get_reportGet Snapchat Ads Reportread-only

    Submit and retrieve an async Snapchat Ads performance report. Follows the async polling pattern: submit task → poll until COMPLETE → download CSV. This may take 30s–5 minutes depending on the data volume. **Common fields:** impressions, swipes, spend, video_views, conversion_purchases, reach, frequency, cpm, cpsu **Granularity:** TOTAL, DAY (default), HOUR, LIFETIME **start_time/end_time:** ISO 8601 format (e.g. 2024-01-01T00:00:00Z) **Units:** `spend` is micro-currency (1,000,000 = 1.00 of the account currency)

  • snapchat_get_report_breakdownsGet Snapchat Ads Report with Breakdownsread-only

    Submit and retrieve an async Snapchat Ads report split by an insight-level dimension (geo, demographic, device or interest). Like `snapchat_get_report` but sends Snapchat's `report_dimension` parameter so each row is broken out by that dimension. **reportDimension values:** country, region, dma, country,os (geo); gender, age, age,gender (demographic); os, os,country, make (device); lifestyle_category (interest). Snapchat allows one dimension at a time, except age with gender. **Limits (from Snapchat's docs):** - `HOUR` granularity cannot be combined with a dimension; use DAY, TOTAL or LIFET…

  • snapchat_get_targeting_optionsGet Snapchat Targeting Optionsread-only

    Browse available Snapchat targeting options from documented targeting endpoints. Use this to discover valid country support, geo, and interest values before creating or updating ad groups. **Supported targeting types:** country_support, geo_country, geo_region, geo_metro, geo_postal_code, interests_slc, interests_vac, interests_shp Interest and postal-code endpoints page — pass the `cursor` from `pagination.nextCursor` to fetch the next page.

  • snapchat_list_ad_accountsList Snapchat Advertisersread-only

    List Snapchat advertiser accounts accessible to the authenticated user. Returns advertiser IDs, names, and account status information. Use the ad_account_id from results with other snapchat_* tools. **Requires:** `X-Snapchat-Org-Id` header at session connect (or `SNAPCHAT_ORG_ID` env var for stdio mode). The organization ID scopes which ad accounts are returned. Snapchat paginates with an opaque `cursor`. When the response's `pagination.nextCursor` is non-null, call again with `cursor` set to it to fetch the next page.

  • snapchat_list_entitiesList Snapchat Ads Entitiesread-only

    Description is built at runtime.

  • snapchat_search_targetingSnapchat Search Targeting Optionsread-only

    Search documented Snapchat targeting options by keyword. **Common targeting types:** - geo_country - geo_region - geo_metro - geo_postal_code - interests_slc - interests_vac - interests_shp This tool fetches a documented targeting endpoint and filters the results client-side. With a `query`, it follows the endpoint's pagination (up to 5 pages) until `limit` matches are found. `searchedAllPages: false` means the scan stopped before the last page, so an empty or short result is not proof that no option matches.

  • snapchat_submit_reportSubmit Snapchat Report

    Submit a Snapchat Ads report task without waiting for completion. Returns a `taskId` immediately. This is Snapchat's `report_run_id`. Use `snapchat_check_report_status` to poll for completion, then `snapchat_download_report` to fetch results. **Non-blocking workflow:** 1. `snapchat_submit_report` → get `taskId` 2. `snapchat_check_report_status` (repeat every 10s) → wait for "COMPLETE" 3. `snapchat_download_report` with the `downloadUrl` → get parsed data Use `snapchat_get_report` instead for a blocking convenience shortcut.

  • snapchat_update_entityUpdate Snapchat Ads Entity

    Description is built at runtime.

  • snapchat_upload_imageUpload Image to Snapchat Ads

    Upload an image to Snapchat Ads Library from a URL. The server downloads the image and uploads it to Snapchat's media library. Returns the mediaId for use in creative payloads. **Image requirements:** - Formats: JPEG, PNG - Max file size: 5MB - Recommended dimensions: 1080x1920px (9:16 vertical), 1080x1080px (1:1) **Usage:** The returned mediaId is used in creative payloads.

  • snapchat_upload_videoUpload Video to Snapchat Ads

    Upload a video to Snapchat Ads Library from a URL. The server downloads the video and uploads it to Snapchat's media library. Polls until processing is complete (up to 10 minutes). **Video requirements:** - Formats: MP4, MOV (H.264 codec recommended) - Max file size: 1GB - Min resolution: 540x960px (9:16), 640x640px (1:1) - Duration: 3 to 180 seconds **Usage:** The returned mediaId is used in creative payloads.

  • test_elicitationTest Elicitationread-only

    Requests user input via MCP elicitation. Used by MCP conformance tests.

  • test_elicitation_sep1034_defaultsTest Elicitation SEP-1034 Defaultsread-only

    Tests elicitation with default values for all primitive types. Used by MCP conformance tests.

  • test_elicitation_sep1330_enumsTest Elicitation SEP-1330 Enumsread-only

    Tests all 5 enum variants in elicitation schemas. Used by MCP conformance tests.

  • test_simple_textTest Simple Textread-only

    Returns a fixed text response. Used by MCP conformance tests.

  • test_tool_with_loggingTest Tool With Loggingread-only

    Sends structured log notifications during execution. Used by MCP conformance tests.

  • tiktok_adjust_bidsTikTok Ad Group Bid Adjustmentcan change or delete data

    Batch adjust ad group bid prices with safe read-modify-write. Reads current bid prices, applies new values, and reports previous/new amounts. Bid prices are in the advertiser's account currency. **Gotchas:** - Only applies to ad groups with manual bidding (bid_price field). - Ad groups using automated bidding strategies may ignore bid_price. - Each read + write pair consumes rate limit tokens. - Max 50 adjustments per call.

  • tiktok_bulk_create_entitiesTikTok Bulk Create Entitiescan change or delete data

    Description is built at runtime.

  • tiktok_bulk_update_entitiesTikTok Bulk Update Entities

    Description is built at runtime.

  • tiktok_bulk_update_statusTikTok Bulk Status Updatecan change or delete data

    Description is built at runtime.

  • tiktok_check_report_statusCheck TikTok Report Statusread-only

    Check the status of a previously submitted TikTok report task. Makes a single API call to check task status. Does not poll or wait. **Canonical states:** `pending`, `running`, `complete`, `failed`. TikTok's documented task statuses are mapped: QUEUING → pending, PROCESSING → running, SUCCESS → complete, FAILED and CANCELED → failed (TikTok's failure reason, when it gives one, is in `errors`). The raw string is returned as `rawStatus`. Any other raw status is reported as `failed` with an explanation in `errors`, never as pending. - When `complete`, call `tiktok_download_report` with the same …

  • tiktok_create_entityCreate TikTok Ads Entitycan change or delete data

    Description is built at runtime.

  • tiktok_delete_entityDelete TikTok Ads Entitycan change or delete data

    Description is built at runtime.

  • tiktok_download_reportDownload TikTok Reportread-only

    Download and parse the output of a finished TikTok async report task. Give the `taskId` from `tiktok_submit_report`. TikTok issues a signed download URL for the task (valid for one hour; this tool asks for a fresh one each call) and the CSV is fetched and parsed. **Workflow:** 1. `tiktok_submit_report` → get `taskId` 2. `tiktok_check_report_status` → wait for state `complete` 3. `tiktok_download_report` with that `taskId` → get a bounded summary or paged row slice Fails if the task is not finished, or was not created by `tiktok_submit_report` (other output formats are not supported). **Opt…

  • tiktok_duplicate_entityDuplicate TikTok Ads Entity

    Duplicate a TikTok Ads entity — NOT AVAILABLE on TikTok. TikTok Marketing API v1.3 has no copy/duplicate endpoint for campaigns, ad groups or ads, so every call (including `dry_run`) returns an error and nothing is created. To copy an entity, read it with `tiktok_get_entity` and create a new one with `tiktok_create_entity` (set `operation_status: "DISABLE"` so it does not start delivering).

  • tiktok_get_ad_previewGet TikTok Ad Previewread-only

    Get a preview of a TikTok ad — NOT AVAILABLE on TikTok. TikTok Marketing API v1.3 has no ad-preview endpoint, so this tool always returns an error. Inspect the ad's creative fields with `tiktok_get_entity` (entityType "ad") instead.

  • tiktok_get_audience_estimateTikTok Audience Size Estimateread-only

    Get an estimated audience size for a TikTok targeting configuration. Use this to validate and tune targeting before creating ad groups. Returns estimated reach and audience size ranges. **Example targeting config:** ```json { "age": ["AGE_18_24", "AGE_25_34"], "gender": ["GENDER_FEMALE"], "location_ids": ["JP"], "interest_category_ids": ["123456789"] } ```

  • tiktok_get_entityGet TikTok Ads Entityread-only

    Description is built at runtime.

  • tiktok_get_pacing_statusCalculate Campaign Pacing (Client-Side)read-only

    Client-side pacing calculator — does NOT call the TikTok API. Computes actual vs expected delivery given caller-supplied budget, spend-to-date, and flight dates. To populate spend, first call `tiktok_get_report`; to populate budget and flight dates, call `tiktok_get_entity` for the campaign (budget) and for its ad groups (flight dates: TikTok schedules live on ad groups as `schedule_start_time` / `schedule_end_time`; campaigns have none).

  • tiktok_get_reportGet TikTok Ads Reportread-only

    Run a TikTok Ads performance report and return the rows. Uses TikTok's synchronous `report/integrated/get/` endpoint (paged, up to 1,000 rows per page), so rows come back in the same call — no task to poll. **Common dimensions:** campaign_id, adgroup_id, ad_id, stat_time_day, stat_time_hour, country_code **Common metrics:** spend, impressions, clicks, ctr, cpm, cpc, conversions, conversion_rate, reach, frequency **Report types:** BASIC (default), AUDIENCE, PLAYABLE_MATERIAL

  • tiktok_get_report_breakdownsGet TikTok Ads Report with Breakdownsread-only

    Run a TikTok Ads report with dimensional breakdowns and return the rows (synchronous `report/integrated/get/`). Like `tiktok_get_report` but adds breakdown dimensions for more granular data. **Common breakdown dimensions:** country_code, platform, gender, age, interest_category, placement Results are broken down by each combination of base dimensions + breakdown dimensions.

  • tiktok_get_targeting_optionsGet TikTok Targeting Optionsread-only

    Browse available TikTok targeting metadata using official `/tool/*` endpoints. Use this to discover valid targeting values before creating or updating ad groups. This tool dispatches to the documented TikTok list endpoints instead of the older generic targeting routes. **Supported option types:** ACTION_CATEGORY, CARRIER, DEVICE_MODEL, INTEREST_CATEGORY, INTEREST_KEYWORD, ISP, LANGUAGE, LOCATION

  • tiktok_list_advertisersList TikTok Advertisersread-only

    Get account info for the TikTok advertiser this session is bound to. Calls TikTok's `advertiser/info/` endpoint for the session's advertiser ID and returns its name, status, currency, timezone and related account details. TikTok's `advertiser/info/` returns info only for the advertiser IDs it is given; it does not enumerate every advertiser the token can access. Each session is bound to one advertiser (`X-TikTok-Advertiser-Id` / `TIKTOK_ADVERTISER_ID`).

  • tiktok_list_entitiesList TikTok Ads Entitiesread-only

    Description is built at runtime.

  • tiktok_search_targetingTikTok Search Targeting Optionsread-only

    Search TikTok location targeting tags (countries, regions, cities, DMAs, zip/postal codes) using TikTok's `/tool/targeting/search/` endpoint. TikTok requires `placements` and `objectiveType` for every search. `searchType` selects the mode: - `FUZZY_SEARCH` (default) — one keyword, up to 100 results, any country - `BATCH_REGION_SEARCH` — up to 1,000 keywords, US/CA locations (set `regionCodes`) - `BATCH_ZIPCODE_SEARCH` — up to 1,000 exact zip/postal codes, US/CA (set `regionCodes`) For ISP tags, languages, carriers, interest categories and device models use `tiktok_get_targeting_options`.

  • tiktok_submit_reportSubmit TikTok Report

    Submit a TikTok Ads report task without waiting for completion. Returns a `taskId` immediately. Use `tiktok_check_report_status` to poll for completion, then `tiktok_download_report` to fetch results. **Non-blocking workflow:** 1. `tiktok_submit_report` → get `taskId` 2. `tiktok_check_report_status` (repeat every 10s) → wait for state `complete` (TikTok status SUCCESS; QUEUING and PROCESSING are in progress) 3. `tiktok_download_report` with the same `taskId` → TikTok issues a signed download URL and the CSV is fetched and parsed The task is created with output_format CSV_DOWNLOAD and untran…

  • tiktok_update_entityUpdate TikTok Ads Entity

    Description is built at runtime.

  • tiktok_upload_imageUpload Image to TikTok Ads

    Upload an image to TikTok Ads Library from a URL. The server downloads the image and uploads it to TikTok's ad image library. Returns the imageId for use in ad creatives. **Image requirements:** - Formats: JPEG, PNG - Max file size: 100KB (for feed ads), 500KB (for other placements) - Recommended dimensions: 1200x628px, 1080x1080px, 720x1280px **Usage:** The returned imageId is used in ad creative payloads.

  • tiktok_upload_videoUpload Video to TikTok Ads

    Upload a video to TikTok Ads Library from a URL. The server downloads the video and uploads it to TikTok's ad video library. Polls until binding is complete (up to 10 minutes). **Video requirements:** - Formats: MP4, MOV, AVI (H.264/H.265 codec recommended) - Max file size: 500MB - Min resolution: 540x960px (9:16), 960x540px (16:9), or 640x640px (1:1) - Duration: 5 to 60 seconds for In-Feed ads **Usage:** The returned videoId is used in ad creative payloads.

  • tiktok_validate_entityTikTok Ads Entity Validation (Client-Side)read-only

    Description is built at runtime.

  • ttd_adjust_bidsAdjust TTD Ad Group Bidscan change or delete data

    Batch adjust bid CPMs for multiple The Trade Desk ad groups. For each ad group, the tool sends one partial `PUT /v3/adgroup` containing only the ad group ID and the changed `RTBAttributes.BaseBidCPM` / `MaxBidCPM`. TTD updates are partial — fields not sent are left unchanged — so no other ad group setting is touched. **Currency:** each bid is sent as `{ Amount, CurrencyCode }`. When `currencyCode` is omitted, the tool reads the ad group and reuses the currency of its current bid (falling back to the advertiser's currency); if neither can be found, that adjustment fails rather than guessing. …

  • ttd_archive_entitiesArchive TTD Entitiescan change or delete data

    Description is built at runtime.

  • ttd_bulk_create_entitiesBulk Create TTD Entitiescan change or delete data

    Description is built at runtime.

  • ttd_bulk_manage_bid_listsTTD Bulk Manage Bid Lists

    Batch get or batch update multiple TTD bid lists via GraphQL. TTD's GraphQL has no native multi-id bid-list query or multi-input update mutation — this tool fans out individual `bidList(id:)` queries and `bidListUpdate(input:)` mutations in parallel (concurrency=5) and aggregates the per-item results. ### Operations - **batch_get** — Retrieve up to 50 bid lists by their IDs - **batch_update** — Update up to 50 bid lists; each item must be a complete `BidListUpdateInput` ### Notes - TTD's `/v3/bidlist/batch*` REST endpoints are deprecated; this tool uses GraphQL. - Per-item failures are surf…

  • ttd_bulk_update_entitiesBulk Update TTD Entitiescan change or delete data

    Description is built at runtime.

  • ttd_bulk_update_statusBulk Update TTD Entity Statuscan change or delete data

    Description is built at runtime.

  • ttd_cancel_report_executionCancel TTD Report Execution (GraphQL)can change or delete data

    Cancel an in-progress TTD report execution via GraphQL (`myReportsReportExecutionCancel`). Use this to stop a report that is currently generating. Only reports in the `IN_PROGRESS` state can be cancelled. **Important distinctions:** - This tool cancels a **report execution** (an in-progress run), not a report schedule - The `executionId` is distinct from a schedule ID — use `ttd_list_report_schedules` or execution history to find execution IDs - To delete a schedule entirely, use `ttd_delete_report_schedule` instead - Cancelled report executions remain accessible; only the generation process…

  • ttd_check_report_statusCheck TTD Report Statusread-only

    Check the status of a previously submitted TTD report. Makes a single API call to check execution state. Does not poll or wait. **States** (canonical): `pending`, `running`, `complete`, `failed`, `cancelled` - If `complete` with a `downloadUrl`, use `ttd_download_report` to fetch results. - If not complete, call this tool again in 5-10 seconds.

  • ttd_create_entityCreate TTD Entitycan change or delete data

    Description is built at runtime.

  • ttd_create_report_scheduleCreate TTD Report Schedule

    Create a named report schedule (Once, Daily, Weekly, or Monthly). This is a legacy-friendly REST wrapper for the MyReports schedule endpoint. Use this when you already know the REST payload shape or need compatibility with older callers. Report templates and report schedules are distinct in TTD: - A **template** defines report structure - A **schedule** controls when a template runs For the docs-aligned GraphQL workflow, prefer: - `ttd_create_report_template` - `ttd_create_template_schedule` - `ttd_get_report_executions` For a one-off blocking report use `ttd_get_report`. For a one-off non…

  • ttd_create_report_templateCreate TTD Report Template (GraphQL)

    Create a user-defined report template via TTD GraphQL (`myReportsTemplateCreate`). A report template defines the structure of a My Reports report — which report types to use and which columns/metrics to include. Templates can have up to 29 tabs (resultSets). **Workflow:** 1. Use `ttd_list_report_types` to discover available report type IDs 2. Use `ttd_get_report_type_schema` to get field and metric IDs for a report type 3. Call this tool to create the template 4. Use the returned template ID to schedule reports (`ttd_create_template_schedule`) Use `ttd_list_report_templates` to see existing…

  • ttd_create_template_scheduleCreate TTD Template Report Schedule (GraphQL)

    Create a report schedule from a template ID via TTD GraphQL (`myReportsTemplateScheduleCreate`). This is the step after `ttd_create_report_template` — it links an existing report template to a schedule that controls when and how often the report runs. **Workflow:** 1. Use `ttd_create_report_template` to create a template defining report structure 2. Call this tool with the returned template ID to schedule execution 3. Use `ttd_get_report_executions` to check execution status and retrieve download links when complete **Tips:** - Use `frequency: SINGLE_RUN` for one-time on-demand reports - `r…

  • ttd_delete_entityDelete TTD Entitycan change or delete data

    Description is built at runtime.

  • ttd_delete_report_scheduleDelete TTD Report Schedulecan change or delete data

    Permanently delete a TTD report schedule. **This action is irreversible.** The schedule and any pending executions will be removed. Active or completed report executions are not affected — only the schedule definition is deleted. Use `ttd_list_report_schedules` to find the schedule ID.

  • ttd_download_reportDownload TTD Reportread-only

    Download and parse a TTD report from a download URL. After generating a report with `ttd_get_report`, use the returned `downloadUrl` to fetch and parse the CSV data. TTD-hosted report URLs require server-side `TTD-Auth`, so this tool fetches the report and returns a bounded view that stays within MCP response-size limits. **Workflow:** 1. Run `ttd_get_report` → get `downloadUrl` 2. Run `ttd_download_report` with that URL → get a summary preview or a paged row slice **Options:** - `mode: "summary"` (default) returns headers, counts, and a small preview - `mode: "rows"` returns one bounded pa…

  • ttd_duplicate_entityDuplicate TTD Entity

    Description is built at runtime.

  • ttd_execute_entity_reportExecute TTD Entity Report (GraphQL)

    Execute an immediate dimension-specific report for an entity via TTD GraphQL. Returns a **direct download URL** with no polling required — unlike the MyReports async flow. These are pre-built report types tied to specific entities (ad group, campaign, or advertiser). **Report types** vary by entity. Use `ttd_get_entity_report_types` to discover available types for a given entity and Kokai tile (e.g. AD_GROUP, SITE, GEO, DEVICE_TYPE, AD_FORMAT). **vs. ttd_get_report:** This tool uses the GraphQL API and returns immediately. `ttd_get_report` uses the MyReports REST API with fully custom dimen…

  • ttd_get_ad_previewGet TTD Creative Previewread-only

    Get a preview URL for a TTD creative. Fetches the creative entity and extracts its preview URL. Returns creative metadata including name, format, and click URL. **Usage:** Use creativeId from ttd_list_entities or ttd_create_entity.

  • ttd_get_contextTTD Get Contextread-only

    Returns the TTD partner IDs and names accessible with the current credentials. **Call this tool first** when you do not yet know a `partnerId`. The response lists every partner the authenticated account can access — pass the `id` field as `partnerId` to `ttd_list_entities` (entityType: "advertiser") to start exploring the account hierarchy. This is a zero-argument cold-start tool. It requires no prior knowledge of the account. ### Typical workflow 1. `ttd_get_context` → get partner IDs 2. `ttd_list_entities` (entityType: advertiser, partnerId: "...") → list advertisers 3. `ttd_list_entities…

  • ttd_get_entityGet TTD Entityread-only

    Description is built at runtime.

  • ttd_get_entity_report_typesGet TTD Entity Report Types (GraphQL)read-only

    Discover available dimension-specific report types for a TTD entity. Returns which report types are available for a given entity and Kokai tile, and whether each report can be downloaded immediately or requires scheduling. **tile** is the Kokai tile abbreviation shown in the TTD programmatic table UI (e.g. `Af`, `Ag`, `Ca` — the examples TTD's own sample gives). Tiles are programmatic-table tabs, not entity types, and TTD's sample does not say what each abbreviation stands for: copy the abbreviation from the UI rather than inferring it from the entity you are reporting on. Use the returned …

  • ttd_get_pacing_statusCalculate Campaign Pacing (Client-Side)read-only

    Client-side pacing calculator — does NOT call The Trade Desk's API. Computes actual vs expected delivery given caller-supplied budget, spend-to-date, and flight dates. To populate spend, first call `ttd_get_report`; to populate budget and flight dates, first call `ttd_get_entity` for the campaign.

  • ttd_get_reportGet TTD Reportread-only

    Generate and retrieve a report from The Trade Desk. Uses the TTD MyReports API to create a report schedule, poll for execution, and return results. This is an async operation that may take several seconds to complete. Provide a report template ID (`reportTemplateId`), a date range, and the advertiser IDs to report on. The advertiser IDs are required: TTD's execution-status query is advertiser-scoped, so they are what polling uses. Dimensions and metrics come from the template.

  • ttd_get_report_executionsGet TTD Report Schedule Executions (GraphQL)read-only

    Primary tool for checking TTD report schedule status and retrieving download links via GraphQL. Use this after `ttd_create_template_schedule` or `ttd_rerun_report_schedule` to check whether a report is ready and get the download link. **Two modes:** - **Single schedule** (provide `scheduleId`): Uses `myReportsReportSchedule` — fastest when you know the schedule ID. Returns status, filters, and all executions. - **List mode** (omit `scheduleId`): Uses `myReportsReportSchedules` — supports pagination and optional filtering by recent execution activity via `lastStatusChangeAfter`. **Download l…

  • ttd_get_report_scheduleGet TTD Report Scheduleread-only

    Get full details for a specific TTD report schedule by ID. Returns the complete schedule configuration including dimensions, metrics, filters, schedule type, and date range settings. Use `ttd_list_report_schedules` to discover schedule IDs.

  • ttd_get_report_templateGet TTD Report Template Structure (GraphQL)read-only

    Retrieve the full structure of a report template via TTD GraphQL (`derivedReportTemplate`). Returns all resultSets (tabs), fields, metrics, and conversion metrics with their column ordering and pivot settings. Note: the API does not return column IDs or names — only `columnOrder`, `includedInPivot`, and `isOverlapColumn`. Use `ttd_get_report_type_schema` to map column positions back to field/metric definitions. Use this before `ttd_update_report_template` to see the current structure and re-include columns you want to keep. Use `ttd_list_report_templates` to find the template ID.

  • ttd_get_report_type_schemaGet TTD Report Type Schema (GraphQL)read-only

    Get the full field and metric schema for a TTD report type. Returns all available dimension fields and metrics with their IDs and names. Use these IDs when building report templates with `ttd_create_report_template` or `ttd_update_report_template`. Auto-paginates to return ALL fields and metrics (the GraphQL API paginates by default). Use `ttd_list_report_types` first to discover available report type IDs.

  • ttd_graphql_bulk_jobTTD GraphQL Bulk Job Statusread-only

    Poll a TTD GraphQL bulk job (from `ttd_graphql_query_bulk` or `ttd_graphql_mutation_bulk`) for its status, error diagnostics, and result. Returns `terminal` and `outcome` so you know when to stop polling. For a bulk **mutation** job, `mutationGqlErrors` lists the inputs that failed, each with its `index` in the submitted `inputs`. For a bulk **query** job, failures are in `queryGqlErrors`. `runtimeErrors` carries errors from running the job itself. ### Status values TTD's bulk-job status has these values: - **QUEUED** — waiting to start. Keep polling. - **IN_PROGRESS** — running. Keep pollin…

  • ttd_graphql_cancel_bulk_jobTTD GraphQL Cancel Bulk Jobcan change or delete data

    Cancel a running bulk GraphQL **query** job. ### ⚠️ Mutation jobs are NON-CANCELABLE This tool only works for bulk query jobs submitted via `ttd_graphql_query_bulk`. Bulk mutation jobs submitted via `ttd_graphql_mutation_bulk` cannot be cancelled — the API will return an error if you attempt to cancel one.

  • ttd_graphql_mutation_bulkTTD GraphQL Mutation Bulkcan change or delete data

    Description is built at runtime.

  • ttd_graphql_queryTTD GraphQL Query

    Execute a GraphQL query or mutation against The Trade Desk's GraphQL API. This is a passthrough tool that accepts any valid TTD GraphQL query/mutation, enabling: - **Deep nested queries** — fetch advertiser → campaigns → ad groups → audiences in one call - **Rich entity model** — access fields not available in REST (audience uniques, decision scores, etc.) - **Mutations** — create/update entities with the full TTD GraphQL schema ### Example Query ```graphql query Advertiser($id: ID!) { advertiser(id: $id) { name totalCampaignChannelCount vettingStatus } } ``` Refer to the TT…

  • ttd_graphql_query_bulkTTD GraphQL Query Bulk

    Submit a bulk GraphQL query job to The Trade Desk (`createQueryBulk`). Runs a GraphQL query as an async bulk job and returns a job ID. Poll the job with `ttd_graphql_bulk_job` until it reports `terminal: true`. Jobs can end SUCCESS, PARTIAL_SUCCESS, FAILURE or CANCELLED. **Omit `variables`** to submit exactly what TTD documents: `createQueryBulk(input: { query })`, with any IDs written into the query itself. TTD's published samples and its Workflows SDKs (Python, Go, Java) all submit a query this way. > **Unverified:** with `variables`, this tool also sends them as `queryVariables` (one JSO…

  • ttd_list_entitiesList TTD Entitiesread-only

    List The Trade Desk entities with optional filtering and pagination. Required scope IDs: advertiser (partnerId), campaign/adGroup/creative/conversionTracker (advertiserId). For adGroup, optionally pass campaignId to filter to a single campaign. See the entity-hierarchy://all resource for details. **Note:** Ads (ad group + creative associations), deals, bid lists, and publisher lists (site lists) have no REST query endpoints in TTD. Use the ttd_graphql_query tool for these entities.

  • ttd_list_report_schedulesList TTD Report Schedulesread-only

    List report schedules (saved recurring or one-time reports). Returns all report schedules accessible to the authenticated partner. Filter by advertiser IDs to narrow results. Use `ttd_get_report_schedule` to fetch full details for a specific schedule. Use `ttd_delete_report_schedule` to remove a schedule.

  • ttd_list_report_templatesList TTD Report Templates (GraphQL)read-only

    List report template headers from TTD MyReports via GraphQL (`myReportsReportTemplates`). This is the docs-aligned way to discover template IDs before retrieving structure with `ttd_get_report_template` or scheduling runs with `ttd_create_template_schedule`. **Note:** If you receive an `UNAUTHORIZED_FIELD_OR_TYPE` error, your TTD account does not have MyReports API access enabled. Contact your TTD Account Manager or Technical Account Manager (TAM) to request this entitlement. Use `GET /v3/myreports/reporttemplate/facets` or `POST /v3/myreports/reporttemplateheader/query` once enabled.

  • ttd_list_report_typesList TTD Report Types (GraphQL)read-only

    List all available report types from the TTD GraphQL API. Returns the ID and name of each report type. Use the returned report type ID with `ttd_get_report_type_schema` to discover the available fields and metrics for that report type, then use those IDs when building a report template with `ttd_create_report_template`.

  • ttd_manage_bid_listTTD Manage Bid Listcan change or delete data

    Create, retrieve, update, replace, or delete a single TTD bid list via GraphQL. Bid lists define price floors/ceilings or block rules for specific inventory targets (domains, apps, deal IDs, etc.) and are attached to ad groups or advertisers. ### Operations - **create** — `bidListCreate(input: BidListCreateInput!)` — create a new bid list - **get** — `bidList(id: ID!)` — retrieve a bid list by ID - **update** — `bidListUpdate(input: BidListUpdateInput!)` — incremental change (add/remove specific lines without restating the entire list) - **set** — `bidListSet(input: BidListSetInput!)` — atom…

  • ttd_manage_seedTTD Manage Seed

    Manage audience seed segments in The Trade Desk via GraphQL. Supports creating, updating, and retrieving seed definitions, setting a default seed for an advertiser, and attaching/detaching a seed from a campaign. ### Operations - **create** — Create a new audience seed for an advertiser (requires `advertiserId` + `data`) - **update** — Update an existing seed's properties (requires `seedId` + `data`) - **get** — Retrieve seed details including quality and active ID count (requires `seedId`) - **set_default_advertiser** — Set a seed as the default for an advertiser (requires `advertiserId` + …

  • ttd_rerun_report_scheduleRerun TTD Report Schedule Immediately (GraphQL)

    Immediately rerun a report from an existing TTD schedule via GraphQL (`myReportsReportScheduleCreate` with `singleRunFromExistingScheduleInput`). Use this when a download link has expired or the report errored — it creates a fresh execution of an existing schedule without creating a new schedule. **Important distinctions:** - This tool triggers a **new single execution** of an existing schedule — it does not modify or replace the schedule - The regenerated report uses the **most recent date range** (not the original run's dates) - The `scheduleId` is the ID of an existing report schedule — u…

  • ttd_submit_reportSubmit TTD Report

    Submit a report to The Trade Desk without waiting for completion. Returns a `reportScheduleId` immediately. Use `ttd_check_report_status` to poll for completion, then `ttd_download_report` to fetch results. **Non-blocking workflow:** 1. `ttd_submit_report` → get `reportScheduleId` 2. `ttd_check_report_status` (repeat every 5-10s) → wait for "Complete" 3. `ttd_download_report` with the `downloadUrl` → get a bounded summary or paged row slice Use `ttd_get_report` instead for a blocking convenience shortcut.

  • ttd_update_entityUpdate TTD Entitycan change or delete data

    Description is built at runtime.

  • ttd_update_report_scheduleUpdate TTD Report Schedule Status (GraphQL)

    Enable or disable a TTD report schedule via GraphQL (`myReportsReportScheduleUpdate`). Use this to activate a disabled schedule or disable an active one without deleting it. **Important:** Only the GraphQL API supports enabling/disabling schedules — the REST API cannot do this. **Workflow:** 1. Use `ttd_list_report_schedules` to find the schedule ID and its current status 2. Call this tool with the schedule ID and the desired new status 3. Use `ttd_get_report_schedule` to confirm the status change **Tips:** - Set `status: "DISABLED"` to pause a schedule without losing its configuration - S…

  • ttd_update_report_templateUpdate TTD Report Template (GraphQL)can change or delete data

    Update an existing report template via TTD GraphQL (`myReportsTemplateUpdate`). **IMPORTANT:** The updated structure **completely replaces** the existing template. You must re-include all fields and metrics you want to keep — any omitted columns will be removed. Use `ttd_get_report_template` first to retrieve the current template structure before updating. Use `ttd_list_report_templates` to find the template ID. Use `ttd_list_report_types` and `ttd_get_report_type_schema` to discover available fields and metrics.

  • ttd_upload_videoUpload a Hosted Video Creative to The Trade Deskcan change or delete data

    Upload a video file to The Trade Desk and create a **TTD-hosted** video creative. Unlike a third-party VAST creative (which references an externally-hosted VAST tag via `ttd_create_entity`), this tool hosts the video *on* The Trade Desk. It runs TTD's documented three-step flow for you: 1. `POST /v3/creative/generateuploadurlforvideocreative` — get a presigned upload URL. 2. `PUT` the downloaded video bytes to that URL. 3. `POST /v3/creative` (CreativeType `Video`) referencing the uploaded file. **Video requirements:** MP4 (H.264) is the safest container/codec; supply the creative's display…

  • ttd_validate_entityTTD Entity Validation (Client-Side)read-only

    Description is built at runtime.

  • vec_bool_null
  • vec_empty
  • vec_key_ordering
  • vec_null_vs_omitted
  • vec_numbers

Signals

Stars
8
Forks
5
Open issues
19
Weekly downloads
20
Last commit
Oct 21, 2026 (7 days ago)
Last release
Oct 9, 2026 (19 days ago)
Last package publish
Jun 10, 2026 (4 months ago)

From GitHub (fetched Oct 24, 2026) and the package registry.

Details

Registry name
io.github.cesteral/tiktok-mcp
Version
1.3.0
Auth
Auth not stated
License
Apache-2.0
First seen
Oct 24, 2026
Last checked
Oct 25, 2026

More from cesteral

Cite this page

TikTok Ads MCP Server. Agent Mart. https://agentmart.dev/connectors/cesteral-tiktok-mcp (last updated 2026-10-25)