Skip to main content
Glama
ghl-mcp-server-v2

ghl-mcp-server-v2

by zackscriven

ghl_contact_add_to_campaign

Adds a specific contact to a specific campaign in GoHighLevel using the contact ID and campaign ID.

Instructions

Adds a contact to one specific campaign. Empty request body (path params only). Add Contact to Campaign Add contact to Campaign Endpoint: POST /contacts/{contactId}/campaigns/{campaignId} (Version header: v3; source: v3/contacts-v3.json) OAuth scopes: contacts.write

Input Schema

NameRequiredDescriptionDefault
bodyYesRequest body (schema carried verbatim from the official OpenAPI spec).
contactIdYesContact Id
campaignIdYesCampaign Id

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv2.1.0
    • addedInput schema / properties / body / title
      Added value: +"AddContactToCampaignDto"
  2. First observedv2.0.0

TDQS

A3.7/5.0
Behavior4/5

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

Goes meaningfully beyond the annotations by disclosing that the request body must be empty (path params only) and by naming the required OAuth scope (contacts.write). This resolves a real trap, since the schema marks a body object as required. It does not mention duplicate-handling behavior, which matters given idempotentHint=false.

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

Conciseness3/5

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

The load-bearing facts (single campaign, empty body, endpoint, scope) are front-loaded, but "Add Contact to Campaign / Add contact to Campaign" restates the tool name twice with no added information, and the OpenAPI source citation is overhead for an agent.

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

Completeness4/5

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

For a 3-param mutation tool with no output schema, the description supplies endpoint, auth scope, and the body constraint — enough to invoke it correctly. It omits what the response contains and what happens on a duplicate add, which an agent might want but can discover at call time.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3; the description earns above that by clarifying the otherwise confusing required "body" parameter is an empty object with nothing to fill in. It adds no detail on the format of contactId or campaignId, but the schema's examples already cover that.

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?

Names a specific verb plus resource (adds a contact to a campaign) and scopes it to "one specific campaign," which implicitly separates it from bulk/removal siblings such as ghl_contact_remove_from_all_campaigns or ghl_contact_bulk_update_tags. It never explicitly names a sibling as the alternative, so it falls short of the 5 bar for differentiation.

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

Usage Guidelines3/5

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

The "one specific campaign" phrasing implies this is a single-target operation, and the OAuth scope line signals the required permission, but there is no explicit statement of when to use this versus ghl_contact_add_to_workflow or the campaign-removal siblings. Usage is inferable rather than stated.

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

Deploy Server

Other Tools