> ## Documentation Index
> Fetch the complete documentation index at: https://coding-1afcb9be.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# 安全边界

> 权限模式、工作目录限制、token 处理和工具风险边界。

# 安全边界

Coding Tools MCP 是编码工具服务器。它提供工作区路径检查、命令安全门禁、可选文件系统隔离、远程 HTTP 鉴权和环境过滤，但它本身不是完整安全沙箱。

## 工作区边界

直接文件工具会在配置的工作区根目录下解析路径。启动时应选择能满足任务的最小目录：

```bash theme={null}
coding-tools-mcp --workspace /repo
```

不要把工作区指向 home 目录、文件系统根目录，或包含无关 secret 的目录。

## 命令边界

`exec_command` 能运行当前权限模式允许的本地命令。应把它视为在配置工作区和服务进程环境内执行代码。

| 模式          | 边界                                                     |
| ----------- | ------------------------------------------------------ |
| `safe`      | 对网络特征命令、shell 展开、内联脚本、敏感环境和宽泛临时目录写入加门禁。Landlock 可用时启用。 |
| `trusted`   | 允许常见开发流程，同时保留工作区路径策略、敏感环境过滤和可用时的 Landlock。             |
| `dangerous` | 关闭命令权限门禁和 Landlock。只应在外层沙箱中使用。                         |

## Landlock 依赖宿主

Linux 上会在可用时使用 Landlock。如果内核或宿主配置不支持，服务会报告命令只在策略检查下运行。这个警告意味着不可信命令需要依赖外层容器、VM 或其他沙箱。

## 鉴权边界

HTTP loopback 可以无鉴权。非 loopback 绑定需要 Bearer auth、OAuth，或显式 `CODING_TOOLS_MCP_AUTH_MODE=noauth`。

远程访问建议：

* 使用 Bearer auth 或 OAuth。
* 放在 TLS 后面。
* 不把 token 和 OAuth secret 写入日志。
* 通过代理或公开 tunnel 暴露 OAuth 时设置 `CODING_TOOLS_MCP_SERVER_URL`。
* 除非外层可信层已鉴权，否则不要使用 no-auth 远程模式。

## 环境边界

在 `safe` 和 `trusted` 中，看起来像 secret 的环境变量名和值会从命令执行环境中被过滤。动态库 preload、语言启动钩子等风险变量也会被视为不安全。

除非部署和权限模式明确接受该风险，否则不要通过 `exec_command.env` 传入 API key、私钥、token 或密码。

## Tool profile 边界

`--tool-profile read-only` 会减少对客户端暴露的工具，但不是完整安全审计系统。它隐藏修改型工具，不代表服务在所有配置下都不可变。

`compat-readonly-all` 是兼容模式，可能把可修改本地状态的工具标注为只读，因此不能把它当作安全控制。

## 推荐部署姿态

* 本地单用户编辑器接入：stdio 或 loopback HTTP，先使用 `safe`。
* 可信本地开发自动化：stdio 或 loopback HTTP，需要网络或 shell 特性时使用 `trusted`。
* 远程工作区：HTTP 加 Bearer auth 或 OAuth，TLS，窄工作区，容器或 VM 隔离。
* 高风险自动化：先建立外层沙箱，再选择最小可用 profile 和权限模式。
