TSLinkTSLink 文档

MCP 角色、应用范围与 receipt

委派有边界的 MCP 操作,同时单独管理应用访问权与 agent 的系统权限。

查看 Markdown

本地 tslink mcp 默认 owner 权限。委派时可精简会话:

bash
tslink mcp --scope viewer --apps photos
tslink mcp --scope app-operator --apps photos --max-duration 8h
tslink mcp --scope people-manager --apps finance --max-duration 2h
tslink mcp --scope viewer --inventory

这些限制只约束 TSLink MCP 操作,不隔离 agent 的 shell/文件系统。同一 owner 用户的其他进程可重新启动 owner 会话,因此还需独立限制系统能力。Inventory 权限不授予打开应用的权限。

角色可用操作边界
viewer只读清单、健康、URL、人员及明确应用的历史;静态 recipe/template 目录明确 apps,或显式 inventory 查看全部应用清单
app-operatorViewer 加 app_restart、people_grant、people_revoke、人员 extend指定应用与正的授权时长上限
people-managerViewer 加单应用授权/撤销/期限与请求工具指定应用与有限上限;请求还有 owner 检查
owner全部 44 个已交付工具,包括 guest/公网变更与 mcp_audit不带应用/期限限制;binding 本身仍可到期

当前 viewer 会话提供 12 个工具,people-manager 会话提供 18 个。请用当前会话 tools/list发现工具,角色决定可见集合。本地 operator/manager 的 max_duration 默认 24h。精简会话不能通过参数扩大 scope,不能新建未知人员。

people_grant 修改已存在人员的一个私有 HTTP/文件应用授权,people_revoke 撤销一个应用。保留其他授权,不能解除整个人的撤销。TCP 和开放公共 Funnel 不支持;guest-gated 应用私有监听仍执行人员规则。新人员需 owner 权限(mcp_person_owner_required);精简角色不能改受保护的 portal owner/admin 记录。

app_restart 排队重启 TSLink gateway 节点、保留入网身份,不重启后端应用,也不证明完成。之后轮询 status/health;精简 operator 不能重启已有公共 Funnel 应用。

远程 binding

在 config.json 保留自己的 owner login,再加委派者的准确 login:

json
{"mcp":{"enabled":true,"allow":["you@example.com"],"bindings":[{"principal":"family@example.com","role":"viewer","apps":["photos"]}]}}

修改后重启 daemon,从被允许的 tailnet 设备连接真实 MCP URL。旧 mcp.allow 保留 owner 权限;改为精简角色前先移除旧 login。重复 principal、非法/未知 binding 都 fail closed。明确 login 优先,多个匹配 tag principal 会拒绝;owner tag 对携带它的设备授予宽泛权限。

远程 operator/manager binding 需要正的 max_duration。用实际 issued_at 加相对 for,或 RFC3339 expires_at 限制 binding 本身;两者互斥,重启不延长。新授权遵守访问者策略、max_duration 与剩余 binding 时间。到期拒绝新调用并取消已接受的远程请求,但不回滚已提交副作用。

远程请求列出/批准/拒绝还必须是当前无标签、未撤销的真人 portal owner;无关 manager 或 portal admin 不能审批。本地 owner CLI/stdio 提供可信主机恢复路径,精简本地会话仍受角色/应用/期限限制。Guest 工具、portal 管理、原整人变更、全局 logs/invites 和 owner receipt 工具仍仅 owner 可用。全局 /events 只给 owner,精简角色轮询工具。

审计与拒绝

已识别的变更记录有界 intent/completion receipt,不包含原始参数、target、凭据或 bearer link。缺 completion 表示结果未知,历史可能丢失或有崩溃缺口。使用 receipt 作证据前请读访问历史。范围拒绝使用 mcp_scope_denied,隐藏工具表现为未知工具。

相关:完整 MCP 参考 · Portal 与请求 · 期限。

来源:TSLink mcp-scopes.md · TSLink remote-mcp.md · TSLink agent-quickstart.md

目录