Plainrouter

com.plainrouter由 plainrouter.com 發布官方發布者v0.4.2更新於 Nov 8, 2026

Meta Ads MCP: read ad accounts and signal health; propose governed changes under Ask or Full.

已驗證Streamable HTTP可網頁執行效率與工作流資料與分析商業與電商

概覽

AI 產生的概覽

託管的 Meta 廣告 MCP 伺服器,可讀取廣告帳戶與轉換訊號健康狀況,並在 Ask 或 Full 模式下提出受控管的廣告變更。

可以做什麼
  • 檢視已授權的工作區、廣告帳戶、帳戶清單與創意庫
  • 將 Meta 回報的點擊與轉換,與 Plainrouter 自行計數的到達、轉換旅程、CAC 與試用證明並列比較
  • 診斷轉換訊號品質、同意率、Cookie 掃描結果與事件量
  • 預覽、提出並追蹤暫停、預算調整、素材上傳、複製暫停廣告等動作,附帶政策檢查與決策回執
  • 管理成效規則、廣告測試與投放部署計畫
適用情境
適合需要讓助理在分析 Meta 廣告帳戶時對照獨立計數的到達與轉換資料,或希望廣告變更經過政策檢核、人工核准與回執,而非直接寫入的情境。
執行需求
遠端 Streamable HTTP 端點(plainrouter.com),無需本機安裝。需要 Plainrouter 工作區金鑰並以 bearer token 傳送(例如透過 PLAINROUTER_WORKSPACE_TOKEN 環境變數),或使用 OAuth 登入,且已連接 Meta 廣告帳戶。Read 層級僅能讀取,Write 層級另含預覽與提案。MCP 包含於所有方案,月廣告花費低於門檻時免費。
安裝前請注意
寫入權限可變更實際廣告帳戶:在 Full 模式下,符合政策的暫停、啟用、調降預算、上傳素材與複製暫停廣告會自動執行,且終止開關不會復原已生效的變更。請勿將工作區金鑰放入網址或提示詞,建議先使用 Read 金鑰;另須留意來自 Meta 官方 Ads MCP 的數字屬於未經核實的聲明。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Plainrouter,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/com.plainrouter%2Fmcp/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "plainrouter": {
      "type": "http",
      "url": "https://plainrouter.com/mcp"
    }
  }
}

README

Plainrouter: Meta Ads MCP server, SDKs and CLI

Plainrouter is a hosted Meta Ads MCP server and API for developers and AI agents. Connect Claude, ChatGPT, Codex, Cursor, Gemini CLI or another MCP client to read a Meta ad account and its conversion-signal health. The agent can then propose pauses, resumes, budget changes and creative tests. Workspace policy checks every proposal. In Ask mode a person approves each change; in Full mode policy-allowed changes run automatically. New ad copies are created paused.

Plainrouter also keeps its own count of website arrivals and verified revenue beside Meta's reported numbers, so an agent can check Meta's claims against independent evidence.

This repository holds Plainrouter's public SDKs (TypeScript, Python, Ruby and PHP; Go lives in plainrouter/sdk-go), the CLI, MCP metadata and official Agent Skills.

At a glance

MCP endpointhttps://plainrouter.com/mcp (Streamable HTTP)
AuthenticationA Workspace key sent as a bearer token, or Plainrouter OAuth sign-in where the client supports it
Access tiersRead for account, signal, inventory and creative reads; Write adds previews and proposals
ApprovalsAsk: a person approves each change. Full: policy-allowed changes run automatically. Rule violations are blocked, the kill switch stops further writes, and every change gets a decision receipt
ClientsClaude Code, Claude, ChatGPT (developer mode), Codex, Cursor, Gemini CLI, Grok, Meta Muse, Hermes, OpenClaw, n8n and Make (setup guides)
PricingMCP is included on every plan and calls are not metered. Free below €300 of monthly ad spend (pricing)
Registrycom.plainrouter/mcp in the official MCP Registry
DocsMCP overview · Meta Ads MCP server

Quick start

Connect your Meta ad account

Create a Workspace key in Settings → Workspace keys (start with Read), keep it in an environment variable, and point your client at https://plainrouter.com/mcp.

