Source: ai-research/ghl-2026-05-01/docs.md, ai-research/ghl-2026-05-01/support-solutions-articles-48001060529-highlevel-api-documentation.md

GoHighLevel ships an official MCP (Model Context Protocol) server with all plans, making it one of the few CRM platforms with native MCP support. That means Claude Code (or any MCP-compatible client) can read and write GHL sub-account data — contacts, conversations, calendars, pipelines, payments, social posts — without middleware like Zapier, Make, or n8n. A community extension adds 461+ tools on top of the official surface.

Why this matters

  • No middleware. Direct connection from Claude Code to GHL. No Zapier, no Make, no n8n relay
  • Natural language CRM. “Add tag ‘hot-lead’ to all contacts who opened last email” becomes a single prompt
  • Bidirectional. Read CRM data for reports AND write back (create contacts, send messages, book appointments)
  • Already included. The official MCP server ships with all GHL plans; the community extension is open-source
  • Composable. GHL MCP can run alongside other MCP servers (Google Workspace, Exa, Tavily) in the same session

Official MCP server

  • Included on all GHL plans (Starter, Unlimited, Pro)
  • Exposes sub-account data to any MCP-compatible client
  • Resources available: contacts, conversations, calendars, pipelines, payments, workflows (read), social media posts
  • Uses Private Integration Token (PIT) for auth — see Private Integration Tokens
  • Requires appropriate API scopes per resource — generate the PIT with only the scopes the agent actually needs

Community extension

  • Repository: github.com/mastanley13/GoHighLevel-MCP
  • 461+ tools covering contacts, conversations, pipelines, invoices, social media, e-commerce, and more
  • Wraps the full GHL API V2 surface into MCP tool definitions
  • More comprehensive than the official server — includes bulk operations, search, and advanced queries
  • Open-source, actively maintained

Setup for Claude Code

  1. Create a Private Integration Token in Settings > Integrations > Private Integrations in GHL. Grant only the scopes the agent needs (read-only is the safest default).
  2. Add this config block to .mcp.json in your project:
{
  "mcpServers": {
    "gohighlevel": {
      "command": "npx",
      "args": ["ghl-mcp-server"],
      "env": {
        "GHL_API_KEY": "your-pit-token",
        "GHL_LOCATION_ID": "your-location-id"
      }
    }
  }
}
  • GHL_API_KEY — the PIT generated above. Store in a .env file or your secret manager; never commit
  • GHL_LOCATION_ID — the sub-account to connect to
  • For multi-location agents, register multiple instances by using different server names per location, or use OAuth 2.0 with the marketplace flow

Use cases

  • Contact management by natural language: “Add tag ‘hot-lead’ to all contacts who opened the last email” / “Find all contacts tagged ‘new-lead’ who haven’t been contacted in 30 days”
  • Trigger workflows: “Fire the reactivation campaign workflow for contacts who haven’t engaged since October”
  • Book appointments: “Check availability on the team calendar next Thursday afternoon and book Jane Doe at 2pm”
  • Query pipeline data: “Show me all deals in the ‘Consultation Booked’ stage with value over $5,000”
  • Generate reports: “Summarize this week’s new leads by source — how many from Google Ads vs organic vs referral?”
  • Monitor conversations: “Any unread customer messages across all sub-accounts?”
  • Social publishing: “Schedule these three posts to Facebook and Instagram for Mon/Wed/Fri at 10am”

Security notes

  • Use a separate PIT per environment (dev / staging / prod). Never share tokens across projects
  • Grant only the scopes the agent needs. Read-only scopes are the safest default for exploratory work
  • Treat the PIT like a production database password — store in environment variables or a secret manager, never in source control
  • For multi-tenant agency use, OAuth 2.0 with sub-account installation is preferable to a single super-PIT — see OAuth 2.0
  • Full handling guidance in API Security

Key Takeaways

  • GHL’s official MCP server is the fastest path from “CRM data exists” to “Claude can use it” — zero middleware
  • The community extension (461+ tools) is more comprehensive and worth evaluating alongside the official server
  • Setup is a single config block in .mcp.json — about five minutes once a PIT with the right scopes exists
  • Natural language CRM operations eliminate the need for custom scripts or Zapier chains for common tasks
  • Scope minimization matters: only grant the PIT what the agent actually needs, and rotate tokens on a schedule

Try It

  1. Read first: Browse the community extension at github.com/mastanley13/GoHighLevel-MCP to understand the full tool surface
  2. Generate a token: Create a PIT in Settings > Integrations > Private Integrations with read-only scopes for contacts, conversations, and calendars
  3. Wire up Claude Code: Add the MCP config block above to your project’s .mcp.json, store the PIT in a .env file, and start a session
  4. First query: Ask Claude Code to list contacts for one sub-account and confirm the response shape
  5. Expand scopes deliberately: Add write scopes one category at a time (e.g., create-contact, then send-message) so each new capability is tested in isolation