mcpField
O
Oakallow

Oakallow

远程服务
oakallow.com安全15 天前更新

关于 Oakallow

Oakallow 是托管的远程 MCP 服务,为 AI Agent 的工具调用加入权限检查、人工审批和审计记录。它提供签名决策回执,并可通过 OakGuard 在获准后转发调用。

主要功能

  1. 01检查工具权限并列出工具
  2. 02创建及查询人工审批请求
  3. 03签发决策回执并记录审计
  4. 04OakGuard 获准后转发调用
  5. 05提供状态与额度资源

适用场景

  1. 01在执行高风险工具操作前要求人工审批
  2. 02按组织权限规则控制 Agent 的工具调用
  3. 03查询待处理审批并跟踪其状态

MCP 相关

Oakallow 向 MCP 客户端提供权限检查、审批、工具清单和状态资源。通过 OakGuard 注册的 MCP 服务,其工具调用可在获准后由 Oakallow 转发。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://api.oakallow.io/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

详细介绍

Oakallow MCP 服务

CI

为 AI Agent 工具执行提供运行时权限、审批和审计治理。

Oakallow 是托管的远程 MCP 服务。它位于 Agent 与其希望执行的操作之间,可在执行时检查具体操作,在有风险时要求人工审批,使用一次性签名令牌进行授权,并将操作记录到不可变的审计日志中。

此连接器的用途

Oakallow 会在可能还使用其他连接器的工作流中注入一个治理检查点。Agent 先进行调查(例如,通过其他连接器查询账户),然后形成建议,并调用 Oakallow 请求对该操作进行审批。人工审批者随后会在 Oakallow 控制面板或移动应用中,在强制执行多因素身份验证的情况下做出决定。

该连接器是请求方和传递通道,而非决策者:

  • 它可以列出你的工具、检查权限、请求审批、为每项决定返回签名回执;对于通过 OakGuard 网关连接的服务,它还可以在审批通过后转发调用。
  • 它不能代替人工审批或拒绝。决定会在单独的、绑定 MFA 的界面(控制面板)中做出,绝不会通过连接器进行。

标准工具

工具用途仅读取
list_my_tools列出已登录用户在指定组织中可用的工具(org 参数;见下文)是
check_permission查询给定工具调用是否会被允许、需要审批或被拦截(接受 org 参数;见下文)是*
list_pending_approvals列出仍在等待人工决定的审批请求是
check_approval_status通过参考编号查询待处理审批请求的状态是

* check_permission 只会返回只读判定。它不会创建审批请求或参考编号。(审批请求及其 REF-… 会在你通过 oakallow 调用受管控工具时创建。)它确实有一个有意设计的副作用:检查未注册的工具时,Oakallow 会自动为其创建一个受管控的草稿条目(采用保守的默认设置,在无法确定时拒绝),以确保之后的调用受到治理,并让所有者能在控制面板中进行分流处理。这是有意为之:未知工具绝不会被默默信任。

选择组织

一个 Oakallow 账户可以加入多个组织,每个组织都有自己的工具、权限规则、审批者和提醒渠道。因此,必须针对正确的组织检查操作,因为这决定了会向谁请求审批,以及将依据哪些规则进行审批。

check_permission 和 list_my_tools 接受一个可选的 org 参数:组织的外部 ID(例如 org_oak_…)。规则如下:

  • **账户中只有一个组织:**省略 org。连接器会使用你唯一的组织。
  • **账户中有多个组织:**传入目标组织的 org。如果省略此参数,调用会被拒绝,并返回指引,而不是猜测错误的组织。

不要要求连接器列出你的组织;它没有组织枚举工具。请改为**从该组织的控制面板下载组织专属技能。**每个组织的技能都包含其自身的组织 ID,并会指示 Agent 传入该 ID。为你参与的每个组织各安装一个技能;Agent 会读取匹配的技能,并在每次调用时传入正确的 org。