Claude Code (.mcp.json):

json
{  "mcpServers": {    "plainrouter": {      "type": "http",      "url": "https://plainrouter.com/mcp",      "headers": { "Authorization": "Bearer ${PLAINROUTER_WORKSPACE_TOKEN}" }    }  }}

Codex (~/.codex/config.toml):

toml
[mcp_servers.plainrouter]url = "https://plainrouter.com/mcp"bearer_token_env_var = "PLAINROUTER_WORKSPACE_TOKEN"

ChatGPT (developer mode), Claude custom connectors and Cursor can sign in with OAuth instead. Add https://plainrouter.com/mcp, then choose the Meta ad account and Read or Write access on Plainrouter's consent screen. Never put a credential in the endpoint URL or in a prompt.

Call get_account_state first and confirm the workspace and Meta ad account before any other work. Other clients: setup guides.

FAQ

What is a Meta Ads MCP server?

A Model Context Protocol server that exposes a Meta ad account as tools an AI client can call. Plainrouter's is hosted, so there is nothing to install or keep a Meta token for. It adds conversion-signal diagnostics, one-workspace keys and an approval step for supported changes.

Can an AI agent analyze my Meta ads without changing anything?

Yes. A Read key covers account, Signals, inventory and creative-library reads and cannot preview or propose changes. It can still submit feedback and run the optional ingestion diagnostic, which writes one identity-free test event.

How is this different from Meta's own Ads MCP server?

Meta hosts a first-party server at https://mcp.facebook.com/ads for its own advertising operations, and it is the first option to evaluate for direct access. Plainrouter adds an independent conversion count and delivery diagnostics, Ask/Full approvals with policy checks and receipts, and keys scoped to one workspace. See the Meta Ads MCP comparison.

Does it work with ChatGPT?

Yes, in ChatGPT developer mode on paid plans. Add https://plainrouter.com/mcp with OAuth and choose the ad account on Plainrouter's consent screen.

What does it cost?

MCP is included on every Plainrouter plan, and MCP calls are not metered. Plainrouter is free below €300 of observed monthly ad spend.

Agent Skills

For agents, the repository also includes:

  • repository guidance for Claude Code, Codex, Cursor, and Windsurf;
  • Agent Plugin manifests for Claude Code and Codex;
  • a Streamable HTTP MCP configuration for https://plainrouter.com/mcp; and
  • three official Agent Skills:

Install the skills with the open Agent Skills CLI:

sh
npx skills add plainrouter/sdk

Tools

The live server advertises 32 tools. Your key tier, grants and the selected ad account decide which ones a connection can use. The full contracts are in the MCP tool reference.

