把 HTTP MCP 服务器托管在私有 tailnet
通过 TSLink 代理分享第三方 HTTP MCP 服务器,并明确 tailnet 访问、后端认证与 Funnel 边界。
第三方 HTTP MCP 服务器可能需要从多台设备访问。分享之前,先检查其工具能读取或修改什么。TSLink 可将这个已有 HTTP 端点作为代理服务,在私有 Tailscale tailnet 内访问。
注册已经运行的服务器
假设 HTTP MCP 服务器监听 localhost:8080:
tslink add mcp-tools --proxy localhost:8080 --json
tslink url mcp-tools --wait默认情况下,add 保存具名服务并确保后台网关运行。如果其 JSON 结果返回 data.status: needs_login,打开 data.auth_url 并批准新的 tsnet 节点,再运行 url --wait 取回实际地址。用 tslink status --json 检查就绪状态。若希望 TSLink 拒绝不符合身份规则的 HTTP 调用方,请为代理服务配置 --allow。未配置 --allow 或人员策略时,tailnet 策略允许的调用方可以访问代理;已有人员授权、到期和拒绝记录仍生效。
tailnet 段使用 Tailscale/WireGuard,代理 HTTP 使用 Tailscale HTTPS listener。到本地后端的跳转可能是明文。独立节点身份是网络边界,不是进程沙箱;MCP 服务器的工具仍需适当的应用层授权。
区分不同接口
这里是在 TSLink 后面托管另一个 HTTP MCP 服务器,不是让 MCP client 连接 TSLink 自身的服务管理工具。后者请按 MCP 控制服务器配置在本地通过 stdio 运行 tslink mcp。由 tslink serve --mcp 启用的可选远程控制面仅在 tailnet 内可达,但管理权限较高;启用前必须按文档配置访问限制。
公开 Funnel 是另一项决定,要求同时用 --funnel 和 --public。TSLink 的 tailnet 身份过滤不保护公共 Funnel 请求。除非已设计并审查公开端点的应用层认证,否则应保持高权限 MCP 工具私有。MCP 托管指南有完整配置与限制。