Tailscale Model Context Protocol (MCP) Server

Tailscale Model Context Protocol (MCP) Server

用于在 Tailscale CLI 上进行安全只读操作的 MCP 服务器

paulsmith

开发者工具
访问服务器

README

Tailscale 模型上下文协议 (MCP) 服务器

一个简单的 MCP 服务器,可以直接从 Claude Desktop 和其他兼容 MCP 的客户端提供对您的 Tailscale 网络的只读访问。

[!CAUTION] 您可能不想这样做!此服务器会将您的 Tailscale 网络暴露给外部应用程序。它会代表您在您的系统上调用 tailscale 二进制文件,通过字符串连接组装参数列表,并以您登录的 Tailscale 帐户身份执行。虽然其操作旨在是只读的,因此是“安全的”,但您应该意识到将网络的任何部分暴露给第三方应用程序所涉及的潜在风险。尤其是在与 LLM 交互时

描述

例如,此服务器允许 Claude 通过将只读命令作为工具和提示公开来与您的 Tailscale 网络交互。它使您能够:

  • 检查您的 Tailscale 状态和连接的设备
  • 获取网络诊断信息
  • 查看您的 Tailscale IP 地址
  • 列出可用的出口节点
  • Ping Tailscale 主机
  • 查找有关 Tailscale IP 的信息

要求

  • Go(用于从源代码构建)
  • 必须安装 Tailscale CLI 并且可以在您的 $PATH 中访问
  • 兼容 MCP 的客户端,例如 Claude Desktop

安装

预构建的二进制文件

即将推出

从源代码构建

go install github.com/paulsmith/tailscale-mcp-server@latest

与 Claude Desktop 一起使用

  1. 首先,请确保您已安装 Claude Desktop 并已更新到最新版本

  2. 打开您的 Claude Desktop 配置文件:

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows: %APPDATA%\Claude\claude_desktop_config.json
  3. 添加 Tailscale MCP 服务器配置:

{
  "mcpServers": {
    "tailscale": {
      "command": "tailscale-mcp-server"
    }
  }
}
  1. 确保 tailscale-mcp-server 在您的 $PATH 中,或者在 command 字段中提供二进制文件的完整路径。

  2. 重启 Claude Desktop

可用工具

该服务器公开以下工具:

  • tailscale: 运行任何“安全”的 Tailscale 命令
  • get-ip: 获取您的 Tailscale IP 地址
  • get-status: 获取有关您的 Tailscale 网络的信息
  • network-check: 检查 Tailscale 网络连接
  • list-exit-nodes: 列出可用的 Tailscale 出口节点
  • ip-lookup: 查找有关 Tailscale IP 的信息
  • ping-host: Ping Tailscale 主机
  • dns-status: 获取 DNS 诊断信息

安全子命令列表

以下子命令列表被认为是“安全”的,可以通过此 MCP 服务器使用的 tailscale 工具运行:

  • netcheck
  • ip
  • dns status
  • status
  • metrics
  • ping <peer>
  • version
  • exit-node list
  • whois <ip>

可用提示

该服务器还包括几个提示,以帮助完成常见任务:

  • diagnose-network: 分析 Tailscale 网络连接问题
  • analyze-peers: 获取您的 tailnet 中设备的摘要
  • exit-node-recommendations: 获取出口节点的建议

使用示例

连接到 Claude Desktop 后,您可以提出如下问题:

  • "我的 Tailscale IP 地址是什么?"
  • "向我展示连接到我的 Tailscale 网络的所有设备"
  • "你能检查一下我的 Tailscale 网络连接是否正常工作吗?"
  • "Ping 我的名为 'laptop' 的设备"
  • "我的网络中是否有任何可用的出口节点?"
  • "Tailscale 使用什么 DNS 设置?"

聊天示例

描述我的 tailnet 并注意任何异常情况。

(省略部分内容)

我将检查您的 Tailscale 网络状态,并为您提供有关您的 tailnet 的信息。让我运行几个命令来收集详细信息。

首先,让我们检查您的 tailnet 的总体状态:

> 查看 get-status 的结果 ...

现在,让我们获取 Tailscale IP 地址:

> 查看 get-ip 的结果 ...

让我们检查网络连接状态:

> 查看 network-check 的结果 ...

让我们检查您的 tailnet 中是否有可用的出口节点:

> 查看 list-exit-nodes 的结果 ...

让我们也检查 DNS 状态:

> 查看 dns-status 的结果 ...

根据收集到的所有信息,以下是您的 tailnet 的描述:

您的 tailnet 名为 "orca-arctic.ts.net",目前已注册 11 台设备,其中 6 台设备当前在线,5 台设备离线。您当前的设备是 "venus",运行 macOS,IP 地址为 100.86.102.37。

以下是我观察到的关于您的 tailnet 的信息:

