Skip to content

MCP — AI 控制

Terminality 既是可见桌面应用,也能在同一进程中提供 MCP。AI 代理通过六个类型化工具操作人类正在看到的同一批 Session。

Terminality 的 AI 支持设置,其中 MCP 服务处于停止且仅限本机的状态
可选的 HTTP 服务默认停止并只监听本机;只有用户主动修改后才会扩大网络范围。

快速开始

json
{
  "mcpServers": {
    "szt": {
      "command": "/path/to/szt-desktop",
      "args": ["--mcp"]
    }
  }
}

使用 --mcp 启动后,Terminality 正常打开应用窗口,同时在 stdin / stdout 上提供 MCP;客户端关闭传输时,进程随之退出。

工具

工具作用
szt_list_session_create_info列出实时 QCS 目标与连接方式
szt_create_session用不透明的 createInfoId 创建并聚焦 AI 可见 Tab
szt_list_sessions列出人类与 AI 创建的全部可见 Session
szt_close_session结束连接,但保留已结束的 Tab
szt_list_session_operations返回实时操作、输入输出 Schema 与安全标记
szt_operate_session调用一个当前已发布的操作

Session 模型

Pane 只负责展示和布局;MCP 的公开能力是由 libszt RemoteControlService 投影出来的稳定可见 Session。

字段含义
sessionId某一代可见内容的稳定能力 ID
runtimeSessionId可选的私有终端运行时 ID;工具输入永远不需要它
originhumanai
kindlocalTerminalsshTerminalsftpFilesomini
statependingrunningreadydisconnectedended 等真实状态

替换 Pane 内容会轮换公开 Session ID,迟到操作无法触达同一布局位置里的新连接。终端重连只会轮换私有运行时 ID。关闭连接后 Tab 仍保留;MCP 不提供布局删除原语。

操作能力

每次操作前都应重新发现能力:

  • 本地、SSH、Telnet 与 Omini 终端提供 terminal.readterminal.input。输入是精确 UTF-8;只有显式设置 appendEnter 才会追加回车。
  • SFTP 与 Omini 文件提供 files.listfiles.startUploadfiles.startDownloadfiles.viewTaskfiles.listTasks,以及暂停、恢复、取消、重试任务操作。

传输启动后立即返回 taskId,任务与全局传输抽屉共用同一个 TransferService。尚未实现适配器的 Session 返回空操作列表。

安全

  • terminal.inputszt_operate_session 被标记为破坏性、非幂等、开放世界操作;客户端应保持审批策略。
  • Session 操作会激活所属窗口、聚焦 Pane 并将窗口置前,AI 行为始终可见。
  • 每次上传或下载都会在原生窗口中展示确切本地路径与冲突策略;用户单次批准后,libszt 才能打开自动化提供的路径。
  • 应用持续显示 MCP 连接状态与最近一次操作。
  • 每次 stdio 客户端启动拥有独立可见进程;可选的设置托管 HTTP 服务默认只监听本机,暴露到局域网时强制认证。
szt_list_session_create_info
  → szt_create_session(createInfoId)
  → szt_list_session_operations(sessionId)
  → szt_operate_session(sessionId, operationId, arguments)
  → 用 files.viewTask 观察 taskId
  → 遇到过期会话:重新列出,不盲目重试

Terminality — 连接每个角落