Skip to main content
Glama
AIWerk

@aiwerk/mcp-server-ghl

by AIWerk

ad_manager_fb_upsert_adset

Idempotent

Create or update a Facebook ad set with budget, audience targeting, and placement settings under a campaign ID, enabling automated ad set management via GoHighLevel.

Instructions

Upsert adset

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idNoAd set identifier
nameNoAd set name
budgetNoAd set budget config
pageIdNoFacebook page ID
pixelIdNoConversion pixel ID
audienceNoTargeting audience configuration including geo-locations, locales, placements, and custom audiences
campaignIdYesParent campaign ID
locationIdNoLocation identifier Defaults to GHL_LOCATION_ID when omitted.
whatsappNumberNoWhatsApp phone number
customEventTypeNoCustom event type
instagramActorIdNoInstagram actor ID
conversionLocationNoConversion location
messagingPlatformsNoMessaging platforms
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=false, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description 'Upsert adset' adds no additional behavioral context—it does not explain what happens to existing adsets when an ID is provided, whether a new one is created when omitted, or any side effects like overwriting. With annotations present, the description still fails to add meaningful behavioral details, so I give a 2.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely short, containing only 'Upsert adset'. While it has no fluff, it is essentially a restatement of the tool name and provides no informative content. This mirrors the 'process' example, which was deemed under-specified rather than concise. The lack of any elaboration makes it more of a placeholder than a meaningful description, so I rate it a 2.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This tool is complex with 13 parameters, nested objects, no output schema, and a required campaignId. The description 'Upsert adset' is severely inadequate—it does not explain the upsert behavior, dependencies, return values, or any operational context. The agent must rely entirely on the schema and annotations, which do not convey the overall purpose or workflow. For such complexity, this description is grossly incomplete, earning a 1.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides 100% coverage with descriptions for all 13 parameters, including nested objects like audience and budget. The description 'Upsert adset' adds no additional semantic meaning beyond the operation itself; it does not explain parameter relationships or provide usage context. With high schema coverage, the baseline is 3, and the description does not elevate it, so I keep a 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Upsert adset' clearly states a specific verb (upsert) and resource (adset), indicating create-or-update on an ad set. It is not a tautology and distinguishes from siblings like upsert_campaign or upsert_ad because it names 'adset'. However, it lacks any detail about what an adset is or why it's used, but the name and schema cover that. A 4 is appropriate for a clear but minimal statement.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites (e.g., an active Facebook integration, existing campaign), nor does it explain scenarios where this tool is preferable over upsert_campaign or pause_adset. Without any context, an agent cannot determine when to invoke it. This is a clear gap, warranting a 2.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/AIWerk/mcp-server-ghl'

If you have feedback or need assistance with the MCP directory API, please join our Discord server