Skip to main content
Grok supports bringing your own MCP server through its connectors page.

Add the connector

1

Share your server

2

Open connectors

3

New Connector → Custom

Click New Connector and choose Custom.
4

Enter your MCP server URL

Complete any authentication the dialog asks for. If you shared without --bearer, there’s nothing to fill in.
Grok discovers the tools your server exposes and makes them available in conversations. Watch the inspector — the handshake rows appear fingerprinted as Grok.

Your server must be publicly reachable

xAI’s documentation is explicit that a local MCP server needs a tunnel to be usable, and points at ngrok or Cloudflare Tunnel for it. Either of those will get bytes to your laptop. What they can’t do is tell you that Grok dropped the connection because your content-type was wrong, or that a tool description is too long, or show you the arguments Grok actually sent when a call failed — because a generic tunnel doesn’t know what MCP is. That’s the part HeyMCP adds. The URL is the easy half.

Authentication

Grok’s custom connector dialog handles authentication as part of setup. If it offers a way to send an Authorization header, --bearer will work; if it doesn’t, share without it.
Not sure whether your bearer token is being sent? Share with --bearer, try to connect, and look at the inspector. A rejected request shows up as a 401 with JSON-RPC code -32004, which tells you the header didn’t arrive.

It’s not showing up

Grok never reached the edge. Check the URL ends in /mcp and that heymcp share is still running.
Look at the LIST← row in the inspector to see what your server actually returned, and check the handshake report.
Your tunnel requires a bearer token that Grok isn’t sending. Restart without --bearer.