tailscale-mcp-echo
Provides identity-aware MCP server capabilities by leveraging Tailscale's identity headers and tailscale serve, enabling access to internal APIs or services within a Tailnet based on the logged-in user's email.
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., "@tailscale-mcp-echoWho am I logged into my tailnet as?"
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.
Identity Aware MCP Server for Tailscale
Create an identiy aware MCP server that runs inside your private Tailscale network (Tailnet). This example leverages identity headers that are passed through to applications running behind tailscale serve.
Using this as starting point you can create MCP servers that are identity aware (with access to the logged in user's email) and can access internal APIs or services on thier behalf.
Instructions
Starting the Server
If you don't already have a Tailnet setup you'll need to signup for one.
Create an API auth key and save it into a
.envfile in the root of this project with the following format:TS_AUTHKEY=tskey-auth-...With Docker already installed, run
docker compose upto start the server.
This will spin up two containers. The MCP server and a Tailscale container running tailscale serve as a proxy to your tailnet.
Using the Server
If you have an MCP Client that supports direct access to Streaming HTTP MCP servers, then you should be able to connect to the server by pointing it to https://ts-mcp-echo.yourtailnetname.ts.net/mcp.
Claude Desktop
Claude desktop does not currently support remote MCP servers (only stdio), but you can use the mcp-remote tool (or any other proxy) to connect to it.
Install mcp-remote with
npm install -g mcp-remoteAdd the following configuration to your
claude_desktop_config.jsonfile:{ "mcpServers": { "tailscale-remote-echo-example": { "command": "npx", "args": [ "mcp-remote", "https://ts-mcp-echo.yourtailnetname.ts.net/mcp" ] } } }You can find your tailnet name by visiting the Tailscale admin console DNS page.
Restart Claude Desktop.
You should now see a new MCP server called
tailscale-remote-echo-examplewith agreettool.Ask Claude
Who am I logged into my tailnet as?allow the tool, and wait for the response!
This server cannot be deployed
Maintenance
Related MCP Connectors
Tailscale device, route, DNS, key, user, and ACL management over MCP and CLI.
An MCP server that provides an API to LLMs to manage their JumpCloud resources.
An MCP server that let you interact with Cycloid.io Internal Development Portal and Platform
- ArcjetOAuthcom.arcjet
An MCP server for Arcjet - the runtime security platform that ships with your AI code.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceAn MCP (Model Context Protocol) server for managing Tailscale resources using the official Tailscale Go client library v2. This server provides complete coverage of the Tailscale API with enhanced, self-descriptive tools powered by OpenAPI documentation.2MIT
- FlicenseNot gradedqualityCmaintenanceA secure MCP server example that demonstrates how to deploy to Google Cloud Run with authentication and identity token protection. Serves as a tutorial template for building production-ready MCP servers in the cloud.-
- FlicenseNot gradedqualityDmaintenanceA Python MCP server that authenticates users via Microsoft Entra ID, stores per-user data in Azure Cosmos DB, and provides admin tools based on Entra group membership.7-
- FlicenseNot gradedqualityCmaintenanceA minimal, well-commented MCP server that authenticates its callers with Microsoft Entra ID (Azure AD).-