TerrysPOV/ghl-mcp
If you are the rightful owner of ghl-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
This is a customized deployment of the GoHighLevel MCP Server, adapted for Claude Code and ChatGPT integrations.
GoHighLevel MCP Server (Claude Code Compatible Fork)
This is a customized deployment of the original GoHighLevel MCP Server, adapted specifically for Claude Code and ChatGPT integrations with complete GoHighLevel API coverage.
๐ This fork replaces the original mock tools with full GoHighLevel API integration (253 tools) and includes production-ready deployment configuration for Render.
๐ Features
๐ฏ Complete GoHighLevel Integration
- 253 Tools: Full API coverage across all GHL modules
- Real-time: Server-Sent Events (SSE) for live communication
- Authenticated: Secure API key-based authentication
- Production Ready: Deployed on Render with auto-scaling
๐งฉ MCP Protocol Support
- Standard Compliant: MCP Protocol 2024-11-05
- JSON-RPC 2.0: Standard request/response format
- Tool Discovery: Automatic tool listing and introspection
- Error Handling: Comprehensive error reporting
๐ง Available Tool Categories
๐ฏ Contact Management (31 tools)
- BASIC: create, search, get, update, delete contacts
- TAGS: add/remove contact tags, bulk tag operations
- TASKS: get, create, update, delete contact tasks
- NOTES: get, create, update, delete contact notes
- ADVANCED: upsert, duplicate check, business association
- BULK: mass tag updates, business assignments
- FOLLOWERS: add/remove contact followers
- CAMPAIGNS: add/remove contacts to/from campaigns
- WORKFLOWS: add/remove contacts to/from workflows
- APPOINTMENTS: get contact appointments
๐ฌ Messaging & Conversations (20 tools)
- BASIC: send_sms, send_email - Send messages to contacts
- CONVERSATIONS: search, get, create, update, delete conversations
- MESSAGES: get individual messages, email messages, upload attachments
- STATUS: update message delivery status, monitor recent activity
- MANUAL: add inbound messages, add outbound calls manually
- RECORDINGS: get call recordings, transcriptions, download transcripts
- SCHEDULING: cancel scheduled messages and emails
- LIVE CHAT: typing indicators for real-time conversations
๐ Blog Management (7 tools)
- create_blog_post, update_blog_post, get_blog_posts
- get_blog_sites, get_blog_authors, get_blog_categories
- check_url_slug - Validate URL slug availability
๐ฐ Opportunity Management (10 tools)
- SEARCH: search_opportunities - Search by pipeline, stage, status, contact
- PIPELINES: get_pipelines - Get all sales pipelines and stages
- CRUD: create, get, update, delete opportunities
- STATUS: update_opportunity_status - Quick status updates (won/lost)
- UPSERT: upsert_opportunity - Smart create/update based on contact
- FOLLOWERS: add/remove followers for opportunity notifications
๐ Calendar & Appointments (14 tools)
- get_calendar_groups, get_calendars, create_calendar
- get_calendar, update_calendar, delete_calendar
- get_calendar_events, get_free_slots
- create_appointment, get_appointment, update_appointment, delete_appointment
- create_block_slot, update_block_slot
๐ง Email Marketing (5 tools)
- get_email_campaigns, create_email_template, get_email_templates
- update_email_template, delete_email_template
๐ข Location Management (18 tools)
- search_locations, get_location, create_location, update_location, delete_location
- get_location_tags, create_location_tag, update_location_tag, delete_location_tag
- search_location_tasks, custom fields management, templates, timezones
๐ฑ Social Media Posting (16 tools)
- POSTS: search, create, get, update, delete social posts
- BULK: bulk delete up to 50 posts at once
- ACCOUNTS: get connected accounts, delete connections
- CSV: upload bulk posts via CSV, manage import status
- ORGANIZE: categories and tags for content organization
- OAUTH: start OAuth flows, get platform accounts
- PLATFORMS: Google, Facebook, Instagram, LinkedIn, Twitter, TikTok
๐ณ Payments Management (15 tools)
- INTEGRATIONS: create/list white-label payment integrations
- ORDERS: list_orders, get_order_by_id - Manage customer orders
- FULFILLMENT: create/list order fulfillments with tracking
- TRANSACTIONS: list/get payment transactions and history
- SUBSCRIPTIONS: list/get recurring payment subscriptions
- COUPONS: create, update, delete, list promotional coupons
- CUSTOM PROVIDERS: integrate custom payment gateways
๐งพ Invoices & Billing (12 tools)
- TEMPLATES: create, list, get, update, delete invoice templates
- SCHEDULES: create, list, get recurring invoice automation
- INVOICES: create, list, get, send invoices to customers
- ESTIMATES: create, list, send estimates, convert to invoices
- UTILITIES: generate invoice/estimate numbers automatically
And many more categories including:
- ๐ Media Management - File uploads, organization
- ๐๏ธ Custom Objects - Flexible data structures
- โ Email Verification - Deliverability checking
- ๐ Surveys & Workflows - Automation tools
๐ Quick Start
Deploy Your Own Instance
Deploy to Render
- Fork this repository
- Create new Render Web Service
- Configure deployment settings:
- Build Command:
npm install && npm run build
- Start Command:
node server.js
- Build Command:
- Set environment variables:
GHL_API_KEY=your_gohighlevel_api_key GHL_BASE_URL=https://services.leadconnectorhq.com GHL_LOCATION_ID=your_location_id GHL_API_VERSION=2021-07-28
๐ง Integration
Claude Code MCP Integration
Method 1: HTTP Transport (Recommended)
Add the server using Claude Code CLI:
claude mcp add --transport http leadconnector https://<your-deployment-url>/sse
Replace <your-deployment-url>
with your Render service URL (e.g., https://ghl-mcp-xxxx.onrender.com).
Verify the connection:
claude mcp list
Method 2: Manual Configuration
Add to your claude_desktop_config.json
:
{
"mcpServers": {
"leadconnector": {
"command": "npx",
"args": ["@modelcontextprotocol/server-fetch", "https://<your-deployment-url>/sse"]
}
}
}
Method 3: Direct HTTP API
For direct integration without MCP:
curl -X POST https://<your-deployment-url>/sse \
-H "Content-Type: application/json" \
-d '{"jsonrpc": "2.0", "id": "1", "method": "tools/list", "params": {}}'
Direct HTTP API
Health Check
curl https://<your-deployment-url>/health
List Available Tools
curl -X POST https://<your-deployment-url>/sse \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": "1",
"method": "tools/list",
"params": {}
}'
Create Contact Example
curl -X POST https://<your-deployment-url>/sse \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": "2",
"method": "tools/call",
"params": {
"name": "create_contact",
"arguments": {
"firstName": "John",
"lastName": "Doe",
"email": "john.doe@example.com",
"phone": "+1234567890"
}
}
}'
๐ Development
Local Setup
# Clone repository
git clone https://github.com/TerrysPOV/ghl-mcp.git
cd ghl-mcp
# Install dependencies
npm install
# Set environment variables
cp .env.example .env
# Edit .env with your GHL credentials
# Build TypeScript
npm run build
# Start server
npm start
Environment Variables
GHL_API_KEY=pit-xxxxxxxxxxxxxxxxxxxxxxxxx # Your GHL API key
GHL_BASE_URL=https://services.leadconnectorhq.com
GHL_LOCATION_ID=xxxxxxxxxxxxxxxxxxxxxx # Your location ID
GHL_API_VERSION=2021-07-28 # API version
PORT=10000 # Server port (optional)
Project Structure
ghl-mcp/
โโโ src/
โ โโโ clients/
โ โ โโโ ghl-api-client.ts # Main GHL API client
โ โโโ tools/ # Individual tool modules
โ โ โโโ contact-tools.ts # Contact management
โ โ โโโ conversation-tools.ts # Messaging
โ โ โโโ calendar-tools.ts # Appointments
โ โ โโโ ... # 19 total tool modules
โ โโโ types/
โ โโโ ghl-types.ts # TypeScript definitions
โโโ dist/ # Compiled JavaScript
โโโ api/
โ โโโ index.js # HTTP request handler
โโโ server.js # Main server entry point
โโโ render.yaml # Render deployment config
โโโ package.json
๐ API Documentation
JSON-RPC Methods
Method | Description |
---|---|
initialize | Initialize MCP connection |
tools/list | Get all available tools |
tools/call | Execute a specific tool |
ping | Health check |
Tool Categories
All 253 tools are organized into logical categories. Each tool follows the same pattern:
{
"name": "tool_name",
"description": "What the tool does",
"inputSchema": {
"type": "object",
"properties": { ... },
"required": [ ... ]
}
}
๐ Security
- API Key Authentication: All requests authenticated with GHL API key
- Environment Variables: Sensitive data stored securely
- CORS Enabled: Cross-origin requests supported
- Error Handling: Comprehensive error reporting without exposing secrets
- Rate Limiting: Respects GHL API rate limits
๐ฆ Status & Monitoring
- Health Endpoint:
/health
- Server status and tool count - Logging: Comprehensive request/response logging
- Error Tracking: Detailed error reporting
- Performance: Optimized for concurrent requests
๐ค Contributing
- Fork the repository
- Create a feature branch:
git checkout -b feature-name
- Make your changes
- Build and test:
npm run build && npm test
- Commit:
git commit -m 'Add feature'
- Push:
git push origin feature-name
- Create a Pull Request
๐ License
MIT License - see file for details.
๐ Attribution
This project is based on mastanley13/GoHighLevel-MCP. All credit for the original structure and MCP implementation goes to the original author.
This fork was enhanced for production by: Terry Yodaiken
- โ Fixed Version header issues for GHL API compatibility
- โ Added complete tool coverage (253 tools vs original mock tools)
- โ Render deployment optimization with TypeScript build pipeline
- โ Production-ready error handling and logging
- โ Comprehensive documentation and deployment guides
๐ Support
- Issues: GitHub Issues
- Documentation: This README and inline code comments
- Original Project: mastanley13/GoHighLevel-MCP
Last updated: July 26, 2025 Production Status: โ Ready for deployment Tools Available: 253