A Model Context Protocol (MCP) server providing access to the complete GoHighLevel API. This server enables AI assistants like Claude to interact with GoHighLevel's services including contacts, opportunities, calendars, workflows, and more.
npx @drausal/gohighlevel-mcpOr install globally:
npm install -g @drausal/gohighlevel-mcp- Complete API Coverage: Access to all GoHighLevel API endpoints
- OAuth2 Support: Automatic token management and refresh
- Bearer Token Auth: Simple API key authentication
- Type-Safe: Full TypeScript implementation with Zod validation
- Stdio Transport: Works with Claude Desktop and other MCP clients
- Auto-Generated: Built from the official OpenAPI specification
- Node.js >= 20.0.0
- A GoHighLevel account with API access
- API credentials (Bearer token or OAuth2 client credentials)
No installation needed! Use npx to run the server directly:
npx @drausal/gohighlevel-mcpFor permanent installation:
npm install -g @drausal/gohighlevel-mcpThen run:
gohighlevel-mcpFor development or customization:
git clone https://github.com/drausal/gohighlevel-mcp.git
cd gohighlevel-mcp
pnpm install
pnpm run build
pnpm startAdd this to your Claude Desktop configuration (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"gohighlevel": {
"command": "npx",
"args": [
"@drausal/gohighlevel-mcp"
],
"env": {
"BEARER_TOKEN_BEARERAUTH": "your_api_key_here",
"BEARER_TOKEN_BEARER": "your_api_key_here"
}
}
}
}{
"mcpServers": {
"gohighlevel": {
"command": "gohighlevel-mcp",
"args": [],
"env": {
"BEARER_TOKEN_BEARERAUTH": "your_api_key_here",
"BEARER_TOKEN_BEARER": "your_api_key_here"
}
}
}
}{
"mcpServers": {
"gohighlevel": {
"command": "node",
"args": [
"/absolute/path/to/gohighlevel-mcp/build/index.js"
],
"env": {
"BEARER_TOKEN_BEARERAUTH": "your_api_key_here",
"BEARER_TOKEN_BEARER": "your_api_key_here"
}
}
}
}For Warp users, use the npx method:
{
"mcpServers": {
"gohighlevel": {
"command": "npx",
"args": [
"@drausal/gohighlevel-mcp"
],
"env": {
"BEARER_TOKEN_BEARERAUTH": "your_api_key_here",
"BEARER_TOKEN_BEARER": "your_api_key_here"
}
}
}
}# With npx
npx @drausal/gohighlevel-mcp
# With global installation
gohighlevel-mcp
# From source
pnpm startThe simplest authentication method. Get your API key from GoHighLevel:
- Log into your GoHighLevel account
- Go to Settings β API
- Copy your API key
- Set
BEARER_TOKEN_BEARERAUTHin your.envfile
For more advanced use cases with automatic token refresh:
-
Agency Access: For agency-level operations
- Set
OAUTH_CLIENT_ID_AGENCY_ACCESSandOAUTH_CLIENT_SECRET_AGENCY_ACCESS
- Set
-
Location Access: For location-specific operations
- Set
OAUTH_CLIENT_ID_LOCATION_ACCESSandOAUTH_CLIENT_SECRET_LOCATION_ACCESS
- Set
The server automatically:
- Obtains access tokens using client credentials flow
- Caches tokens for their lifetime
- Refreshes tokens when expired
See docs/oauth2-configuration.md for detailed OAuth2 configuration.
The MCP server exposes all GoHighLevel API endpoints as MCP tools. Major categories include:
- Contacts: Create, update, search contacts
- Opportunities: Manage sales pipeline
- Calendars: Schedule appointments
- Workflows: Trigger and manage automation
- Conversations: Messaging and chat
- Emails: Email campaigns and templates
- SMS: Text message campaigns
- Social Media Posting: Manage social campaigns
- Blogs: Content management
- Forms: Lead capture
- Payments: Process transactions
- Invoices: Billing management
- Users: Team and permission management
- Locations: Sub-account management
To see all available tools, the MCP client will list them when connecting to the server.
gohighlevel-mcp/
βββ src/
β βββ index.ts # Main MCP server implementation
βββ build/ # Compiled JavaScript output
βββ docs/ # Documentation
βββ .env.example # Example environment configuration
βββ package.json # Project dependencies
βββ tsconfig.json # TypeScript configuration
βββ README.md # This file
pnpm run build- Compile TypeScript to JavaScriptpnpm start- Run the compiled serverpnpm run typecheck- Check TypeScript types without building
This server uses:
- Zod for runtime validation of inputs and outputs
- TypeScript for compile-time type checking
- json-schema-to-zod for generating validators from OpenAPI schemas
-
Check Node.js version:
node --version # Should be >= 20.0.0 -
Verify build succeeded:
ls -la build/index.js
-
Check environment variables:
cat .env
- Bearer Token: Verify your API key is correct
- OAuth2: Ensure client ID and secret are valid
- Check token expiration (OAuth2 tokens expire after 1 hour)
- Verify the absolute path in
claude_desktop_config.json - Restart Claude Desktop after configuration changes
- Check Claude Desktop logs for error messages
"ENOENT" errors: Usually means the path in config is incorrect
"Permission denied": Run chmod +x build/index.js
"Invalid token": Check your API credentials in .env
This project is auto-generated from the GoHighLevel OpenAPI specification. To update:
- Download the latest OpenAPI spec from GoHighLevel
- Run the generator again:
npx openapi-mcp-generator -i openapi.json -o . -n gohighlevel --force - Reinstall dependencies and rebuild
This MCP server is generated from GoHighLevel's public API specification. Please refer to GoHighLevel's terms of service for API usage guidelines.
- GoHighLevel API Issues: Contact GoHighLevel support
- MCP Protocol Issues: See MCP Documentation
- Server Issues: Check this README and troubleshooting section
- Built with openapi-mcp-generator
- Uses Model Context Protocol SDK
- Powered by GoHighLevel's comprehensive API