Tailnet MCP
A stdio MCP bridge that allows agents to reach an MCP server inside a Tailscale tailnet via an embedded Tailscale node, keeping the server behind tailscale serve and never on the public internet.
Package and access
Local package with source-attributed installation metadata. Koskamo does not execute packages during review.
What you can do with it
- Bridge stdio to a Streamable HTTP MCP server inside a tailnet
- Host agents connect to private MCP servers without public internet exposure
- Run MCP servers on 127.0.0.1 secured by Tailscale network policies
Source and maintenance
Community listingRegistry 0.3.0
- Maintenance checked
Packages and installation
Source-provided package data. Koskamo has not executed or live-probed this package.
ghcr.io/zedong-peng/tailnet-mcp:v0.3.0
oci
ghcr.io/zedong-peng/tailnet-mcp:v0.3.0 package definition
{
"transport": "stdio",
"identifier": "ghcr.io/zedong-peng/tailnet-mcp:v0.3.0",
"registryType": "oci",
"packageArguments": [
{
"name": "-url",
"type": "named",
"isRequired": true,
"description": "MCP endpoint inside the tailnet, e.g. https://server.tailnet.ts.net:8443/mcp"
},
{
"name": "-hostname",
"type": "named",
"default": "tailnet-mcp",
"description": "Node name in the tailnet; a different one per server"
}
],
"runtimeArguments": [
{
"name": "-v",
"type": "named",
"value": "tailnet-mcp:/home/nonroot/.local/state/tailnet-mcp",
"description": "Keeps the node key, so the auth key is needed only once"
}
],
"environmentVariables": [
{
"name": "TS_AUTHKEY",
"description": "Tagged, pre-authorized auth key; only needed the first time"
}
]
}Tools
Reported by the attributed source; not independently observed by Koskamo.
Connect from your client
Each snippet configures the same source-provided package; replace placeholders before use.
Cursor
Cursor configuration
{
"mcpServers": {
"tailnet-mcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"TS_AUTHKEY=<YOUR_TS_AUTHKEY>",
"ghcr.io/zedong-peng/tailnet-mcp:v0.3.0"
],
"env": {
"TS_AUTHKEY": "<YOUR_TS_AUTHKEY>"
}
}
}
}Cline
Cline configuration
{
"mcpServers": {
"tailnet-mcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"TS_AUTHKEY=<YOUR_TS_AUTHKEY>",
"ghcr.io/zedong-peng/tailnet-mcp:v0.3.0"
],
"env": {
"TS_AUTHKEY": "<YOUR_TS_AUTHKEY>"
}
}
}
}VS Code
VS Code configuration
{
"servers": {
"tailnet-mcp": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"TS_AUTHKEY=<YOUR_TS_AUTHKEY>",
"ghcr.io/zedong-peng/tailnet-mcp:v0.3.0"
],
"env": {
"TS_AUTHKEY": "<YOUR_TS_AUTHKEY>"
}
}
}
}Claude Desktop
Claude Desktop configuration
{
"mcpServers": {
"tailnet-mcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"TS_AUTHKEY=<YOUR_TS_AUTHKEY>",
"ghcr.io/zedong-peng/tailnet-mcp:v0.3.0"
],
"env": {
"TS_AUTHKEY": "<YOUR_TS_AUTHKEY>"
}
}
}
}Let your agent find its tools
Find servers like Tailnet MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.