Plainrouter
Meta Ads MCP: read ad accounts and signal health; propose governed changes under Ask or Full.
Connector by plainrouter.comOfficial · Domain verified by the MCP Registry
Install
Works with Claude Code, VS Code, Cursor, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install connector/plainrouter-com-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 endpoints
https://plainrouter.com/mcpRemote (HTTP)https://plainrouter.com/mcp/sandboxRemote (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.
About
Reviews
Write a reviewNo 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 and install config. Checked Oct 25, 2026.
- Tools
- 30 read · 0 write · 17 delete
- Secrets
- None asked for
- Install scripts
- Nothing to install (hosted)
- Runs as
- Hosted (remote endpoint)
Tools by what they do 47
From the running server's own tool list (tools/list) on Oct 25, 2026.
Read 30 · Look things up without changing anything.
actions.rules.listactions.rules.showactions.tests.listactions.tests.showdry_run_actionsget_account_inventoryget_account_stateget_actionget_action_batchget_action_decision_receiptget_action_policyget_arrivals_comparison
Show 18 more tools
get_cac_by_channelget_consent_ratesget_conversion_journeysget_cookie_scanget_event_volumeget_install_instructionsget_inventory_metricsget_performanceget_signal_healthget_signal_qualityget_trial_proofget-creative-librarylaunch.creatives.indexlaunch.creatives.showlaunch.plans.listlaunch.plans.showlist_actionslist_workspaces
Delete 17 · Delete, drop, revoke or wipe things.
actions.rules.createactions.rules.updateactions.tests.createduplicate-ad-with-creativelaunch.creatives.statuslaunch.creatives.storelaunch.creatives.store-from-urllaunch.plans.copylaunch.plans.createlaunch.plans.executelaunch.plans.updatelaunch.plans.validate
Show 5 more tools
propose-actionsrevoke_grantsubmit_feedbackupload-assetverify_signal_ingestion
Network hosts it talks to 1
plainrouter.com· found in remote endpoint, install command
Files it touches
- Any path the agent passes to its tools
Tools (47)
As the server listed them on Oct 25, 2026. Descriptions are the server’s own words; hidden characters are shown as [U+…].
actions.rules.createCreate action rulecan change or delete dataStore a performance rule disabled. Enabling requires an explicit update; this never evaluates or proposes actions.
actions.rules.listList action rulesread-onlyList stored performance rules available to this workspace key. This does not evaluate them.
actions.rules.showShow action ruleread-onlyRead a stored performance rule and its immutable revisions, with author type only.
actions.rules.updateUpdate action rulecan change or delete dataEdit a stored performance rule by appending a revision, or explicitly enable or disable it. This never evaluates or proposes actions.
actions.tests.createCreate ad testcan change or delete dataCreate 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.
actions.tests.listList ad testsread-onlyList 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.
actions.tests.showShow ad testread-onlyRead 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.
dry_run_actionsPreview actionsread-onlyPreview policy decisions and execution diffs for a proposed Action batch without writing it.
duplicate-ad-with-creativeDuplicate ad with creativecan change or delete dataSubmit 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.
get_account_inventoryGet account inventoryread-onlyRead the authorized workspace account inventory from the Meta mirror, with optional level, status, parent, and ID cursor filters.
get_account_stateGet account stateread-onlyReturn the authorized advertising account, workspace, connection, Signal destination, and currently available account capabilities. This read-only inspection tool does not change the account.
get_actionGet actionread-onlyGet 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.
get_action_batchGet action batchread-onlyGet 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.
get_action_decision_receiptGet action decision receiptread-onlyGet 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.
get_action_policyGet action policyread-onlyGet the effective Actions policy for the authorized workspace without creating a policy row.
Show 32 more tools
get_arrivals_comparisonGet arrivals comparisonread-onlyReturn 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…
get_cac_by_channelGet cost per earned conversion by channelread-onlyReturn 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.
get_consent_ratesGet consent ratesread-onlyRead recorded consent rates and recent consent receipts for the requested authorized workspace. Output schema_version 2 replaces country breakdowns and the country daily dimension with geography (country, US state or Canadian province/territory). Rates cover recorded choices, not unique visitors, over 180 days; geography, language and banner version breakdowns and their daily series show the top 50 values by recorded choices. An independent policy_class breakdown includes Policy not recorded for NULL history. Recent receipts include raw country, nullable region and policy_class, geography and …
get_conversion_journeysGet conversion journeysread-onlyRead 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.
get_cookie_scanGet cookie scanread-onlyRead the latest pre-consent cookie scan for the authorized workspace. Blocked and failed scans report findings as unavailable, never as a clean result. When bot protection blocks the start page, allowlist the PlainRouterScanner user agent before retrying.
get_event_volumeGet weekly event volumeread-onlyRead 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.
get_install_instructionsGet install instructionsread-onlyReturn 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.
get_inventory_metricsGet inventory metricsread-onlyReturn 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.
get_performanceGet performanceread-onlyAdmissible 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. 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…
get_signal_healthGet signal healthread-onlyDiagnostic 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.
get_signal_qualityGet signal qualityread-onlyRead 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.
get_trial_proofGet trial-to-paid proofread-onlyFollow 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.
get-creative-libraryGet Meta creative libraryread-onlyReturn Meta image and video assets with the ads and last-30-day performance historically associated with each asset.
launch.creatives.indexList workspace creativesread-onlyList creatives in the workspace bound to the authenticated execution token.
launch.creatives.showShow creativeread-onlyShow one creative in the workspace bound to the authenticated execution token.
launch.creatives.statusUpdate creative statuscan change or delete dataSet the status of one creative in the workspace bound to the authenticated execution token.
launch.creatives.storeStore creativecan change or delete dataStore 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.
launch.creatives.store-from-urlStore creative from URLcan change or delete dataFetch 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.
launch.plans.copyCopy deployment plancan change or delete dataCopy 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.
launch.plans.createCreate deployment plancan change or delete dataCreate a deployment plan for the approved ad account.
launch.plans.executeExecute deployment plancan change or delete dataExecute 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.
launch.plans.listList deployment plansread-onlyList deployment plans for the approved ad account, including each current review_version to pass when executing the reviewed plan.
launch.plans.showShow deployment planread-onlyRead 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.updateUpdate deployment plancan change or delete dataUpdate a deployment plan for the approved ad account.
launch.plans.validateValidate deployment plancan change or delete dataValidate a deployment plan for the approved ad account.
list_actionsList actionsread-onlyList proposed actions for the authorized workspace and advertising account.
list_workspacesList workspacesread-onlyList the workspaces and effective access tiers in this credential scope.
propose-actionsPropose actionscan change or delete dataPropose 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. Meta target proposals freeze counted_evidence over the last seven completed acco…
revoke_grantRevoke grantcan change or delete dataRevoke 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.
submit_feedbackSubmit feedbackcan change or delete dataReport 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.
upload-assetUpload assetcan change or delete dataStage 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.
verify_signal_ingestionSend test signal eventcan change or delete dataSend 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.
Signals
- Last release
- Oct 1, 2026 (27 days ago)
Details
- Registry name
com.plainrouter/mcp- Version
- 0.4.1
- Auth
- Auth not stated
- License
- License unknown
- Website
- plainrouter.com
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- Official MCP Registry
Cite this page
Plainrouter MCP server. Agent Mart. https://agentmart.dev/connectors/plainrouter-com-mcp (last updated 2026-10-24)