mcpField
S
smartpolicy

smartpolicy

本地服务
smartpolicy.io安全016 周前更新

关于 smartpolicy

SmartPolicy 为 AI Agent 和智能合约提供基于链上策略注册表的运行时授权,适用于需要将规则与执行位置分离的团队。规则可通过链上事务更新;MCP 服务和 REST API 可发放短时签名授权。

主要功能

  1. 01在链上注册成员、条件和有效期
  2. 02通过不可变注册表检查策略
  3. 03发放短时 EIP-712 签名授权
  4. 04提供 MCP 服务与 REST API
  5. 05以 Solidity 修饰器保护合约

适用场景

  1. 01在执行前检查 Agent 是否获准操作
  2. 02让后端验证签名授权
  3. 03更新访问规则而不重新部署合约

MCP 相关

SmartPolicy 的 MCP 服务向 AI 系统提供策略授权检查,并可返回短时签名授权。该服务与 REST API 连接链上策略注册表。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"smartpolicy-protocol-smartpolicy": {
"command": "npx",
"args": [
"-y",
"@smartpolicy/mcp"
],
"env": {
"SMARTPOLICY_REGISTRY": "<SMARTPOLICY_REGISTRY>",
"SMARTPOLICY_VERIFIER": "<SMARTPOLICY_VERIFIER>",
"SMARTPOLICY_RPC_URL": "<SMARTPOLICY_RPC_URL>",
"SMARTPOLICY_ISSUER_KEY": "<SMARTPOLICY_ISSUER_KEY>"
}
}
}
}
启动命令npx -y @smartpolicy/mcp
需要配置的环境变量
SMARTPOLICY_REGISTRYPolicyRegistry contract address (omit for the public Sepolia default)
SMARTPOLICY_VERIFIERGrantVerifier contract address (omit for the public Sepolia default)
SMARTPOLICY_RPC_URLEVM RPC endpoint (omit for the public Sepolia default)
SMARTPOLICY_ISSUER_KEY密钥Optional grant-issuer private key; enables the grant_issue tool

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

安装包
npm@smartpolicy/mcp0.2.0

工具

8

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

参数类型必填说明
actionstring是操作名称(例:"withdraw")或带 0x 前缀的 bytes32。名称会进行 keccak256 哈希,与受保护合约中的 keccak256("withdraw") 一致。
subjectstring是
policyIdany是策略 ID,格式为十进制字符串或整数

详细介绍

SmartPolicy

面向 AI Agent 和智能合约的运行时授权。

只需定义一次策略,即可规定 Agent、用户或合约可以执行哪些操作。 在所有场景中执行该策略:链上通过精简的验证器,链下通过 AI 系统可直接调用的 MCP 服务和 REST API。无需重新部署即可更新规则。

状态(2026-06-12):核心合约已部署到 Ethereum Sepolia (已通过 Etherscan 验证,地址见 contracts/deployments/sepolia.json);54 项 Foundry 测试全部通过;MCP 服务 v0 已打包——运行 npx smartpolicy-mcp 即可零配置连接 Sepolia,运行 npx smartpolicy-mcp deploy 即可通过内嵌字节码在任意链上引导部署;通过未经辅助的新 Agent 执行测试(包括在空链上冷启动)证明可供 AI 直接使用。目前未经审计;成熟前仅供内部使用——尚无公开仓库或注册表条目。 当前状态、决策和恢复工作的方法:PLAN.md。

为什么要做

每个交付 AI Agent 的团队都会遇到同一个难题:Agent 在技术上可以执行其密钥所允许的任何操作,而限制它的方式只有硬编码提示词或重新部署代码。每个智能合约团队也面临着类似的问题:访问规则在部署时就被写入合约。

SmartPolicy 将规则与执行点分离:

  • 策略存放在链上 Registry 中:成员、管理员、条件、过期时间和可变性标志。它是数据,不是代码。更改规则只需发起一笔交易,无需重新部署。
  • 执行发生在操作进行的任何位置:
    • 智能合约继承一个修饰器并检查 Registry(免费调用 view 函数)。
    • AI Agent(或其前置服务)向 MCP 服务 / REST API 询问:“0xAgent 是否可以根据策略 N 执行 action?”,并收到一个短期有效的签名授权(EIP-712),任何合约或后端都可以验证该授权。

本项目不是什么

  • 不是代币。没有协议代币、ICO 或治理作秀。 收入来自费用:链上写入策略收取少量费用,托管 API 按调用计费(x402)。读取和验证均免费。
  • 不可升级。核心 Registry 部署后不可变。信任来自可供你阅读的代码,而不是需要你信任的管理员密钥。新协议版本通过全新部署发布。
  • 不是预言机。SmartPolicy 回答“是否允许?”,而不是“世界上发生了什么?”。依赖外部事实的条件值,由策略所有者选定的来源通过签名授权进行证明。

架构(简版)

┌─────────────┐   MCP / REST (x402 metered)   ┌──────────────────┐
│  AI agents   │ ────────────────────────────▶ │ SmartPolicy MCP  │
│  & services  │ ◀──── signed grants ────────  │ server (TS)      │
└─────────────┘                                └────────┬─────────┘
                                                        │ reads + grant issuance
┌─────────────┐   inherit Gate modifier        ┌────────▼─────────┐
│  Protected   │ ────── view calls ──────────▶ │ PolicyRegistry   │
│  contracts   │                               │ (Base, immutable)│
└─────────────┘                                └──────────────────┘

完整设计以及各项决策的依据(包括链、费用、信任模型,以及从 v1 中有意删去的内容),请参阅 ARCHITECTURE.md。

仓库结构

contracts/   Solidity core: PolicyRegistry, PolicyGate, interfaces (Foundry)
mcp/         MCP server + REST API (TypeScript, x402 metering)
sdk/         TypeScript client SDK (@smartpolicy/sdk) — reads, grants, tx-building
docs/        Integration guides (planned)

项目沿革

SmartPolicy 是对 2025 年原型(“Smart Policy Protocol”,Sepolia)中最优秀构想的全新重写:策略注册表、分层集成模式,以及链上与签名令牌相结合的执行方式。重写版有意删去了 SPOL 代币 / ICO / 治理套件、体育赛事预测预言机、工厂合约和可升级代理信任模型,并修复了已知安全问题(tx.origin 检查、缺少重入保护、仅基于请求头的 API 身份验证)。

许可证

Apache-2.0——详见 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

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

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