Files
bolt/deploy/bolt.env.example
T
jocay 84653bec61 feat: v0.2.0 文件传输(MCP 工具 + HTTP 直传)与安全/正确性修复
文件功能:
- 新增 file_read / file_write / file_stat 工具(文本/base64/图片,分块读取,原子替换写入,SHA-256)
- 新增 file_link 工具与 GET/PUT /files 端点:HMAC 签名限时链接或 Bearer 认证,
  支持 Range、HEAD、chunked、Expect: 100-continue,大文件不经过模型上下文
- 新增 --file-root / --max-upload;配置白名单但未限定目录时文件功能自动禁用

安全:
- 白名单改为程序名精确匹配,shell 模式禁止元字符,shell_write 输入逐行受检;黑名单检查每一段
- HTTP 签发 Mcp-Session-Id,按会话隔离 shell 会话与取消,支持 DELETE 终止会话
- HTTP 客户端不能再用 notifications/exit 关停服务;token 常量时间比较

正确性:
- 后台进程占用输出管道时 run_command 不再挂起(detached=true)
- shell_read 改用绝对偏移,修复缓冲裁剪后错位;被信号杀死的会话能报告退出;阻塞读可取消
- 输出与分块读取不再切断 UTF-8 多字节字符
- shell_* 结果改为标准 content + structuredContent
- POST + SSE 的 tools/call 在同一响应流中推送进度与结果
- /mcp 支持 Expect: 100-continue(curl 发送大请求时不再白等 1 秒)
- CLI 参数优先于环境变量;SIGTERM 在 stdio 模式下也能清理退出;Windows 支持 Ctrl+C 清理与优雅退出

资源:并发工具调用 / HTTP 连接 / shell 会话数量上限,空闲会话自动回收

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 10:23:15 +08:00

32 lines
1.1 KiB
Bash

# bolt 服务配置文件(EnvironmentFile)
# 修改后: systemctl restart bolt
#
# 注意:这是远程命令执行入口,监听公网时务必设置 BOLT_TOKEN!
# 启动参数(监听地址)在 /etc/systemd/system/bolt.service 的 ExecStart 中修改。
# 认证令牌(必填,若监听 0.0.0.0 对外暴露)
#BOLT_TOKEN=请改成强随机串
# 命令白名单(按程序名精确匹配,逗号分隔;非空时 shell 模式禁止管道/重定向/命令串联等元字符)
#BOLT_ALLOW=git,docker,curl
# 命令黑名单(按程序名精确匹配命令中每一段;尽力而为,不能替代白名单)
#BOLT_DENY=rm,mkfs
# 文件工具与 /files 允许访问的目录(逗号分隔;设置了 BOLT_ALLOW 时必须配置,否则文件功能禁用)
#BOLT_FILE_ROOT=/srv/data,/tmp
# PUT /files 单次上传上限(支持 K/M/G,默认 2G)
#BOLT_MAX_UPLOAD=2G
# 默认命令超时毫秒(0 = 无限)
#BOLT_TIMEOUT_MS=30000
# 默认工作目录
#BOLT_CWD=/root
# 单流输出捕获上限(支持 K/M/G)
#BOLT_MAX_OUTPUT=1M
# 额外允许的 HTTP Origin(默认仅 localhost/127.0.0.1)
#BOLT_ALLOW_ORIGIN=https://example.com