Skip to main content
Glama
AIWerk

@aiwerk/mcp-server-ghl

by AIWerk

ad_manager_li_upsert_campaign_group

Idempotent

Create or update a LinkedIn ad campaign group with budget, schedule, objectives, and publishing status in GoHighLevel. Resolves ad campaign group data by ID or inserts new records.

Instructions

Upsert ad campaign group

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idNo
metaNo
nameNo
budgetNo
locationIdNoLocation ID Defaults to GHL_LOCATION_ID when omitted.
adCampaignsNo
linkedInErrorNo
objectiveTypeNo
publishingStatusNo
adCampaignGroupIdNo
unpublishedChangesNo
linkedInAdAccountIdNo
adBudgetOptimizationNo
Behavior3/5

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

Annotations already declare readOnlyHint=false, idempotentHint=true, and destructiveHint=false, covering the basic safety profile. The description adds nothing beyond the bare verb, so it does not enhance behavioral transparency. 'Upsert' implies create-or-update, which aligns with idempotentHint, and there is no contradiction. Given the annotations, a baseline score is appropriate, but the description fails to add context like side effects or async behavior.

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

Conciseness4/5

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

The description is a single, concise sentence with no wasted words. It is front-loaded with the action and resource. However, it is so terse that it sacrifices substance for brevity, though for what it does state, it is efficient and structured well.

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?

For a tool with 13 parameters, nested objects, and no output schema, this description is grossly inadequate. There is no explanation of required fields (all optional, but what does that mean?), how to identify an existing campaign group (via id or adCampaignGroupId?), or the significance of budget, objectiveType, and publishingStatus. An agent cannot correctly construct a call without additional external knowledge, making the description effectively useless for this complex tool.

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

Parameters2/5

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

Schema description coverage is only 8%, with only locationId and schedule dates having descriptions. The tool has 13 parameters including enums and nested objects, yet the description provides zero explanation of key fields like id, adCampaignGroupId, budget, or objectiveType. Since coverage is low, the description must compensate but does not, leaving agents to infer semantics from the raw schema.

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 states the verb 'Upsert' and the resource 'ad campaign group', which clearly indicates create-or-update functionality. However, it does not differentiate from sibling tools like ad_manager_li_publish_campaign_group or the FB/Google upsert campaign tools, though the name itself provides some distinction. The purpose is clear but lacks explicit sibling differentiation.

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?

No when-to-use guidance is provided. The description gives no indication of when to use this tool versus alternatives such as ad_manager_li_get_campaign_group for retrieval or ad_manager_li_publish_campaign_group for publishing. There is no mention of prerequisites like requiring an existing integration or ad account.

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