ToolKindWhat it does
Account and reporting
get_account_stateReadReturn the authorized advertising account, workspace, connection, Signal destination, and currently available account capabilities.
get_account_inventoryReadRead the authorized workspace account inventory from the Meta mirror, with optional level, status, parent, and ID cursor filters.
get_inventory_metricsReadRead daily Meta metrics beside counted Plainrouter arrivals for mirrored campaigns, ad sets and ads.
get_performanceReadCompare Meta-reported conversions with the conversions Plainrouter accepted and verified for the selected account.
get_arrivals_comparisonReadReturn counted arrivals beside Meta outbound clicks for the authorized workspace and selected trailing window.
get-creative-libraryReadReturn Meta image and video assets with the ads and last-30-day performance historically associated with each asset.
Conversion signals
get_signal_healthReadDiagnostic view of first-party event flow, Meta delivery outcomes, match quality, and reconciliation gaps from Plainrouter stored measurements.
get_install_instructionsReadReturn managed-hostname Path A installation material and first-arrival state for the authorized workspace.
verify_signal_ingestionWriteVerify server-side Signal ingestion by writing one idempotent, identity-free modeled event for the authorized workspace.
Actions (governed changes)
dry_run_actionsReadPreview policy decisions and execution diffs for a proposed Action batch without writing it.
propose-actionsWritePropose a batch of budget, status, upload, or creative-duplication actions for the approved ad account.
upload-assetWriteStage a JPEG/PNG image and submit a canonical upload action through workspace policy.
duplicate-ad-with-creativeWriteSubmit a canonical proposal to duplicate a source Meta ad with a different creative asset.
list_actionsReadList proposed actions for the authorized workspace and advertising account.
get_action_batchReadGet a proposed action batch for the authorized workspace and advertising account.
get_actionReadGet one proposed action for the authorized workspace and advertising account.
get_action_decision_receiptReadGet the persisted decision receipt for an authorized proposed action.
get_action_policyReadGet the effective Actions policy for the authorized workspace without creating a policy row.
Launch
launch.creatives.indexReadList creatives in the workspace bound to the authenticated execution token.
launch.creatives.showReadShow one creative in the workspace bound to the authenticated execution token.
launch.creatives.storeWriteStore one JPEG, PNG, MP4, or QuickTime creative from strict base64 content in the token-bound workspace.
launch.creatives.store-from-urlWriteFetch and store one creative from a vetted HTTPS URL in the token-bound workspace.
launch.creatives.statusWriteSet the status of one creative in the workspace bound to the authenticated execution token.
launch.plans.listReadList deployment plans for the approved ad account, including each current review_version to pass when executing the reviewed plan.
launch.plans.showReadRead one deployment plan and its current review_version and latest launch-intent status in the workspace and ad account bound to the execution token.
launch.plans.createWriteCreate a deployment plan for the approved ad account.
launch.plans.updateWriteUpdate a deployment plan for the approved ad account.
launch.plans.validateWriteValidate a deployment plan for the approved ad account.
launch.plans.copyWriteCopy a failed plan to a new draft with the same content.
launch.plans.executeWriteExecute one deployment plan in the workspace and ad account bound to the execution token; requires the review_version returned by the plan read you acted on.
Workspace
revoke_grantWriteRevoke an active workspace grant.
submit_feedbackWriteReport a bug or a missing capability you hit while using this server.

Every change to Meta goes through Actions: policy checks, the workspace's Ask or Full mode, provider verification and a decision receipt.

TypeScript SDK

Install the generated SDK:

sh
npm install @plainrouter/sdk

Inject a Signal Tracker secret explicitly, then call a generated operation:

ts
import { configurePlainrouter, listEvents } from "@plainrouter/sdk";
configurePlainrouter({  signalTrackerSecret: process.env.PLAINROUTER_TOKEN!,});
const response = await listEvents();

The default API base URL is https://plainrouter.com/api/v1. The SDK never embeds credentials.

Action policy compatibility

The next npm and Python version is 0.7.0; the next Ruby version is 0.3.0. These breaking 0.x updates remove retired workspace policy settings from the generated clients. Policy reads expose execution mode and outcome-check settings. Update integrations to consume the current signed policy response.

In Ask mode, a person approves every change first. In Full mode, the workspace lets changes run automatically without a per-change approval. Every change gets a receipt, and the kill switch stops all changes. It does not undo earlier changes.

Python SDK

Install the Python SDK:

sh
python -m pip install plainrouter
python
from plainrouter import create_client, list_events
client = create_client("your-signal-tracker-secret")response = list_events.sync(client=client)

Python 3.11 or newer is required. Python package releases are versioned independently from the API contract and are verified against the vendored, signed OpenAPI contract before publication.

Ruby SDK

Install the Ruby gem:

sh
gem install plainrouter-sdk

Use the compact client facade for the three API areas:

ruby
require "plainrouter"
client = PlainRouter::Client.new(  token: ENV.fetch("PLAINROUTER_TOKEN"))
events = client.operations.list_events(per_page: 25)

Ruby 3.2 or newer is required. The complete generated models and HTTP-aware methods remain available under PlainRouter::OpenAPI without crowding the top-level SDK documentation.

PHP SDK

Install the PHP package:

sh
composer require plainrouter/sdk

Use the compact client facade for the three API areas:

php
use Plainrouter\Client;
$client = new Client(token: getenv('PLAINROUTER_TOKEN'));
$events = $client->operations->listEvents(25);

PHP 8.2 or newer is required. The complete generated models and HTTP-aware methods remain available under Plainrouter\OpenAPI.

