ghl-api-mcp
This server is a documentation and API-reference search tool for GoHighLevel, letting agents explore and fetch specific documentation content without loading entire markdown files.
List loaded docs: Use
list_docsto see all available documentation files and their endpoint/section counts.Search docs: Use
search_docsto find relevant sections or endpoints by keywords, with adjustable result limits.List endpoints: Use
list_endpointsto browse available API endpoints, filtering by HTTP method, path substring, or section title.Get endpoint details: Use
get_endpoint_detailsto retrieve specifics like scope, token type, and documentation excerpt for a given endpoint path (optionally disambiguated by method).Retrieve sections: Use
get_sectionto fetch a documentation section by its title, with a configurable character limit.Fetch full documents: Use
get_documentto retrieve complete longer guides or runbooks by document id or title.Reload docs: Use
reload_docsto re-index markdown files from disk after any documentation updates.Customization: Many search and retrieval tools accept a
whitelabel_domainto rewrite returned endpoint URLs and embedded examples to a custom API domain.
Uses ClickUp content as a fallback source for richer documentation when the primary GoHighLevel docs link to it, enabling access to additional procedural guides.
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-api-mcp search docs for contact API"
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-api-mcp
ghl-api-mcp is an MCP stdio server for GoHighLevel documentation. It lets agents search docs, list endpoints, and fetch focused API details without loading large markdown files into prompt context.
This repo does not include a runnable GoHighLevel OAuth/SSO sample app; it contains documentation and the MCP docs server that indexes that documentation.
What It Does
The server indexes markdown files under docs/ and exposes MCP tools for:
list_docssearch_docslist_endpointsget_endpoint_detailsget_sectionget_documentreload_docs
The current corpus includes API review docs, implementation guides, and operational notes such as OAuth/SSO integration details and rate-limit guidance. To see exactly what is loaded, run list_docs.
list_docs labels each file as either a reference or guide. Use get_document when an agent needs the full body of a longer procedural document instead of a single extracted section.
For search_docs, list_endpoints, get_endpoint_details, and get_section, you can pass an optional whitelabel_domain like api.example.com or https://api.example.com. Returned endpoint URLs and embedded example URLs will be rewritten to that domain.
Related MCP server: ghl-mcp
Requirements
Node.js
>=20for local usageDocker, if you want to run the containerized version
Quick Start
Local
npm install
npm startOr run the CLI entrypoint directly:
npm install
./bin/ghl-api-mcp.jsImportant: this is a stdio MCP server. When you run it successfully, it stays attached and waits for client requests. It is not an HTTP server and does not open a port.
Docker
docker build -t ghl-api-mcp .
docker run --rm -i ghl-api-mcpMCP Client Configuration
Local Repo Checkout
Use this when the repository already exists on disk:
{
"mcpServers": {
"ghl-docs": {
"command": "node",
"args": ["/absolute/path/to/ghl-api-mcp/src/server.js"]
}
}
}This is the preferred setup for local agents. It reads the repo's docs/
directory directly, so docs-only edits do not require rebuilding Docker images
and MCP clients do not create Docker containers.
Local Repo Checkout With External Docs Directory
{
"mcpServers": {
"ghl-docs": {
"command": "node",
"args": ["/absolute/path/to/ghl-api-mcp/src/server.js"],
"env": {
"GHL_DOCS_DIR": "/absolute/path/to/docs"
}
}
}
}Docker
Use Docker only when the repo is not available to the MCP client. For a local checkout, prefer the Node configuration above so client restarts cannot leave old MCP containers running.
{
"mcpServers": {
"ghl-docs": {
"command": "docker",
"args": ["run", "--rm", "-i", "ghl-api-mcp"]
}
}
}Docker With External Docs Directory
{
"mcpServers": {
"ghl-docs": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-v",
"/absolute/path/to/docs:/docs:ro",
"-e",
"GHL_DOCS_DIR=/docs",
"ghl-api-mcp"
]
}
}
}Document Loading
Any
.mdfile underdocs/is indexed automaticallyIf the server is already running, call
reload_docsafter changing docs on diskIf you add docs to the repo and run via Docker without a mounted docs directory, rebuild the image so the container includes the new files
Development
npm install
npm testScraping Workflow
Automatic full-corpus synchronization
The documentation corpus is synchronized from two official sources:
The rendered HighLevel API documentation website is the freshness authority. Its sitemap currently exposes the canonical, unversioned pages, which are converted to Markdown under
docs/website/.HighLevel's
GoHighLevel/highlevel-api-docsrepository supplies structured OpenAPI schemas and source Markdown underdocs/generated/.
This split is intentional: the website can be newer than the public source repository, while the repository often contains richer request and response schemas than the rendered API pages. Knowledge-base document and section lookups prefer website snapshots; exact endpoint lookups prefer the structured v3/v2 OpenAPI documents.
Run a synchronization locally:
npm run docs:syncCheck whether the committed corpus is current without changing files:
npm run docs:checkHand-authored review documents in docs/ are never overwritten. Both syncs are
deterministic and record source/output hashes in
docs/website/.ghl-website-manifest.json and
docs/generated/.ghl-sync-manifest.json. Normal local website syncs cache pages
whose non-empty sitemap timestamp has not changed. Pages without a sitemap
timestamp are fetched on every sync so new content is not cached indefinitely.
This includes SDK and Marketplace CLI guides as well as API reference pages.
Deleted sitemap routes are removed
automatically.
npm run docs:check forces a complete website revalidation, even when sitemap
timestamps are unchanged. The scheduled workflow does the same, preventing an
incorrect or missing lastmod value from hiding website drift.
The Sync HighLevel API documentation GitHub Actions workflow runs every Monday
and can also be started manually. When either official source changes, it runs
the test suite and opens or updates a pull request from
automation/sync-highlevel-api-docs. Repository Actions settings must allow
GitHub Actions to create pull requests.
You can pin a different upstream branch or tag with GHL_DOCS_REF, or test a
local checkout without network access:
node scripts/sync-ghl-docs.js --source-dir /path/to/highlevel-api-docsTo refresh only the rendered website snapshots, or inspect one page during development:
npm run docs:sync:website
node scripts/sync-ghl-website.js \
--url https://marketplace.gohighlevel.com/docs/other/user-context-marketplace-apps \
--output /tmp/ghl-website-pageSingle-page browser scraping
Use the browser-backed scraper when a GHL doc links to richer ClickUp content:
npm run scrape:page -- \
--url https://marketplace.gohighlevel.com/docs/ghl/contacts/search-contacts-advanced \
--output docs/generated/search-contacts-advanced.mdBrowser selection order:
Chrome
Chrome Canary
Zen
You can override the browser with --browser, --executablePath, or PUPPETEER_EXECUTABLE_PATH.
Available Tools
7 toolsget_documentA
Retrieve a full documentation file by id or title, useful for longer implementation guides and runbooks.
Inputs: id_or_title (required), max_chars, whitelabel_domain.
get_endpoint_detailsA
Get details for a specific API endpoint, including scope, token type, and documentation excerpt.
Inputs: path (required), method, whitelabel_domain.
get_sectionA
Retrieve a documentation section by title or partial title.
Inputs: title (required), max_chars, whitelabel_domain.
list_docsA
List loaded GoHighLevel documentation files and their endpoint/section counts.
Inputs: no named parameters.
list_endpointsB
List available API endpoints with optional method/path/section filters.
Inputs: limit, method, path_contains, section_contains, +1 more.
reload_docsA
Reload markdown files from disk (useful after docs updates).
Inputs: no named parameters.
search_docsA
Search GoHighLevel API docs with keyword matching across endpoints and section content.
Inputs: query (required), limit, whitelabel_domain.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 7 tools
Each tool has a clearly distinct purpose: listing docs, listing endpoints, searching, retrieving specific documents, sections, or endpoint details, and reloading. No overlapping functionality.
All tool names follow a consistent verb_noun pattern in snake_case (e.g., list_docs, get_document, search_docs). The naming is predictable and uniform.
With 7 tools, the server covers all core operations for API documentation exploration: listing, searching, retrieving at different granularities, and reloading. The count is well-scoped for its domain.
The tool set covers key workflows except for listing individual sections within a document (only counts are provided). This minor gap prevents a perfect score, but overall the surface is largely complete.
Maintenance
Related MCP Connectors
MCP server for accessing curated awesome list documentation
MCP server for agentverse documentation, generated by doc2mcp.
MCP server for smoothsend documentation, generated by doc2mcp.
MCP server for Vonage API documentation, code snippets, tutorials, and troubleshooting.
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceAn MCP server that provides comprehensive xAI/Grok API documentation, allowing AI assistants to search bundled guides, fetch live documentation, and browse API endpoints or model specifications.13-
- AlicenseBqualityDmaintenanceMCP server for GoHighLevel API v2 that provides 50+ tools for CRM, billing, marketing, and operations workflows, enabling natural language interaction with contacts, opportunities, conversations, and more.501MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server for GoHighLevel with 82 live-tested tools, enabling CRM operations like contact management, appointments, invoices, and workflows via natural language.115 npmMIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that automatically crawls, indexes, and serves API reference documentation for LLMs, enabling to search and retrieve endpoint details.MIT