GHL MCP integration
# support
n
Good morning #1211483291191083018 I am having issues with the GHL MCP integration. It goes through all the steps to link it up. But when it gets back to the integration page, it still asks to connect. Not sure what is going on. Deleted the market place app and reinstalled it several times. Still same outcome. I have done a private integration api but not sure how to link it to a custom tool to check availability and book appointment. Any help would be much appreciated.
v
Thank you for the details. To help troubleshoot, could you confirm if you see any specific error message or prompt when the integration page asks you to connect again after completing the steps? This will help identify where the process might be failing. Sources: - [GoHighLevel Integration Documentation](https://docs.vapi.ai/tools/GHL) - [GoHighLevel Tools Setup](https://docs.vapi.ai/tools/go-high-level)
c
Hi Nana_Naiii, Thanks — a few quick troubleshooting checks to help narrow this down: 1. When you finish the GoHighLevel OAuth flow and return to Vapi, do you see any error text, toast, or console logs in the browser? If yes, paste the exact message or a screenshot. 2. Try the flow in an incognito window (no existing GHL sessions) and confirm whether the Connect button still remains after redirect. 3. Confirm which connection method you used: marketplace OAuth or a private API/MCP URL. If private API/MCP, share whether you configured the MCP tool with the exact server URL and any required headers in Dashboard > Tools. Link: https://docs.vapi.ai/tools/mcp 4. Verify you created the required GHL tools and added them to your assistant (Get Contact, Create Contact, Check Availability, Create Event). For Create Event you must include a valid calendarId; for availability checks the tool needs calendarId + timezone. Link: https://docs.vapi.ai/tools/go-high-level 5. Open browser DevTools → Network tab during the final redirect and look for failing requests (401/403/5xx). Note the request URL and status code. 6. If using OAuth, ensure you authorized all requested scopes in the GHL popup and selected the correct GHL sub-account and calendar during setup. 7. If you created a private API integration and want to use it as a tool: create a GoHighLevel tool in Dashboard > Tools, choose the right tool type, set the calendarId in metadata, then add that tool to your assistant and Publish. (See steps in the GoHighLevel docs linked above.)
j
Hey! I feel your pain , that OAuth loop is annoying as hell. Usually happens when the callback URL isn't matching up on the GHL side. Quick question though - are you trying to get the marketplace version working, or would you rather just build it custom with your private API? Happy to help either way, just need to know what you're ultimately trying to do - check availability, book appointments, or both? @Nana_Naiii
e
I have the same problem and I get stuck in that loop. What's the best way to establish a successful MCP connection?
I have the same problem and I get stuck in that loop. What's the best way to establish a successful MCP connection?
n
Good morning all! I'm trying to use the market place connection with Vapi as I just need to check availability and add a new appointment in the GHL calendar. I have successfully linked a private api between GHL and Vapi. But I can't use it in a tool without using n8n or make. Unless I'm doing it wrong. I will check the console and messages when connecting marketplace oAuth later today.
j
Hey! So for the OAuth loop, here's what usually fixes it: Go to your GHL app settings and make sure your redirect URI matches exactly what Claude expects (check the MCP docs for the exact URL). Also, after you authorize, check your browser console (F12) for any errors - sometimes it's a CORS issue or the token isn't getting passed back properly. One other thing - are you testing this in the same browser where you're logged into GHL? Try incognito mode if you haven't already. If you want, we can jump on a quick call or do this together step-by-step here - sometimes it's just easier to troubleshoot these things live. Whatever works best for you. Just let me know what the console shows or if you'd rather walk through it together. @ernestoandradecoach
You don't actually need n8n or Make for this! You can create a custom tool in VAPI that directly calls your GHL private API. Basically, you'd set up a function tool in VAPI with two endpoints: one GET request to check availability (hitting GHL's calendar search endpoint) and one POST to create the appointment. You'll just need to pass your private API key in the headers. Want me to walk you through the exact JSON structure for the VAPI tool config? What specific GHL endpoints are you planning to hit? @Nana_Naiii
t
if you could make a loom video on how to do this I'd be grateful