Open SourceGoHighLevel MCP Server
MCP Server · TypeScript · MIT

Your CRM speaks natural language now.

401 tools covering the full GoHighLevel API v3 — contacts, conversations, calendars, pipelines, invoices, knowledge bases, ad publishing (Facebook/Google/LinkedIn), social planner, and more — available to Claude, Cursor, Windsurf, or any MCP-compatible AI agent.

$npx @nerdsnipe-inc/ghl-mcp-server
401
Tools
2
Env vars
MIT
License
What's inside

Zero build step

Run the server on demand via npx. No cloning, no compilation. Paste two env vars into your AI client config and you're done.

401 tools, 30 categories

Contacts, conversations, calendars, opportunities, email marketing, funnels, phone numbers, payments, social planner, ad publishing (Facebook/Google/LinkedIn), Agent Studio, Voice AI, and a full knowledge base / web crawler suite.

Natural language CRM

Describe what you need — "move all leads untouched for 30 days to Lost" — and the AI handles the API calls. You stop writing GHL automation chains.

Knowledge base & crawler

Discover, crawl, and train your GHL knowledge bases from natural language. Manage FAQs and ingest website content without touching the GHL UI.

Works everywhere

Stdio transport — the MCP standard. Claude Desktop, Claude Code, Cursor, Windsurf, or any client that accepts a command + env config.

Rate-limit aware

Detailed error messages surface GHL's 422 field validation and 429 rate limit errors with actionable guidance. No silent failures.

Quick install
npx (no install required)
$npx @nerdsnipe-inc/ghl-mcp-server
pnpm
$pnpm dlx @nerdsnipe-inc/ghl-mcp-server
bun
$bunx @nerdsnipe-inc/ghl-mcp-server
global install
$npm install -g @nerdsnipe-inc/ghl-mcp-server

Requires Node.js 18 or later. You will also need a GHL Private Integration Token and your sub-account Location ID — both take under two minutes to create in GoHighLevel Settings.

Tool coverage

Contacts

17 tools
  • ghl_create_contact
  • ghl_upsert_contact
  • ghl_add_contact_to_workflow
  • ghl_get_contact_appointments

Conversations & Messaging

9 tools
  • ghl_send_message
  • ghl_get_messages
  • ghl_search_conversations
  • ghl_cancel_scheduled_message

Calendars & Appointments

10 tools
  • ghl_get_free_slots
  • ghl_create_appointment
  • ghl_update_appointment
  • ghl_create_block_slot

Ad Publishing

95 tools
  • ghl_upsert_facebook_campaign
  • ghl_upsert_google_campaign
  • ghl_upsert_linkedin_campaign
  • ghl_get_facebook_reporting

Social Planner

45 tools
  • ghl_create_social_queue
  • ghl_upload_social_csv
  • ghl_create_social_comment
  • ghl_get_social_queue_calendar

Payments & Invoices

12 tools
  • ghl_create_invoice
  • ghl_send_invoice
  • ghl_record_invoice_payment
  • ghl_get_subscriptions

Knowledge Base & Crawler

14 tools
  • ghl_create_knowledge_base
  • ghl_discover_website
  • ghl_train_crawler_urls
  • ghl_list_faqs

Agent Studio & Voice AI

18 tools
  • ghl_create_agent_studio_agent
  • ghl_publish_agent_studio_agent
  • ghl_create_voice_ai_agent
  • ghl_get_voice_ai_call_logs
Two env vars. That's it.

GHL_PIT_TOKEN and GHL_LOCATION.

That's the entire configuration surface. Your Private Integration Token scopes which GHL capabilities the AI can access — you control permissions in GHL Settings, not in the server.

Workflow IDs, pipeline IDs, calendar IDs, and all other resource identifiers are passed as tool parameters at runtime — the server stays generic across any GHL account.

Frequently asked

Is this on GHL API v2 or v3?

v3. The server was fully migrated from v2 to v3 in a 2.0.0 release that also added complete coverage of every practically-buildable v3 resource and a full audit fixing 79 request-schema mismatches against the real OpenAPI specs.

What isn't covered?

Resources that require agency-level or Marketplace-app-developer credentials rather than a location-scoped Private Integration Token: saas, marketplace, companies, snapshots, and oauth. Open an issue if you have the right credential type and need one of these.

Does this work with any GHL sub-account?

Yes. The server is generic — it uses your Location ID and PIT token to scope requests to your specific sub-account. One config per sub-account.

Can I use it without installing anything globally?

Yes — npx runs it on demand without installing. Add npx @nerdsnipe-inc/ghl-mcp-server as the command in your MCP client config and it just works.

How do I run it from source?

Clone the repo, run npm install, then point your MCP client at the source via npx tsx /absolute/path/to/src/index.ts. No build step needed for development.

What happens if GHL rate-limits a request?

GHL enforces 100 requests per 10 seconds. The server surfaces 429 errors with a clear message. For bulk operations, add delays between calls or process in batches.

Stop writing automation chains.

Two env vars and an npx command. Your AI agent handles the GHL API from natural language instructions.