whoiam
Get the authenticated user's identity, team, plan permissions, and Facebook token status. Call this first to verify authentication and get context.
get_campaign
Retrieve full configuration details for a single Facebook campaign by its ID, including objective, status, spending cap, and bid strategy. Use get_by_ids for multiple campaigns.
get_campaigns
Retrieve configuration details for up to 50 Facebook campaigns in a single request by their IDs. More efficient than calling get_by_id for each campaign individually.
list_campaigns
List all Facebook campaigns in an ad account with optional filtering by status, objective, or date range. Returns campaign-level configuration including objective, buying type, and budget settings.
pause_campaign
Pause a currently active Facebook campaign, stopping delivery of all its ad sets and ads simultaneously. Only applicable to campaigns with ACTIVE status. Can be reactivated without recreating the campaign structure.
start_campaign
Activate an existing Facebook campaign by setting its status to ACTIVE. Use this tool when a paused campaign should resume delivery without changing its objective, budget strategy, or structure. Provide the ad account ID and the target entity ID. This is a write operation that updates Facebook delivery state and may return a provider error if the campaign is already ACTIVE or cannot be started because of account or policy restrictions.
set_campaign_budget
Set the exact budget value for an existing Facebook campaign in the ad account currency. Use this tool for campaign-level budgets, which are typically used in CBO (Campaign Budget Optimization). Provide account_id, entity_id, the final target budget value, and optionally apply_to. The value is the resulting budget amount, not a delta or percentage. This tool preserves the campaign's current budget type (daily or lifetime) and does not change campaign status, targeting, creative, or structure. If a campaign has both daily_budget and lifetime_budget unset, it is commonly an ABO setup with budgets managed at the ad set level, so this campaign-level tool may be inappropriate or rejected by the provider. entity_id must be numeric. value must be at least 0.01. apply_to supports only 'all' or 'active_only'; when 'active_only' is used, the campaign must already be ACTIVE. The backend also validates that the entity_id belongs to a campaign. The response contains the updated campaign entity only. Provider errors can occur if the campaign budget configuration is unsupported or cannot be updated through this path.
increase_campaign_budget
Increase the budget of an existing Facebook campaign by a positive delta. This tool does not set a final budget target; it only adds to the current campaign budget. Use it when the user wants to raise budget by a percentage or by a concrete increase amount. The value is interpreted through measuring_unit, which must be one of '%', 'currency', or 'fb_representation'. value must match the selected measuring_unit and must be at least 0.01. Provide account_id, entity_id, value, measuring_unit, and optionally apply_to. apply_to supports only 'all' or 'active_only'; when 'active_only' is used, the campaign must already be ACTIVE. entity_id must be numeric and the backend validates that it belongs to a campaign. This tool is for campaign-level budgets and is primarily relevant to CBO setups. If campaign-level budget is absent, the campaign is often ABO and this tool may be inappropriate or rejected. If the user's true intent is to reach an exact final budget, the increase amount must be computed first as target minus current budget. The tool does not change status, targeting, creative, or campaign structure. The response contains only the updated campaign entity. Provider errors can occur for unsupported budget setups, including cases where campaign budget is not directly editable.
decrease_campaign_budget
Decrease the budget of an existing Facebook campaign by a positive delta. This tool does not set a final budget target; it only subtracts from the current campaign budget. Use it when the user wants to reduce budget by a percentage or by a concrete decrease amount. The value is interpreted through measuring_unit, which must be one of '%', 'currency', or 'fb_representation'. value must match the selected measuring_unit and must be at least 0.01. Provide account_id, entity_id, value, measuring_unit, and optionally apply_to. apply_to supports only 'all' or 'active_only'; when 'active_only' is used, the campaign must already be ACTIVE. entity_id must be numeric and the backend validates that it belongs to a campaign. This tool is for campaign-level budgets and is primarily relevant to CBO setups. If campaign-level budget is absent, the campaign is often ABO and this tool may be inappropriate or rejected. If the user's true intent is to reach an exact final budget, the decrease amount must be computed first as current budget minus target. The tool does not change status, targeting, creative, or campaign structure. The response contains only the updated campaign entity. Provider errors can occur for unsupported budget setups, including cases where campaign budget is not directly editable or cannot be reduced through this path.
add_text_to_campaign_name
Add text to a Facebook campaign name. Use this tool when you need to prepend or append text to an existing campaign name, not when you need to remove or replace existing text. Provide account_id, entity_id, text, and optionally position and separator. This tool works only for campaigns. entity_id must be numeric. text must be non-empty after trimming and must be 1-100 characters long. position must be either 'prefix' or 'suffix'. separator is optional text placed between the inserted text and the original name and can be at most 5 characters long. The backend validates that entity_id belongs to a campaign. The tool changes only the campaign name and does not modify budget, status, targeting, creatives, or structure. The response contains only the updated campaign entity.
remove_text_from_campaign_name
Remove specific text from a Facebook campaign name. Use this tool when you need to delete existing text from the beginning, end, or any position in the name, not when you need to prepend new text or replace one substring with another. Provide account_id, entity_id, text, and optionally position and case_sensitive. This tool works only for campaigns. entity_id must be numeric. text must be non-empty after trimming and must be 1-100 characters long. position must be 'prefix', 'suffix', or 'anywhere'. case_sensitive controls whether matching must respect character case. The backend validates that entity_id belongs to a campaign. The tool changes only the campaign name and does not modify budget, status, targeting, creatives, or structure. The response contains only the updated campaign entity.
replace_text_in_campaign_name
Replace one substring with another inside a Facebook campaign name. Use this tool when you need a targeted rename operation, not when you only need to prepend, append, or remove text. Provide account_id, entity_id, text_name_from, and text_name_to. This tool works only for campaigns. entity_id must be numeric. text_name_from and text_name_to must both be non-blank. The backend validates that entity_id belongs to a campaign. The tool changes only the campaign name and does not modify budget, status, targeting, creatives, or structure. The response contains only the updated campaign entity.
get_adset
Retrieve full configuration details for a single Facebook ad set, including audience targeting, daily or lifetime budget, bid strategy, optimization goal, and schedule. Use get_by_ids for multiple ad sets.
get_adsets
Retrieve configuration details for up to 50 Facebook ad sets in a single request by their IDs. More efficient than calling get_by_id for each ad set individually.
list_adsets_by_account
List all Facebook ad sets in an ad account with optional filtering by status, date range, or custom conditions. Returns ad set configuration including targeting, budgets, and optimization settings.
list_adsets_by_campaign
List all Facebook ad sets within a specific campaign. Returns targeting, budget, and bidding configuration for each ad set. Use get_insights for performance data instead of configuration.
pause_adset
Pause a currently active Facebook ad set, stopping delivery of all ads within it. Only applicable to ad sets with ACTIVE status. Ads within the ad set are also paused. The ad set can be reactivated later.
get_adset_activities
Retrieve activity for a specific Facebook ad set. This tool queries the parent ad account activity log and filters it to the requested ad set, so use it to answer questions like what happened to this ad set, when it happened, and who triggered it. Prefer event_time as the true action timestamp. Each activity item may include event_type, translated_event_type, actor_name, object_id, object_name, and extra_data. An empty data array means no matching ad set activities were found for the provided filters.
start_adset
Activate an existing Facebook ad set by setting its status to ACTIVE. Use this tool to resume delivery for an ad set that already has its budget, schedule, and targeting configured. Provide the ad account ID and the target entity ID. This is a write operation that updates state in Facebook and may return a provider error if the ad set is already ACTIVE or blocked by campaign-level delivery constraints.
set_adset_budget
Set the exact budget value for an existing Facebook ad set in the ad account currency. Use this tool for ad set-level budgets, which are typically used in ABO (Ad Set Budget Optimization). Provide account_id, entity_id, the final target budget value, and optionally apply_to. The value is the resulting budget amount, not a delta or percentage. This tool preserves the ad set's current budget type (daily or lifetime) and does not change status, targeting, creative, or bidding strategy. In CBO campaigns, ad sets often do not own their own budgets, so attempts to set an ad set budget can be invalid or rejected by the provider. entity_id must be numeric. value must be at least 0.01. apply_to supports only 'all' or 'active_only'; when 'active_only' is used, the ad set must already be ACTIVE. The backend also validates that the entity_id belongs to an ad set. The response contains the updated ad set entity only. Provider errors can occur if the ad set does not have a directly editable budget or if the current budget configuration is unsupported.
increase_adset_budget
Increase the budget of an existing Facebook ad set by a positive delta. This tool does not set a final budget target; it only adds to the current ad set budget. Use it when the user wants to raise budget by a percentage or by a concrete increase amount. The value is interpreted through measuring_unit, which must be one of '%', 'currency', or 'fb_representation'. value must match the selected measuring_unit and must be at least 0.01. Provide account_id, entity_id, value, measuring_unit, and optionally apply_to. apply_to supports only 'all' or 'active_only'; when 'active_only' is used, the ad set must already be ACTIVE. entity_id must be numeric and the backend validates that it belongs to an ad set. This tool is for ad set-level budgets and is primarily relevant to ABO setups. In CBO campaigns, an ad set may not own its own budget, so this tool can be inappropriate or rejected. If the user's true intent is to reach an exact final budget, the increase amount must be computed first as target minus current budget. The tool does not change status, targeting, creative, or ad set structure. The response contains only the updated ad set entity. Provider errors can occur when the ad set budget is not directly editable or the current budget configuration is unsupported.
decrease_adset_budget
Decrease the budget of an existing Facebook ad set by a positive delta. This tool does not set a final budget target; it only subtracts from the current ad set budget. Use it when the user wants to reduce budget by a percentage or by a concrete decrease amount. The value is interpreted through measuring_unit, which must be one of '%', 'currency', or 'fb_representation'. value must match the selected measuring_unit and must be at least 0.01. Provide account_id, entity_id, value, measuring_unit, and optionally apply_to. apply_to supports only 'all' or 'active_only'; when 'active_only' is used, the ad set must already be ACTIVE. entity_id must be numeric and the backend validates that it belongs to an ad set. This tool is for ad set-level budgets and is primarily relevant to ABO setups. In CBO campaigns, an ad set may not own its own budget, so this tool can be inappropriate or rejected. If the user's true intent is to reach an exact final budget, the decrease amount must be computed first as current budget minus target. The tool does not change status, targeting, creative, or ad set structure. The response contains only the updated ad set entity. Provider errors can occur when the ad set budget is not directly editable or the current budget configuration is unsupported.
set_adset_bid
Set an exact bid value for an existing Facebook ad set. Use this tool when you want to set the target bid directly, not adjust it by a delta. Provide account_id, entity_id, value, and optionally apply_to. This tool works only for ad sets. value is the final bid in account currency and must be at least 0.01. entity_id must be numeric. apply_to supports only 'all' or 'active_only'; when 'active_only' is used, the ad set must already be ACTIVE. The backend validates that the entity_id belongs to an ad set. The tool does not change budget, bid strategy, targeting, creatives, status, or ad set structure. Manual bidding configuration is typically required; if the current ad set bid strategy does not support direct bid updates, the provider may reject the request. The response contains only the updated ad set entity.
decrease_adset_bid
Decrease the bid of an existing Facebook ad set by a positive delta. Use this tool when you want to lower the current bid by a percentage, currency amount, or Facebook bid representation, not when you want to set an exact final bid directly. Provide account_id, entity_id, value, measuring_unit, and optionally apply_to. This tool works only for ad sets. measuring_unit must be one of '%', 'currency', or 'fb_representation'. value must be at least 0.01. If you need an exact final bid target, first calculate the difference between the current bid and the target bid, then pass that delta here. entity_id must be numeric. apply_to supports only 'all' or 'active_only'; when 'active_only' is used, the ad set must already be ACTIVE. The backend validates that the entity_id belongs to an ad set. The tool does not change bid strategy, budget, targeting, creatives, status, or ad set structure. The provider may reject the request if the current ad set bid configuration does not support bid decreases through this path. The response contains only the updated ad set entity.
increase_adset_spending_limit
Increase the spending limits of an existing Facebook ad set by delta amounts. This tool does not set final target limits; it adds to the current minimum and maximum spending limits. Provide account_id, entity_id, minimum_value, maximum_value, measuring_unit, and optionally apply_to. measuring_unit must be one of '%', 'currency', or 'fb_representation'. minimum_value and maximum_value cannot be negative and must match the chosen measuring_unit. If the user's real intent is to reach exact final limits, compute the difference from the current limits first. entity_id must be numeric. apply_to supports only 'all' or 'active_only'; when 'active_only' is used, the ad set must already be ACTIVE. The backend validates that the entity_id belongs to an ad set. The tool does not change targeting, creatives, status, or ad set structure. The response contains only the updated ad set entity.
decrease_adset_spending_limit
Decrease the spending limits of an existing Facebook ad set by delta amounts. This tool does not set final target limits; it subtracts from the current minimum and maximum spending limits. Provide account_id, entity_id, minimum_decrease, maximum_decrease, measuring_unit, and optionally apply_to. measuring_unit must be one of '%', 'currency', or 'fb_representation'. minimum_decrease and maximum_decrease must each be at least 0.01 and must match the chosen measuring_unit. If the user's real intent is to reach exact final limits, compute the difference from the current limits first. entity_id must be numeric. apply_to supports only 'all' or 'active_only'; when 'active_only' is used, the ad set must already be ACTIVE. The backend validates that the entity_id belongs to an ad set. The tool does not change targeting, creatives, status, or ad set structure. The response contains only the updated ad set entity.
add_text_to_adset_name
Add text to a Facebook ad set name. Use this tool when you need to prepend or append text to an existing ad set name, not when you need to remove or replace existing text. Provide account_id, entity_id, text, and optionally position and separator. This tool works only for ad sets. entity_id must be numeric. text must be non-empty after trimming and must be 1-100 characters long. position must be either 'prefix' or 'suffix'. separator is optional text placed between the inserted text and the original name and can be at most 5 characters long. The backend validates that entity_id belongs to an ad set. The tool changes only the ad set name and does not modify budget, status, targeting, creatives, or structure. The response contains only the updated ad set entity.
remove_text_from_adset_name
Remove specific text from a Facebook ad set name. Use this tool when you need to delete existing text from the beginning, end, or any position in the name, not when you need to prepend new text or replace one substring with another. Provide account_id, entity_id, text, and optionally position and case_sensitive. This tool works only for ad sets. entity_id must be numeric. text must be non-empty after trimming and must be 1-100 characters long. position must be 'prefix', 'suffix', or 'anywhere'. case_sensitive controls whether matching must respect character case. The backend validates that entity_id belongs to an ad set. The tool changes only the ad set name and does not modify budget, status, targeting, creatives, or structure. The response contains only the updated ad set entity.
replace_text_in_adset_name
Replace one substring with another inside a Facebook ad set name. Use this tool when you need a targeted rename operation, not when you only need to prepend, append, or remove text. Provide account_id, entity_id, text_name_from, and text_name_to. This tool works only for ad sets. entity_id must be numeric. text_name_from and text_name_to must both be non-blank. The backend validates that entity_id belongs to an ad set. The tool changes only the ad set name and does not modify budget, status, targeting, creatives, or structure. The response contains only the updated ad set entity.
get_ad
Retrieve full configuration details for a single Facebook ad by its ID, including status, creative, bidding, and targeting inherited from its parent ad set. Use get_by_ids to fetch multiple ads at once.
get_ads
Retrieve configuration details for up to 50 Facebook ads in a single request by their IDs. More efficient than calling get_by_id for each ad individually.
list_ads_by_account
List all Facebook ads belonging to an ad account. Supports filtering by effective status, date range, and custom field conditions. Use get_by_adset or get_by_campaign when you need ads from a specific parent entity.
list_ads_by_campaign
List all Facebook ads across all ad sets within a specific campaign. Useful for getting a complete view of ads under a campaign without querying each ad set separately.
list_ads_by_adset
List all Facebook ads within a specific ad set. Returns ad configuration data including creative, status, and bidding. Use get_insights if you need performance metrics instead of configuration.
pause_ad
Pause a currently active Facebook ad to stop delivery immediately without deleting it. Only applicable to ads with ACTIVE status. The ad can be reactivated later. Use delete only if the ad is no longer needed.
start_ad
Activate an existing Facebook ad by setting its delivery status to ACTIVE. Use this tool when an ad already exists and should resume serving without changing its creative, budget, or targeting. Provide the ad account ID and the target entity ID. This is a write operation that changes delivery state in Facebook and may return a provider error if the ad is already ACTIVE or cannot be started because of parent campaign or ad set constraints.
add_text_to_ad_name
Add text to a Facebook ad name. Use this tool when you need to prepend or append text to an existing ad name, not when you need to remove or replace existing text. Provide account_id, entity_id, text, and optionally position and separator. This tool works only for ads. entity_id must be numeric. text must be non-empty after trimming and must be 1-100 characters long. position must be either 'prefix' or 'suffix'. separator is optional text placed between the inserted text and the original name and can be at most 5 characters long. The backend validates that entity_id belongs to an ad. The tool changes only the ad name and does not modify budget, status, targeting, creatives, or structure. The response contains only the updated ad entity.
remove_text_from_ad_name
Remove specific text from a Facebook ad name. Use this tool when you need to delete existing text from the beginning, end, or any position in the name, not when you need to prepend new text or replace one substring with another. Provide account_id, entity_id, text, and optionally position and case_sensitive. This tool works only for ads. entity_id must be numeric. text must be non-empty after trimming and must be 1-100 characters long. position must be 'prefix', 'suffix', or 'anywhere'. case_sensitive controls whether matching must respect character case. The backend validates that entity_id belongs to an ad. The tool changes only the ad name and does not modify budget, status, targeting, creatives, or structure. The response contains only the updated ad entity.
replace_text_in_ad_name
Replace one substring with another inside a Facebook ad name. Use this tool when you need a targeted rename operation, not when you only need to prepend, append, or remove text. Provide account_id, entity_id, text_name_from, and text_name_to. This tool works only for ads. entity_id must be numeric. text_name_from and text_name_to must both be non-blank. The backend validates that entity_id belongs to an ad. The tool changes only the ad name and does not modify budget, status, targeting, creatives, or structure. The response contains only the updated ad entity.
get_campaign_insights
Retrieve aggregated performance metrics for a Facebook campaign, combining data from all its ad sets and ads. Includes spend, ROAS, reach, impressions, and conversions. Supports time breakdowns and date presets.
get_adset_insights
Retrieve performance metrics for a specific Facebook ad set, including spend, reach, impressions, and conversions. Aggregates data from all ads within the ad set. Supports breakdowns and date presets.
get_ad_insights
Retrieve performance metrics for a specific Facebook ad, including spend, impressions, clicks, CTR, CPM, and ROAS. Supports breakdown dimensions (age, gender, placement) and custom date ranges or presets like last_7d.
get_ad_account_insights
Retrieve aggregated performance metrics across all campaigns for a Facebook ad account over a specified date range. Supports level parameter (account, campaign, adset, ad) and breakdown dimensions for granular analysis.
list_ad_accounts
List all Facebook ad accounts accessible to the authenticated user. Returns each account's ID, name, status, and currency. Use this tool first to discover available accounts before making account-specific API calls.
get_ad_account
Retrieve comprehensive details for a Facebook ad account, including its current status (ACTIVE, DISABLED, etc.), currency, timezone, billing information, spending limits, and business ownership. Useful for account health checks.
get_ad_account_activities
Retrieve the Facebook ad account activity log. Use this tool to answer questions like what changed, when it changed, and who performed the action. Prefer event_time as the actual action timestamp. Each activity item may include event_type, translated_event_type, actor_name, object_id, object_name, and extra_data. Use time_range to narrow the search when looking for recent events. An empty data array means no matching activities were returned for the requested account and filters.
get_creative
Retrieve full configuration details for a single Facebook ad creative by its ID, including all media assets, text elements, call-to-action, and tracking parameters. Use get_by_ids for multiple creatives.
get_creatives
Retrieve configuration details for up to 50 Facebook ad creatives in a single batch request. Uses Facebook's multi-ID lookup endpoint, which is more efficient than individual requests.
list_creatives_by_ad
Retrieve the ad creative linked to a specific Facebook ad. Provide account_id and ad_id to fetch the single creative object attached to that ad, including media asset references and copy fields when available.