Go SDK

The generated Go client is published as its own standard Go module:

sh
go get github.com/plainrouter/[email protected]

CLI

Install the canonical scoped CLI globally:

sh
npm i -g @plainrouter/cliplainrouter --help

Or run the scoped package without installing it globally:

sh
npx @plainrouter/cli --help

Python users can install the equivalent CLI from PyPI with pipx:

sh
pipx install plainrouterplainrouter --help

Both distributions expose the plainrouter command. Keep only one global installation on your PATH to avoid selecting an unintended executable.

Provide a Signal Tracker secret without placing it in shell history:

sh
read -s PLAINROUTER_TOKENexport PLAINROUTER_TOKENplainrouter events listunset PLAINROUTER_TOKEN

The same CLI is also available from the official Homebrew tap:

sh
brew install plainrouter/tap/plainrouter

Developer resources

Official developer resources: documentation, API documentation, and OpenAPI specification.

Official project: plainrouter.com · documentation · source

This repository is in 0.x development. Stability and support are not yet promised.

來源:README.md,提交 dbc72e7

工具

47

get_arrivals_comparison

Get arrivals comparison

Return counted arrivals beside Meta outbound clicks for the authorized workspace and selected trailing window. difference is arrivals.value minus claimed_clicks; positive means more arrivals than Meta outbound clicks. conversions.count counts retained logical conversions under the current workspace conversion choices, independently of arrivals and Meta acceptance; the block publishes its selection version, completed local-day period, and availability. purchases.plainrouter_accepted_purchases counts only non-test, observed, attribution-joined Purchases Plainrouter sent and Meta accepted, beside Meta-reported Purchase counts under the account attribution setting, with no purchase gap or status; its eligibility differs from conversions.count, and its account-local window ends the day before Meta's latest purchase read, so it can end earlier than conversions.period; with no purchase read it covers conversions.period and window_start_date and window_end_date are null. purchases.plainrouter_accepted_purchases is null when it was not measured: the account timezone is missing or invalid, there is no destination account, no account-local day of the purchase window is retained, or part of the window is older than retained delivery records; null means unavailable, while 0 is a measured zero. An unavailable status from missing Meta data still carries measured arrivals; only the status_message 'No complete retained day is available for this comparison period.' pairs unavailable with arrivals.value 0 by convention, not a measured zero. channel_subset.rows[].arrivals counts consented conversion events by source, not arrivals; these rows are not a breakdown of arrivals.value and need not sum to it. claimed_clicks_source of manual means a person entered the click counts; mixed means differing sources, which may include manual entries or legacy rows with unknown provenance. Unless the destination is inactive, claimed_clicks adds Meta's click counts for each account-timezone day; if a

輸入參數daysmonthsworkspace_id

get_conversion_journeys

Get conversion journeys

Read credited conversion journeys for an authorized workspace. Plainrouter counts earned from its own journeys. Earned covers every selected conversion kind; claimed covers Meta Purchases only, possibly in another currency. The two are shown side by side and are never reconciled. The output carries no Plainrouter person or visitor identifiers. UTM labels and ad ids appear exactly as the merchant's links sent them. basis_note explains how the two counts differ.

輸入參數tofromlevellimitmodelcursorlookbackworkspace_idconversion_kinds

get_cac_by_channel

Get cost per earned conversion by channel

Return Plainrouter-earned conversions by channel, with cost per earned conversion in each spend currency, using stored ad spend. Each currency's cac divides that currency's spend by all earned conversions in the row, so when a row has spend in more than one currency, no single value is its full cost; Meta's claimed cost counts Purchases only. Spend and conversion dates are aligned; touch time does not move spend between days. basis_note explains how the two counts differ.

輸入參數tofromlevelmodellookbackworkspace_idconversion_kind

get_signal_quality

Get signal quality

Read stored conversion delivery outcomes, delivery gaps, retained identity presence, and journey coverage for an authorized workspace. The response uses stored data only and does not call advertising APIs. refused_before_delivery.consent counts undelivered events with consent_basis=severed_measurement, not banner refusals; other undelivered opt-outs and lifecycle events whose checkout lacked consent fall under reason_unknown. Consent rates are 0-1 fractions.

