mcpField
S
s-gw

s-gw

本地服务
s-gw.com安全151 周前更新

关于 s-gw

s-gw 是面向编码 Agent 的本地凭据管控工具,通过审批受限操作并在本机注入凭据,避免原始密钥进入模型上下文或工具输出。它提供命令行、管理界面和审计记录。

主要功能

  1. 01本地审批受限操作
  2. 02按操作范围注入凭据
  3. 03敏感输出扫描与脱敏
  4. 04记录策略和执行审计
  5. 05配置多个 Agent 客户端

适用场景

  1. 01授权 Agent 执行需凭据的命令
  2. 02审核凭据使用请求
  3. 03排查凭据操作的审计记录

MCP 相关

提供 stdio MCP 服务,供 Agent 发现凭据句柄并创建访问请求。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"sgateway-s-gw": {
"command": "npx",
"args": [
"-y",
"@s-gw/s-gw"
]
}
}
}
启动命令npx -y @s-gw/s-gw

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@s-gw/s-gw0.1.22

工具

10

收录的工具列表 · 更新于 2 周前

参数类型必填说明
pathstring是
persistboolean否

详细介绍

s-gw

s-gw

为编码 Agent 提供本地凭据控制。
在本地批准受限操作。避免原始凭据进入模型上下文和工具输出。

CI npm 许可证:Apache-2.0 Node.js 20+ 网站:s-gw.com GitHub 星标数 项目状态:预览版

演示 · 下载 · 快速开始 · 文档 · 安全 · 参与贡献

s-gw 演示

不要再把原始凭据交给编码 Agent。s-gw 为 Agent 提供有类型的句柄,请求你批准受限的本地操作,在你计算机上受约束的进程中解析凭据,并返回经过清理的输出,而不是机密值。

重要

s-gw 仍处于早期预览阶段。存储格式和接口可能会发生变化,Windows 和 Linux 桌面支持仍处于实验阶段,且项目尚未完成独立安全审计。目前不要将其视为终端安全或强化型企业机密平台的替代品。

本仓库中的 TypeScript 代理、客户端和文档均采用 Apache-2.0 许可证。分发的软件包还包含专有的编译型 Rust 执行核心,其源代码单独维护。

简要说明

  • Agent 可见: s-gw:credential:prod-readonly
  • 你批准: Agent、命令、句柄、环境绑定、工作目录和目标
  • s-gw 执行: 在本地运行命令,并仅将凭据注入该子进程
  • Agent 收到: 经清理的输出、审计证据,且不包含原始机密

如果 s-gw 对你的 Agent 工作流有所帮助,请为项目点星。这能让更多开发者发现这个预览项目。

实际演示

本地控制台会展示审批队列、凭据清单、策略状态、使用流程和活动历史,同时不会暴露机密值。

s-gw 本地控制台概览

公开演示:s-gw.com。

功能

管控审批执行审计
将机密转换为有类型的本地句柄,供 Agent 安全引用。授予访问权限前,检查发起请求的 Agent、句柄、命令、环境绑定、工作目录和目标。仅将凭据注入同一台计算机上经批准的子进程。记录请求、审批、执行、策略和目标证据,而不存储返回的原始机密。

团队为何使用它

  • **本地保管:**原始值保留在 macOS Keychain、Linux Secret Service、Windows Credential Manager、1Password 或加密的本地账本中。
  • **按操作授权:**授权绑定到 Agent、句柄、命令、环境变量、工作目录、目标、审批模式和可选的时间范围。
  • **实用句柄:**Agent 可以使用稳定的句柄名称请求执行实际工作,而无需看到密钥、密码、令牌或 SSH 凭据。
  • **输出清理:**命令输出返回给 Agent 前会经过扫描,将检测到的凭据值替换为句柄。
  • **适配 Agent 的设置:**Codex、Claude Code、Cursor、OpenCode、Gemini CLI、GitHub Copilot、VS Code 和其他 MCP 客户端会获得特定配置。
  • **本地操作界面:**原生桌面应用、托盘或菜单辅助工具、命令行和 Web 控制台可显示审批、凭据清单、策略、使用流程、活动和审计历史。