- 您有一台设备 ("bunny") 配置为出口节点。这允许其他设备通过它路由其流量。
- 您的客户端 (1.80.3) 和 tailscaled 服务器 (1.82.0) 之间存在版本不匹配,可能值得更新以确保兼容性和安全性。
- 您有一台名为 "hello.ts.net" 的设备,其用户帐户 (hello@) 与您的其他设备 (paulsmith@) 不同。如果您不希望您的 tailnet 中有其他用户,这可能不寻常。
- 您的网络连接看起来不错,同时支持 IPv4 和 IPv6,并且您正在使用 UPnP 进行端口映射。
- 您最近的 DERP(数据包指定加密中继)服务器位于 Ashburn,延迟为 71.9 毫秒,这非常好。
- MagicDNS 在整个 tailnet 中启用,允许您通过其主机名(例如,venus.orca-arctic.ts.net)访问设备。
- 您正在使用 NextDNS 作为您的 DNS 解析器,这是一个自定义配置。

可能需要注意的显著项目:

- 上面提到的客户端/服务器版本不匹配
- 具有不同用户帐户 (hello@) 的设备 "hello.ts.net" 可能需要验证,如果它不是预期的
- 您的五台设备当前处于离线状态,如果它们未使用,这是正常的,但如果希望它们在线,则值得检查

您希望我提供有关您的 tailnet 的任何特定方面的更多信息吗?

安全注意事项

  • 此服务器允许对您的 Tailscale 网络进行只读访问
  • 仅允许使用“安全”白名单中的 tailscale CLI 的子命令
  • 无法进行任何配置更改(理论上!)
  • 所有命令都以您的用户权限执行
  • 您正在将您的 Tailscale 网络暴露给 LLM,但通过 MCP RPC 间接暴露,这会受到诸如提示注入之类的安全风险的影响 - 请自行了解

故障排除

服务器未出现在 Claude Desktop 中

检查以下内容:

  1. 确保您的配置中二进制文件的路径正确
  2. 验证 Tailscale CLI 是否已安装并且可以在您的 $PATH 中访问
  3. 检查 Claude Desktop 日志中是否有错误:
    • macOS: ~/Library/Logs/Claude/mcp*.log
    • Windows: %APPDATA%\Claude\logs\mcp*.log

命令错误

如果命令失败,请尝试:

  1. 使用 Tailscale CLI 直接运行该命令以验证它是否有效
  2. 检查您的 Tailscale 是否已正确配置并已连接
  3. 确保该命令在允许的安全列表中

开发

此服务器是使用 mcp-go 包构建的。如果您想扩展或修改它:

  1. 克隆存储库
  2. 进行更改
  3. 使用 go build 构建
  4. 使用 Claude Desktop 或其他 MCP 客户端进行测试

贡献

欢迎贡献!请随时提出问题和/或提交拉取请求。

许可证

MIT 许可证

推荐服务器

Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
MCP Package Docs Server

MCP Package Docs Server

促进大型语言模型高效访问和获取 Go、Python 和 NPM 包的结构化文档,通过多语言支持和性能优化来增强软件开发。

精选
本地
TypeScript
Claude Code MCP

Claude Code MCP

一个实现了 Claude Code 作为模型上下文协议(Model Context Protocol, MCP)服务器的方案,它可以通过标准化的 MCP 接口来使用 Claude 的软件工程能力(代码生成、编辑、审查和文件操作)。

精选
本地
JavaScript
@kazuph/mcp-taskmanager

@kazuph/mcp-taskmanager

用于任务管理的模型上下文协议服务器。它允许 Claude Desktop(或任何 MCP 客户端)在基于队列的系统中管理和执行任务。

精选
本地
JavaScript
mermaid-mcp-server

mermaid-mcp-server

一个模型上下文协议 (MCP) 服务器,用于将 Mermaid 图表转换为 PNG 图像。

精选
JavaScript
Jira-Context-MCP

Jira-Context-MCP

MCP 服务器向 AI 编码助手(如 Cursor)提供 Jira 工单信息。

精选
TypeScript
Linear MCP Server

Linear MCP Server

一个模型上下文协议(Model Context Protocol)服务器,它与 Linear 的问题跟踪系统集成,允许大型语言模型(LLM)通过自然语言交互来创建、更新、搜索和评论 Linear 问题。

精选
JavaScript
Sequential Thinking MCP Server

Sequential Thinking MCP Server

这个服务器通过将复杂问题分解为顺序步骤来促进结构化的问题解决,支持修订,并通过完整的 MCP 集成来实现多条解决方案路径。

精选
Python
Curri MCP Server

Curri MCP Server

通过管理文本笔记、提供笔记创建工具以及使用结构化提示生成摘要,从而实现与 Curri API 的交互。

官方
本地
JavaScript