輸入參數tofromworkspace_idconversion_kinds

get_trial_proof

Get trial-to-paid proof

Follow stored trial-start cohorts to their first positive payment at 14, 30 and 60 days. Default campaign/ad-set membership is the last pre-trial touch carrying a campaign/ad-set id in the frozen trial journey. Uses integer mature samples and Wilson intervals. Stored data only; no provider calls or writes.

輸入參數tofromlevelmodellookbackworkspace_id

get_event_volume

Get weekly event volume

Read weekly distinct optimization-event delivery counts by ad set, campaign or platform from stored data. Plainrouter delivery counts, not Meta's learning status. Test sends excluded; conversion kinds separate. Configurable planning benchmark, unverified live. No provider calls or writes.

輸入參數tofromlevelmodellookbackworkspace_id

get_signal_health

Get signal health

Diagnostic view of first-party event flow, Meta delivery outcomes, match quality, and reconciliation gaps from Plainrouter stored measurements. Not admissible evidence for spend-affecting proposals. Does not call the Marketing API. Reconciliation compares Meta dataset event totals with events Plainrouter sent and Meta accepted. performance.basis_note explains how the two counts differ.

輸入參數daysmonthsaccount_idworkspace_id

get_performance

Get performance

Admissible proposal evidence: reconciliation meta_reported shows Meta dataset event totals beside gateway_verified events Plainrouter sent and Meta accepted. The separate purchases block shows Meta-reported Purchase counts under the account attribution setting beside Plainrouter accepted server-side Purchase counts, with its completed account-local window start and end dates and no purchase gap or status. purchases.plainrouter_accepted_purchases is null when it was not measured: the account timezone is missing or invalid, the account has no eligible destination, no account-local day of the purchase window is retained, or part of the window is older than retained delivery records; null means unavailable, while 0 is a measured zero. Includes stored daily Meta spend and delivery metrics. platform_claimed_clicks means Meta outbound clicks. Days before 2026-06-29, or not re-read by the daily sync since 2026-09-27, may still hold Meta link clicks or all clicks. purchases.basis_note explains how the two counts differ. basis_note explains how the two counts differ.

輸入參數daysaccount_idworkspace_id

get_install_instructions

Get install instructions

Return managed-hostname installation material and first-arrival state for the authorized workspace. Includes ordered SaaS setup steps and owner handoffs. Returns no same-origin forwarding material.

輸入參數workspace_id

list_workspaces

List workspaces

List the workspaces and effective access tiers in this credential scope.

輸入參數limitcursor

get_account_state

Get account state

Return the authorized advertising account, workspace, connection, Signal destination, and currently available account capabilities. This read-only inspection tool does not change the account.

輸入參數account_idworkspace_id

get_account_inventory

Get account inventory

Read the authorized workspace account inventory from the Meta mirror, with optional level, status, parent, and ID cursor filters.

輸入參數levellimitadset_idafter_idaccount_id必填campaign_idworkspace_ideffective_status

get_inventory_metrics

Get inventory metrics

Return counted Plainrouter arrivals beside daily Meta metrics for mirrored campaigns, ad sets and ads. object_metrics contains account-timezone daily comparisons; unmatched_arrivals is one workspace/window count without unknown IDs. Counts are null when the arrivals store is disabled. Optional change history is retention-clamped. basis_note explains how the two counts differ.

輸入參數ad_idlimitcursoradset_idend_dateaccount_id必填start_datecampaign_idworkspace_idinclude_changes

propose-actions

Propose actions

Propose a batch of budget, status, upload, or creative-duplication actions for the approved ad account. In Ask, every policy-allowed change waits for a person to approve it. In Full, policy-allowed changes run automatically. Rule violations are blocked and shown in the Inbox, and cannot be approved. The execution kill switch stops further writes and never undoes a landed change. Dispatch still requires a live grant, an account in the workspace, and no duplicate write. Proposals of set_status, adjust_budget, replace_creative, shift_spend and rollback are refused; stored actions of these types never run. Meta target proposals freeze counted_evidence over the last seven completed account-local days for display only. Evidence may cite get_inventory_metrics leaf fields for the proposed target: Meta inline link clicks, counted arrivals and Purchase count/value at that target’s own level. Spend, impressions, child-object rows, containers, ratios and other action types are refused.