工作原理

flowchart LR
    A["Coding agent"] -->|"Handle + action request"| G["s-gw local gateway"]
    G --> U["Local approval"]
    U --> R["Constrained runner"]
    K[("Keychain / Credential Manager / encrypted store")] --> R
    R -->|"Sanitized output"| G
    G --> A

Agent 无需获取解锁密码或原始凭据。审批仅针对所请求的操作,而不会授予对存储区的常规访问权限。

核心界面

界面用途
s-gw CLI设置、凭据登记、审批、策略、Agent 代码片段、防护模式和诊断。
s-gw-mcp / s-gw mcp面向 Agent 的句柄发现和请求创建的 Stdio MCP 服务。
原生 macOS 应用审批队列、凭据清单、策略规则、使用流程、活动和审计审查。
Windows 和 Linux 桌面应用可安装的预览版应用,包含原生窗口、托盘控件和捆绑的本地运行时。
菜单栏辅助工具快速查看待处理审批和本地守护进程状态。
本地 Web 控制台绑定到 127.0.0.1 的浏览器备用界面;桌面应用无法运行时仍可使用。
防护模式启动 Agent 时,将类似凭据的环境变量替换为 s-gw 句柄。

快速开始

推荐在 macOS、Windows 10/11 和 Linux 上通过公开的 npm 包安装。安装 Node.js 20 或更高版本,然后运行:

npm install -g @s-gw/s-gw
s-gw setup
s-gw status

在 Windows 上,在 PowerShell 中运行相同的命令。Windows 支持仍处于预览阶段:npm 包使用 TypeScript 执行路径,并包含 PowerShell 客户端、托盘辅助工具和本地 Web 控制台。

在 Linux 上,请先安装 secret-tool(在 Ubuntu/Debian 上运行 sudo apt install libsecret-tools)。已解锁的桌面 Secret Service 是常用的持久化解锁提供程序;s-gw setup 还会为图形会话安装并启动一个用户级 systemd --user 控制台服务。没有 Secret Service 的无头主机可以通过显式提供 SGW_MASTER_PASSPHRASE 并运行 s-gw setup --no-service --no-open-app 来使用,但 s-gw 绝不会将该值复制到单元文件或后台服务环境中。

Windows x64 和 Linux x64 也提供可安装的桌面应用版本。Rust 应用直接在原生窗口中绘制管理界面,不会嵌入浏览器、WebView 或 localhost 页面。它捆绑了固定版本的 Node 运行时和 s-gw CLI,因此安装后的应用无需主机安装 Node.js 或 npm。安装原生可执行文件后,s-gw app open 会使用该程序。使用 s-gw app open --browser 可显式启动并打开独立的环回浏览器备用界面。

这些 Windows NSIS 和 Linux Debian 安装包目前是未签名的 CI 预览版,并非受支持的公开发行版下载。Windows 无需 WebView2。Linux 需要图形会话和已解锁的 Secret Service 密钥环;Debian 安装包会声明 GTK 3、AppIndicator、libxdo 和 libsecret-tools 运行时依赖项。有关构建和安装详情,请参阅部署和打包。 对于 Apple Silicon Mac 桌面版,GitHub Releases 还提供独立的 s-gw.dmg。将 s-gw.app 拖到 Applications,然后打开并完成设置。此应用包含自己的 Node 运行时、CLI、MCP 服务、本机辅助程序和菜单栏辅助程序;主机上无需安装 Node.js 或 npm。只有将应用放在 /Applications 或 ~/Applications 中才能进行设置。

未签名的 DMG 需要绕过 Gatekeeper。如果不想使用该绕过方式,请改用上面的 npm 安装方式。

公开源代码会构建 TypeScript 兼容路径,以及采用 Rust 原生渲染的 Windows/Linux 桌面应用。构建原生 macOS 界面还需要 Swift 工具链。Windows 和 Linux 桌面版需要 Rust 及其常用的原生图形和托盘开发库。维护者的发布构建还需要访问私有 Rust 核心代码库。

