Tailscale Status MCP Server
本项目是一个轻量级的 MCP (Model Context Protocol) 服务器,旨在让大型语言模型(LLMs)能够查询您的 Tailscale 网络状态。它通过调用本地的 'tailscale' 命令行工具获取信息,并以结构化的方式提供给 LLM 客户端。
主要功能点:
- 查询 Tailscale 网络状态: 获取您 Tailscale 网络中所有设备的在线/离线状态、IP 地址等基本信息。
- 查询设备详细信息: 获取指定 Tailscale 设备的详细信息,包括设备状态、IP、所属用户、操作系统以及流量数据等。
- 支持多种传输协议: 支持 STDIO (标准输入输出) 和 HTTP/SSE (Server-Sent Events) 两种传输协议,方便与不同的 MCP 客户端集成。
安装步骤:
-
环境准备:
- 确保您的系统已安装 Python。
- 确认 Tailscale 客户端已安装,并且 'tailscale' 命令行工具位于 '/Applications/Tailscale.app/Contents/MacOS/Tailscale' 路径(针对 macOS 系统,如 README.md 中所述)。
- 推荐使用 'uv' 管理 Python 依赖,您可以参考 uv GitHub 仓库 安装。
-
安装依赖: 在终端中,切换到该仓库的根目录,执行 '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 客户端可以解析并利用这些信息。
信息
分类
桌面与硬件