mcpField
A
ai-agent-firewall

ai-agent-firewall

本地服务
github.com/lucaslubi安全112 周前更新

关于 ai-agent-firewall

ai-agent-firewall 是在支付执行前按签名授权书检查支付请求的 MCP 服务,为 AI Agent 及其运营者提供支付授权、签名信任判定和可验证的审计证明。

主要功能

  1. 01检查操作并返回签名判定
  2. 02依据授权书批准支付
  3. 03执行收款方与支出限额
  4. 04生成哈希链式审计证明

适用场景

  1. 01阻止向未批准的收款方付款
  2. 02执行单笔或总支出限额
  3. 03核查支付判定的证明

MCP 相关

提供操作评估、授权书验证、支付授权和审计证明等 MCP 工具。可在本地以默认拒绝模式运行,也可通过 HTTP 连接核心服务。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"com-fidacy-ai-agent-firewall": {
"command": "npx",
"args": [
"-y",
"@fidacy/mcp"
],
"env": {
"FIDACY_ENGINE_API_KEY": "<FIDACY_ENGINE_API_KEY>",
"FIDACY_OPERATOR_EMAIL": "<FIDACY_OPERATOR_EMAIL>",
"FIDACY_MODE": "<FIDACY_MODE>"
}
}
}
}
启动命令npx -y @fidacy/mcp
需要配置的环境变量
FIDACY_ENGINE_API_KEY密钥Optional: enables signed trust verdicts (assess_action) and anchors session digests.
FIDACY_OPERATOR_EMAILOptional and opt-in: registers this install so the operator can claim its history.
FIDACY_MODEOptional: 'http' for the hosted core.

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

安装包
npm@fidacy/mcp0.7.1

工具

12

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

参数类型必填说明
payeestring是收款方标识符
amountnumber是以授权货币计的金额
purposestring是用你自己的话说明本次付款的实际原因。该内容会以可读形式持久记录在防篡改审计记录中(无论 ALLOW 或 DENY),并成为事后证明的一部分,因此请填写真实原因。
categorystring是用途类别(必须为授权允许的类别)
currencystring是ISO 4217 货币代码
invoiceRefstring否可选的发票标识。设置后,Fidacy 会强制每张发票只能支付一次:对同一 invoiceRef 的第二次请求将被 DENIED,无论金额多少。
idempotencyKeystring否可选。如果有,请提供你为此付款指定的密钥(订单 ID、任务 ID 等)。留空时,Fidacy 会根据付款本身生成密钥,这是更安全的默认选项:重试同一笔付款会生成相同的密钥,而自行编造的密钥不会。

详细介绍

@fidacy/mcp

fidacy-mcp MCP server

Fidacy blocks a BEC lookalike-payee payment, then allows the legit one with a signed Ed25519 grant

AI Agent 的操作防火墙。可即插即用的 MCP 服务,在资金转移之前,依据经过加密签名的授权指令拦截支付操作。 非托管:Fidacy 负责授权和证明,但绝不持有资金。

安装一次,即可用于任何兼容 MCP 的 Agent:Claude Code、Claude Desktop、 Hermes、OpenClaw,以及其他任何支持 MCP 的工具。

npm license 适用对象: Claude Code · Claude Desktop · OpenClaw · Hermes · Brex CrabTrap

你的 Agent 现在可能正在给骗子付款。 它可能因提示词注入而付给错误的收款人、支付虚高金额,或对同一张发票重复付款——而你的日志并非证据。Fidacy 会在资金转移之前拦截,并提供经过签名的判定,任何人都可以使用公钥验证。你不必信任我们——检查签名即可。

快速开始(免费、本地优先、无需账户)

{
  "mcpServers": {
    "fidacy": { "command": "npx", "args": ["-y", "@fidacy/mcp"] }
  }
}

在你的设备上运行,支持离线,默认拒绝。在 ~/.fidacy/config.json 中添加可信收款人和限额。你可以使用 /.well-known/jwks.json 中的公钥自行验证任何判定。

为什么

Agent 可能产生幻觉,或因提示词注入而发起错误支付:收款人错误、金额错误、发票伪造。提示词级防护具有概率性,也可能被绕过。@fidacy/mcp 是一个位于 Agent 意图与执行器之间的确定性关卡:除非操作通过签名授权指令的验证,否则一律无法执行;每项判定都会写入不可变的哈希链审计记录。