Apple Silicon Mac DMG 是一种独立的桌面替代方案。已发布的 macOS DMG 均经过 Developer ID 签名和公证,或明确标注为未签名;未签名版本需要绕过 Gatekeeper,但保留标准发布标签和更新路径。本地 npm run build:installers 输出采用临时签名,用于本地验证。npm 包是主要安装方式,其中包含适用于 Apple Silicon Mac 的原生应用、菜单辅助程序、Keychain 辅助程序、仅显示元数据的 Keychain 检查器和 Rust 核心。在未打包对应原生核心的 Linux 和 Windows 系统上,使用 TypeScript 执行路径。目前,Intel Mac 必须从源代码构建原生 Keychain 和桌面界面;启动前会拒绝使用已打包的 arm64 专用辅助程序。

git clone https://github.com/sgateway/s-gw.git
cd s-gw
npm ci
npm run build
npm link
s-gw setup
s-gw status

s-gw setup 会生成本地解锁材料,将其存储在操作系统凭据库中,初始化加密账本,启动当前平台上可用的本地 UI 界面,并安全地连接检测到的受支持 Agent。独立的 macOS 应用和 Windows/Linux 桌面预览版会直接运行其捆绑的运行时;npm 安装会将精简版 macOS 应用复制到 /Applications,必要时改用 ~/Applications。设置过程会备份现有 Agent 配置、保留无关设置、在支持的平台上安装打包的 s-gw 技能,并报告各 Agent 的冲突。使用 --no-agents 可跳过 Agent 注册。

从终端添加凭据,不要将其值放入聊天内容或进程参数中:

printf '%s' "$MY_API_TOKEN" | s-gw secret add-keychain \
  --name demo-token \
  --type api-token \
  --value-stdin \
  --inject-env API_TOKEN \
  --allow-command "$(command -v printenv)"

然后检查非机密的句柄元数据:

s-gw secret list

端到端信任循环将引导你完成一次临时请求、本地审批、执行和输出清理,全程不会接触真实凭据。

试用信任循环

使用临时的本地令牌体验完整流程:

printf '%s' 'demo-secret-value' | s-gw secret add-keychain \
  --name demo-printenv-token \
  --type api-token \
  --value-stdin \
  --inject-env DEMO_TOKEN \
  --allow-command "$(command -v printenv)"

s-gw request env-command <returned-handle> \
  --command "$(command -v printenv)" \
  --inject-env DEMO_TOKEN

s-gw approve <request-id>
s-gw execute <request-id>

执行输出应显示句柄令牌,而不是 demo-secret-value。

Agent 集成

列出已知的 Agent 配置,并为一个客户端生成配置:

s-gw agent list
s-gw agent mcp-snippet codex
s-gw agent mcp-snippet claude-code
s-gw agent mcp-snippet opencode

查看或管理检测到的连接:

s-gw agent status
s-gw agent install codex --dry-run
s-gw agent install codex
s-gw agent uninstall codex

手动配置以及无法安全合并的配置格式仍会使用生成的代码片段。npm 安装本身绝不会修改 Agent 配置。

在 macOS、Windows 和 Linux 上,s-gw setup 可以安全管理检测到的 Claude Code、Codex、Cursor、Gemini CLI、GitHub Copilot CLI、OpenCode 和默认配置的 VS Code 安装。在 Windows 上,它会通过 node.exe 启动打包的 MCP 服务,而不是使用 npm .cmd 垫片。

对于 CLI Agent,防护模式可在 Agent 启动前,将启动环境中看起来像凭据的值替换为 s-gw 句柄:

s-gw run codex --dry-run -- -v
s-gw run codex -- --ask-for-approval never

MCP 注册不会拦截每条提示词、文件读取、Shell 命令或环境变量。请参阅 Agent 集成和 Agent 配置矩阵,了解支持的路径和当前限制。

