一个简单的MCP服务器,提供从Claude Desktop和其他兼容MCP客户端直接访问您的Tailscale网络的只读权限。
[!警告] 您可能不希望这样做!此服务器会将您的Tailscale网络暴露给外部应用程序。它会在您的系统上调用
tailscale二进制文件,通过字符串拼接组装参数列表,并以您登录的Tailscale账户身份执行。虽然其操作旨在是只读的,因此被认为是“安全”的,但您应该意识到将任何网络部分暴露给第三方应用程序所涉及的潜在风险。尤其是在与LLMs交互时。
该服务器允许例如Claude通过暴露只读命令作为工具和提示来与您的Tailscale网络进行交互。它使您可以:
$PATH中访问的Tailscale CLI即将推出
go install github.com/paulsmith/tailscale-mcp-server@latest
首先,请确保已安装并更新到最新版本的Claude Desktop
打开您的Claude Desktop配置文件:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.json添加Tailscale MCP服务器配置:
{
"mcpServers": {
"tailscale": {
"command": "tailscale-mcp-server"
}
}
}
确保tailscale-mcp-server在您的$PATH中,或在command字段中提供二进制文件的完整路径。
重启Claude Desktop
该服务器公开了以下工具:
被认为是“安全”且可以通过此MCP服务器使用的tailscale工具运行的子命令列表如下:
netcheckipdns statusstatusmetricsping <peer>versionexit-node listwhois <ip>该服务器还包括几个帮助完成常见任务的提示:
一旦连接到Claude Desktop,您可以提出如下问题:
描述我的尾网并注意任何异常情况。
(部分内容省略)
我将检查您的Tailscale网络状态并向您提供关于您的尾网的信息。让我运行一些命令来收集详细信息。
首先,让我们检查您的尾网的整体状态:
> 查看来自get-status的结果...
现在,让我们获取Tailscale IP地址:
> 查看来自get-ip的结果...
让我们检查网络连接状态:
> 查看来自network-check的结果...
让我们检查您的尾网中的可用出口节点:
> 查看来自list-exit-nodes的结果...
我们还检查DNS状态:
> 查看来自dns-status的结果...
根据收集的所有信息,这是您的尾网的描述:
您的尾网名称为“orca-arctic.ts.net”,目前注册了11台设备,其中6台在线,5台离线。您当前的设备名为“venus”,运行macOS,IP地址为100.86.102.37。
这是我观察到的关于您的尾网的情况:
- 您有一台设备(“bunny”)被配置为出口节点。这允许其他设备通过它路由流量。
- 您的客户端(1.80.3)与tailscaled服务器(1.82.0)之间存在版本差异,这可能是值得更新以确保兼容性和安全性。
- 您有一台名为“hello.ts.net”的设备,其用户账户(hello@)与其他设备(paulsmith@)不同。如果未预期另一个用户出现在您的尾网中,这可能会显得不寻常。
- 您的网络连接看起来很好,支持IPv4和IPv6,并使用UPnP进行端口映射。
- 您最近的DERP(指定加密包中继)服务器位于Ashburn,延迟为71.9毫秒,这相当不错。
- MagicDNS在整个尾网范围内启用,允许您通过主机名(例如venus.orca-arctic.ts.net)访问设备。
- 您正在使用NextDNS作为您的DNS解析器,这是一个自定义配置。
需要注意的事项:
- 上述提到的客户端/服务器版本差异
- 用户账户不同的设备“hello.ts.net”(hello@),如果未预期,可能需要验证
- 您的五台设备目前处于离线状态,如果它们未在使用中,这是正常的,但如果预期它们在线,则值得检查
您是否需要提供更多关于您尾网特定方面的信息?
tailscale CLI的“安全”白名单中的子命令检查以下内容:
$PATH中可访问~/Library/Logs/Claude/mcp*.log%APPDATA%\Claude\logs\mcp*.log如果命令失败,请尝试:
此服务器使用mcp-go包构建。如果您想扩展或修改它:
go build构建欢迎贡献!请随时打开一个问题和/或提交拉取请求。