ghl-mcp-proxy
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ghl-mcp-proxyList my GHL accounts and find contacts tagged 'hot lead' for acme_dental"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
ghl-mcp-proxy
A minimal multi-sub-account MCP proxy for GoHighLevel / LeadConnector. Holds a Private Integration Token (PIT) + Location ID per sub-account and exposes two tools to Claude:
list_accounts— shows which sub-accounts are configuredghl_api_request— makes an authenticated call to the LeadConnector REST API on behalf of a chosen account
1. Configure your accounts
Copy .env.example to .env and fill in:
PROXY_SHARED_SECRET— a long random string (openssl rand -hex 32). This is the "password" Cowork will send back to this server.GHL_ACCOUNTS_JSON— one entry per sub-account, keyed by a friendly name:
{
"acme_dental": { "pit": "pit-xxxxxxxx", "locationId": "loc-xxxxxxxx" },
"joes_plumbing": { "pit": "pit-yyyyyyyy", "locationId": "loc-yyyyyyyy" }
}Keep this as valid JSON on one line in the real .env file.
Related MCP server: HighLevel MCP Server
2. Deploy on Hostinger
Option A — Hostinger VPS (recommended, most control)
SSH into your VPS.
Install Node 20+ and git if not already present:
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo bash - sudo apt-get install -y nodejs gitUpload this project (via
git clonefrom your own repo, orscp).cd ghl-mcp-proxy && cp .env.example .envthen edit.envwith real values.Install dependencies and run with a process manager so it survives reboots:
npm install --omit=dev npm install -g pm2 pm2 start src/server.js --name ghl-mcp-proxy pm2 save pm2 startup # follow the printed instructionsPut Nginx in front of it for HTTPS (Hostinger VPS panel can issue a free Let's Encrypt cert). Point a subdomain, e.g.
mcp.yourdomain.com, at the VPS, then reverse-proxy port 443 →localhost:8080.Minimal Nginx server block:
server { listen 443 ssl; server_name mcp.yourdomain.com; ssl_certificate /etc/letsencrypt/live/mcp.yourdomain.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/mcp.yourdomain.com/privkey.pem; location / { proxy_pass http://localhost:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } }Test:
curl https://mcp.yourdomain.com/healthshould return{"ok":true,"accounts":2}.
Option B — Hostinger Node.js App (hPanel, if on a plan that supports it)
In hPanel, create a new Node.js application, point it at this project (upload via File Manager or Git).
Set the entry point to
src/server.js.Add all variables from
.env.exampleunder the app's Environment Variables section (do not upload a real.envfile to a shared host).Set the app's port to match what Hostinger assigns via
process.env.PORT(already handled inserver.js).Attach your domain/subdomain and enable SSL (Hostinger issues this automatically for most plans).
Restart the app, then test
https://your-subdomain/health.
3. Add it as a custom connector in Cowork
In Claude/Cowork: Customize → Connectors → "+".
Name:
GoHighLevel Proxy(or anything).URL:
https://mcp.yourdomain.com/mcpAdvanced settings → set a custom header:
Authorization: Bearer <your PROXY_SHARED_SECRET>Click Add, then Connect.
4. Use it
Ask Claude something like:
"List my connected GHL accounts, then for acme_dental find contacts tagged 'hot lead' and summarize what's happening with them."
Claude will call list_accounts, then ghl_api_request with
account: "acme_dental" and the right REST path.
Adding more sub-accounts later
Just add another entry to GHL_ACCOUNTS_JSON and restart the app
(pm2 restart ghl-mcp-proxy on VPS, or restart via hPanel). No code changes
needed.
Security notes
This single server holds credentials for all your clients — treat the shared secret and
.envfile like a master password.Use the narrowest PIT scopes each workflow actually needs.
Rotate PITs periodically from GHL Settings → Private Integrations.
Never commit
.envto git (already covered by.gitignore).
This server cannot be deployed
Maintenance
Related MCP Connectors
Governed MCP gateway: one endpoint for your tools, with credential custody and audit log.
Model Context Protocol server for the Apideck Unified API. Connect any MCP-compatible agent framework to 100+ accounting systems, HRIS platforms, file storage providers, and more through one integration. More information https://www.apideck.com/mcp-server
REST-to-MCP for UK hospitality. Safety proxy: circuit-breakers, rate limits, whitelists. Apache 2.0.
MCP server for Codat — companies, connections, invoices, bills and financial statements.
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceMulti-account HighLevel CRM MCP server with OAuth integration for managing 30+ sub-accounts through a unified interface.-
- FlicenseNot gradedqualityDmaintenanceEnables AI agents to manage multiple HighLevel CRM sub-accounts through a single OAuth-based MCP server, providing read-only access to contacts, conversations, opportunities, calendars, payments, blogs, emails, and social media.-
- AlicenseNot gradedqualityCmaintenanceA self-hosted Model Context Protocol server for GoHighLevel CRM, built for agencies. It enables connecting multiple sub-accounts, selecting tools per client, and issuing unique revocable MCP URLs.20 npmMIT
- AlicenseCqualityAmaintenanceA Model Context Protocol (MCP) server for GoHighLevel API v2 — giving any AI agent full access to your GHL location.10025 npm6MIT