示例请求流程

  1. Agent 看到 s-gw:credential:prod-readonly,并请求运行 aws sts get-caller-identity。
  2. s-gw 会创建一个待处理请求,其中包含 Agent 名称、命令、句柄、环境绑定、工作目录、目标和策略结果。
  3. 你可以批准一次、在指定时间段内批准、在整个登录会话期间批准,或拒绝。
  4. s-gw 会启动获批的本地进程,并将凭据注入请求的环境变量。
  5. s-gw 会扫描进程输出,然后再将其返回给 Agent。

模型无需接收原始访问密钥即可完成任务。

平台状态

平台状态凭据存储用户界面
Apple Silicon 上的 macOS 14+主要开发平台Keychain原生应用、菜单辅助程序、本地 Web 控制台
Intel 上的 macOS 14+可从源码构建;未经 QA 测试从源码构建的 Keychain 辅助程序从源码构建的原生界面或本地 Web 控制台
Windows 10/11 x64未签名的桌面预览版Credential Manager原生桌面应用和系统托盘;PowerShell 客户端和浏览器备用方案
Linux x64 桌面版未签名的桌面预览版Secret Service;显式环境变量回退方案原生桌面应用和系统托盘;systemd 用户服务和浏览器备用方案
Linux arm64npm 预览版Secret Service;显式环境变量回退方案systemd 用户服务和浏览器备用方案

已发布的 Apple Silicon macOS DMG 包含运行所需的全部内容。如果具备签名凭据,发行版会使用 Developer ID 签名并进行公证;否则,发行说明和 DMG README 会说明需要覆盖 Gatekeeper 限制。目前,Windows NSIS 和 Linux Debian 桌面软件包是未签名的 CI 构建产物,不会作为受支持的发行版下载内容上传。可在目标操作系统上运行 npm run build:desktop-app 构建其中任一版本;运行 npm run build:installers 可构建现有发行版安装包。

安全模型

s-gw 旨在减少凭据意外暴露给编码 Agent 的情况。它无法防范遭入侵的操作系统账户、恶意的获批可执行文件、屏幕捕获、内核级访问,也无法防范秘密信息经过转换后产生的所有衍生内容。

在将 s-gw 用于敏感工作流之前,请阅读威胁模型。如怀疑存在漏洞,请通过 GitHub 私密漏洞报告进行报告,而不要提交公开议题。

项目状态

  • 公开的代理服务和客户端源码发行版处于预览质量;编译后的 Rust 执行核心为专有软件。
  • macOS 是主要的开发和测试平台。
  • Windows Credential Manager 支持和 Windows x64 桌面应用已提供,但仍需开展更广泛的原生 QA 测试并进行代码签名。
  • Linux 使用 Secret Service 存储持久解锁材料,并使用经过强化的 systemd 用户服务。Linux x64 桌面应用是未签名的预览版;环境变量解锁仅作为非持久的无头模式备用方案。
  • Windows 和 Linux 桌面安装包在完成签名并通过受支持目标系统上的验证前,均为 CI 预览版。未使用 Developer ID 签名的 macOS 发行版会在发行说明中标注为未签名,并且需要覆盖 Gatekeeper 限制。
  • 此仓库已为开源协作做好准备,但涉及安全的更改应附带针对性测试,并在行为变更时更新威胁模型。

文档

贡献

欢迎提交问题和目标明确的拉取请求。请从 CONTRIBUTING.md 开始,浏览 good first issue,如有可能导致凭据泄露或绕过审批的情况,请参阅 SECURITY.md。

计划发布、撰写文章或发布社区帖子?docs/community-launch.md 中的维护者说明有助于保持公开表述一致、诚实。

许可证

本仓库中的源代码采用 Apache-2.0 许可证。请参阅 LICENSE 和 NOTICE。单独维护的 Rust 核心及其编译后的二进制文件为专有软件,不采用 Apache-2.0 许可证。第三方名称和美术作品仍归其各自所有者所有,相关信息见 TRADEMARKS.md 和第三方声明。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。