actions_capabilities to check whether live Meta changes are enabled. Creation, duplication, and status requests default to dry_run: true. Campaigns, ad sets, and ads created through these tools start paused. Direct budget amounts use integer account-currency minor units.
The tables list arguments and common nested fields. Expand Full input schema for all fields and allowed values. Workspace and account permissions apply to every tool.
actions_capabilities
Check which Meta actions and live changes are enabled. Access:mcp:read.
Arguments: none.
Full input schema
Full input schema
{
"additionalProperties": false,
"properties": {},
"type": "object"
}
media_uploads_create
Open a media picker or prepare a signed upload to the workspace library. The picker accepts up to ten files, with a default total limit of 64 MiB. To get a signed upload URL for one file, supply its metadata. A successful upload saves the file in the library. Usemedia_asset_id with Launcher tools or media_id with creatives_create. Uploading a file does not create a Meta creative.
Access: mcp:read and mcp:write.
| Parameter | Type | Required / default | Details |
|---|---|---|---|
payload | object | Required | Request ID and optional file metadata for a signed upload. |
payload fields
| Parameter | Type | Required / default | Details |
|---|---|---|---|
request_id | uuid | Required | UUID for this operation; use a new UUID for changed inputs. |
ad_account_id | uuid or null | null | Superlaunch account UUID from ad_accounts_list. |
filename | string or null | null | Original file name, including its extension. |
mime_type | image/jpeg, image/png, image/webp, video/mp4, video/quicktime or null | null | File content type, such as image/jpeg. |
byte_size | integer or null | null | File size in bytes. |
checksum_sha256 | string or null | null | SHA-256 checksum of the file bytes. |
request_id with unchanged inputs for the same operation.
Full input schema
Full input schema
{
"$defs": {
"MediaUploadCreate": {
"additionalProperties": false,
"description": "Open the media picker or create one bounded signed upload grant.",
"properties": {
"request_id": {
"format": "uuid",
"type": "string"
},
"ad_account_id": {
"anyOf": [
{
"format": "uuid",
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"filename": {
"anyOf": [
{
"maxLength": 255,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"mime_type": {
"anyOf": [
{
"enum": [
"image/jpeg",
"image/png",
"image/webp",
"video/mp4",
"video/quicktime"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"byte_size": {
"anyOf": [
{
"maximum": 1073741824,
"minimum": 1,
"type": "integer"
},
{
"type": "null"
}
],
"default": null
},
"checksum_sha256": {
"anyOf": [
{
"pattern": "^[0-9a-f]{64}$",
"type": "string"
},
{
"type": "null"
}
],
"default": null
}
},
"required": [
"request_id"
],
"type": "object"
}
},
"additionalProperties": false,
"properties": {
"payload": {
"$ref": "#/$defs/MediaUploadCreate"
}
},
"required": [
"payload"
],
"type": "object"
}
media_uploads_complete
Upload one to ten selected files and return a result for each file. The default combined limit is 64 MiB. Usemedia_asset_id with Launcher tools or media_id with creatives_create. After a partial failure, retry with the same request_id and files to retain the results for files that already succeeded.
Access: mcp:read and mcp:write.
| Parameter | Type | Required / default | Details |
|---|---|---|---|
files | array of object | Required | minItems: 1. maxItems: 10. |
media_id | uuid or null | null | Upload identifier used by direct Meta creative creation. |
request_id | uuid or null | null | UUID for this operation; use a new UUID for changed inputs. |
ad_account_id | uuid or null | null | Superlaunch account UUID from ad_accounts_list. |
request_id with unchanged inputs for the same operation.
Full input schema
Full input schema
{
"$defs": {
"MediaUploadFile": {
"additionalProperties": false,
"description": "One Prefab-selected file sent directly to the upload completion tool.",
"properties": {
"name": {
"maxLength": 255,
"minLength": 1,
"type": "string"
},
"size": {
"maximum": 1073741824,
"minimum": 1,
"type": "integer"
},
"type": {
"maxLength": 100,
"minLength": 1,
"type": "string"
},
"data": {
"maxLength": 357914456,
"minLength": 1,
"type": "string"
}
},
"required": [
"name",
"size",
"type",
"data"
],
"type": "object"
}
},
"additionalProperties": false,
"properties": {
"files": {
"items": {
"$ref": "#/$defs/MediaUploadFile"
},
"maxItems": 10,
"minItems": 1,
"type": "array"
},
"media_id": {
"anyOf": [
{
"format": "uuid",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"type": [
"string",
"null"
]
},
"request_id": {
"anyOf": [
{
"format": "uuid",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"type": [
"string",
"null"
]
},
"ad_account_id": {
"anyOf": [
{
"format": "uuid",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"type": [
"string",
"null"
]
}
},
"required": [
"files"
],
"type": "object"
}
creatives_create
Create a Meta creative from one completed signed media upload. Access:mcp:read and mcp:write.
| Parameter | Type | Required / default | Details |
|---|---|---|---|
payload | object | Required | Upload completed media to Meta and create one ad creative. |
payload fields
| Parameter | Type | Required / default | Details |
|---|---|---|---|
request_id | uuid | Required | UUID for this operation; use a new UUID for changed inputs. |
ad_account_id | uuid | Required | Superlaunch account UUID from ad_accounts_list. |
media_id | uuid | Required | Upload identifier used by direct Meta creative creation. |
name | string | Required | minLength: 1. maxLength: 255. |
object_story_spec | object | Required | |
url_tags | string or null | null | |
dry_run | boolean | true | true checks the request without making live changes in Meta. |
request_id with unchanged inputs for the same operation.
Full input schema
Full input schema
{
"$defs": {
"CreativeCreate": {
"additionalProperties": false,
"description": "Upload completed media to Meta and create one ad creative.",
"properties": {
"request_id": {
"format": "uuid",
"type": "string"
},
"ad_account_id": {
"format": "uuid",
"type": "string"
},
"media_id": {
"format": "uuid",
"type": "string"
},
"name": {
"maxLength": 255,
"minLength": 1,
"type": "string"
},
"object_story_spec": {
"$ref": "#/$defs/JsonObjectInput"
},
"url_tags": {
"anyOf": [
{
"maxLength": 2000,
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"dry_run": {
"default": true,
"type": "boolean"
}
},
"required": [
"request_id",
"ad_account_id",
"media_id",
"name",
"object_story_spec"
],
"type": "object"
},
"JsonObjectInput": {
"additionalProperties": true,
"type": "object"
}
},
"additionalProperties": false,
"properties": {
"payload": {
"$ref": "#/$defs/CreativeCreate"
}
},
"required": [
"payload"
],
"type": "object"
}
campaigns_create
Validate campaign inputs or create a paused Meta campaign. The default isdry_run: true.
Access: mcp:read and mcp:write.
| Parameter | Type | Required / default | Details |
|---|---|---|---|
payload | object | Required | Create or validate one paused Meta campaign. |
payload fields
| Parameter | Type | Required / default | Details |
|---|---|---|---|
request_id | uuid | Required | UUID for this operation; use a new UUID for changed inputs. |
ad_account_id | uuid | Required | Superlaunch account UUID from ad_accounts_list. |
name | string | Required | minLength: 1. maxLength: 255. |
objective | string | Required | minLength: 1. maxLength: 100. |
status | ”PAUSED” | "PAUSED" | |
special_ad_categories | array of string | Optional | maxItems: 10. |
special_ad_category_country | array of string or null | null | |
daily_budget | integer or null | null | Daily budget in the ad account currency’s minor units (for USD, 10000 means $100.00). |
is_adset_budget_sharing_enabled | boolean or null | null | |
lifetime_budget | integer or null | null | Lifetime budget in the ad account currency’s minor units (for USD, 10000 means $100.00). |
bid_strategy | string or null | null | |
buying_type | string or null | null | |
promoted_object | object or null | null | |
start_time | string or null | null | |
stop_time | string or null | null | |
dry_run | boolean | true | true checks the request without making live changes in Meta. |
request_id with unchanged inputs for the same operation.
Full input schema
Full input schema
{
"$defs": {
"CampaignCreate": {
"additionalProperties": false,
"description": "Create or validate one paused Meta campaign.",
"properties": {
"request_id": {
"format": "uuid",
"type": "string"
},
"ad_account_id": {
"format": "uuid",
"type": "string"
},
"name": {
"maxLength": 255,
"minLength": 1,
"type": "string"
},
"objective": {
"maxLength": 100,
"minLength": 1,
"type": "string"
},
"status": {
"const": "PAUSED",
"default": "PAUSED",
"type": "string"
},
"special_ad_categories": {
"items": {
"type": "string"
},
"maxItems": 10,
"type": "array"
},
"special_ad_category_country": {
"anyOf": [
{
"items": {
"type": "string"
},
"maxItems": 50,
"type": "array"
},
{
"type": "null"
}
],
"default": null
},
"daily_budget": {
"anyOf": [
{
"minimum": 1,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Daily budget in the ad account currency's minor units (for USD, 10000 means $100.00)."
},
"is_adset_budget_sharing_enabled": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null
},
"lifetime_budget": {
"anyOf": [
{
"minimum": 1,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Lifetime budget in the ad account currency's minor units (for USD, 10000 means $100.00)."
},
"bid_strategy": {
"anyOf": [
{
"maxLength": 100,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"buying_type": {
"anyOf": [
{
"maxLength": 100,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"promoted_object": {
"anyOf": [
{
"$ref": "#/$defs/JsonObjectInput"
},
{
"type": "null"
}
],
"default": null
},
"start_time": {
"anyOf": [
{
"maxLength": 100,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"stop_time": {
"anyOf": [
{
"maxLength": 100,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"dry_run": {
"default": true,
"type": "boolean"
}
},
"required": [
"request_id",
"ad_account_id",
"name",
"objective"
],
"type": "object"
},
"JsonObjectInput": {
"additionalProperties": true,
"type": "object"
}
},
"additionalProperties": false,
"properties": {
"payload": {
"$ref": "#/$defs/CampaignCreate"
}
},
"required": [
"payload"
],
"type": "object"
}
adsets_create
Validate ad-set inputs or create a paused Meta ad set. The default isdry_run: true.
Access: mcp:read and mcp:write.
| Parameter | Type | Required / default | Details |
|---|---|---|---|
payload | object | Required | Create or validate one paused Meta ad set under an existing campaign. |
payload fields
| Parameter | Type | Required / default | Details |
|---|---|---|---|
request_id | uuid | Required | UUID for this operation; use a new UUID for changed inputs. |
ad_account_id | uuid | Required | Superlaunch account UUID from ad_accounts_list. |
campaign_id | string | Required | minLength: 1. maxLength: 300. |
name | string | Required | minLength: 1. maxLength: 255. |
optimization_goal | string | Required | minLength: 1. maxLength: 100. |
billing_event | string | Required | minLength: 1. maxLength: 100. |
targeting | object | Required | |
status | ”PAUSED” | "PAUSED" | |
daily_budget | integer or null | null | Daily budget in the ad account currency’s minor units (for USD, 2100 means $21.00). |
lifetime_budget | integer or null | null | Lifetime budget in the ad account currency’s minor units (for USD, 2100 means $21.00). |
bid_amount | integer or null | null | Bid amount in the ad account currency’s minor units. |
bid_strategy | string or null | null | |
promoted_object | object or null | null | |
destination_type | string or null | null | |
attribution_spec | array of object or null | null | |
start_time | string or null | null | |
end_time | string or null | null | |
dsa_beneficiary | string or null | null | |
dsa_payor | string or null | null | |
dry_run | boolean | true | true checks the request without making live changes in Meta. |
request_id with unchanged inputs for the same operation.
Full input schema
Full input schema
{
"$defs": {
"AdSetCreate": {
"additionalProperties": false,
"description": "Create or validate one paused Meta ad set under an existing campaign.",
"properties": {
"request_id": {
"format": "uuid",
"type": "string"
},
"ad_account_id": {
"format": "uuid",
"type": "string"
},
"campaign_id": {
"maxLength": 300,
"minLength": 1,
"type": "string"
},
"name": {
"maxLength": 255,
"minLength": 1,
"type": "string"
},
"optimization_goal": {
"maxLength": 100,
"minLength": 1,
"type": "string"
},
"billing_event": {
"maxLength": 100,
"minLength": 1,
"type": "string"
},
"targeting": {
"$ref": "#/$defs/JsonObjectInput"
},
"status": {
"const": "PAUSED",
"default": "PAUSED",
"type": "string"
},
"daily_budget": {
"anyOf": [
{
"minimum": 1,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Daily budget in the ad account currency's minor units (for USD, 2100 means $21.00)."
},
"lifetime_budget": {
"anyOf": [
{
"minimum": 1,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Lifetime budget in the ad account currency's minor units (for USD, 2100 means $21.00)."
},
"bid_amount": {
"anyOf": [
{
"minimum": 1,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Bid amount in the ad account currency's minor units."
},
"bid_strategy": {
"anyOf": [
{
"maxLength": 100,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"promoted_object": {
"anyOf": [
{
"$ref": "#/$defs/JsonObjectInput"
},
{
"type": "null"
}
],
"default": null
},
"destination_type": {
"anyOf": [
{
"maxLength": 100,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"attribution_spec": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/JsonObjectInput"
},
"maxItems": 20,
"type": "array"
},
{
"type": "null"
}
],
"default": null
},
"start_time": {
"anyOf": [
{
"maxLength": 100,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"end_time": {
"anyOf": [
{
"maxLength": 100,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"dsa_beneficiary": {
"anyOf": [
{
"maxLength": 300,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"dsa_payor": {
"anyOf": [
{
"maxLength": 300,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"dry_run": {
"default": true,
"type": "boolean"
}
},
"required": [
"request_id",
"ad_account_id",
"campaign_id",
"name",
"optimization_goal",
"billing_event",
"targeting"
],
"type": "object"
},
"JsonObjectInput": {
"additionalProperties": true,
"type": "object"
}
},
"additionalProperties": false,
"properties": {
"payload": {
"$ref": "#/$defs/AdSetCreate"
}
},
"required": [
"payload"
],
"type": "object"
}
ads_create
Validate ad inputs or create a paused Meta ad. The default isdry_run: true.
Access: mcp:read and mcp:write.
| Parameter | Type | Required / default | Details |
|---|---|---|---|
payload | object | Required | Create or validate one paused Meta ad using an existing creative. |
payload fields
| Parameter | Type | Required / default | Details |
|---|---|---|---|
request_id | uuid | Required | UUID for this operation; use a new UUID for changed inputs. |
ad_account_id | uuid | Required | Superlaunch account UUID from ad_accounts_list. |
adset_id | string | Required | minLength: 1. maxLength: 300. |
name | string | Required | minLength: 1. maxLength: 255. |
creative_id | string | Required | minLength: 1. maxLength: 300. |
status | ”PAUSED” | "PAUSED" | |
conversion_domain | string or null | null | |
tracking_specs | array of object or null | null | |
dry_run | boolean | true | true checks the request without making live changes in Meta. |
request_id with unchanged inputs for the same operation.
Full input schema
Full input schema
{
"$defs": {
"AdCreate": {
"additionalProperties": false,
"description": "Create or validate one paused Meta ad using an existing creative.",
"properties": {
"request_id": {
"format": "uuid",
"type": "string"
},
"ad_account_id": {
"format": "uuid",
"type": "string"
},
"adset_id": {
"maxLength": 300,
"minLength": 1,
"type": "string"
},
"name": {
"maxLength": 255,
"minLength": 1,
"type": "string"
},
"creative_id": {
"maxLength": 300,
"minLength": 1,
"type": "string"
},
"status": {
"const": "PAUSED",
"default": "PAUSED",
"type": "string"
},
"conversion_domain": {
"anyOf": [
{
"maxLength": 300,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"tracking_specs": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/JsonObjectInput"
},
"maxItems": 50,
"type": "array"
},
{
"type": "null"
}
],
"default": null
},
"dry_run": {
"default": true,
"type": "boolean"
}
},
"required": [
"request_id",
"ad_account_id",
"adset_id",
"name",
"creative_id"
],
"type": "object"
},
"JsonObjectInput": {
"additionalProperties": true,
"type": "object"
}
},
"additionalProperties": false,
"properties": {
"payload": {
"$ref": "#/$defs/AdCreate"
}
},
"required": [
"payload"
],
"type": "object"
}
actions_execute
Change the status of a campaign, ad set, or ad withset_status.
Access: mcp:read and mcp:write.
| Parameter | Type | Required / default | Details |
|---|---|---|---|
payload | object | Required | Set one existing campaign, ad set, or ad ACTIVE or PAUSED. |
payload fields
| Parameter | Type | Required / default | Details |
|---|---|---|---|
request_id | uuid | Required | UUID for this operation; use a new UUID for changed inputs. |
ad_account_id | uuid | Required | Superlaunch account UUID from ad_accounts_list. |
target_type | campaign, adset, ad | Required | |
target_id | string | Required | minLength: 1. maxLength: 300. |
status | ACTIVE, PAUSED | Required | |
dry_run | boolean | true | true checks the request without making live changes in Meta. |
request_id with unchanged inputs for the same operation.
Full input schema
Full input schema
{
"$defs": {
"StatusActionExecute": {
"additionalProperties": false,
"description": "Set one existing campaign, ad set, or ad ACTIVE or PAUSED.",
"properties": {
"request_id": {
"format": "uuid",
"type": "string"
},
"ad_account_id": {
"format": "uuid",
"type": "string"
},
"target_type": {
"enum": [
"campaign",
"adset",
"ad"
],
"type": "string"
},
"target_id": {
"maxLength": 300,
"minLength": 1,
"type": "string"
},
"status": {
"enum": [
"ACTIVE",
"PAUSED"
],
"type": "string"
},
"dry_run": {
"default": true,
"type": "boolean"
}
},
"required": [
"request_id",
"ad_account_id",
"target_type",
"target_id",
"status"
],
"type": "object"
}
},
"additionalProperties": false,
"properties": {
"payload": {
"$ref": "#/$defs/StatusActionExecute"
}
},
"required": [
"payload"
],
"type": "object"
}
campaigns_duplicate
Preview or copy a campaign with its children in the same account, paused. Access:mcp:read and mcp:write.
| Parameter | Type | Required / default | Details |
|---|---|---|---|
payload | object | Required | Copy one source in its account; copied hierarchies always start paused. |
payload fields
| Parameter | Type | Required / default | Details |
|---|---|---|---|
request_id | uuid | Required | UUID for this operation; use a new UUID for changed inputs. |
ad_account_id | uuid | Required | Superlaunch account UUID from ad_accounts_list. |
source_id | string | Required | minLength: 1. maxLength: 300. |
dry_run | boolean | true | true checks the request without making live changes in Meta. |
request_id with unchanged inputs for the same operation.
Full input schema
Full input schema
{
"$defs": {
"DuplicateAction": {
"additionalProperties": false,
"description": "Copy one source in its account; copied hierarchies always start paused.",
"properties": {
"request_id": {
"format": "uuid",
"type": "string"
},
"ad_account_id": {
"format": "uuid",
"type": "string"
},
"source_id": {
"maxLength": 300,
"minLength": 1,
"type": "string"
},
"dry_run": {
"default": true,
"type": "boolean"
}
},
"required": [
"request_id",
"ad_account_id",
"source_id"
],
"type": "object"
}
},
"additionalProperties": false,
"properties": {
"payload": {
"$ref": "#/$defs/DuplicateAction"
}
},
"required": [
"payload"
],
"type": "object"
}
adsets_duplicate
Preview or copy an ad set with its ads in the same campaign, paused. Access:mcp:read and mcp:write.
| Parameter | Type | Required / default | Details |
|---|---|---|---|
payload | object | Required | Copy one source in its account; copied hierarchies always start paused. |
payload fields
| Parameter | Type | Required / default | Details |
|---|---|---|---|
request_id | uuid | Required | UUID for this operation; use a new UUID for changed inputs. |
ad_account_id | uuid | Required | Superlaunch account UUID from ad_accounts_list. |
source_id | string | Required | minLength: 1. maxLength: 300. |
dry_run | boolean | true | true checks the request without making live changes in Meta. |
request_id with unchanged inputs for the same operation.
Full input schema
Full input schema
{
"$defs": {
"DuplicateAction": {
"additionalProperties": false,
"description": "Copy one source in its account; copied hierarchies always start paused.",
"properties": {
"request_id": {
"format": "uuid",
"type": "string"
},
"ad_account_id": {
"format": "uuid",
"type": "string"
},
"source_id": {
"maxLength": 300,
"minLength": 1,
"type": "string"
},
"dry_run": {
"default": true,
"type": "boolean"
}
},
"required": [
"request_id",
"ad_account_id",
"source_id"
],
"type": "object"
}
},
"additionalProperties": false,
"properties": {
"payload": {
"$ref": "#/$defs/DuplicateAction"
}
},
"required": [
"payload"
],
"type": "object"
}
ads_duplicate
Preview or copy an ad in the same ad set, paused. Access:mcp:read and mcp:write.
| Parameter | Type | Required / default | Details |
|---|---|---|---|
payload | object | Required | Copy one source in its account; copied hierarchies always start paused. |
payload fields
| Parameter | Type | Required / default | Details |
|---|---|---|---|
request_id | uuid | Required | UUID for this operation; use a new UUID for changed inputs. |
ad_account_id | uuid | Required | Superlaunch account UUID from ad_accounts_list. |
source_id | string | Required | minLength: 1. maxLength: 300. |
dry_run | boolean | true | true checks the request without making live changes in Meta. |
request_id with unchanged inputs for the same operation.
Full input schema
Full input schema
{
"$defs": {
"DuplicateAction": {
"additionalProperties": false,
"description": "Copy one source in its account; copied hierarchies always start paused.",
"properties": {
"request_id": {
"format": "uuid",
"type": "string"
},
"ad_account_id": {
"format": "uuid",
"type": "string"
},
"source_id": {
"maxLength": 300,
"minLength": 1,
"type": "string"
},
"dry_run": {
"default": true,
"type": "boolean"
}
},
"required": [
"request_id",
"ad_account_id",
"source_id"
],
"type": "object"
}
},
"additionalProperties": false,
"properties": {
"payload": {
"$ref": "#/$defs/DuplicateAction"
}
},
"required": [
"payload"
],
"type": "object"
}
actions_get
Read an action result using its activity ID. Access:mcp:read.
| Parameter | Type | Required / default | Details |
|---|---|---|---|
activity_id | uuid | Required | Activity UUID from the tool result or activity_list. |
Full input schema
Full input schema
{
"additionalProperties": false,
"properties": {
"activity_id": {
"format": "uuid",
"type": "string"
}
},
"required": [
"activity_id"
],
"type": "object"
}