Official MCP RegistryListed
Plainrouter
Meta Ads MCP: read ad accounts and signal health; propose governed changes under Ask or Full.
First seen 2 Oct 2026. Evidence as of 7 Oct 2026.
37
Tools
From an anonymous probe
1
Source listings
Each with its own history
50
Recorded changes
Since first seen
Tools
| Tool | Description | Behaviour |
|---|---|---|
| actions.rules.create | Store a performance rule disabled. Enabling requires an explicit update; this never evaluates or proposes actions. | Changes data |
| actions.rules.list | List stored performance rules available to this workspace key. This does not evaluate them. | Read-only |
| actions.rules.show | Read a stored performance rule and its immutable revisions, with author type only. | Read-only |
| actions.rules.update | Edit a stored performance rule by appending a revision, or explicitly enable or disable it. This never evaluates or proposes actions. | Changes data |
| dry_run_actions | Preview policy decisions and execution diffs for a proposed Action batch without writing it. | Read-only |
| 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 your approval; in Full mode, changes that pass admission and workspace policy run automatically. Policy-allowed copies are always created PAUSED. | Changes data |
| get_account_inventory | Read the authorized workspace account inventory from the Meta mirror, with optional level, status, parent, and ID cursor filters. | Read-only |
| 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. | Read-only |
| get_action | Get one proposed action for the authorized workspace and advertising account. | Read-only |
| get_action_batch | Get a proposed action batch for the authorized workspace and advertising account. | Read-only |
| get_action_decision_receipt | Get the persisted decision receipt for an authorized proposed action. | Read-only |
| get_action_policy | Get the effective Actions policy for the authorized workspace without creating a policy row. | Read-only |
| get_arrivals_comparison | Return counted arrivals beside Meta outbound clicks for the authorized workspace and selected trailing window. The 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 end date and no purchase gap or status. 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. | Read-only |
| get_install_instructions | Return managed-hostname Path A installation material and first-arrival state for the authorized workspace. Returns no same-origin forwarding material. | Read-only |
| get_inventory_metrics | Read daily Meta metrics beside counted PlainRouter arrivals 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. | Read-only |
| get_performance | Admissible proposal evidence: reconciliation meta_reported is the existing Meta-reported conversions count compared with gateway_verified accepted conversions. 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. 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. | Read-only |
| 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. | Read-only |
| get-creative-library | Return Meta image and video assets with the ads and last-30-day performance historically associated with each asset. | Read-only |
| launch.creatives.index | List creatives in the workspace bound to the authenticated execution token. | Read-only |
| launch.creatives.show | Show one creative in the workspace bound to the authenticated execution token. | Read-only |
| launch.creatives.status | Set the status of one creative in the workspace bound to the authenticated execution token. | Changes data |
| launch.creatives.store | 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. PlainRouter’s own creative tools will set these tags on every creative they make; this intake performs no generation, rendering or scoring. | Changes data |
| launch.creatives.store-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. PlainRouter’s own creative tools will set these tags on every creative they make; this intake performs no generation, rendering or scoring. | Changes data |
| launch.plans.copy | 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. | Changes data |
| launch.plans.create | Create a deployment plan for the approved ad account. | Changes data |
| launch.plans.execute | 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. | Changes data |
| launch.plans.list | List deployment plans for the approved ad account, including each current review_version to pass when executing the reviewed plan. | Read-only |
| launch.plans.show | 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. | Read-only |
| launch.plans.update | Update a deployment plan for the approved ad account. | Changes data |
| launch.plans.validate | Validate a deployment plan for the approved ad account. | Changes data |
| list_actions | List proposed actions for the authorized workspace and advertising account. | Read-only |
| list_workspaces | List the workspaces and effective access tiers in this credential scope. | Read-only |
| 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. Legacy set_status and adjust_budget never run. | Not declared |
| 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. | Not declared |
| 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. | Not declared |
| upload-asset | Stage a JPEG/PNG image and submit a canonical upload action through workspace policy. In Ask mode every change waits for your approval; in Full mode, changes that pass admission and workspace policy run automatically. | Changes data |
| verify_signal_ingestion | Verify server-side Signal ingestion by writing one idempotent, identity-free modeled event for the authorized workspace. This confirms ledger receipt but does not count as real arrival evidence or complete onboarding. No spend capability. | Not declared |
Change history
- verify_signal_ingestion: input schema changed (+workspace_id)
- upload-asset: input schema changed (+workspace_id)
- submit_feedback: input schema changed (+workspace_id)
- revoke_grant: input schema changed (+workspace_id)
- propose-actions: input schema changed (+workspace_id)
- list_workspaces: tool added
- list_actions: input schema changed (+workspace_id)
- launch.plans.validate: input schema changed (+workspace_id)
- launch.plans.update: input schema changed (+creative_overrides, +workspace_id)
- launch.plans.show: input schema changed (+workspace_id)
- launch.plans.list: input schema changed (+workspace_id)
- launch.plans.execute: input schema changed (+workspace_id)
- launch.plans.create: input schema changed (+creative_overrides, +workspace_id)
- launch.plans.copy: input schema changed (+workspace_id)
- launch.creatives.store-from-url: input schema changed (+workspace_id)
- launch.creatives.store: input schema changed (+workspace_id)
- launch.creatives.status: input schema changed (+workspace_id)
- launch.creatives.show: input schema changed (+workspace_id)
- launch.creatives.index: input schema changed (+workspace_id)
- get-creative-library: input schema changed (+workspace_id)
- get_signal_health: input schema changed (+workspace_id)
- get_performance: input schema changed (+workspace_id)
- get_inventory_metrics: input schema changed (+workspace_id)
- get_install_instructions: input schema changed (+workspace_id)
- get_arrivals_comparison: input schema changed (+workspace_id)
- get_action_policy: input schema changed (+workspace_id)
- get_action_decision_receipt: input schema changed (+workspace_id)
- get_action_batch: input schema changed (+workspace_id)
- get_action: input schema changed (+workspace_id)
- get_account_state: input schema changed (+workspace_id)
- get_account_inventory: input schema changed (+workspace_id)
- duplicate-ad-with-creative: input schema changed (+workspace_id)
- dry_run_actions: input schema changed (+workspace_id)
- actions.rules.update: input schema changed (+workspace_id)
- actions.rules.show: input schema changed (+workspace_id)
- actions.rules.list: input schema changed (+workspace_id)
- actions.rules.create: input schema changed (+workspace_id)
- list_actions: input schema changed
- get_action_batch: input schema changed
- get_action: input schema changed
- actions.rules.update: tool added
- actions.rules.show: tool added
- actions.rules.list: tool added
- actions.rules.create: tool added
- list_actions: input schema changed
- launch.plans.show: input schema changed
- launch.plans.show: description changed (+"current review_version and")
- launch.plans.list: input schema changed
- launch.plans.list: description changed (+"account, including each current review_version to pass when executing the reviewed plan." -"account.")
- launch.plans.execute: input schema changed (+review_version)
| Source | Listing | First seen | Last seen | Versions |
|---|---|---|---|---|
| Official MCP Registry | com.plainrouter/mcp | 2 Oct 2026 | 7 Oct 2026 | 1 |