---
title: "MCP 角色、应用范围与 receipt"
description: "委派有边界的 MCP 操作，同时单独管理应用访问权与 agent 的系统权限。"
url: "https://tslink.md/zh/docs/mcp-scopes"
locale: "zh"
product_version: "0.1.1"
source: "https://github.com/anydoor7/tslink/blob/v0.1.1/docs/mcp-scopes.md"
---

> Documentation index: https://tslink.md/zh/llms.txt · Installed binary is authoritative: `tslink manifest`.

本地 `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-operator   | Viewer 加 `app_restart`、`people_grant`、`people_revoke`、人员 `extend` | 指定应用与正的授权时长上限                  |
| people-manager | Viewer 加单应用授权/撤销/期限与请求工具                                          | 指定应用与有限上限；请求还有 owner 检查        |
| owner          | 全部 44 个已交付工具，包括 guest/公网变更与 `mcp_audit`                           | 不带应用/期限限制；binding 本身仍可到期       |

当前 viewer 会话提供 12 个工具，people-manager 会话提供 18 个。请用[当前会话 `tools/list`](https://tslink.md/zh/docs/mcp-server.md#%E5%B7%A5%E5%85%B7%E4%B8%8E%E5%AE%8C%E6%95%B4%E8%BE%93%E5%85%A5%E5%AD%97%E6%AE%B5)发现工具，角色决定可见集合。本地 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 作证据前请读[访问历史](https://tslink.md/zh/docs/access-history.md)。范围拒绝使用 `mcp_scope_denied`，隐藏工具表现为未知工具。

相关：[完整 MCP 参考](https://tslink.md/zh/docs/mcp-server.md) · [Portal 与请求](https://tslink.md/zh/docs/portal-requests.md) · [期限](https://tslink.md/zh/docs/durations.md)。

来源：[TSLink mcp-scopes.md](https://github.com/anydoor7/tslink/blob/v0.1.1/docs/mcp-scopes.md) · [TSLink remote-mcp.md](https://github.com/anydoor7/tslink/blob/v0.1.1/docs/remote-mcp.md) · [TSLink agent-quickstart.md](https://github.com/anydoor7/tslink/blob/v0.1.1/docs/agent-quickstart.md)
