Tailscale RMCP
ai.dinglebear由 dinglebear.ai 发布v0.1.3更新于 Oct 24, 2026
Rust MCP server and CLI for Tailscale devices, users, keys, policies, and auth.
发布方自己的服务:RMCP
概览
让助手查看和管理 Tailscale 网络:列出设备、路由、密钥、ACL、DNS 和用户,授权设备,并可选地删除设备。
- 可以做什么
- 只暴露一个 MCP 工具 tailscale,通过必填的 action 参数选择操作。读取类操作可列出设备、返回单个设备、查看子网路由、API 密钥、ACL 策略、DNS/MagicDNS 设置和网络用户。写入类操作可授权设备;delete_device 需要服务端开关加调用方确认双重条件。同一套服务层也以 rtailscale 命令行提供。
- 适用场景
- 适合助手在不打开管理控制台的情况下审计或操作 Tailscale 网络:检查设备清单、路由、DNS、ACL 策略或用户,批准新设备,或移除已下线的设备。不用于替代管理控制台,也不用于在同一信任边界内管理多个互不相关的网络。
- 运行要求
- 通过 npx(npm 包)或下载的二进制以 stdio 在本地运行;npm 方式需要 Node.js,从源码构建需要 Rust 1.86 及以上。需要 TAILSCALE_API_KEY 中的 Tailscale API 密钥和 TAILSCALE_TAILNET 中的网络名称。可选的 HTTP 模式会绑定端口,可使用静态 bearer 令牌或 Google OAuth。
安装
在 SourceWeft 中
- 打开 控制台中的 Tailscale RMCP,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
tailscale-rmcp
Tailscale device, route, DNS, key, user, and ACL management over MCP and CLI.
It exposes one MCP tool, tailscale, plus the rtailscale CLI. Agents can
list devices, inspect routes, read API keys, ACL policy, DNS settings, and
users, authorize devices, and delete devices when the destructive gate is
explicitly enabled.
30-second path: set TAILSCALE_API_KEY, then run
npx -y @dinglebear/rtailscale devices --json -> start loopback HTTP with
TAILSCALE_MCP_HOST=127.0.0.1 npx -y @dinglebear/rtailscale serve -> call tools/call
with {"action":"devices"}.
Status: operational RMCP upstream-client server. Write-capable for device
authorization; destructive device deletion requires both server opt-in and
caller confirmation. HTTP MCP supports loopback dev mode, static bearer tokens,
and Google OAuth through lab-auth.
Not for: replacing the Tailscale admin console, bypassing Tailscale account permissions, operating multiple unrelated tailnets from one trust boundary, storing API keys for callers, arbitrary WireGuard control, or passing Tailscale API keys through MCP tool arguments.
Contents
- Naming
- Capabilities And Boundaries
- Install
- Quickstart
- Client Configuration
- Runtime Surfaces
- MCP Tool Reference
- CLI Reference
- Configuration
- Authentication
- Safety And Trust Model
- Architecture
- Distribution Contract
- Development
- Verification
- Deployment
- Troubleshooting
- Related Servers
- Documentation
- License
Naming
The repo, crate, and npm package use the RMCP family name. The shipped binary is
rtailscale to avoid shadowing the official tailscale CLI.
Capabilities And Boundaries
- List devices and inspect a single device by node ID or legacy numeric device ID.
- Read subnet routes, API keys, ACL policy, DNS/MagicDNS settings, and tailnet users.
- Authorize a device for the tailnet.
- Delete a device only when
TAILSCALE_ALLOW_DESTRUCTIVE=trueand the caller also passes explicit confirmation. - Provide setup and doctor commands for local plugin/runtime checks.
Install
npm / npx
Run the stdio MCP server or CLI without a manual binary install:
The npm package downloads rtailscale during postinstall. Override download
behavior only when testing packaging:
Build From Source
Minimum supported Rust version: 1.86.
Quickstart
1. Get A Tailscale API Key
Create an API key at https://login.tailscale.com/admin/settings/keys. Use the minimum capability needed for the actions you plan to expose.
2. Configure The Tailnet
Every Tailscale account belongs to a tailnet. TAILSCALE_TAILNET=- targets the
default personal tailnet; organization tailnets usually use the org domain.
3. Run A Safe CLI Call
4. Start Loopback HTTP MCP
In another shell:
5. Make A First MCP Call
Client Configuration
Claude Code Stdio
Claude Code HTTP
Codex / Labby Gateway
Register Tailscale through Labby as an HTTP upstream when sharing one long-running server, or run it directly as stdio for local-only use.
Generic MCP JSON
Do not put TAILSCALE_API_KEY, OAuth secrets, passwords, SSH keys, or upstream
bearer tokens in MCP tool arguments. Use env, config files, or the MCP client's
secret storage. MCP callers never provide credentials, tokens, keys, or secrets
as action arguments.
Runtime Surfaces
MCP Tool Reference
One MCP tool is exposed: tailscale. Pass the required action argument to
select the operation.
Read Actions
Write Actions
Destructive Actions
Device IDs may be stable node IDs such as n1234abc or legacy numeric device
IDs. Use action=devices first to discover IDs.
CLI Reference
The binary calls the same service layer as the MCP tool:
All commands currently print JSON. --json is accepted for parity with the rest
of the RMCP family.
Configuration
Host installs read ~/.tailscale-mcp/.env before loading config. Containers
read /data/.env. Process environment overrides both.
The Tailscale API base URL is not configurable; it is fixed at
https://api.tailscale.com/api/v2 in src/tailscale.rs.
Authentication
Stdio MCP runs as a local trusted child process and does not use HTTP auth.
HTTP MCP auth policy:
Non-loopback HTTP startup is rejected unless bearer auth, OAuth, or
TAILSCALE_NOAUTH=true is configured.
Safety And Trust Model
- Tailscale API keys are loaded from config/env only.
- MCP callers select actions and IDs, not upstream credentials.
delete_devicehas a two-key interlock:TAILSCALE_ALLOW_DESTRUCTIVE=trueon the server and caller-providedconfirm=true.- Missing IDs and unknown actions fail before upstream calls.
- Non-loopback HTTP deployments must use bearer auth, OAuth, or a trusted authenticated gateway.
- This bridge does not sandbox Tailscale itself. Tailscale remains responsible for API permissions and tailnet state changes.
Architecture
Distribution Contract
Cargo.toml,Cargo.lock,packages/tailscale-rmcp/package.json,.release-please-manifest.json, andserver.jsonmust agree on the released version.- GitHub Releases publish the
rtailscalebinary consumed by the npm launcher. - The npm package name is
@dinglebear/rtailscale; binary aliases aretailscale-rmcpandrtailscale. - Docker/OCI metadata uses
ghcr.io/dinglebear-ai/rtailscale:<version>(seedocker-compose.prod.yml). The image path still uses the pre-transfer owner namespace even though the repo now lives atdinglebear-ai/rtailscale. plugins/tailscale/.mcp.jsonmust launchnpx -y @dinglebear/rtailscale mcpso stdio clients start the MCP transport rather than the HTTP server.plugins/tailscale/ships no Claude Code hooks;scripts/validate-plugin-layout.shfails if ahooks/directory reappears.- The root README is curated. Source of truth for action behavior and config
defaults is
src/, plus the package, plugin, and registry manifests.
Development
Verification
Runtime smoke:
HTTP smoke:
Deployment
Use loopback for local development:
Use Docker Compose for shared HTTP deployment:
When binding to a non-loopback address, configure TAILSCALE_MCP_TOKEN,
TAILSCALE_MCP_AUTH_MODE=oauth, or TAILSCALE_NOAUTH=true behind an
authenticated gateway.
Troubleshooting
Related Servers
- soma - RMCP runtime and scaffold for provider-backed MCP servers.
- unifi-rmcp - UniFi controller REST API bridge.
- unraid - Unraid monorepo;
unraid-rs/is the GraphQL bridge for NAS and server management. - apprise-rmcp - Apprise notification fan-out bridge for many delivery backends.
- gotify-rmcp - Gotify push notification bridge for sends, messages, apps, and clients.
- arcane-rmcp - Arcane Docker management bridge for containers and related resources.
- yarr - Media-stack bridge for Sonarr, Radarr, Prowlarr, Plex, and related services.
- ytdl-rmcp - Media download and metadata workflow server.
- synapse-rmcp - Local Synapse workflow server for scout and flux actions.
- cortex - Syslog and homelab log aggregation MCP server.
- axon - RAG, crawl, scrape, extract, and semantic search project.
- labby - Homelab control plane and MCP gateway project.
- lumen - Local semantic code search MCP server.
Documentation
CLAUDE.mdis the curated local operating guide for contributors and agents.docs/SETUP.mdis curated plugin/setup guidance.docs/OAUTH.mdis curated OAuth setup guidance.plugins/tailscale/skills/tailscale/SKILL.mdis the agent usage guide.src/is the source of truth for current actions, config defaults, auth behavior, and CLI parsing.- Package, plugin, Docker, and registry manifests are curated distribution contracts and should be checked with the verification commands above.
License
Original Dinglebear-authored portions of this project are licensed under AGPL-3.0-only. Separate commercial licensing is available for organizations that need terms outside the AGPL. Third-party material remains under its original license. See LICENSING.md.
来源:README.md,提交 d10e4d5
工具
0版本历史
1- v0.1.3最新Sep 16, 2026
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分
其他 Rmcp 集成
RMCP
dev.rmcp官方发布者
一个远程 MCP 目录服务器,让助手搜索已收录的 MCP 服务器与工具、查看其记录和端点,并比较候选方案。
YTDL RMCP
ai.dinglebear
本地运行的 Rust MCP 服务器,让助手搜索 YouTube、用 yt-dlp 下载音视频、写入标签并传输媒体,以及同步 Plex 播放列表。
Unraid RMCP
ai.dinglebear
本地 MCP 服务器兼 CLI,让助手通过 Unraid 的 GraphQL API 处理 NAS、Docker、虚拟机和存储相关任务。
Unraid RMCP
ai.dinglebear
本地运行的 Rust MCP 服务器兼命令行工具,让助手通过 Unraid 的 GraphQL API 查询和管理 NAS,涵盖阵列、Docker、虚拟机和存储。
UniFi RMCP
ai.dinglebear
本地 MCP 服务器兼 CLI,让助手读取 UniFi Network 控制器的客户端、设备、WLAN 和健康状态,并在具备管理员权限时执行变更操作。