輸入參數limitcursoractions必填evidence必填rationale必填account_idworkspace_idtarget_source必填idempotency_key必填

dry_run_actions

Preview actions

Preview policy decisions and execution diffs for a proposed Action batch without writing it.

輸入參數limitcursoractions必填evidence必填rationale必填account_idworkspace_idtarget_source必填idempotency_key必填

list_actions

List actions

List proposed actions for the authorized workspace and advertising account.

輸入參數pagelimitcursorstatusaccount_idworkspace_id

get_action_batch

Get action batch

Get a proposed action batch for the authorized workspace and advertising account. Each action’s counted_evidence contains frozen proposal-time target figures and coverage; null means not captured.

輸入參數limitcursorbatch_id必填account_idworkspace_id

get_action

Get action

Get one proposed action for the authorized workspace and advertising account. counted_evidence contains frozen target figures and coverage captured at proposal time; null means not captured. The figures inform and never gate.

輸入參數action_id必填account_idworkspace_id

get_action_decision_receipt

Get action decision receipt

Get the persisted decision receipt for an authorized proposed action. Receipts can include counted_evidence frozen at proposal time with account-currency values, coverage and the other-currency exclusion.

輸入參數action_id必填account_idworkspace_id

get_action_policy

Get action policy

Get the effective Actions policy for the authorized workspace without creating a policy row.

輸入參數account_idworkspace_id

actions.rules.list

List action rules

List stored performance rules available to this workspace key. This does not evaluate them.

輸入參數pagecursorper_pageworkspace_id

actions.rules.show

Show action rule

Read a stored performance rule and its immutable revisions, with author type only.

輸入參數limitcursorrun_idrule_id必填workspace_iddecisions_cursor

actions.rules.create

Create action rule

Store a performance rule disabled. Enabling requires an explicit update; this never evaluates or proposes actions.

輸入參數name必填limitcursordefinition必填workspace_idplatform_ad_account_id必填

actions.rules.update

Update action rule

Edit a stored performance rule by appending a revision, or explicitly enable or disable it. This never evaluates or proposes actions.

輸入參數namelimitcursorenabledrule_id必填definitionworkspace_id

actions.tests.list

List ad tests

List judging Tests with their frozen conversion definitions, loser pause candidate status and reason, and observed conversion event choices for the authorized workspace and ad account. Results rank variants only within each Test.

輸入參數pageper_pageworkspace_id

actions.tests.show

Show ad test

Read one Test, its frozen conversion definition, stored verdict facts, and loser pause candidate status and reason. Spend per recorded conversion compares variants only within this Test.

輸入參數test_id必填workspace_id

actions.tests.create

Create ad test

Create a judging-only Test from 2 to 4 ads in one mirrored Meta ad set. Omit the conversion choice to freeze the workspace default. It records a Plainrouter verdict and never creates a proposal or writes to Meta.

輸入參數axis必填ad_set_id必填event_namemaximum_daysworkspace_idmember_ad_ids必填arrivals_floorconversion_modemaximum_spend_minorminimum_conversionsplatform_ad_account_id必填

get-creative-library

Get Meta creative library

Return Meta image and video assets with the ads and last-30-day performance historically associated with each asset.

輸入參數limitcursorads_limitaccount_idads_cursorasset_typeworkspace_idperformance_cursor

launch.creatives.index

List workspace creatives

List creatives in the workspace bound to the authenticated execution token.

輸入參數pagecursorper_pageworkspace_id

launch.creatives.show

Show creative

Show one creative in the workspace bound to the authenticated execution token.

輸入參數creative_id必填workspace_id

launch.creatives.store

Store creative

Store one JPEG, PNG, MP4, or QuickTime creative from strict base64 content in the token-bound workspace. When supplying output from an outside tool, set tags.generator, tags.generator_job and, for a variation, tags.parent_creative. Images enter the library by upload or launch.creatives.store-from-url.

