关于 IntentFence Agent Action Firewall
IntentFence 是为自主 AI Agent 设计的默认拒绝授权防火墙,在关键操作执行前将具体动作与策略绑定并签发短期回执。它还可扫描 MCP 元数据并进行 x402 支付安全检查,但不会执行下游工具。
主要功能
- 01按动作与策略授权并签发签名回执
- 02提供 safe、review、denied 决策
- 03扫描 MCP 元数据风险
- 04检查 x402 报价与端点安全
- 05TypeScript 和 Python SDK 验证回执
适用场景
- 01执行 MCP 或 HTTP 操作前核验授权
- 02支付 x402 费用前评估报价与收款方
- 03审查 MCP 工具元数据中的风险缺项
- 04在本地验证回执及动作摘要后执行操作
MCP 相关
提供托管的 MCP Streamable HTTP 端点和本地 stdio 包,包含动作授权及 MCP 风险扫描工具;部分 x402 相关工具需要付费。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://agentpass-protocol.rmalka06.chatgpt.site/api/mcpclaude mcp add --transport http razel369-intentfence https://agentpass-protocol.rmalka06.chatgpt.site/api/mcp{"mcpServers":{"razel369-intentfence":{"type":"http","url":"https://agentpass-protocol.rmalka06.chatgpt.site/api/mcp"}}}在 Cursor 中打开{"servers":{"razel369-intentfence":{"type":"http","url":"https://agentpass-protocol.rmalka06.chatgpt.site/api/mcp"}}}在 VS Code 中打开{"mcpServers":{"razel369-intentfence":{"type":"http","url":"https://agentpass-protocol.rmalka06.chatgpt.site/api/mcp"}}}{"mcpServers":{"razel369-intentfence":{"serverUrl":"https://agentpass-protocol.rmalka06.chatgpt.site/api/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
10| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| action | object | 是 | |
| action.type | string | 是 | |
| action.method | string | 否 | |
| action.protocol | enum | 是 | mcp | http | a2a | payment | other |
| action.resource | string | 是 | |
| action.payload_sha256 | string | 否 | |
| policy | object | 是 | |
| policy.max_cost | object | 否 | |
| policy.max_cost.amount | number | 是 | |
| policy.max_cost.currency | string | 是 | |
| policy.allowed_resources | array | 是 | |
| policy.allowed_action_types | array | 是 | |
| policy.max_data_retention_hours | number | 否 | |
| policy.require_human_approval_for | array | 否 | |
| context | object | 否 | |
| context.currency | string | 否 | |
| context.quoted_cost | number | 否 | |
| context.data_retention_hours | number | 否 | |
| subject | string | 是 | |
| approval | object | 否 | |
| approval.proof_id | string | 是 | |
| approval.expires_at | string | 是 | |
| approval.approved_at | string | 是 | |
| approval.approved_by | string | 是 | |
| approval.action_digest | string | 是 |
详细介绍
IntentFence
IntentFence 是面向自主 AI Agent 的故障时默认拒绝授权防火墙。 在执行具有重大影响的 MCP、HTTP、A2A 或支付操作前,它会将确切的操作和负载哈希绑定到明确的操作/资源允许列表、支出和保留期限上限,以及可选的操作专属审批。它会返回有效期为五分钟的 ES256 收据;TypeScript 和 Python SDK 会在执行由调用方拥有的回调前验证收据和本地操作摘要。 IntentFence 从不执行下游工具,也绝不应接收凭据或钱包密钥。它还提供 MCP 元数据扫描和 x402 支付安全检查。
safe_to_proceedneeds_reviewdenied
生产环境:https://agentpass-protocol.rmalka06.chatgpt.site
x402scan:https://www.x402scan.com/server/c495c104-dba4-4764-86b1-96b8b0cda48b
官方 MCP Registry:https://registry.modelcontextprotocol.io/v0.1/servers?search=io.github.razel369%2Fintentfence
协议接口
| 接口 | 端点 |
|---|---|
| 操作绑定授权 | POST /api/actions/authorize |
| 付费自助生产策略包 | POST /api/policy-packs |
| 免费 MCP 元数据风险扫描 | POST /api/agent-risk/scan |
| 免费 REST 预览 | POST /api/preflight |
| 付费 x402 决策 | POST /api/preflight/verified |
| 付费调用方观测到的 x402 报价评估 | POST /api/x402-assessments |
| 付费实时 x402 端点就绪状态 | POST /api/x402-readiness |
| 付费实时 Base 钱包风险评估 | GET /api/wallet-risk?address=... |
| 付费签名官方美国 CPI 数据 | GET /api/us-cpi?month=YYYY-MM |
| 收据验证 | POST /api/receipts/verify |
| 公开 ES256 密钥 | GET /.well-known/jwks.json |
| MCP Streamable HTTP | /api/mcp(intentfence_verified_preflight 需付费使用 x402) |
| A2A Agent Card | GET /.well-known/agent-card.json |
| x402 服务清单 | GET /.well-known/x402 |
| 公开汇总指标 | GET /api/metrics |
| OpenAPI | GET /openapi.json |
失败即关闭的操作授权
托管的 MCP 工具 intentfence_authorize_action 和
intentfence_agent_risk_scan 无需 API 密钥即可使用,并设有速率限制。授权会为调用方提供的确切操作和策略摘要签名,有效期为五分钟,但不会验证自我声明的身份或审批来源是否属实。生产环境调用方必须验证回执、重新计算本地操作的哈希,并在遭拒、需审核、过期、不匹配、网络故障或验证失败时阻止操作。使用 TypeScript 的 enforceAction 或 Python 的 run_authorized 辅助函数,可将这一边界落实为可执行逻辑。
扫描器仅评估调用方提供的 MCP 元数据。它会标出缺失的架构、注释、与操作绑定的审批以及财务限额,但不会执行工具、检查源代码,也不会认证安全性或合规性。
通过 x402,官方美国 CPI 的费用为 0.001 USDC;实时就绪性检查和钱包风险检查的费用为 0.002 USDC;签名预检和精确报价评估在 Base 上的费用为 0.005 USDC。调用成功后会同时返回 facilitator 的 PAYMENT-RESPONSE 结算标头和 IntentFence ES256 compact-JWS 回执。
向 Base 收款方付款前,建议先检查钱包风险。该检查会使用实时 Base RPC 活动数据和 GoPlus 恶意地址情报。safe_to_proceed 结果表示未发现已列出的恶意标记,并且评估时确认该地址已在 Base 上建立;但这不能证明其身份、所有权、授权或未来行为。
安装定期付款前检查技能,以便对新的 Base 收款方执行该检查:
npx skills add razel369/intentfence --skill screen-base-wallets
只有在钱包所有者已批准 0.002 USDC 的持续筛查预算,且钱包会强制执行该预算时,该技能才可在不中断自主工作流的情况下运行。如果需审核、遭拒、缺少结算证明、回执无效或服务故障,该技能会阻止后续付款。
如果 Agent 只有端点 URL,实时就绪性检查是最简单的首次调用方式。它会发出一次范围受限且无需凭据的请求,拒绝指向私有网络的目标和重定向,验证返回的质询,绝不会向目标付款,并为结果签名,签名有效期为五分钟。
x402 商户返回未付款的质询后、Agent 为商户付款签名前,建议先进行报价评估。
Agent 提供 subject、target_url、可选的 method(GET、HEAD 或
POST)、base64 编码的 payment_required 标头(最大 16 KiB),以及包含
max_price_usdc 和可选 allowed_payees 列表的策略。IntentFence 会验证
x402 v2、精确的方案、Base 主网、规范的 Base USDC、价格、收款方和精确的资源绑定。它要求使用规范的 USDC EIP-712 域,并将 Permit2、未知的转账元数据和启用的扩展送交审核。只有明确列出匹配的
allowed_payees 条目,safe_to_proceed 结果才会成立;省略该列表会得到 needs_review。IntentFence 绝不会获取目标内容或向目标付款。每个公布的付款选项都必须通过所有自动检查;同时包含安全和不安全选项的集合将被拒绝。
自助式生产策略包
Agent 或开发者无需账户、电子邮件、会议或销售洽谈,即可购买完整的生产防护方案:
POST /api/policy-packs
请求会选择 openai-agents-js、cloudflare-agents、
coinbase-agentkit 或 mcp-gateway,并提供一项确切操作及其允许列表、支出上限、保留期限和可选的审批策略。首次请求会返回一个 x402 质询,要求在 Base 上支付恰好 1 USDC。结算后,同一响应会提供可直接复制的 TypeScript 防护代码、已签名的操作和策略回执、允许/拒绝/超出预算的测试向量,以及失败即关闭的部署检查清单。购买方必须审核生成的代码,并将所有凭据保留在自己的运行时环境中。
立即安装
托管的 MCP 端点无需 API 密钥即可使用:
https://agentpass-protocol.rmalka06.chatgpt.site/api/mcp
安装本地 stdio MCP 包
需要本地进程的 Agent 和 MCP 客户端可以直接运行不可变的公开版本 0.11.0。无需 npm 账号、克隆代码仓库或 IntentFence API 密钥:
npx --yes --package https://github.com/razel369/intentfence/releases/download/mcp-v0.11.0/razel369-intentfence-mcp-0.11.0.tgz intentfence-mcp
该版本构建产物由 GitHub Actions 构建并测试。其 SHA-256 摘要为
f0cdf3df28da8a5c037e48193cbb4602744b5fb0b6c182d877abedb707b1e9f9。
如果客户端支持 Streamable HTTP,请使用上方的托管端点。
在 Agent 运行时中安装
所有适配器都会将凭据保留在调用方运行时中,并且仅在精确的本地操作摘要和 ES256 回执通过验证后,才执行下游操作。
为本地 Agent 启用单次调用付款
本地 stdio 包可以处理 x402 挑战、为其签名、重试工具调用并返回结算结果,无需 MCP 客户端提供特殊支持。除非设置了以下全部三个值,否则自动付款功能处于禁用状态:
INTENTFENCE_EVM_PRIVATE_KEY=<buyer-controlled 0x-prefixed key>
INTENTFENCE_MAX_AUTO_PAYMENT_USDC=0.005
INTENTFENCE_AUTO_PAYMENT_BUDGET_USDC=0.05
请通过 Agent 运行时的密钥管理器或进程环境提供密钥;切勿将其提交到 MCP 配置文件。该包仅对发送至已公布的 IntentFence 收款方的 exact Base 主网 USDC 要求进行签名;任何超过单次调用上限的付款都会被拒绝,并且每次签名尝试都会在签名前计入进程生命周期预算。失败的尝试仍会计入预算,因此重试循环和并发调用都无法超出上限。私钥始终保留在买方的本地进程中,绝不会发送给 IntentFence。
构建精确的机器可读结账信息
Agent 无需推断哪个端点、方法、负载或付款上限适用于某个产品。先读取目录,再提交精确的产品输入:
curl https://agentpass-protocol.rmalka06.chatgpt.site/api/checkout
curl -X POST https://agentpass-protocol.rmalka06.chatgpt.site/api/checkout \
-H "Content-Type: application/json" \
-d '{"product":"wallet-risk","input":{"address":"0x1111111111111111111111111111111111111111"}}'
结账响应免费,且绝不会发起付款。它会返回经过验证的 HTTP 请求、shell 安全的 Agentic Wallet argv、POSIX 和 PowerShell 命令、Coinbase Agentic Wallet MCP 说明、mcpc --x402 调用、相应的 Agent Skill、相应的 MCP 工具和参数,以及精确的 Base USDC 上限。对于能够在首次工具调用前签名的客户端,付费 MCP 工具会公布 _meta.x402。
Agent 仍须审核并授权付款,并要求提供 PAYMENT-RESPONSE 结算证明。
在 VS Code 中安装
打开实时安装面板, 然后选择 在 VS Code 中安装 IntentFence。
安装操作仅包含公开的服务名称、传输方式和 URL。VS Code 会要求你在服务首次启动前审核并信任它。免费策略预览工具无需 API 密钥即可使用。通过托管服务进行付费调用需要支持 x402 的客户端;不支持此功能的运行时可以使用上文预算封顶的本地 stdio 模式。
手动配置 .vscode/mcp.json 或用户配置文件的备用方案:
{
"servers": {
"IntentFence": {
"type": "http",
"url": "https://agentpass-protocol.rmalka06.chatgpt.site/api/mcp"
}
}
}
启动手动配置的服务前,请自行审核服务详情。
安装跨 Agent 支付防护技能
在 Codex、Claude Code、Cursor、Gemini CLI、GitHub Copilot 和其他兼容技能的 Agent 中安装这个开源 Agent Skill:
npx skills add razel369/intentfence --skill guard-x402-payments
当 Agent 即将签署 x402 付款时,此技能会触发。它会指导 Agent 捕获准确的报价、执行调用方定义的上限和收款方允许列表、将钱包凭据保留在本地,并且仅在获准支付 0.005 USDC 评估费用后使用 IntentFence。它还包含一条 Coinbase Agentic Wallet 买方流程,适用于已使用经身份验证钱包的 Agent,并设有金额上限。
只有公开 x402 URL 的 Agent 可以安装范围更窄的实时就绪性技能。它会在不使用凭据或支付目标费用的情况下探测路由、阻止重定向和私有网络目标、验证返回的挑战,并要求在支付 0.002 USDC IntentFence 费用前获得明确授权:
npx skills add razel369/intentfence --skill inspect-x402-endpoints
官方 x402 客户端买方示例会在创建签名器前验证实时费用挑战,且默认禁用付款:
https://github.com/razel369/intentfence/tree/main/examples/x402-buyer
已使用 Coinbase Agentic Wallet 的 Agent 可以通过 GET /api/payments 中的 buyer_quickstart 获取完整的限额结账流程。发布的命令固定到经过验证的 CLI 版本,包含有效的策略正文,并设置 --max-amount 5000,因此无法授权超过 0.005 USDC 的 IntentFence 费用。运行前请查看正文,并明确授权实际付款。
已拥有 Coinbase AgentKit EVM 钱包的项目可以使用固定版本的 AgentKit 适配器。与自动重试不同,它会将付款绑定到准确的 IntentFence URL、Base 网络、规范的 USDC 资产、5000 个原子单位的金额和收款方,然后在签名前调用买方自己的授权函数。对应的机器可读清单发布于 https://agentpass-protocol.rmalka06.chatgpt.site/integrations/coinbase-agentkit.json。
Gemini CLI 可以直接安装此代码库,无需等待 npm 软件包或图库抓取:
gemini extensions install https://github.com/razel369/intentfence
此扩展会启动一个无依赖的本地 MCP 桥接,并提供免费预览,以及需通过 x402 付费的验证预检和报价评估工具。
调用方观察到的 x402 报价评估
首次调用会返回 IntentFence 费用的标准 PAYMENT-REQUIRED 挑战:
curl -i -X POST https://agentpass-protocol.rmalka06.chatgpt.site/api/x402-assessments \
-H "Content-Type: application/json" \
-d '{"subject":"agent:buyer-07","target_url":"https://merchant.example/api/paid-resource","method":"GET","payment_required":"BASE64_PAYMENT_REQUIRED_HEADER","policy":{"max_price_usdc":"0.10","allowed_payees":["0x1111111111111111111111111111111111111111"]}}'
使用有效的 x402 v2 PAYMENT-SIGNATURE 重试相同请求。成功的响应包含经过验证的调用方观察到的挑战字段、通过/审核/拒绝检查、与完整目标 URL 及准确付款要求绑定的 SHA-256 值,以及 ES256 签名的评估回执。评估采用保证级别 caller-observed-x402-quote-assessment 和验证层级 x402-quote-assessment+x402-settled;x402 结算仅涵盖 0.005 USDC 的 IntentFence 评估费用,不包含目标付款。
Base 钱包实时风险
首次调用会返回一项 0.002 USDC 的 x402 挑战:
curl -i "https://agentpass-protocol.rmalka06.chatgpt.site/api/wallet-risk?address=0x1111111111111111111111111111111111111111"
使用有效的 x402 v2 PAYMENT-SIGNATURE 重试相同 URL。成功的响应包含 Base 账户活动、原生代币和 USDC 余额、合约代码哈希、当前恶意地址标记、通过/审核/拒绝检查,以及一份保证级别为 live-base-wallet-risk、有效期为五分钟的 ES256 回执。如果某个必需的实时数据源不可用,端点会默认拒绝,并且不会主动结算评估费用。
重要信任边界
声明输入回执只能证明 IntentFence 评估了调用方提供的策略数据。报价评估回执绑定调用方实际观察到的 PAYMENT-REQUIRED 挑战;它们不能证明 IntentFence 联系过商家,也不能证明商家身份、交付情况或下游强制执行情况。回执签名密钥与 USDC 收款钱包相互独立。IntentFence 不需要付款人的助记词或钱包私钥。钱包风险回执报告的是某一时点观察到的证据,并非身份认证。
本地开发
npm install
npm run dev
对于启动本地 stdio 服务的 MCP 客户端,请使用 npm run mcp:stdio。
Glama 和其他基于容器的托管平台可以构建根目录下的 Dockerfile;它会启动相同的 IntentFence 策略引擎,并通过标准输入/输出响应 MCP 初始化、tools/list 和 tools/call 请求。
docker build -t intentfence-mcp .
docker run --rm -i intentfence-mcp
生产签名密钥以机密 INTENTFENCE_SIGNING_PRIVATE_JWK 的形式存储在 Sites 中。请使用以下命令生成单独的开发密钥:
node scripts/generate-signing-key.mjs /secure/path/intentfence-private-jwk.json
切勿提交生成的私有 JWK。仅在 /.well-known/jwks.json 中发布其公有坐标。
验证
npm run test
npm run lint
npx tsc --noEmit
npm run sdk:check
npm run smoke:mcp:docker
npm run smoke:mcp:stdio
npm run smoke:protocol -- http://localhost:3000
仅当本地冒烟测试需要验证签名回执时,才设置 INTENTFENCE_TEST_PRIVATE_JWK_PATH。
分发
TypeScript 和 Python SDK 位于 sdk/ 中。根目录下的 server.json 已准备好用于官方 MCP Registry,名称为 io.github.razel369/intentfence;公共 MCP 端点使用 Streamable HTTP,且无需 API 密钥。
/.well-known/x402 服务清单和 Bazaar 元数据使两个付费端点都能被 x402 索引和自主工具路由器抓取。生产资源会持续接受检查,原始的已验证预检路由已在 x402scan 注册。
生产环境默认使用 PayAI。若托管运行时配置了 CDP_API_KEY_ID 和 CDP_API_KEY_SECRET,验证和结算将切换为 Coinbase CDP。这使成功的 Bazaar 启用路由结算符合 Coinbase Bazaar 收录条件;仅配置这些变量不会创建列表,也不代表客户收入。
商业路径
最快的免联系生产使用路径,是购买价值 1 USDC 的策略包,用于一次受保护的购买、转账、预订、部署、删除或其他具有重大影响的操作。机器可读的报价和设有额度上限的 Agentic Wallet 结账流程通过 GET /api/payments 发布。
有关协议和安全模型,请参阅 docs/PROTOCOL.md 和 docs/SECURITY.md。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。