Public leaderboard

Public assessment

mikusnuz/meta-ads-mcp (@mikusnuz/meta-ads-mcp)

mikusnuz-meta-ads-mcp · v1.3.0 · scanned

What changed in the harness

Selection accuracy 100→98, token cost up 8%, unconfirmed writes 0%→0%.

Category breakdown

Where the score comes from.

Earned points across the four signals Gradable measures. Safety and Legibility are scored out of 30; Economics and Discoverability are scored out of 20.

01Safety

0.0 / 30

0.0 out of 30
02Legibility

18.0 / 30

18.0 out of 30
03Economics

8.1 / 20

8.1 out of 20
04Discoverability

11.4 / 20

11.4 out of 20

Highest-impact fix

Estimated gain +30 points

Add explicit identity and permission preflight tools

Expose machine-readable principal/tenant confirmation and a non-mutating permission check so agents can verify both before destructive actions.

Description evidence

Defects and rewrites.

114 defects found across the exposed tool descriptions. Suggested rewrites make purpose, inputs, boundaries, and returns easier for an agent to understand.

Tool Defect types Suggested rewrite
get_campaign
name_restates_behavior params_unexplained no_return_description
Fetch a single campaign by its campaign_id and return its configuration, including objective, status, and budget settings. Optionally restrict the result to the comma-separated fields listed in fields to reduce the payload.
create_campaign
no_return_description
Create a new ad campaign with the required name and objective. New campaigns default to PAUSED status and must be activated to deliver. Budget can be set at the campaign level via daily_budget or lifetime_budget, or left to the ad set level. Returns the created campaign ID and details.
delete_campaign
name_restates_behavior no_return_description
Permanently remove the campaign identified by campaign_id from the ad account. This action is irreversible and also removes the campaign's ad sets and ads. Returns confirmation that the deletion succeeded.
copy_campaign
no_return_description
Duplicate an existing campaign, optionally under a new name and status. By default the full structure including ad sets and ads is copied; set deep_copy to false to copy only the campaign. Returns the new campaign ID and details.
get_campaign_adsets
params_unexplained no_return_description
List the ad sets that belong to the campaign identified by campaign_id. Returns paginated results with the requested fields, using limit and after for pagination.
get_campaign_ads
name_restates_behavior params_unexplained no_return_description
List the ads that belong to the campaign identified by campaign_id. Returns paginated results with the requested fields, using limit and after for pagination.
get_campaign_leads
name_restates_behavior params_unexplained no_return_description
Return the leads generated by the campaign identified by campaign_id. Requires the leads_retrieval permission. Returns paginated results with the requested fields.
list_adsets
no_return_description
List ad sets in the ad account, optionally filtered by campaign_id or status. Returns paginated results limited to the requested fields.
get_adset
no_return_description
Fetch a single ad set by its adset_id and return its details such as budget, targeting, and optimization goal. Optionally restrict the result to the requested fields.
create_adset
no_return_description
Create a new ad set under a campaign. Requires name, campaign_id, optimization_goal, billing_event, and targeting. New ad sets default to PAUSED status. Returns the created ad set ID and details.
delete_adset
no_return_description
Permanently remove the ad set identified by adset_id along with its ads. This action is irreversible. Returns confirmation that the deletion succeeded.
copy_adset
no_return_description
Duplicate an existing ad set, either within the same campaign or into a different one via campaign_id. By default the ad set's ads are also copied; set deep_copy to false to skip them. Returns the new ad set ID and details.
get_adset_targeting_sentence
no_return_description
Return a human-readable sentence describing the targeting of the ad set identified by adset_id, converting its raw targeting spec into readable text.
get_adset_ads
no_return_description
List the ads that belong to the ad set identified by adset_id. Returns paginated results with the requested fields, using limit and after for pagination.
get_adset_leads
no_return_description
Return the leads generated by the ad set identified by adset_id. Requires the leads_retrieval permission. Returns paginated results with the requested fields.
list_ads
no_return_description
List ads in the ad account, optionally filtered by campaign_id, adset_id, or status. Returns paginated results with the requested fields.
get_ad
name_restates_behavior params_unexplained no_return_description
Fetch a single ad by its ad_id and return its details such as creative, status, and placement. Optionally restrict the result to the requested fields.
create_ad
no_return_description
Create a new ad inside an ad set. Requires name, adset_id, and a creative given as a JSON object_story_spec. New ads default to PAUSED status. Returns the created ad ID and details.
delete_ad
name_restates_behavior no_return_description
Permanently remove the ad identified by ad_id. This action is irreversible. Returns confirmation that the deletion succeeded.
copy_ad
no_return_description
Duplicate an existing ad, either within the same ad set or into a different one via adset_id, optionally renaming it and setting its status. Returns the new ad ID and details.
get_ad_preview
params_unexplained
Render a preview of the existing ad identified by ad_id in the format specified by ad_format (for example DESKTOP_FEED_STANDARD or INSTAGRAM_STORY). Returns an HTML iframe showing how the ad will appear in that placement.
get_delivery_estimate
name_restates_behavior params_unexplained no_return_description
Estimate delivery for the ad identified by ad_id under the given optimization_goal. Returns the estimated daily reach and cost to help forecast performance before launch.
list_creatives
name_restates_behavior no_return_description
List the ad creatives in the ad account, returning paginated results with the requested fields. Use this to find creative IDs for use in ads.
get_creative
name_restates_behavior params_unexplained no_return_description
Fetch a single ad creative by its creative_id and return its details such as its name and object_story_spec. Optionally restrict the result to the requested fields.
create_creative
no_return_description
Create a new ad creative from an object_story_spec, which defines the ad content (link, photo, or video) and the associated Facebook Page. Returns the created creative ID and details.
update_creative
name_restates_behavior no_return_description
Modify an existing ad creative identified by creative_id. Only its name and url_tags can be changed after creation; the object_story_spec is immutable. Returns the updated creative ID and details.
create_dynamic_creative
no_return_description
Create a dynamic creative from an asset_feed_spec so Meta automatically combines the provided images, videos, titles, bodies, and CTAs into the best-performing variations. Returns the created creative ID and details.
list_images
no_return_description
List the ad images uploaded to the ad account, returning paginated results with the requested fields. Use this to find image hashes for use in creatives.
get_image
name_restates_behavior params_unexplained no_return_description
Fetch a single uploaded ad image by its image_id and return its details such as its hash, dimensions, and URL. Optionally restrict the result to the requested fields.
delete_image
name_restates_behavior no_return_description
Permanently remove the ad image identified by its hash from the ad account. This action is irreversible. Returns confirmation that the deletion succeeded.
list_videos
no_return_description
List the ad videos uploaded to the ad account, returning paginated results with the requested fields. Use this to find video IDs for use in creatives.
get_video
name_restates_behavior params_unexplained no_return_description
Fetch a single uploaded ad video by its video_id and return its details such as its length, thumbnail, and status. Optionally restrict the result to the requested fields.
delete_video
name_restates_behavior no_return_description
Permanently remove the ad video identified by video_id from the ad account. This action is irreversible. Returns confirmation that the deletion succeeded.
list_canvases
no_return_description
List the Instant Experience (Canvas) creatives in the ad account, returning paginated results with the requested fields.
get_canvas
name_restates_behavior params_unexplained no_return_description
Fetch a single Instant Experience (Canvas) by its canvas_id and return its details such as its body elements and name. Optionally restrict the result to the requested fields.
create_canvas
no_return_description
Create a new Instant Experience (Canvas) on the Facebook Page identified by page_id, using the body_elements JSON array to define its layout (for example buttons, carousels, photos, videos, or text). Returns the created canvas ID and details.
delete_canvas
name_restates_behavior no_return_description
Permanently remove the Instant Experience (Canvas) identified by canvas_id. This action is irreversible. Returns confirmation that the deletion succeeded.
list_custom_audiences
name_restates_behavior no_return_description
List the custom audiences in the ad account, returning paginated results with the requested fields. Use this to find audience IDs for targeting.
get_audience
name_restates_behavior params_unexplained no_return_description
Fetch a single custom audience by its audience_id and return its details such as its size, subtype, and delivery status. Optionally restrict the result to the requested fields.
create_custom_audience
no_return_description
Create a new custom audience with the required name and subtype, which determines the audience source (CUSTOM, WEBSITE, APP, OFFLINE_CONVERSION, LOOKALIKE, ENGAGEMENT, etc.). Returns the created audience ID and details.
delete_audience
name_restates_behavior no_return_description
Permanently remove the custom audience identified by audience_id. This action is irreversible. Returns confirmation that the deletion succeeded.
add_users_to_audience
params_unexplained no_return_description
Add users to the custom audience identified by audience_id. The payload must be a JSON string of hashed user data with a schema array defining the data types (for example EMAIL, PHONE, FN, LN) and all PII SHA-256 hashed. Returns confirmation that the users were added.
remove_users_from_audience
params_unexplained no_return_description
Remove users from the custom audience identified by audience_id. The payload format is the same as add_users_to_audience: a JSON string with a schema array and SHA-256 hashed user data. Returns confirmation that the users were removed.
create_lookalike_audience
no_return_description
Create a lookalike audience modeled on the existing custom audience given by origin_audience_id. The lookalike_spec country and ratio (0.01 to 0.10) control how closely the new audience matches the source. Returns the created audience ID and details.
get_audience_health
name_restates_behavior no_return_description
Return the health status and delivery readiness of the custom audience identified by audience_id, including its match rate, size, and operation status.
list_saved_audiences
name_restates_behavior no_return_description
List the saved (reusable) targeting presets in the ad account, returning paginated results with the requested fields so they can be reused in ad set targeting.
get_saved_audience
name_restates_behavior no_return_description
Fetch a single saved audience by its audience_id and return its targeting criteria. Optionally restrict the result to the requested fields.
search_targeting
no_return_description
Search targeting options (such as interests, behaviors, and demographics) by the keyword q, optionally filtered by type. Returns matching targeting IDs suitable for use in ad set targeting specs.
search_locations
name_restates_behavior no_return_description
Search geographic locations (countries, regions, cities, zip codes) by the query q, optionally restricted by location_types. Returns matching locations with IDs usable in ad targeting.
search_targeting_map
no_return_description
Look up the targeting IDs in the targeting_list JSON array and return their full details, including names, types, and paths. Useful for resolving targeting IDs obtained from other endpoints.
get_reach_estimate
no_return_description
Return the estimated audience reach for the given targeting_spec JSON string. Useful for planning campaign budgets and audience size expectations before creating campaigns.
get_targeting_suggestions
name_restates_behavior no_return_description
Return targeting suggestions related to the targeting criteria in the targeting_list JSON string. Meta suggests related interests, behaviors, and demographics to expand or refine the target audience.
get_campaign_insights
name_restates_behavior params_unexplained no_return_description
Return performance insights for the campaign identified by campaign_id, including metrics such as impressions, clicks, spend, and reach. Shape the results with fields, breakdowns, and the date range (date_preset or time_range).
get_adset_insights
no_return_description
Return performance insights for the ad set identified by adset_id, including metrics such as impressions, clicks, spend, and reach. Shape the results with fields, breakdowns, and the date range (date_preset or time_range).
get_ad_insights
name_restates_behavior params_unexplained no_return_description
Return performance insights for the ad identified by ad_id, including metrics such as impressions, clicks, spend, and reach. Shape the results with fields, breakdowns, and the date range (date_preset or time_range).
get_form_leads
name_restates_behavior no_return_description
Return the leads submitted through the lead generation form identified by form_id. Returns paginated results with the requested fields, using limit and after for pagination.
get_lead
name_restates_behavior params_unexplained no_return_description
Fetch a single lead by its lead_id and return its details such as the answers submitted in the form. Optionally restrict the result to the requested fields.
list_lead_forms
name_restates_behavior no_return_description
List the lead generation forms for the Facebook Page identified by page_id. Returns paginated results with the requested fields, useful for finding form IDs before retrieving leads.
create_lead_form
name_restates_behavior params_unexplained no_return_description
Create a new lead generation form on the Facebook Page identified by page_id, defining its questions and the required privacy_policy_url (the page where your privacy policy is hosted). Requires the pages_manage_ads permission. Returns the created form ID and details.
get_lead_form
name_restates_behavior no_return_description
Fetch a single lead generation form by its form_id and return its details such as its questions and configuration. Optionally restrict the result to the requested fields.
list_catalogs
name_restates_behavior no_return_description
List the product catalogs for the ad account, returning paginated results with the requested fields. Use this to find catalog IDs for product operations.
get_catalog
name_restates_behavior no_return_description
Fetch a single product catalog by its catalog_id and return its details such as name and vertical. Optionally restrict the result to the requested fields.
create_catalog
name_restates_behavior no_return_description
Create a new product catalog for the ad account with the given name and vertical (such as commerce, hotels, flights, destinations, home_listings, or vehicles). Returns the created catalog ID and details.
update_catalog
name_restates_behavior no_return_description
Modify an existing product catalog identified by catalog_id, updating its name. Returns the updated catalog details.
list_product_sets
name_restates_behavior no_return_description
List the product sets within the catalog identified by catalog_id. Returns paginated results with the requested fields.
create_product_set
name_restates_behavior no_return_description
Create a new product set within the catalog identified by catalog_id, using the filter JSON rules to select which products belong to the set. Returns the created product set ID and details.
get_product_set
name_restates_behavior no_return_description
Fetch a single product set by its set_id and return its details such as its name and filter rules. Optionally restrict the result to the requested fields.
update_product_set
name_restates_behavior no_return_description
Modify an existing product set identified by set_id, updating its name and filter rules. Returns the updated product set details.
list_products
name_restates_behavior no_return_description
List the products within the catalog identified by catalog_id, optionally filtered by filter rules. Returns paginated results with the requested fields.
get_product
name_restates_behavior params_unexplained no_return_description
Fetch a single product by its product_id and return its details such as name, price, and availability. Optionally restrict the result to the requested fields.
update_product
name_restates_behavior params_unexplained no_return_description
Modify an existing product identified by product_id, updating fields such as name, price, url, image_url, and availability. Returns the updated product details.
batch_products
no_return_description
Batch create, update, or delete products in a catalog, supporting up to 5,000 items per request. UPDATE operations upsert when allow_upsert is true. Returns a batch handle to track progress with get_batch_status.
get_batch_status
no_return_description
Check the status of the catalog batch operation identified by the handle returned from batch_products for the given catalog_id. Returns the current status and results of the batch.
list_feeds
name_restates_behavior no_return_description
List the product feeds for the catalog identified by catalog_id. Returns paginated results with the requested fields.
create_feed
name_restates_behavior no_return_description
Create a new product feed for the catalog identified by catalog_id, optionally configuring its schedule and file_url. Returns the created feed ID and details.
upload_feed
name_restates_behavior no_return_description
Trigger an upload of the feed file at url for the product feed identified by feed_id. Returns status or a reference for tracking the upload.
get_feed_uploads
name_restates_behavior no_return_description
Return the upload history for the product feed identified by feed_id, listing each past upload. Returns paginated results with the requested fields.
list_rules
name_restates_behavior no_return_description
List the automated rules for the ad account, returning paginated results with the requested fields. Use this to find rule IDs for management.
get_rule
name_restates_behavior params_unexplained no_return_description
Fetch a single automated rule by its rule_id and return its details such as its evaluation and execution specs. Optionally restrict the result to the requested fields.
create_rule
name_restates_behavior no_return_description
Create a new automated rule for the ad account, defining its evaluation_spec (conditions), execution_spec (actions), and optional schedule_spec. Returns the created rule ID and details.
update_rule
name_restates_behavior params_unexplained no_return_description
Modify an existing automated rule identified by rule_id, updating its name, conditions (evaluation_spec), actions (execution_spec), schedule, or status. Returns the updated rule details.
delete_rule
name_restates_behavior params_unexplained no_return_description
Permanently remove the automated rule identified by rule_id. Returns confirmation that the deletion succeeded.
list_experiments
name_restates_behavior no_return_description
List the A/B test experiments (ad studies) for the ad account, returning paginated results with the requested fields.
create_experiment
name_restates_behavior no_return_description
Create a new A/B test experiment (ad study) with the given name, start and end times, and cells (a JSON array of test cells referencing campaigns). Returns the created experiment ID and details.
get_experiment
name_restates_behavior no_return_description
Fetch a single experiment (ad study) by its experiment_id and return its details such as its name, dates, and cells. Optionally restrict the result to the requested fields.
update_experiment
name_restates_behavior no_return_description
Modify an existing experiment (ad study) identified by experiment_id, updating its name or description. Returns the updated experiment details.
get_experiment_results
name_restates_behavior
Return the results and cells for the experiment (ad study) identified by experiment_id, allowing review of A/B test outcomes. Optionally restrict the result to the requested fields.
send_conversion_event
name_restates_behavior no_return_description
Send one or more server-side conversion events via the Conversions API (pixel), with each event specifying event_name, event_time, user_data, custom_data, and action_source. Returns the API response confirming event delivery.
send_offline_event
no_return_description
Send offline conversion events to the offline event set identified by event_set_id, with events as a JSON array of offline events. Returns the API response confirming delivery.
list_offline_event_sets
name_restates_behavior no_return_description
List the offline conversion data sets for the ad account, returning paginated results with the requested fields.
create_offline_event_set
name_restates_behavior no_return_description
Create a new offline conversion data set with the given name and optional description. Returns the created event set ID and details.
create_budget_schedule
name_restates_behavior no_return_description
Create a new ad budget schedule with the given budget_value (in account currency cents) and budget_value_type, active between time_start and time_end. Returns the created schedule ID and details.
delete_budget_schedule
name_restates_behavior no_return_description
Permanently remove the budget schedule identified by schedule_id. This action is irreversible. Returns confirmation that the deletion succeeded.
get_rf_prediction
params_unexplained no_return_description
Fetch a single reach and frequency prediction by its prediction_id (the ID returned when the prediction was created) and return its details such as expected reach and frequency. Optionally restrict the result to the requested fields.
delete_rf_prediction
no_return_description
Permanently remove the reach and frequency prediction identified by prediction_id. This action is irreversible. Returns confirmation that the deletion succeeded.
create_block_list
name_restates_behavior no_return_description
Create a new publisher block list for the ad account with the given name. Returns the created block list ID and details.
add_to_block_list
name_restates_behavior no_return_description
Add the publisher URLs in the urls JSON array to the block list identified by list_id. Returns confirmation that the URLs were added.
remove_from_block_list
name_restates_behavior no_return_description
Remove the publisher URLs in the urls JSON array from the block list identified by list_id. Returns confirmation that the URLs were removed.
delete_block_list
name_restates_behavior no_return_description
Permanently remove the publisher block list identified by list_id. This action is irreversible. Returns confirmation that the deletion succeeded.
get_ad_account
name_restates_behavior no_return_description
Return the configured ad account details, including status, balance, currency, timezone, and spend information. Use fields to select the specific account attributes returned.
get_account_activities
no_return_description
Return the activity log for the ad account, showing changes made to campaigns, ad sets, ads, and other objects. Returns paginated results with the requested fields.
list_account_users
name_restates_behavior no_return_description
List the users who have access to the ad account, returning their roles and permissions as paginated results with the requested fields.
get_business
name_restates_behavior params_unexplained no_return_description
Fetch a single business by its business_id and return its details such as its name and related attributes. Optionally restrict the result to the requested fields.
list_business_ad_accounts
name_restates_behavior no_return_description
List the ad accounts owned by the configured business (requires the META_BUSINESS_ID env var). Returns paginated results with the requested fields.
list_business_users
name_restates_behavior no_return_description
List the users of the configured business (requires the META_BUSINESS_ID env var). Returns paginated results with the requested fields.
add_business_user
name_restates_behavior no_return_description
Add a user to the configured business (requires the META_BUSINESS_ID env var) by their email, assigning the given role (ADMIN or EMPLOYEE). Returns the added user details.
remove_business_user
name_restates_behavior no_return_description
Remove the user identified by user_id from the configured business (requires the META_BUSINESS_ID env var). Returns confirmation that the removal succeeded.
list_business_pages
name_restates_behavior no_return_description
List the Facebook Pages owned by the configured business (requires the META_BUSINESS_ID env var). Returns paginated results with the requested fields.
list_business_instagram_accounts
name_restates_behavior no_return_description
List the Instagram accounts owned by the configured business (requires the META_BUSINESS_ID env var). Returns paginated results with the requested fields.
list_system_users
name_restates_behavior no_return_description
List the system users of the configured business (requires the META_BUSINESS_ID env var). Returns paginated results with the requested fields.
create_system_user
name_restates_behavior no_return_description
Create a new system user in the configured business (requires the META_BUSINESS_ID env var) with the given name and role. Returns the created system user details.
exchange_token
no_return_description
Exchange a short-lived access token for a long-lived token, keeping API access valid for a longer period. Requires META_APP_ID and META_APP_SECRET to be configured. Returns the long-lived token and its expiration.
debug_token
no_return_description
Inspect the access token in input_token, returning its properties, permissions, expiration, and validity. Requires META_APP_ID and META_APP_SECRET.
search_ad_library
no_return_description
Search the Meta Ad Library by search_terms within the ad_reached_countries, optionally filtering by ad_type. Returns matching ads as paginated results with the requested fields. Useful for competitive research and transparency.

