ghl-mcp-server
Click on "Install 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-serverList contacts created this week in my GoHighLevel account"
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-server
A GoHighLevel MCP server with all 576 public API endpoints, generated straight from HighLevel's official OpenAPI specs. The official HighLevel MCP exposes ~36 tools; this one covers every endpoint in the public docs and stays current with one command.
Generated, not hand-written.
npm run generateturnsspecs/*.jsoninto tool definitions. When HighLevel updates their docs, re-fetch and regenerate.Context-friendly. Load only the modules you need (
GHL_MODULES), and use three meta-tools (ghl_search_endpoints,ghl_describe_endpoint,ghl_call_endpoint) to reach everything else on demand.Safe by default. Writes and deletes are off until you enable them. Disabled tools are hidden from the client entirely, not just blocked.
Public API only. Private Integration Token auth, no undocumented endpoints, no browser-session tokens.
Setup
npm install
npm run specs:fetch # downloads HighLevel's OpenAPI specs into ./specs
npm run generate # builds ./generated/*.json (576 endpoints, validated through Zod)
npm run build
cp .env.example .env # then fill in GHL_API_KEY and GHL_LOCATION_IDGet a Private Integration Token in GHL: sub-account → Settings → Private Integrations →
Create. Enable the scopes for the endpoints you plan to use (e.g. contacts.readonly,
contacts.write). Every tool description lists the scopes it needs.
Related MCP server: GHL MCP Server
Configuration
Variable | Default | Purpose |
| required | Private Integration Token |
| — | Default sub-account; injected into any endpoint that takes |
|
| Comma-separated modules to expose as dedicated tools, or |
|
| Expose POST/PUT/PATCH tools |
|
| Expose DELETE tools (and |
|
| Expose the three discovery/call meta-tools covering all endpoints |
| required for HTTP | Bearer token clients must send to the HTTP transport |
|
| HTTP transport port |
Module names match the spec files: ad-manager, affiliate-manager, agent-studio,
associations, blogs, brand-boards, businesses, calendars, campaigns,
companies, contacts, conversation-ai, conversations, courses, custom-fields,
custom-menus, email-isv, emails, forms, funnels, invoices, knowledge-base,
links, locations, marketplace, medias, oauth, objects, opportunities,
payments, phone-system, products, proposals, saas-api, snapshots,
social-media-posting, store, surveys, users, voice-ai, workflows.
A few modules (companies, saas-api, snapshots, parts of locations and users)
are agency-level and need an agency token; tool descriptions say Token: agency.
Use with Claude Code (stdio)
Add to .mcp.json in your project (or ~/.claude.json for global):
{
"mcpServers": {
"ghl": {
"command": "node",
"args": ["--env-file=/absolute/path/to/GHL-MCP/.env", "/absolute/path/to/GHL-MCP/dist/src/stdio.js"]
}
}
}--env-file is built into Node, so no dotenv dependency. You can also put the variables
in the "env" block of the config instead.
Use as a remote connector (Streamable HTTP)
MCP_AUTH_TOKEN=$(openssl rand -hex 32) npm run start:http
# -> http://localhost:3000/mcp (clients send: Authorization: Bearer <MCP_AUTH_TOKEN>)The HTTP transport is stateless, refuses to start without MCP_AUTH_TOKEN, and only
accepts POST /mcp. Put it behind HTTPS before exposing it to the internet.
How the tools look
Each endpoint becomes {module}_{operationId}, for example contacts_upsert_contact,
invoices_send_invoice, calendars_get_free_slots. Arguments are flat: path params,
query params, and body fields all sit at the top level, and the server routes them to the
right place. If a body isn't an object (e.g. an array), it's passed as a single body arg.
Meta-tools:
ghl_search_endpoints({ query, module?, method?, limit? })— keyword search over all 576ghl_describe_endpoint({ name })— full input schema, scopes, HTTP method/pathghl_call_endpoint({ name, arguments })— run any endpoint (same write/delete gates apply)
Development
npm run dev # run the stdio server from source (Node type-stripping)
npm run typecheck
npm test # unit tests + in-memory end-to-end MCP testsLayout:
scripts/fetch-specs.ts download specs from GoHighLevel/highlevel-api-docs
src/generator/ OpenAPI -> endpoint definitions (pure, unit-tested)
generated/ committed catalog, one JSON per module
src/client.ts fetch wrapper: auth, Version header, errors, 429 retry
src/tools.ts tool registration, arg routing, gating, result formatting
src/meta-tools.ts search / describe / call
src/server.ts McpServer factory
src/stdio.ts, src/http.ts transportsUpdating when HighLevel changes the API
npm run specs:fetch && npm run generate && npm testThe generator fails loudly if a spec produces a schema Zod can't express or a tool name collides, so a bad upstream change can't ship silently.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceProvides access to over 460 tools within the GoHighLevel CRM, allowing AI assistants to manage contacts, opportunities, messaging, and business workflows through natural language.2697ISC
- AlicenseBqualityDmaintenanceA comprehensive MCP server that connects AI assistants to GoHighLevel CRM, enabling management of contacts, conversations, calendars, pipelines, payments, and more through 60+ tools.6439MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to manage GoHighLevel CRM data including contacts, conversations, opportunities, calendars, and forms through MCP tools and resources.50AGPL 3.0
- AlicenseNot gradedqualityDmaintenanceConnects AI assistants to GoHighLevel CRM via MCP, enabling full sub-account automation with 269+ tools for contacts, messaging, sales, marketing, and more.26ISC
Related MCP Connectors
LeadConnector / GoHighLevel MCP Pack — wraps the GoHighLevel CRM for AI agents.
Free public MCP for AI agents — 193 tools, 44 workflows. No API key.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/theAIhomegirl/ghl-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server