輸入參數tagsmime_typesource_refworkspace_idcontent_base64必填

launch.creatives.store-from-url

Store creative from URL

Fetch and store one creative from a vetted HTTPS URL in the token-bound workspace. When supplying output from an outside tool, set tags.generator, tags.generator_job and, for a variation, tags.parent_creative. Images enter the library by upload or launch.creatives.store-from-url.

輸入參數url必填tagssource_refworkspace_id

launch.creatives.status

Update creative status

Set the status of one creative in the workspace bound to the authenticated execution token.

輸入參數status必填creative_id必填workspace_id

upload-asset

Upload asset

Stage a JPEG/PNG image and submit a canonical upload action through workspace policy. In Ask mode every change waits for a person's approval; in Full mode, changes that pass admission and workspace policy run automatically.

輸入參數filename必填rationale必填account_idasset_type必填workspace_idcontent_base64idempotency_key必填

duplicate-ad-with-creative

Duplicate ad with creative

Submit a canonical proposal to duplicate a source Meta ad with a different creative asset. In Ask mode every change waits for a person's approval; in Full mode, changes that pass admission and workspace policy run automatically. Policy-allowed copies are always created PAUSED.

輸入參數asset_id必填rationale必填source_ad必填account_idname_suffixworkspace_ididempotency_key必填

launch.plans.execute

Execute deployment plan

Execute one deployment plan in the workspace and ad account bound to the execution token; requires the review_version returned by the plan read you acted on. Changed plans are refused before any intent or staging; identical intent_key and review_version retries replay. All provider mutations are proposed through Actions.

輸入參數plan_id必填intent_keyworkspace_idreview_version必填

launch.plans.show

Show deployment plan

Read one deployment plan and its current review_version and latest launch-intent status in the workspace and ad account bound to the execution token.

輸入參數limitcursorplan_id必填workspace_id

launch.plans.list

List deployment plans

List deployment plans for the approved ad account, including each current review_version to pass when executing the reviewed plan.

輸入參數pagecursorper_pageworkspace_id

launch.plans.create

Create deployment plan

Create a deployment plan for the approved ad account.

輸入參數copy必填namecurrency必填platform必填ad_set_refad_set_specbudget_type必填campaign_refcreative_idslanding_page必填workspace_idcampaign_spec另有 5 個

launch.plans.copy

Copy deployment plan

Copy a failed plan to a new draft with the same content. Validate and submit the draft afresh; the failed plan and its history stay unchanged.

輸入參數plan_id必填workspace_id

launch.plans.update

Update deployment plan

Update a deployment plan for the approved ad account.

輸入參數copynameplan_id必填currencyplatformad_set_refad_set_specbudget_typecampaign_refcreative_idslanding_pageworkspace_id另有 6 個

launch.plans.validate

Validate deployment plan

Validate a deployment plan for the approved ad account.

輸入參數plan_id必填workspace_id

verify_signal_ingestion

Send test signal event

Send one idempotent, identity-free test event through server-side Signal ingestion for the authorized workspace. A receipt confirms the ledger received it; it is not evidence of a real arrival and does not complete onboarding. No spend capability. It is never sent to Meta.

輸入參數workspace_id

revoke_grant

Revoke grant

Revoke an active workspace grant. The caller must hold the revoke_grant scope in the same workspace or be the human delegator of the granted agent.

輸入參數grant_id必填workspace_id

submit_feedback

Submit feedback

Report a bug or a missing capability you hit while using this server. Say what you were trying to do and what happened. Nothing in the account changes and no reply is sent here.

輸入參數kind必填message必填workspace_id

版本歷史

4
  1. v0.4.2最新Oct 29, 2026
  2. v0.4.1Oct 1, 2026
  3. v0.4.0Sep 17, 2026
  4. v0.3.2Sep 16, 2026

評分

已滿足適用檢查項的 89%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分

    請在註冊中心條目中發布圖示。

  • 文件15 分
  • 授權條款不適用

    託管服務按其提供方的條款使用,因此這裡不要求授權條款。此檢查項不計入百分比。