PlainRouter
Qué hace este MCP
Inspects approved advertising accounts and first-party signal health, and proposes policy-gated Meta ad, creative, upload, budget, and status actions without directly executing spend changes.
Herramientas
Esquema de entrada
{'type': 'object', 'required': ['actions', 'rationale', 'idempotency_key', 'evidence', 'target_source'], 'properties': {'actions': {'type': 'array', 'items': {'anyOf': [{'type': 'object', 'required': ['type', 'target_entity', 'params', 'rationale'], 'properties': {'type': {'enum': ['increase_budget'], 'type': 'string'}, 'params': {'type': 'object', 'required': ['new_daily_budget_minor'], 'properties': {'new_daily_budget_minor': {'type': 'integer', 'minimum': 1}}, 'additionalProperties': False}, 'rationale': {'type': 'string', 'maxLength': 2000}, 'target_entity': {'type': 'object', 'required': ['type', 'id'], 'properties': {'id': {'type': 'string', 'pattern': '^[0-9]+$', 'maxLength': 128}, 'name': {'type': ['string', 'null'], 'maxLength': 255}, 'type': {'enum': ['ad_account', 'campaign', 'ad_set', 'ad'], 'type': 'string', 'maxLength': 64}}, 'additionalProperties': False}, 'idempotency_key': {'type': 'string', 'maxLength': 255}}}, {'type': 'object', 'required': ['type', 'target_entity', 'params', 'rationale'], 'properties': {'type': {'enum': ['decrease_budget'], 'type': 'string'}, 'params': {'type': 'object', 'required': ['new_daily_budget_minor'], 'properties': {'new_daily_budget_minor': {'type': 'integer', 'minimum': 1}}, 'additionalProperties': False}, 'rationale': {'type': 'string', 'maxLength': 2000}, 'target_entity': {'type': 'object', 'required': ['type', 'id'], 'properties': {'id': {'type': 'string', 'pattern': '^[0-9]+$', 'maxLength': 128}, 'name': {'type': ['string', 'null'], 'maxLength': 255}, 'type': {'enum': ['ad_account', 'campaign', 'ad_set', 'ad'], 'type': 'string', 'maxLength': 64}}, 'additionalProperties': False}, 'idempotency_key': {'type': 'string', 'maxLength': 255}}}, {'type': 'object', 'required': ['type', 'target_entity', 'params', 'rationale'], 'properties': {'type': {'enum': ['pause'], 'type': 'string'}, 'params': {'type': 'object', 'additionalProperties': False}, 'rationale': {'type': 'string', 'maxLength': 2000}, 'target_entity': {'type': 'object', 'required': ['type', 'id'], 'properties': {'id': {'type': 'string', 'pattern': '^[0-9]+$', 'maxLength': 128}, 'name': {'type': ['string', 'null'], 'maxLength': 255}, 'type': {'enum': ['ad_account', 'campaign', 'ad_set', 'ad'], 'type': 'string', 'maxLength': 64}}, 'additionalProperties': False}, 'idempotency_key': {'type': 'string', 'maxLength': 255}}}, {'type': 'object', 'required': ['type', 'target_entity', 'params', 'rationale'], 'properties': {'type': {'enum': ['resume'], 'type': 'string'}, 'params': {'type': 'object', 'additionalProperties': False}, 'rationale': {'type': 'string', 'maxLength': 2000}, 'target_entity': {'type': 'object', 'required': ['type', 'id'], 'properties': {'id': {'type': 'string', 'pattern': '^[0-9]+$', 'maxLength': 128}, 'name': {'type': ['string', 'null'], 'maxLength': 255}, 'type': {'enum': ['ad_account', 'campaign', 'ad_set', 'ad'], 'type': 'string', 'maxLength': 64}}, 'additionalProperties': False}, 'idempotency_key': {'type': 'string', 'maxLength': 255}}}, {'type': 'object', 'required': ['type', 'target_entity', 'params', 'rationale'], 'properties': {'type': {'enum': ['replace_creative'], 'type': 'string'}, 'params': {'type': 'object'}, 'rationale': {'type': 'string', 'maxLength': 2000}, 'target_entity': {'type': 'object', 'required': ['type', 'id'], 'properties': {'id': {'type': 'string', 'maxLength': 128}, 'name': {'type': ['string', 'null'], 'maxLength': 255}, 'type': {'enum': ['ad_account', 'campaign', 'ad_set', 'ad'], 'type': 'string', 'maxLength': 64}}, 'additionalProperties': False}, 'idempotency_key': {'type': 'string', 'maxLength': 255}}}, {'type': 'object', 'required': ['type', 'target_entity', 'params', 'rationale'], 'properties': {'type': {'enum': ['shift_spend'], 'type': 'string'}, 'params': {'type': 'object'}, 'rationale': {'type': 'string', 'maxLength': 2000}, 'target_entity': {'type': 'object', 'required': ['type', 'id'], 'properties': {'id': {'type': 'string', 'maxLength': 128}, 'name': {'type': ['string', 'null'], 'maxLength': 255}, 'type': {'enum': ['ad_account', 'campaign', 'ad_set', 'ad'], 'type': 'string', 'maxLength': 64}}, 'additionalProperties': False}, 'idempotency_key': {'type': 'string', 'maxLength': 255}}}, {'type': 'object', 'required': ['type', 'target_entity', 'params', 'rationale'], 'properties': {'type': {'enum': ['rollback'], 'type': 'string'}, 'params': {'type': 'object'}, 'rationale': {'type': 'string', 'maxLength': 2000}, 'target_entity': {'type': 'object', 'required': ['type', 'id'], 'properties': {'id': {'type': 'string', 'maxLength': 128}, 'name': {'type': ['string', 'null'], 'maxLength': 255}, 'type': {'enum': ['ad_account', 'campaign', 'ad_set', 'ad'], 'type': 'string', 'maxLength': 64}}, 'additionalProperties': False}, 'idempotency_key': {'type': 'string', 'maxLength': 255}}}, {'type': 'object', 'required': ['type', 'target_entity', 'params', 'rationale'], 'properties': {'type': {'enum': ['create_campaign'], 'type': 'string'}, 'params': {'type': 'object'}, 'rationale': {'type': 'string', 'maxLength': 2000}, 'target_entity': {'type': 'object', 'required': ['type', 'id'], 'properties': {'id': {'type': 'string', 'maxLength': 128}, 'name': {'type': ['string', 'null'], 'maxLength': 255}, 'type': {'enum': ['ad_account', 'campaign', 'ad_set', 'ad'], 'type': 'string', 'maxLength': 64}}, 'additionalProperties': False}, 'idempotency_key': {'type': 'string', 'maxLength': 255}}}, {'type': 'object', 'required': ['type', 'target_entity', 'params', 'rationale'], 'properties': {'type': {'enum': ['create_ad_set'], 'type': 'string'}, 'params': {'type': 'object'}, 'rationale': {'type': 'string', 'maxLength': 2000}, 'target_entity': {'type': 'object', 'required': ['type', 'id'], 'properties': {'id': {'type': 'string', 'maxLength': 128}, 'name': {'type': ['string', 'null'], 'maxLength': 255}, 'type': {'enum': ['ad_account', 'campaign', 'ad_set', 'ad'], 'type': 'string', 'maxLength': 64}}, 'additionalProperties': False}, 'idempotency_key': {'type': 'string', 'maxLength': 255}}}, {'type': 'object', 'required': ['type', 'target_entity', 'params', 'rationale'], 'properties': {'type': {'enum': ['create_ad'], 'type': 'string'}, 'params': {'type': 'object'}, 'rationale': {'type': 'string', 'maxLength': 2000}, 'target_entity': {'type': 'object', 'required': ['type', 'id'], 'properties': {'id': {'type': 'string', 'maxLength': 128}, 'name': {'type': ['string', 'null'], 'maxLength': 255}, 'type': {'enum': ['ad_account', 'campaign', 'ad_set', 'ad'], 'type': 'string', 'maxLength': 64}}, 'additionalProperties': False}, 'idempotency_key': {'type': 'string', 'maxLength': 255}}}, {'type': 'object', 'required': ['type', 'target_entity', 'params', 'rationale'], 'properties': {'type': {'enum': ['upload_asset'], 'type': 'string'}, 'params': {'type': 'object', 'required': ['staged_asset_id', 'asset_type', 'filename', 'content_sha256'], 'properties': {'filename': {'type': 'string', 'maxLength': 255}, 'mime_type': {'type': ['string', 'null'], 'maxLength': 255}, 'asset_type': {'enum': ['image'], 'type': 'string'}, 'size_bytes': {'type': ['integer', 'null'], 'minimum': 1}, 'content_sha256': {'type': 'string', 'pattern': '^[a-f0-9]{64}$'}, 'staged_asset_id': {'type': 'string', 'pattern': '^stage_[a-f0-9]{40}$', 'maxLength': 255}}}, 'rationale': {'type': 'string', 'maxLength': 2000}, 'target_entity': {'type': 'object', 'required': ['type', 'id'], 'properties': {'id': {'type': 'string', 'maxLength': 128}, 'name': {'type': ['string', 'null'], 'maxLength': 255}, 'type': {'enum': ['ad_account', 'campaign', 'ad_set', 'ad'], 'type': 'string', 'maxLength': 64}}, 'additionalProperties': False}, 'idempotency_key': {'type': 'string', 'maxLength': 255}}}, {'type': 'object', 'required': ['type', 'target_entity', 'params', 'rationale'], 'properties': {'type': {'enum': ['adjust_budget'], 'type': 'string'}, 'params': {'type': 'object', 'required': ['new_daily_budget_minor'], 'properties': {'new_daily_budget_minor': {'type': 'integer', 'minimum': 1}}}, 'rationale': {'type': 'string', 'maxLength': 2000}, 'target_entity': {'type': 'object', 'required': ['type', 'id'], 'properties': {'id': {'type': 'string', 'maxLength': 128}, 'name': {'type': ['string', 'null'], 'maxLength': 255}, 'type': {'enum': ['ad_account', 'campaign', 'ad_set', 'ad'], 'type': 'string', 'maxLength': 64}}, 'additionalProperties': False}, 'idempotency_key': {'type': 'string', 'maxLength': 255}}}, {'type': 'object', 'required': ['type', 'target_entity', 'params', 'rationale'], 'properties': {'type': {'enum': ['set_status'], 'type': 'string'}, 'params': {'type': 'object', 'required': ['status'], 'properties': {'status': {'enum': ['active', 'paused'], 'type': 'string'}}}, 'rationale': {'type': 'string', 'maxLength': 2000}, 'target_entity': {'type': 'object', 'required': ['type', 'id'], 'properties': {'id': {'type': 'string', 'maxLength': 128}, 'name': {'type': ['string', 'null'], 'maxLength': 255}, 'type': {'enum': ['ad_account', 'campaign', 'ad_set', 'ad'], 'type': 'string', 'maxLength': 64}}, 'additionalProperties': False}, 'idempotency_key': {'type': 'string', 'maxLength': 255}}}, {'type': 'object', 'required': ['type', 'target_entity', 'params', 'rationale'], 'properties': {'type': {'enum': ['duplicate_ad_with_creative'], 'type': 'string'}, 'params': {'type': 'object', 'required': ['asset_id', 'status'], 'properties': {'status': {'enum': ['paused'], 'type': 'string'}, 'asset_id': {'type': 'string', 'pattern': '^(image|video):.+$', 'maxLength': 255}, 'name_suffix': {'type': ['string', 'null'], 'maxLength': 100}}}, 'rationale': {'type': 'string', 'maxLength': 2000}, 'target_entity': {'type': 'object', 'required': ['type', 'id'], 'properties': {'id': {'type': 'string', 'maxLength': 128}, 'name': {'type': ['string', 'null'], 'maxLength': 255}, 'type': {'enum': ['ad_account', 'campaign', 'ad_set', 'ad'], 'type': 'string', 'maxLength': 64}}, 'additionalProperties': False}, 'idempotency_key': {'type': 'string', 'maxLength': 255}}}]}, 'maxItems': 25, 'minItems': 1}, 'evidence': {'type': 'array', 'items': {'type': 'object', 'required': ['source_tool', 'fields_used'], 'properties': {'fields_used': {'type': 'array', 'items': {'type': 'string', 'maxLength': 255}, 'maxItems': 50, 'minItems': 1}, 'source_tool': {'enum': ['get_account_state', 'get_signal_health', 'get_performance', 'get-creative-library', 'staged-asset-manifest'], 'type': 'string'}, 'action_index': {'type': 'integer', 'minimum': 0}}, 'additionalProperties': False}, 'maxItems': 3, 'minItems': 1}, 'rationale': {'type': 'string', 'maxLength': 4000}, 'account_id': {'type': 'integer', 'minimum': 1}, 'target_source': {'enum': ['human_supplied'], 'type': 'string'}, 'idempotency_key': {'type': 'string', 'maxLength': 64}}}
Esquema de entrada
{'type': 'object', 'required': ['account_id'], 'properties': {'level': {'enum': ['campaign', 'adset', 'ad'], 'type': 'string', 'description': 'Limit results to campaign, adset, or ad objects.'}, 'limit': {'type': 'integer', 'default': 100, 'maximum': 200, 'minimum': 1, 'description': 'Maximum objects to return, from 1 to 200.'}, 'adset_id': {'type': 'string', 'description': 'Filter to objects under this parent ad set ID.'}, 'after_id': {'type': 'integer', 'minimum': 1, 'description': 'Database ID cursor from the previous page; continue with its last object ID.'}, 'account_id': {'type': 'integer', 'minimum': 1, 'description': 'Advertising account ID available to the authorized workspace.'}, 'campaign_id': {'type': 'string', 'description': 'Filter to objects under this parent campaign ID.'}, 'effective_status': {'type': 'string', 'description': 'Filter by Meta effective status, such as ACTIVE, PAUSED, or ARCHIVED.'}}}
Esquema de entrada
{'type': 'object', 'properties': {'account_id': {'type': 'integer', 'minimum': 1, 'description': 'Advertising account ID. Signals reads use the workspace Meta destination when omitted; other tools may require an ID when multiple accounts are active.'}}}
Esquema de entrada
{'type': 'object', 'required': ['action_id'], 'properties': {'action_id': {'type': 'string'}, 'account_id': {'type': 'integer', 'minimum': 1, 'description': 'Advertising account ID. Signals reads use the workspace Meta destination when omitted; other tools may require an ID when multiple accounts are active.'}}}
Esquema de salida
{'type': 'object', 'required': ['data'], 'properties': {'data': {'type': 'object', 'required': ['batch_status', 'disposition'], 'properties': {'disposition': {'type': 'object', 'required': ['receipt_status', 'outcome_status', 'outcome_reason_code', 'outcome_checked_at', 'compensation_reason_code', 'recovery_disposition', 'late_restored'], 'properties': {'late_restored': {'type': 'boolean'}, 'outcome_status': {'enum': ['measurable', 'not_measurable', 'unavailable', None], 'type': ['string', 'null']}, 'receipt_status': {'enum': ['pending', 'attempting', 'reconciliation_required', 'committed', 'executed_pending_verification', 'measuring', 'verified', 'compensating', 'compensated', 'compensation_failed', 'irreversible', 'failed', 'reconciliation_exhausted', None], 'type': ['string', 'null']}, 'outcome_checked_at': {'type': ['string', 'null']}, 'outcome_reason_code': {'type': ['string', 'null']}, 'recovery_disposition': {'enum': ['no_compensation', 'restored', 'unrestored', 'contradictory', 'irreversible', 'uncertain', None], 'type': ['string', 'null']}, 'compensation_reason_code': {'type': ['string', 'null']}}}, 'batch_status': {'enum': ['pending', 'approved', 'approved_without_execution', 'auto_approved', 'rejected', 'executing', 'executed_pending_verification', 'compensating', 'measuring', 'completed', 'failed', 'rolled_back', 'rollback_incomplete', 'blocked', 'halted'], 'type': 'string'}}}}}
Esquema de entrada
{'type': 'object', 'required': ['batch_id'], 'properties': {'batch_id': {'type': 'string'}, 'account_id': {'type': 'integer', 'minimum': 1, 'description': 'Advertising account ID. Signals reads use the workspace Meta destination when omitted; other tools may require an ID when multiple accounts are active.'}}}
Esquema de salida
{'type': 'object', 'required': ['data'], 'properties': {'data': {'type': 'object', 'required': ['batch_status', 'restoration_summary', 'actions'], 'properties': {'actions': {'type': 'array', 'items': {'type': 'object', 'required': ['batch_status', 'disposition'], 'properties': {'disposition': {'type': 'object', 'required': ['receipt_status', 'outcome_status', 'outcome_reason_code', 'outcome_checked_at', 'compensation_reason_code', 'recovery_disposition', 'late_restored'], 'properties': {'late_restored': {'type': 'boolean'}, 'outcome_status': {'enum': ['measurable', 'not_measurable', 'unavailable', None], 'type': ['string', 'null']}, 'receipt_status': {'enum': ['pending', 'attempting', 'reconciliation_required', 'committed', 'executed_pending_verification', 'measuring', 'verified', 'compensating', 'compensated', 'compensation_failed', 'irreversible', 'failed', 'reconciliation_exhausted', None], 'type': ['string', 'null']}, 'outcome_checked_at': {'type': ['string', 'null']}, 'outcome_reason_code': {'type': ['string', 'null']}, 'recovery_disposition': {'enum': ['no_compensation', 'restored', 'unrestored', 'contradictory', 'irreversible', 'uncertain', None], 'type': ['string', 'null']}, 'compensation_reason_code': {'type': ['string', 'null']}}}, 'batch_status': {'enum': ['pending', 'approved', 'approved_without_execution', 'auto_approved', 'rejected', 'executing', 'executed_pending_verification', 'compensating', 'measuring', 'completed', 'failed', 'rolled_back', 'rollback_incomplete', 'blocked', 'halted'], 'type': 'string'}}}}, 'batch_status': {'enum': ['pending', 'approved', 'approved_without_execution', 'auto_approved', 'rejected', 'executing', 'executed_pending_verification', 'compensating', 'measuring', 'completed', 'failed', 'rolled_back', 'rollback_incomplete', 'blocked', 'halted'], 'type': 'string'}, 'restoration_summary': {'enum': ['all_receipts_compensated_late', None], 'type': ['string', 'null']}}}}}
Esquema de entrada
{'type': 'object', 'required': ['action_id'], 'properties': {'action_id': {'type': 'string'}, 'account_id': {'type': 'integer', 'minimum': 1, 'description': 'Advertising account ID. Signals reads use the workspace Meta destination when omitted; other tools may require an ID when multiple accounts are active.'}}}
Esquema de salida
{'type': 'object', 'required': ['document', 'document_sha256', 'chain_entry', 'disposition'], 'properties': {'document': {'type': 'object'}, 'chain_entry': {'type': 'object'}, 'disposition': {'type': 'object', 'required': ['receipt_status', 'outcome_status', 'outcome_reason_code', 'outcome_checked_at', 'compensation_reason_code', 'recovery_disposition', 'late_restored'], 'properties': {'late_restored': {'type': 'boolean'}, 'outcome_status': {'enum': ['measurable', 'not_measurable', 'unavailable', None], 'type': ['string', 'null']}, 'receipt_status': {'enum': ['pending', 'attempting', 'reconciliation_required', 'committed', 'executed_pending_verification', 'measuring', 'verified', 'compensating', 'compensated', 'compensation_failed', 'irreversible', 'failed', 'reconciliation_exhausted', None], 'type': ['string', 'null']}, 'outcome_checked_at': {'type': ['string', 'null']}, 'outcome_reason_code': {'type': ['string', 'null']}, 'recovery_disposition': {'enum': ['no_compensation', 'restored', 'unrestored', 'contradictory', 'irreversible', 'uncertain', None], 'type': ['string', 'null']}, 'compensation_reason_code': {'type': ['string', 'null']}}}, 'document_sha256': {'type': 'string'}}}
Esquema de entrada
{'type': 'object', 'properties': {'account_id': {'type': 'integer', 'minimum': 1, 'description': 'Advertising account ID. Signals reads use the workspace Meta destination when omitted; other tools may require an ID when multiple accounts are active.'}}}
Esquema de entrada
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'default': 25, 'maximum': 100, 'minimum': 1, 'description': 'Maximum assets returned per requested asset type.'}, 'cursor': {'type': 'string', 'description': 'Opaque Meta cursor returned by a previous call.'}, 'account_id': {'type': 'integer', 'minimum': 1, 'description': 'Advertising account ID. Required when the workspace has more than one active account.'}, 'asset_type': {'enum': ['all', 'image', 'video'], 'type': 'string', 'default': 'all', 'description': 'Limit results to images or videos. Defaults to all.'}}}
Esquema de entrada
{'type': 'object', 'required': ['account_id'], 'properties': {'ad_id': {'type': 'string', 'description': 'Limit metrics to this ad ID.'}, 'adset_id': {'type': 'string', 'description': 'Limit metrics to this ad set ID.'}, 'end_date': {'type': 'string', 'description': 'Inclusive end date in YYYY-MM-DD format.'}, 'account_id': {'type': 'integer', 'minimum': 1, 'description': 'Advertising account ID available to the authorized workspace.'}, 'start_date': {'type': 'string', 'description': 'Inclusive start date in YYYY-MM-DD format.'}, 'campaign_id': {'type': 'string', 'description': 'Limit metrics to this campaign ID.'}, 'include_changes': {'type': 'boolean', 'default': False, 'description': 'Include object change history within the effective date window.'}}}
Esquema de entrada
{'type': 'object', 'properties': {'days': {'type': 'integer', 'default': 7, 'maximum': 90, 'minimum': 1, 'description': 'Number of reporting days to compare, from 1 to 90.'}, 'account_id': {'type': 'integer', 'minimum': 1, 'description': 'Advertising account ID. Signals reads use the workspace Meta destination when omitted; other tools may require an ID when multiple accounts are active.'}}}
Esquema de entrada
{'type': 'object', 'properties': {'days': {'enum': [7, 30, 90], 'type': 'integer', 'default': 7, 'maximum': 90, 'minimum': 7, 'description': 'Trailing window in days. One of 7, 30, 90.'}, 'months': {'enum': [12], 'type': 'integer', 'description': 'Trailing window of 12 calendar months, in place of days. Offered only where the workspace plan keeps that history and the workspace is set to keep it.'}, 'account_id': {'type': 'integer', 'minimum': 1, 'description': 'Advertising account ID. Signals reads use the workspace Meta destination when omitted; other tools may require an ID when multiple accounts are active.'}}}
Esquema de entrada
{'type': 'object', 'properties': {'per_page': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Number of creatives to return per page.'}}}
Esquema de entrada
{'type': 'object', 'properties': {'page': {'type': 'integer', 'minimum': 1}, 'status': {'enum': ['pending', 'approved_without_execution', 'rejected', 'executing', 'executed_pending_verification', 'compensating', 'measuring', 'verified', 'failed', 'execution_uncertain', 'rolled_back', 'blocked'], 'type': 'string'}, 'account_id': {'type': 'integer', 'minimum': 1, 'description': 'Advertising account ID. Signals reads use the workspace Meta destination when omitted; other tools may require an ID when multiple accounts are active.'}}}
Esquema de salida
{'type': 'object', 'required': ['data', 'meta'], 'properties': {'data': {'type': 'array', 'items': {'type': 'object', 'required': ['batch_status', 'disposition'], 'properties': {'disposition': {'type': 'object', 'required': ['receipt_status', 'outcome_status', 'outcome_reason_code', 'outcome_checked_at', 'compensation_reason_code', 'recovery_disposition', 'late_restored'], 'properties': {'late_restored': {'type': 'boolean'}, 'outcome_status': {'enum': ['measurable', 'not_measurable', 'unavailable', None], 'type': ['string', 'null']}, 'receipt_status': {'enum': ['pending', 'attempting', 'reconciliation_required', 'committed', 'executed_pending_verification', 'measuring', 'verified', 'compensating', 'compensated', 'compensation_failed', 'irreversible', 'failed', 'reconciliation_exhausted', None], 'type': ['string', 'null']}, 'outcome_checked_at': {'type': ['string', 'null']}, 'outcome_reason_code': {'type': ['string', 'null']}, 'recovery_disposition': {'enum': ['no_compensation', 'restored', 'unrestored', 'contradictory', 'irreversible', 'uncertain', None], 'type': ['string', 'null']}, 'compensation_reason_code': {'type': ['string', 'null']}}}, 'batch_status': {'enum': ['pending', 'approved', 'approved_without_execution', 'auto_approved', 'rejected', 'executing', 'executed_pending_verification', 'compensating', 'measuring', 'completed', 'failed', 'rolled_back', 'rollback_incomplete', 'blocked', 'halted'], 'type': 'string'}}}}, 'meta': {'type': 'object'}}}
Esquema de entrada
{'type': 'object', 'required': ['actions', 'rationale', 'idempotency_key', 'evidence', 'target_source'], 'properties': {'actions': {'type': 'array', 'items': {'anyOf': [{'type': 'object', 'required': ['type', 'target_entity', 'params', 'rationale'], 'properties': {'type': {'enum': ['increase_budget'], 'type': 'string'}, 'params': {'type': 'object', 'required': ['new_daily_budget_minor'], 'properties': {'new_daily_budget_minor': {'type': 'integer', 'minimum': 1}}, 'additionalProperties': False}, 'rationale': {'type': 'string', 'maxLength': 2000}, 'target_entity': {'type': 'object', 'required': ['type', 'id'], 'properties': {'id': {'type': 'string', 'pattern': '^[0-9]+$', 'maxLength': 128}, 'name': {'type': ['string', 'null'], 'maxLength': 255}, 'type': {'enum': ['ad_account', 'campaign', 'ad_set', 'ad'], 'type': 'string', 'maxLength': 64}}, 'additionalProperties': False}, 'idempotency_key': {'type': 'string', 'maxLength': 255}}}, {'type': 'object', 'required': ['type', 'target_entity', 'params', 'rationale'], 'properties': {'type': {'enum': ['decrease_budget'], 'type': 'string'}, 'params': {'type': 'object', 'required': ['new_daily_budget_minor'], 'properties': {'new_daily_budget_minor': {'type': 'integer', 'minimum': 1}}, 'additionalProperties': False}, 'rationale': {'type': 'string', 'maxLength': 2000}, 'target_entity': {'type': 'object', 'required': ['type', 'id'], 'properties': {'id': {'type': 'string', 'pattern': '^[0-9]+$', 'maxLength': 128}, 'name': {'type': ['string', 'null'], 'maxLength': 255}, 'type': {'enum': ['ad_account', 'campaign', 'ad_set', 'ad'], 'type': 'string', 'maxLength': 64}}, 'additionalProperties': False}, 'idempotency_key': {'type': 'string', 'maxLength': 255}}}, {'type': 'object', 'required': ['type', 'target_entity', 'params', 'rationale'], 'properties': {'type': {'enum': ['pause'], 'type': 'string'}, 'params': {'type': 'object', 'additionalProperties': False}, 'rationale': {'type': 'string', 'maxLength': 2000}, 'target_entity': {'type': 'object', 'required': ['type', 'id'], 'properties': {'id': {'type': 'string', 'pattern': '^[0-9]+$', 'maxLength': 128}, 'name': {'type': ['string', 'null'], 'maxLength': 255}, 'type': {'enum': ['ad_account', 'campaign', 'ad_set', 'ad'], 'type': 'string', 'maxLength': 64}}, 'additionalProperties': False}, 'idempotency_key': {'type': 'string', 'maxLength': 255}}}, {'type': 'object', 'required': ['type', 'target_entity', 'params', 'rationale'], 'properties': {'type': {'enum': ['resume'], 'type': 'string'}, 'params': {'type': 'object', 'additionalProperties': False}, 'rationale': {'type': 'string', 'maxLength': 2000}, 'target_entity': {'type': 'object', 'required': ['type', 'id'], 'properties': {'id': {'type': 'string', 'pattern': '^[0-9]+$', 'maxLength': 128}, 'name': {'type': ['string', 'null'], 'maxLength': 255}, 'type': {'enum': ['ad_account', 'campaign', 'ad_set', 'ad'], 'type': 'string', 'maxLength': 64}}, 'additionalProperties': False}, 'idempotency_key': {'type': 'string', 'maxLength': 255}}}, {'type': 'object', 'required': ['type', 'target_entity', 'params', 'rationale'], 'properties': {'type': {'enum': ['replace_creative'], 'type': 'string'}, 'params': {'type': 'object'}, 'rationale': {'type': 'string', 'maxLength': 2000}, 'target_entity': {'type': 'object', 'required': ['type', 'id'], 'properties': {'id': {'type': 'string', 'maxLength': 128}, 'name': {'type': ['string', 'null'], 'maxLength': 255}, 'type': {'enum': ['ad_account', 'campaign', 'ad_set', 'ad'], 'type': 'string', 'maxLength': 64}}, 'additionalProperties': False}, 'idempotency_key': {'type': 'string', 'maxLength': 255}}}, {'type': 'object', 'required': ['type', 'target_entity', 'params', 'rationale'], 'properties': {'type': {'enum': ['shift_spend'], 'type': 'string'}, 'params': {'type': 'object'}, 'rationale': {'type': 'string', 'maxLength': 2000}, 'target_entity': {'type': 'object', 'required': ['type', 'id'], 'properties': {'id': {'type': 'string', 'maxLength': 128}, 'name': {'type': ['string', 'null'], 'maxLength': 255}, 'type': {'enum': ['ad_account', 'campaign', 'ad_set', 'ad'], 'type': 'string', 'maxLength': 64}}, 'additionalProperties': False}, 'idempotency_key': {'type': 'string', 'maxLength': 255}}}, {'type': 'object', 'required': ['type', 'target_entity', 'params', 'rationale'], 'properties': {'type': {'enum': ['rollback'], 'type': 'string'}, 'params': {'type': 'object'}, 'rationale': {'type': 'string', 'maxLength': 2000}, 'target_entity': {'type': 'object', 'required': ['type', 'id'], 'properties': {'id': {'type': 'string', 'maxLength': 128}, 'name': {'type': ['string', 'null'], 'maxLength': 255}, 'type': {'enum': ['ad_account', 'campaign', 'ad_set', 'ad'], 'type': 'string', 'maxLength': 64}}, 'additionalProperties': False}, 'idempotency_key': {'type': 'string', 'maxLength': 255}}}, {'type': 'object', 'required': ['type', 'target_entity', 'params', 'rationale'], 'properties': {'type': {'enum': ['create_campaign'], 'type': 'string'}, 'params': {'type': 'object'}, 'rationale': {'type': 'string', 'maxLength': 2000}, 'target_entity': {'type': 'object', 'required': ['type', 'id'], 'properties': {'id': {'type': 'string', 'maxLength': 128}, 'name': {'type': ['string', 'null'], 'maxLength': 255}, 'type': {'enum': ['ad_account', 'campaign', 'ad_set', 'ad'], 'type': 'string', 'maxLength': 64}}, 'additionalProperties': False}, 'idempotency_key': {'type': 'string', 'maxLength': 255}}}, {'type': 'object', 'required': ['type', 'target_entity', 'params', 'rationale'], 'properties': {'type': {'enum': ['create_ad_set'], 'type': 'string'}, 'params': {'type': 'object'}, 'rationale': {'type': 'string', 'maxLength': 2000}, 'target_entity': {'type': 'object', 'required': ['type', 'id'], 'properties': {'id': {'type': 'string', 'maxLength': 128}, 'name': {'type': ['string', 'null'], 'maxLength': 255}, 'type': {'enum': ['ad_account', 'campaign', 'ad_set', 'ad'], 'type': 'string', 'maxLength': 64}}, 'additionalProperties': False}, 'idempotency_key': {'type': 'string', 'maxLength': 255}}}, {'type': 'object', 'required': ['type', 'target_entity', 'params', 'rationale'], 'properties': {'type': {'enum': ['create_ad'], 'type': 'string'}, 'params': {'type': 'object'}, 'rationale': {'type': 'string', 'maxLength': 2000}, 'target_entity': {'type': 'object', 'required': ['type', 'id'], 'properties': {'id': {'type': 'string', 'maxLength': 128}, 'name': {'type': ['string', 'null'], 'maxLength': 255}, 'type': {'enum': ['ad_account', 'campaign', 'ad_set', 'ad'], 'type': 'string', 'maxLength': 64}}, 'additionalProperties': False}, 'idempotency_key': {'type': 'string', 'maxLength': 255}}}, {'type': 'object', 'required': ['type', 'target_entity', 'params', 'rationale'], 'properties': {'type': {'enum': ['upload_asset'], 'type': 'string'}, 'params': {'type': 'object', 'required': ['staged_asset_id', 'asset_type', 'filename', 'content_sha256'], 'properties': {'filename': {'type': 'string', 'maxLength': 255}, 'mime_type': {'type': ['string', 'null'], 'maxLength': 255}, 'asset_type': {'enum': ['image'], 'type': 'string'}, 'size_bytes': {'type': ['integer', 'null'], 'minimum': 1}, 'content_sha256': {'type': 'string', 'pattern': '^[a-f0-9]{64}$'}, 'staged_asset_id': {'type': 'string', 'pattern': '^stage_[a-f0-9]{40}$', 'maxLength': 255}}}, 'rationale': {'type': 'string', 'maxLength': 2000}, 'target_entity': {'type': 'object', 'required': ['type', 'id'], 'properties': {'id': {'type': 'string', 'maxLength': 128}, 'name': {'type': ['string', 'null'], 'maxLength': 255}, 'type': {'enum': ['ad_account', 'campaign', 'ad_set', 'ad'], 'type': 'string', 'maxLength': 64}}, 'additionalProperties': False}, 'idempotency_key': {'type': 'string', 'maxLength': 255}}}, {'type': 'object', 'required': ['type', 'target_entity', 'params', 'rationale'], 'properties': {'type': {'enum': ['adjust_budget'], 'type': 'string'}, 'params': {'type': 'object', 'required': ['new_daily_budget_minor'], 'properties': {'new_daily_budget_minor': {'type': 'integer', 'minimum': 1}}}, 'rationale': {'type': 'string', 'maxLength': 2000}, 'target_entity': {'type': 'object', 'required': ['type', 'id'], 'properties': {'id': {'type': 'string', 'maxLength': 128}, 'name': {'type': ['string', 'null'], 'maxLength': 255}, 'type': {'enum': ['ad_account', 'campaign', 'ad_set', 'ad'], 'type': 'string', 'maxLength': 64}}, 'additionalProperties': False}, 'idempotency_key': {'type': 'string', 'maxLength': 255}}}, {'type': 'object', 'required': ['type', 'target_entity', 'params', 'rationale'], 'properties': {'type': {'enum': ['set_status'], 'type': 'string'}, 'params': {'type': 'object', 'required': ['status'], 'properties': {'status': {'enum': ['active', 'paused'], 'type': 'string'}}}, 'rationale': {'type': 'string', 'maxLength': 2000}, 'target_entity': {'type': 'object', 'required': ['type', 'id'], 'properties': {'id': {'type': 'string', 'maxLength': 128}, 'name': {'type': ['string', 'null'], 'maxLength': 255}, 'type': {'enum': ['ad_account', 'campaign', 'ad_set', 'ad'], 'type': 'string', 'maxLength': 64}}, 'additionalProperties': False}, 'idempotency_key': {'type': 'string', 'maxLength': 255}}}, {'type': 'object', 'required': ['type', 'target_entity', 'params', 'rationale'], 'properties': {'type': {'enum': ['duplicate_ad_with_creative'], 'type': 'string'}, 'params': {'type': 'object', 'required': ['asset_id', 'status'], 'properties': {'status': {'enum': ['paused'], 'type': 'string'}, 'asset_id': {'type': 'string', 'pattern': '^(image|video):.+$', 'maxLength': 255}, 'name_suffix': {'type': ['string', 'null'], 'maxLength': 100}}}, 'rationale': {'type': 'string', 'maxLength': 2000}, 'target_entity': {'type': 'object', 'required': ['type', 'id'], 'properties': {'id': {'type': 'string', 'maxLength': 128}, 'name': {'type': ['string', 'null'], 'maxLength': 255}, 'type': {'enum': ['ad_account', 'campaign', 'ad_set', 'ad'], 'type': 'string', 'maxLength': 64}}, 'additionalProperties': False}, 'idempotency_key': {'type': 'string', 'maxLength': 255}}}]}, 'maxItems': 25, 'minItems': 1}, 'evidence': {'type': 'array', 'items': {'type': 'object', 'required': ['source_tool', 'fields_used'], 'properties': {'fields_used': {'type': 'array', 'items': {'type': 'string', 'maxLength': 255}, 'maxItems': 50, 'minItems': 1}, 'source_tool': {'enum': ['get_account_state', 'get_signal_health', 'get_performance', 'get-creative-library', 'staged-asset-manifest'], 'type': 'string'}, 'action_index': {'type': 'integer', 'minimum': 0}}, 'additionalProperties': False}, 'maxItems': 3, 'minItems': 1}, 'rationale': {'type': 'string', 'maxLength': 4000}, 'account_id': {'type': 'integer', 'minimum': 1}, 'target_source': {'enum': ['human_supplied'], 'type': 'string'}, 'idempotency_key': {'type': 'string', 'maxLength': 64}}}
Esquema de entrada
{'type': 'object', 'properties': {}}
Cambios recientes en herramientas
Servidores MCP similares
AdButler
Manages AdButler advertisers, campaigns, ad items, audiences, zones, creatives, catalogs, and advertising reports.
Meta Council
Provides governed workflows for consulting, outreach, sales deals, invoices, marketing campaigns, content approvals, accounting a…
synter-ads
Manages cross-platform advertising campaigns, audiences, tracking, creative, landing pages, campaign audits, technology intellige…
synter-ads
Manages cross-platform advertising campaigns, audiences, tracking, creative, landing pages, campaign audits, technology intellige…
Stratalize Intelligence
Provides vendor, market, SaaS, workforce, government contract, public company, regulatory, competitive, and AI-brand intelligence…
Neotic
Enables agents to create contextual in-app experiences, announcements, and triggers.
CorpusIQ
Connects authenticated users to business systems such as CRM, ecommerce, advertising, analytics, email marketing, SEO, calendars,…
Riley Craig x402 Agent Store
Provides paid blockchain data and transaction reads, AI brand-visibility research, and company or lead enrichment services.