连接器会根据你已登录的身份验证你传入的 org:你只能指定自己实际有权操作的组织(你是该组织的团队所有者或管理员,或者属于该组织的审批者组)。指定无权访问的组织会被拒绝。技能只是为了方便使用,并不会授予访问权限。

调用受治理的工具

除了四个标准工具外,tools/list 还会返回组织批准的客户自定义工具。通过 oakallow 调用其中一个工具,就会创建审批请求:没有单独的“请求审批”工具。直接调用工具接受两个可选参数,以及上文所述的 org:

参数用途
reason对调用原因的简短、非敏感概述。人工审批者会看到这段内容。Oakallow 会在存储前对 SSN、卡号、电子邮件、电话号码和地址模式进行脱敏处理。
agent发起调用的 Agent 标识符(名称、代码或数字)。组织的治理报告会使用此标识符显示提交每次调用的 Agent,而不是将所有调用都归因于已登录的账户。请始终使用相同的值。调用者使用 oak_agent_ 令牌进行身份验证时,此参数会被忽略,并使用令牌自身的身份。

响应为 allowed(在对应的连接器上执行操作)、requires_approval(已创建审批请求,并返回一个 REF-…,可通过 check_approval_status 轮询)或 disabled(停止;该操作受策略阻止)之一。

已签名的决策凭证

每次对已批准工具做出的权限决策都会返回已签名的决策凭证,无论结果如何:allowed、requires_approval 和 disabled 都以相同方式签名。该凭证是对决策、工具、调用参数哈希值、租户、资源、方法和组织生成的 HMAC-SHA256 签名,并会被存储,以便稍后重新验证决策。disabled 凭证证明 oakallow 阻止了该操作。

如果决策无法签名或记录,检查会采取失败关闭策略:oakallow 不会返回无法证明的结果。

OakGuard 网关

默认情况下,oakallow 是工具旁的检查点:它负责决策,由你执行操作。OakGuard 允许组织向 oakallow 注册自己的 MCP 服务,让 oakallow 转而成为连接这些服务的传输层:

  • 下游必须使用 OAuth 2.1。 除非服务声明了 OAuth 2.1 的必备项(使用 S256 PKCE 的授权码流程、RFC 9728 和 RFC 8414 发现机制、不支持密码授权),否则注册会被拒绝。oakallow 会将自身注册为服务的 OAuth 客户端,并加密保存下游令牌。
  • 工具会以实际名称和架构显示在 tools/list 中。新发现的工具会作为草稿添加,在管理员启用前必须经过审批。
  • 只有在权限规则允许或经人工批准后,调用才会转发。 每项审批只会向下游传递一次。
  • 负载会被传递,但不会留存。 oakallow 会通过两段 TLS 连接传递请求和响应,不会存储或记录它们。凭证和审计日志记录的是决策,而非数据。

可在控制面板的 OakGuard 选项卡中注册、暂停和撤销服务。

资源

oakallow 提供两个只读 MCP 资源。它们是预检信号,Agent(或客户端 UI)可在决定是否通过 oakallow 路由操作前读取。两者都需要 mcp:read 范围,都不是工具调用,也都不收费。

资源返回内容仅读取
oakallow://status已登录会话的连接器运行状态:状态、端点、服务版本、协议版本和已授予的范围。读取成功本身即可证明会话有效。不返回账户身份或个人身份信息。是
oakallow://credits对于本会话所解析到的组织,受治理的调用当前是否有资金支持,便于 Agent 在请求无法支付的审批前快速失败。是

oakallow://credits 的范围仅限调用方自己的账单组织,并且与真实工具调用采用相同的组织解析方式,因此 can_fund: true 的结果确实意味着后续审批会获得资金支持(包括团队资金池回退)。它只返回 can_fund 布尔值以及组织名称和外部 ID。它有意不披露余额:金额仅会显示在仪表板中,供团队所有者查看,绝不会通过连接器提供。如果会话未解析到任何组织,或解析到多个组织,它会返回 can_fund: false 和原因,而不会猜测应向哪个组织收费。

连接

