Model Context Protocol server for GoHighLevel. It exposes GHL API operations as MCP tools over stdio, Streamable HTTP, legacy SSE, and optional MCP Apps.
New here? Start with QUICKSTART.md.
Using an AI/dev agent? Give it AGENT_SETUP.md and say: "Set this up for my MCP client using the curated profile. Ask me for credentials if needed. Do not run write tools."
Requirements:
- Node 20+
- A GoHighLevel private integration token or OAuth access token
- A GoHighLevel Location ID
npm install
cp .env.example .env
npm run build
npm run doctor
npm run configure:codexAdd your credentials to .env:
GHL_API_KEY=your_private_integration_api_key
GHL_LOCATION_ID=your_location_id
GHL_BASE_URL=https://services.leadconnectorhq.com
GHL_API_VERSION=2023-02-21GHL_API_VERSION=2023-02-21 is the current HighLevel API Version header used by official docs. It is not the project year, and it should not be changed to 2026 unless HighLevel publishes a new required API version.
Then verify live auth:
npm run auth-checknpm run setup # Create .env if needed, build, and print next steps
npm run first-run # One-command beginner setup/readiness flow
npm run connect # Setup plus client config generation
npm run ready # Fast readiness check
npm run demo # Print MCP Apps demo preview instructions
npm run explain-error -- "Location is not active"
npm run doctor # Human-readable setup check
npm run doctor -- --json # Agent-readable setup check
npm run agent:check # Safe validation for AI/dev agents
npm run auth-check # Read-only GHL token/location checkMissing credentials are reported as needsHumanAction, not as a broken install. This lets agents build and configure the repo without inventing secrets.
Beginner configs use GHL_TOOL_PROFILE=curated so agents see the high-level workflow tools first.
npm run configure:codex
npm run configure:claude
npm run configure:cursor
npm run configure:windsurfAdvanced examples:
node scripts/ghl-mcp.mjs configure codex --profile stable
node scripts/ghl-mcp.mjs configure codex --profile full
node scripts/ghl-mcp.mjs configure codex --profile curated --jsoncurated- recommended for agents; high-level CRM workflows with confirmation queues.stable- production-friendly; official, supplemental, curated, and legacy-compatible tools.full- everything.official- official OpenAPI and live-docs supplemental tools.raw- endpoint-level tools only.
npm run start:stdio # Desktop MCP clients
npm run start:http # Streamable HTTP at /mcp
npm run start:legacy # Legacy SSE at /sseHTTP also exposes:
GET /healthGET /capabilitiesGET /toolsPOST /executePOST /tools/call
npm run apps:setup
npm run apps:previewOpen http://localhost:3001/preview. Without GHL credentials, the apps use preview/demo states and tell you exactly which env vars are missing.
npm run tools:list
npm run tools:list -- --search contacts
npm run tools:list -- --category contacts
npm run tools:list -- --stability official
npm run tools:list -- --access write
npm run tools:list -- --destructive
npm run tools:explorerThe static explorer is docs/tool-explorer.html.
Start agents with the curated profile and prefer these high-level tools before raw endpoints:
crm_location_overviewcrm_daily_briefingcrm_search_everythingcrm_next_best_actionscrm_get_next_pagecrm_prepare_contact_followupcrm_prepare_lead_reactivationcrm_prepare_missed_call_responsecrm_prepare_pipeline_cleanupcrm_prepare_review_request_batchcrm_prepare_invoice_followup
- Update Log
- Setup
- Usage
- Clients
- Tool Profiles
- Recipes
- Safety
- Troubleshooting
- Deployment
- Development
- API Coverage
- Companion Tooling
| Date | Update # | Included |
|---|---|---|
| 2026-06-11 | 2 | Simplicity and power layer: easy setup commands, safe config writing, grouped live smoke checks, and high-level curated CRM agent tools. See UPDATE_LOG.md for the full permanent update description. |
| 2026-06-11 | 1 | Onboarding and agent setup overhaul. See UPDATE_LOG.md for the full permanent update description. |
- Official GHL endpoints parsed:
590 - Official endpoint coverage:
590 / 590 - Generated official endpoint tools:
238 - MCP tools in registry:
848 - Local-only endpoint references tracked for review:
253
Generated coverage artifacts live in docs/. Run npm run scan:ghl-api only when intentionally refreshing API coverage.
.envis ignored and must never be committed.test-toolrefuses write/destructive tools unless--confirmis supplied.- Curated workflow tools stage confirmation queues for writes.
- Use
curatedfor beginners andstablefor production.