Tailscale Status MCP Server

本项目是一个轻量级的 MCP (Model Context Protocol) 服务器,旨在让大型语言模型(LLMs)能够查询您的 Tailscale 网络状态。它通过调用本地的 'tailscale' 命令行工具获取信息,并以结构化的方式提供给 LLM 客户端。

主要功能点:

  • 查询 Tailscale 网络状态: 获取您 Tailscale 网络中所有设备的在线/离线状态、IP 地址等基本信息。
  • 查询设备详细信息: 获取指定 Tailscale 设备的详细信息,包括设备状态、IP、所属用户、操作系统以及流量数据等。
  • 支持多种传输协议: 支持 STDIO (标准输入输出) 和 HTTP/SSE (Server-Sent Events) 两种传输协议,方便与不同的 MCP 客户端集成。

安装步骤:

  1. 环境准备:

    • 确保您的系统已安装 Python。
    • 确认 Tailscale 客户端已安装,并且 'tailscale' 命令行工具位于 '/Applications/Tailscale.app/Contents/MacOS/Tailscale' 路径(针对 macOS 系统,如 README.md 中所述)。
    • 推荐使用 'uv' 管理 Python 依赖,您可以参考 uv GitHub 仓库 安装。
  2. 安装依赖: 在终端中,切换到该仓库的根目录,执行 'uv pip install .' 命令(或者如果您不使用 uv,可以使用 'pip install .')安装所需的 Python 包。虽然仓库没有明确的 'requirements.txt' 文件,但代码中使用了 'fastmcp' 库,此命令会自动安装 'fastmcp' 及其依赖。

MCP 客户端服务器配置信息:

MCP 客户端需要以下配置信息才能连接到此服务器。以下是针对不同传输类型的 JSON 格式配置示例:

STDIO 传输 (默认):

{
  "server_name": "tailscale",
  "command": "python",
  "args": ["tailscale.py"]
}
  • 'server_name': 服务器名称,与代码中 'FastMCP("tailscale")' 定义的名称一致。
  • 'command': 启动服务器的命令,这里是 'python',用于执行 Python 脚本。
  • 'args': 命令参数列表,这里是服务器脚本 'tailscale.py'。

HTTP/SSE 传输 (例如端口 4001):

{
  "server_name": "tailscale",
  "command": "python",
  "args": ["tailscale.py", "--transport", "http", "--port", "4001"]
}
  • 'server_name': 同上。
  • 'command': 同上。
  • 'args': 包含指定 HTTP 传输和端口号的参数。'--transport http' 启用 HTTP 模式,'--port 4001' 设置服务器监听 4001 端口。

基本使用方法:

启动服务器后,MCP 客户端可以使用上述配置信息连接到服务器。连接成功后,客户端可以调用以下工具 (Tools) 来获取 Tailscale 网络信息:

  • 'get_tailscale_status': 获取 Tailscale 网络中所有设备的简要状态信息。
  • 'get_device_info': 获取指定设备的详细信息。调用此工具时,需要提供设备名称作为参数。例如,要查询名为 "MyLaptop" 的设备,可以调用 'get_device_info' 并传递参数 'device_name="MyLaptop"'。

服务器会将请求的信息以文本格式返回给客户端,LLM 客户端可以解析并利用这些信息。

信息

分类

桌面与硬件