不支持匿名访问。 连接前必须先拥有 oakallow 账户;端点接受两种凭据类型:供人工操作的客户端使用的交互式 OAuth 2.1(PKCE),或供自主 Agent 使用的 oak_agent_ bearer 令牌(参见下文的自主 Agent)。

对于人工操作的 OAuth 流程,请在 MCP 客户端(Claude、Claude Desktop、Cowork、ChatGPT 或任何 Streamable HTTP MCP 主机)中,将 https://api.oakallow.io/mcp 添加为自定义连接器。系统会将你重定向至 Oakallow 登录页面,并请求你批准所需范围:

  • mcp:read:列出工具、查看待处理的审批、检查权限、读取活动记录。
  • mcp:write:创建审批请求并签发运行令牌。

无需手动配置这些内容:未经身份验证的请求会返回 401,并附带一个 WWW-Authenticate 标头,指向端点的 RFC 9728 受保护资源元数据(/.well-known/oauth-protected-resource),因此符合规范的 MCP 客户端会自动发现授权服务器并运行 OAuth 流程。

请参见 examples/,其中包含 Claude Desktop 配置、OAuth 流程指南和 oak_agent_ 令牌使用指南。tools.json 包含标准工具的准确架构。

自主 Agent(oak_agent_ 令牌)

OAuth 要求人工完成交互式登录。独立运行的自主 Agent 则使用预先签发的 bearer 令牌进行身份验证,连接到同一个 https://api.oakallow.io/mcp 端点:Authorization: Bearer oak_agent_...。端点会在 OAuth 提供方之前检查 oak_agent_ bearer,因此无需同意页面或交互式登录。

Agent 身份仅限于一个组织,可以提交权限请求并检查请求,但绝不能批准请求;请求频率按身份限制;令牌仅以 SHA-256 哈希形式存储(原始令牌仅在创建时显示一次)。请在仪表板的 Account → Agents 页面创建令牌(仅限所有者/管理员)。完整模型请参见 oakallow.io/info/agents。

技能

SKILL.md 是一份 Agent 技能文档,说明何时以及如何使用 oakallow 工具:请求、批准、轮询和执行工作流,如何表述审批理由,以及遇到 allowed、requires_approval 或 disabled 判定时应采取的操作。请让你的 Agent 参考该文档,以正确管控工具操作。

触发提示词

PROMPT.md 中提供了简短的一行提示,可复制粘贴到 Agent 的系统提示词中,让它确实调用该技能。技能是操作流程;触发提示词则负责让 Agent 注意到它。这里有三个选项,从“每次工具调用都必须经过审批”到“指定的一组客户名称必须经过审批”,另有一个适用于实际请求的内联示例模式。

受管控调用的工作方式

  1. Agent 使用自己的凭据、reason 和 agent ID,通过 Oakallow 调用工具。
  2. Oakallow 为指定的工具、租户和资源解析权限规则,并为判定结果签署一份决策凭证。
  3. 如果允许执行该操作,Agent 就会执行:对于直接工具,通过自己的连接器执行;对于 OakGuard 网关工具,则由 Oakallow 转发执行。
  4. 如果需要审批,系统会创建审批请求、通知人工审批者,并向 Agent 返回一个 REF-…,供其轮询。人工审批者通过 MFA 批准后,该操作会恰好执行一次。
  5. Oakallow 会写入不可变的审计记录,记录处理结果。

对于直接工具,Oakallow 位于执行路径之外:它管控并记录上报的内容,不会运行你的工具,也不会收到除经过 PII 清理的原因之外的任何工具参数。对于 OakGuard 网关工具,Oakallow 会传输获批的调用,但仍不会保留任何有效负载。

在 MCP 之外,REST API(POST /v1/tokens/mint)还可以签发一次性、采用 HMAC 签名的运行令牌,将工具与其参数绑定,供你的后端在执行前验证。

许可证

请参阅 LICENSE。

更新日志

请参阅 CHANGELOG.md。


© Islemonics Studios LLC。专利申请中。

评论

支持 Markdown

第一次接触 MCP?

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

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