How do I let Grok Bot reach a private MCP server on my tailnet, and nothing else?

You connect your tailnet from the Tailscale plugin in the Grok Bot desktop app.

All Grok Bot questions: https://www.soundminds.ai/faq.

Last updated Nov 10, 2026

Part of our Grok Bot Hot Topics series

Short answer

You can let Grok Bot reach a private MCP server on your Tailscale network, called a tailnet, without putting that server on the public internet, and you can use your tailnet policy to keep it away from everything else. I checked Tailscale's Nov 9, 2026 blog post, "Grok Bot has a Tailscale integration—and now you can, too," and it says, "You might want Grok Bot to access an internal MCP server, but not everything else your laptop can reach. With Tailscale’s device posture checks, you can do exactly that."

You connect your tailnet from the Tailscale plugin in the Grok Bot desktop app. Grok Bot then joins your tailnet as a device associated with your user identity, and like any other device on your tailnet, it follows your tailnet policy controls. On Tailscale's Premium and Enterprise plans, Grok Bot's device gets a custom posture attribute that you can use in your policy to control which resources it can access, separately from your other devices. On other Tailscale plans, you can get similar control by assigning a tag to Grok Bot's device after authentication and using tag-based access rules.

I haven't tried this myself yet. Everything on this page comes from Tailscale's post and SpaceXSI's Grok Bot changelog and docs, linked under Sources.

How to connect and limit it

  1. In the Grok Bot desktop app, connect your tailnet from the Tailscale plugin. The connection uses Tailscale OAuth apps, which work through a standard OAuth 2.0 authorization flow, so you're not pasting keys or secrets anywhere.
  2. Add your private MCP server. SpaceXSI's Grok Bot page about using the computer and apps doesn't mention Tailscale, so these are its general steps for adding any MCP server. In the desktop app, choose "Add a custom connector" at the bottom of "Connect apps", enter a "Name", and pick a "Type". "Remote HTTPS" takes a "Server URL", with optional "HTTP headers" and an OAuth "Client ID". Choose "Add plugin" to save it. You can also ask a Bot to add an MCP server by URL. Adding a server on a private network asks for your approval first.
  3. If you add a server on your tailnet before your tailnet is connected, Grok Bot now says to connect your tailnet from the Tailscale plugin, then try again. That fix shipped in the Nov 3, 2026 release.
  4. Limit what Grok Bot's device can reach in your tailnet policy. Which way you do it depends on your Tailscale plan, as the next two sections explain.

Limit it with the custom posture attribute (Tailscale Premium and Enterprise)

Custom posture attributes are available on Tailscale Premium and Enterprise plans. When you add Grok Bot to a tailnet on one of those plans, its device has a custom posture attribute that your policy can check. In Tailscale's example below, the policy checks it as custom:grokbot.

Here is Tailscale's own example, copied exactly from its post. It lets members of an engineering team reach production databases from their regular devices, while the Grok Bots associated with those engineers' identities can reach only designated MCP servers:

{
  "postures": {
    "posture:grokbot": ["custom:grokbot == true"],
    "posture:human": ["custom:grokbot NOT SET"]
  },

  // All access rules require posture:human unless otherwise specified
  "defaultSrcPosture": ["posture:human"],

  "grants": [
    {
      // Engineers can access production databases. The defaultSrcPosture applies here.
      "src": ["group:engineering"],
      "dst": ["tag:production-db"],
      "ip": ["tcp:5432"]
    },
    {
	// Grok Bots owned by engineers can access MCP servers.
      "src": ["group:engineering"],
      "srcPosture": ["posture:grokbot"],
      "dst": ["tag:mcp-servers"],
      "ip": ["tcp:443"]
    }
  ]
}

The "defaultSrcPosture" line keeps your existing access rules from applying to Grok Bot devices. The "srcPosture" line on the second grant makes the exception, so Grok Bot can reach your MCP servers without inheriting your broader network access. The group and tag names, such as "group:engineering" and "tag:mcp-servers", are Tailscale's example names, so use the names from your own tailnet.

Limit it with a tag (other Tailscale plans)

On other Tailscale plans, you can get similar control by assigning a tag to Grok Bot's device after authentication and using tag-based access rules, instead of combining user identity with device posture. Tailscale's post doesn't include a policy example for the tag approach, so I'm not going to make one up here.

Limits

The Tailscale plugin may not be available on your account. SpaceXSI's Oct 27, 2026 release notes have this line: "The Tailscale plugin shows Not available yet on accounts that can't use it, instead of installing a plugin that can't connect." I didn't find a list of which accounts can use it. If you see "Not available yet," your account can't use the plugin right now.

I haven't tested any of these steps, so I can't tell you yet how the screens look or how long it takes for a policy change to apply to Grok Bot's device.

What your Grok Bot can do

You can point your Bot at this page to adopt this practice.

Connecting your tailnet and changing your Tailscale policy are your steps, not your Bot's. What a Bot can do is check before it uses a server on your tailnet, ask before it adds one, and draft a policy change for you to review. Paste the block below into a chat with your Grok Bot.

When I ask you to use an MCP server on my Tailscale tailnet, do this:

1. Before you add or call the server, confirm that my tailnet is connected from the Tailscale plugin. If the plugin shows Not available yet, tell me my account can't use it right now and stop.

2. Tell me the server's name and address before you add it, and wait for my approval. Adding a server on a private network asks for my approval anyway, so explain what the server is for when you ask.

3. If adding the server says to connect my tailnet from the Tailscale plugin, tell me that and wait. Do not suggest putting the server on the public internet instead.

4. Never ask me to paste a Tailscale key or secret into this chat.

5. If I ask you to limit what you can reach on my tailnet, draft the policy change for me to review, using the grokbot posture example from Tailscale's Nov 9, 2026 post if my plan has custom posture attributes, or a tag-based rule if it doesn't. Do not change my tailnet policy yourself. I will review the draft and apply it in Tailscale.

6. If you can't reach a server on my tailnet, tell me the server name and address you tried, so I can check my tailnet policy.

Sources

Grok Bot has a Tailscale integration—and now you can, too: https://tailscale.com/blog/oauth-apps-ga, Tailscale blog, by Sam Linville, Nov 9, 2026. Retrieved Nov 10, 2026.

Grok Bot changelog: https://x.ai/changelog/bot, SpaceXSI. The Nov 3, 2026 entry (v0.78.4) and the Oct 27, 2026 entry (v0.78.1). Retrieved Nov 10, 2026.

Use the computer and apps: https://docs.x.ai/grok-bot/computer-and-apps, SpaceXSI's Grok Bot docs. Last updated Nov 9, 2026. Retrieved Nov 10, 2026.

See how I set up Grok Bot: https://www.soundminds.ai/setup.