Open SourceGoHighLevel MCP Server
MCP Server · TypeScript · MIT

Your CRM speaks natural language now.

127 tools covering the full GoHighLevel API v2 — contacts, conversations, calendars, pipelines, invoices, knowledge bases, and social media — available to Claude, Cursor, Windsurf, or any MCP-compatible AI agent.

$npx @nerdsnipe-inc/ghl-mcp-server
127
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.

127 tools, 12 categories

Contacts, conversations, calendars, opportunities, email marketing, funnels, phone numbers, payments, social media, 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

20 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

Opportunities / Pipeline

8 tools
  • ghl_get_pipelines
  • ghl_create_opportunity
  • ghl_update_opportunity_status
  • ghl_search_opportunities

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
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

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.