Selection evidence

Confusable tool pairs.

28 pairs where similar names or overlapping descriptions may send an agent toward the wrong tool.

Tool A Tool B Confidence Why they collide
get_form_leads get_lead_form high Both take a form_id and differ only by word order; a task like 'show me the data for this lead form' is ambiguous between form details and the leads submitted through it.
list_product_sets list_products high Descriptions are nearly identical ('list product... within a catalog') and both take catalog_id; 'list the products in catalog X' is ambiguous between product sets and individual products.
get_audience get_saved_audience high Both take audience_id and describe getting details of a specific audience by ID; unless the task explicitly says 'custom' or 'saved', a request like 'get the audience with ID 123' is ambiguous.
get_product_set get_product medium Both fetch details of 'a specific product(set)' but take different IDs (set_id vs product_id); users often drop the word 'set', so 'get me the product' can wrongly select get_product for a product-set request.
list_ad_accounts list_business_ad_accounts medium Both list ad accounts with identical signatures; 'list the ad accounts' is ambiguous between all accounts accessible to the user and those owned by the configured business unless scope is stated.
create_creative create_dynamic_creative medium Both create a creative and share the name prefix; 'create a creative for the ad' does not specify whether a static object_story_spec or an asset_feed_spec dynamic creative is wanted, so the agent may default to the wrong variant.
get_ad get_ad_insights medium Both take ad_id and read as 'get the ad...'; a task like 'pull the ad's data' or 'get info on this ad' is ambiguous between entity details and performance insights.
get_adset get_adset_insights medium Same pattern as ad vs ad insights: 'get info on this ad set' is ambiguous between the ad set's details and its performance insights since both take adset_id.
get_adset get_adset_leads medium A task like 'get the adset's data' could target either the ad set details or the leads it generated; both take adset_id and share the get_adset prefix.
get_adset_leads get_lead medium Vague 'get the leads' requests are ambiguous between a list scoped by adset_id and a single-lead lookup by lead_id; passing the wrong ID type selects the wrong tool.
get_campaign get_campaign_insights medium Both take campaign_id; 'get the campaign data' or 'show me the campaign' is ambiguous between campaign details and its performance insights.
get_campaign get_campaign_leads medium Both take campaign_id; a task like 'get the campaign's data/leads' can be misrouted to the details tool when leads were intended, or vice versa.
get_campaign_leads get_lead medium 'Get the leads' is ambiguous between campaign-scoped lead lists and individual lead retrieval; the agent may feed a lead_id to the campaign tool or a campaign_id to the lead tool.
get_campaign_adsets get_adset medium Both are adset retrieval; 'get the adsets' is ambiguous between listing all adsets for a campaign (campaign_id) and retrieving one adset (adset_id), so the wrong ID can go to the wrong tool.
get_experiment get_experiment_results medium Both take experiment_id and share the get_experiment prefix; 'get the experiment outcome/result' may be served by the details tool or the results tool depending on phrasing.
get_form_leads get_lead medium Both fetch lead data; 'get the leads' is only disambiguated by whether the user supplies a form_id (get_form_leads) or a lead_id (get_lead), allowing misrouting when one ID is given.
get_lead get_lead_form medium Near-identical names, both 'get a specific lead...' by ID-like parameter; 'get details for this lead form' vs 'get details for this lead' is easy to conflate, especially when a form_id and lead_id are confused.
update_product_set update_product medium Both 'update an existing product(set)' with similar names but different required IDs; 'update the product' can be misread as updating the item rather than its set, and the agent may pass a set_id to the wrong tool.
list_business_ad_accounts list_business_instagram_accounts medium Both list accounts 'owned by the configured business' with identical signatures; a generic task like 'list the business's accounts' does not reveal whether ad accounts or Instagram accounts are wanted.
get_adset_insights get_ad_insights medium Both fetch performance insights, differing only by level (adset_id vs ad_id); a task like 'get the performance of this ad' is ambiguous if the ID supplied actually refers to the parent ad set.
list_business_users list_system_users medium Both list users of the configured business with identical signatures; 'list the business users' is ambiguous between regular business users and system users.
get_account_insights get_ad_insights medium get_account_insights needs no ID while get_ad_insights requires ad_id; a task like 'get the account performance' is ambiguous between the account-level tool and an ad-scoped tool when an ad_id is present.
get_campaign_insights get_ad_insights medium Both return the same insight shape at different levels (campaign_id vs ad_id); 'get performance for this ad' can be misattributed to the campaign tool when the ID belongs to an ad under it, or vice versa.
list_custom_audiences list_saved_audiences medium Both list audiences in the ad account with no distinguishing parameters; 'list all the audiences' is ambiguous between custom audiences and reusable saved audiences.
get_campaign_ads get_adset_ads medium Both return 'all ads belonging to' a parent level; if the user says 'get all the ads' with an ID, the agent may attach a campaign_id to the adset tool or an adset_id to the campaign tool.
get_account_insights get_adset_insights medium Both fetch performance insights at different levels; 'show me the metrics for this group' is ambiguous between account-level and adset-level tools, especially when an adset ID is supplied to the account tool.
get_campaign_insights get_adset_insights medium Both fetch performance insights at campaign vs adset level; a request like 'get the performance of the ad group' can be routed to the campaign tool if the user's ID is actually an adset ID or unclear.
get_campaign_leads get_adset_leads medium Both return leads generated by an ad structure and differ only by parent ID; 'get the leads for this group' is ambiguous about campaign vs adset, so the ID can be wired to the wrong parent tool.

Compare the field

One score is useful.
The evidence makes it actionable.

Back to the leaderboard