tailscale-mcp-echo
An identity-aware MCP server that runs inside a Tailscale tailnet, using Tailscale's identity headers to provide user-specific functionality such as greeting the logged-in user by email.
README
Identity Aware MCP Server for Tailscale
<img width="1125" alt="TailscaleMCPIdentityHero" src="https://github.com/user-attachments/assets/1e05e3a6-019d-4e16-b591-3691bcee16e6" />
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-remote -
Add 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!
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.