Skip to main content
Glama

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_docs

  • search_docs

  • list_endpoints

  • get_endpoint_details

  • get_section

  • get_document

  • reload_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: Dedalus MCP Documentation Server

Requirements

  • Node.js >=20 for local usage

  • Docker, if you want to run the containerized version

Quick Start

Local

npm install
npm start

Or run the CLI entrypoint directly:

npm install
./bin/ghl-api-mcp.js

Important: 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-mcp

MCP 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"]
    }
  }
}

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

{
  "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 .md file under docs/ is indexed automatically

  • If the server is already running, call reload_docs after changing docs on disk

  • If 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 test

Scraping Workflow

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.md

Browser selection order:

  1. Chrome

  2. Chrome Canary

  3. Zen

You can override the browser with --browser, --executablePath, or PUPPETEER_EXECUTABLE_PATH.

Install Server
F
license - not found
A
quality
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

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/S5-labs/ghl-api-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server