执行模型

  1. 将 @fidacy/mcp 注册为 Agent 唯一具备支付能力的工具。不要向 Agent 提供原始支付工具。工具清单就是运行时防火墙。
  2. Agent 调用 request_payment。Fidacy 会根据授权指令检查该请求(收款人允许列表、单笔交易限额、总限额、货币、时间范围、撤销状态)。
  3. ALLOW 会返回一个短时有效的 Ed25519 授权令牌。DENY 不会返回授权令牌,并会指出违反的规则。下游执行器必须要求提供授权令牌,因此被拒绝的操作无法继续。
  4. 每项判定都会追加到哈希链日志中。get_audit_proof 会返回可移植、可验证的证明。

一次安装,两种后端

@fidacy/mcp 在一次安装中提供两种互补能力:

  • 判定层(建议性):assess_action 调用 Fidacy 实时引擎,并返回签名的信任判定。它不会转移资金;只会给出判定,其证明(riskPayloadJws + signingKeyId)可由任何人通过 @fidacy/verify,使用引擎的 JWKS(位于 /.well-known/jwks.json)进行验证。
  • 支付防火墙(强制执行):request_payment / verify_mandate / get_audit_proof 通过核心功能,根据签名授权指令拦截并证明支付操作,同时返回短时有效的 Ed25519 授权令牌。

概念模型:assess_action -> 引擎(签名判定); request_payment 及相关工具 -> 核心功能(支付防火墙)。

工具

工具后端用途
assess_action引擎对拟议操作给出签名的 Fidacy 信任判定。仅供参考。
request_payment核心功能授权支付操作。返回 ALLOW + 授权令牌,或 DENY + 规则。
verify_mandate核心功能读取授权指令信封和 Fidacy 公钥。
get_audit_proof核心功能返回针对判定 ID 的哈希链证明。
assess_action

返回实时引擎针对拟议操作签发的 Fidacy 信任判定。签名证明为 riskPayloadJws + signingKeyId,任何人都可以通过 @fidacy/verify,使用 {engineUrl}/.well-known/jwks.json 进行验证。

输入:

  • kind(可选,默认为 ap2_payment):可选值为 ap2_payment、 message_send、voice_call、custom、claim_document。
  • mandate(必填):该 kind 对应的操作/授权对象。
  • mandateType、spendingMandate、idempotencyKey、a2a.task_id(可选)。

环境变量:

变量默认值用途
FIDACY_ENGINE_URLhttps://api.fidacy.comFidacy 引擎的基本 URL。
FIDACY_ENGINE_API_KEY(无)具有 assess:write 作用域的 fky_live_/fky_test_ 密钥。

即使没有 FIDACY_ENGINE_API_KEY,服务也会启动;工具始终会注册。只有在没有密钥时调用 assess_action,才会返回一条实用错误提示,告知你需要设置该密钥。密钥绝不会被记录、回显或附加到任何错误中。

安装

npm install -g @fidacy/mcp   # or run via npx, no install
Claude Code
claude mcp add fidacy -- npx -y @fidacy/mcp
Claude Desktop(claude_desktop_config.json)
{
  "mcpServers": {
    "fidacy": { "command": "npx", "args": ["-y", "@fidacy/mcp"] }
  }
}
Hermes(config.yaml)
mcp_servers:
  fidacy:
    command: npx
    args: ["-y", "@fidacy/mcp"]
OpenClaw

通过 Tools 面板或 Agent 配置中的 mcpServers 块添加同一服务。任何兼容 MCP 的宿主都使用相同的命令。

接入真实核心(生产环境)

MCP 层通过一个接口(FidacyCore)与核心交互。你的代码仓库仍保持私有。设置 FIDACY_MODE=http 并实现以下三个端点:

  • POST /v1/mandate/get -> Mandate
  • POST /v1/decide -> Decision(运行你的 Ed25519/AP2 验证并追加审计记录)
  • POST /v1/audit/proof -> AuditProof

无需更改 MCP 层。

开发

npm install
npm run build
npm start      # stdio server, in-memory demo mandate

评论

支持 Markdown

第一次接触 MCP?

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

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