AI交易风险控制服务

为AI交易代理提供风险控制和行为指导的服务,包括预交易验证、盈亏跟踪、会话校准、行为分析和自然语言意图路由等功能。

  • by Beneat-AI
  • TypeScript
  • 混合部署
  • 3 星标
  • 更新于
在 GitHub 查看 mmmmuhib/beneat-mcp

使用说明

@beneat/risk mcp服务器

为人工智能交易代理提供风险执行和行为指导。19个工具(18个核心+1个语义路由器)通过MCP(stdio+HTTP)和一个简单的REST API-交易前验证、损益跟踪、会话校准、行为分析和通过Cohere Rebank的自然语言意图路由。

参考实现连接到 Solana+漂移协议。链适配器位于 src/lib/ --将它们交换出去以使用任何交换或链。看 适应其他链条.

你的代理人交易。Beneat确保它不会爆炸。

托管实例

Beneat MCP在线 https://beneat-mcp.onrender.com。无需安装。

添加到任何MCP客户端配置:

{
  "mcpServers": {
    "beneat": {
      "type": "streamable-http",
      "url": "https://beneat-mcp.onrender.com/mcp"
    }
  }
}

REST API

curl https://beneat-mcp.onrender.com/health                                         # Health check
curl https://beneat-mcp.onrender.com/api/tools                                      # Tool manifest
curl -X POST https://beneat-mcp.onrender.com/api/tools/beneat_get_status \
  -H "Content-Type: application/json" -d '{"wallet_address":"YOUR_WALLET"}'          # Call any tool
curl -X POST https://beneat-mcp.onrender.com/api/route \
  -H "Content-Type: application/json" -d '{"intent":"am I safe to trade?"}'          # Semantic routing

服务托管

cd mcp-server
npm install && npm run build
npm run start:http    # HTTP on localhost:3001
npm run start         # stdio transport

自定义REST API使用 http://localhost:3001 而不是托管URL。

然后在代理的系统提示中添加一行:

在执行任何交易之前,请致电 beneat_check_trade 带上你的钱包地址。每次交易后,请致电 beneat_record_trade 与P&L。

交易逻辑无代码更改。MCP服务器负责执行。

运作原理

Agent wants to trade
  │
  ├─ beneat_calibrate ──→ Sets risk rules (daily loss limit, max trades, cooldown)
  │                        Returns unsigned TXs to deploy on-chain
  │
  ├─ beneat_check_trade ──→ Pre-flight: lockout? cooldown? budget left?
  │                          Returns approved/denied + coaching context
  │
  ├─ [Agent executes trade]
  │
  ├─ beneat_record_trade ──→ Logs P&L in session tracker
  │                           Daily loss limit breached?
  │                             ├─ YES → Lockout triggered → AgentWallet FROZEN
  │                             └─ NO  → Continue trading
  │
  └─ beneat_check_trade ──→ DENIED (vault locked, wallet frozen)
                             Agent blocked until lockout expires

Vault可选模式

7个工具在没有Beneat vault帐户的情况下工作,回到Helius交易历史分析:

模式 执行 信任评分上限 要求
强制执行 (带保险库) 链上锁定+代理钱包冻结 100 已部署保险库
咨询 (无保险库) 会话跟踪+推荐 40 只是一个钱包地址

任何Solana交易代理都可以在咨询模式下立即开始使用Beneat。创建保险库以解锁完全强制执行。

工具(19)

核心执法

工具 目的
beneat_check_trade 飞行前检查:锁定、冷却、交易计数、每日损失预算。返回批准/拒绝,并说明原因和可选的指导背景
beneat_record_trade 记录交易损益。检查每日损失限额,如果违反则触发锁定,冻结AgentWallet
beneat_calibrate 根据历史自动校准风险参数。3层:基于资本→ 行为的→ 定量(VaR、Sharpe、Kelly)。返回未签名的TX
beneat_recalibrate 使用最新历史记录重新运行校准
beneat_set_policy AgentWallet策略控制:冻结、还原、同步、状态

代理教练

工具 目的
beneat_get_session_strategy 时段计划:模式(激进/正常/复苏)、最大交易量、重点市场、止损条件
beneat_get_playbook 个性化剧本:身份、主要/受限市场、凯利头寸规模、行为规则、政权检测
beneat_get_analytics 行为分析:幻觉率、倾向、报复性交易、过度自信。返回机器可读的结果 directives[]
beneat_calibrate_confidence 地图报告了历史准确性的置信度(0-1)。返回校准置信度+头寸大小建议

发现与监控

工具 目的
beneat_get_status 保险库锁定状态、冷却时间、剩余交易、can_trade标志
beneat_get_profile 链上声誉评分(8个评分,每个评分0-99)、获胜率、交易历史
beneat_verify_agent 信任评分(0-100),风险等级(A-F)。在接受交易对手风险之前使用
beneat_health_check 投资组合健康状况:浮动perp头寸(11个市场)、未实现损益、警告
beneat_get_leaderboard 按信任等级、纪律、获胜率、损益对代理人进行排名
beneat_register_agent 自我注册以跟踪排行榜
beneat_cancel_swap 诊断卡住的swap_in_progress状态

管理和注册

工具 目的
beneat_reset_session 重置内存中的交易时段(用于基准测试)
beneat_set_advisory_limits 为会话配置咨询风险限额(由基准使用)
beneat_register_agent 在排行榜上注册AI代理进行跟踪

语义路由

工具 目的
beneat_smart_route 通过Cohere-Rerank将自然语言意图路由到最相关的工具。会话感知评分将语义相关性(70%)与每个工具的会话状态权重(30%)相结合。优雅地倒退 COHERE_API_KEY.

也可用作 POST /api/route 对于MCP之外的REST客户端。

校准层

校准引擎会根据代理商的交易历史进行调整:

层级 所需交易 方法 指标
第1级 0-4 基于资本 策略类型+风险承受能力→ 基本规则
第2层 5-19 行为 胜率、连续亏损、报复交易率
第3层 20+ 定量 风险值95%,夏普比率,凯利分数,最大回撤,利润系数

策略预设:

策略 每日最大交易量 冷却
scalping 50 30秒
day_trading 20 120秒
swing_trading 5 600秒
conservative 3 19世纪

风险承受水平:

级别 每日损失限额 锁定持续时间
low 1%的资本 24小时
medium 3% 12小时
high 5% 6小时
degen 10% 2小时

快速开始

# Build
cd mcp-server
npm install
npm run build

# Run the demo (full enforcement lifecycle)
npm run demo

# Run E2E tests (all 19 tools)
npm run test:e2e

# Start the server (stdio transport)
npm run start

# Start HTTP server (REST + MCP-over-HTTP)
npm run start:http

# Open MCP Inspector UI
npm run inspect

环境变量

变量 必填 默认 用途
SOLANA_RPC_URL 没有 https://api.devnet.solana.com Solana RPC端点
HELIUS_RPC_URL 否 返回 SOLANA_RPC_URL Helius RPC端点
HELIUS_API_KEY 用于分析/校准 - 交易历史记录API
SOL_PRICE_USD 没有 150 美元兑换的SOL价格
COHERE_API_KEY 否 (回退模式) 一致性为语义工具路由重新排列API密钥

建筑

src/
├── index.ts                    # Server setup, 19 tool registrations, --http flag
├── http-server.ts              # HTTP server: REST endpoints + /api/route semantic routing
├── tool-registry.ts            # ToolDefinition interface, TOOL_REGISTRY, tool document builder
├── tools/                      # One file per tool
│   ├── check-trade.ts          # Core: pre-flight authorization
│   ├── record-trade.ts         # Core: P&L logging + lockout trigger
│   ├── calibrate.ts            # Core: 3-tier auto-calibration
│   ├── analytics.ts            # Behavioral analysis + directives
│   ├── playbook.ts             # Personalized trading playbook
│   ├── session-strategy.ts     # Dynamic session limits
│   ├── smart-route.ts          # Semantic tool routing via Cohere Rerank
│   └── ...                     # 12 more tools
├── lib/
│   ├── quant-engine.ts         # Calibration + analytics engine (~1250 lines)
│   ├── vault-reader.ts         # On-chain vault/profile/Drift deserialization
│   ├── transaction-builder.ts  # Unsigned VersionedTransaction construction
│   ├── session-store.ts        # In-memory session tracking + inferSessionState()
│   ├── reranker.ts             # Cohere Rerank client with graceful fallback
│   ├── helius-client.ts        # Helius API with circuit breaker
│   ├── agentwallet-client.ts   # AgentWallet policy enforcement
│   ├── scoring.ts              # Trust score (0-100) computation
│   ├── types.ts                # All TypeScript interfaces
│   ├── constants.ts            # Program IDs, seeds, strategy defaults
│   ├── utils.ts                # safeCall, bigintReplacer, jsonContent helpers
│   └── pda.ts                  # Vault & profile PDA derivation
└── generated/vault/            # Codama-generated IDL types (do not edit)

关键设计决策

从不签署交易。 服务器构建未签名的 VersionedTransaction 对象(base64编码)供调用者签名。私钥永远不会接触MCP服务器。

保险库可选回退。 当不存在保险库时,工具会回退到Helius交易历史中进行分析和咨询模式执行。代理可以在没有任何链上设置的情况下启动。

机器可读输出。 结构化分析回报 directives[] (例如。, { type: "avoid_market", severity: "warning", params: { market: "PUMP_FUN" } })代理可以通过编程方式进行消费。

会话状态分类。 教练引擎将代理分为5种状态(正常、无后入、倾斜、热破、后入回),并相应地调整头寸规模、交易限额和市场建议。

链上项目

计划 地址 目的
保险库 GaxNRQXHVoYJQQEmXGRWSmBRmAvt7iWBtUuYWf8f8pki 风险执行库
漂移 dRiftyHA39MWEi3m9aunc5MzRF1JYuBsbn6VPcn33UH 永续期货(头寸读数)

PDA种子: ["vault", owner] 和 ["trader_profile", authority]

适应其他链条

业务逻辑——校准、会话状态、行为分析、辅导、评分、语义路由——与链无关。中只有四个文件 src/lib/ 是索拉纳特有的。分叉并替换它们以针对任何交易所或链:

文件 要替换什么
src/lib/vault-reader.ts 您链的帐户/状态读取器
src/lib/helius-client.ts 您的交易所的交易历史API
src/lib/transaction-builder.ts 您的链的未签名交易生成器
src/lib/constants.ts 您的程序ID、合同地址、种子

一切都在 quant-engine.ts, session-store.ts, scoring.ts, reranker.ts,以及所有 src/tools/ 保持不变。

咨询模式(无需连锁)

19个工具中有14个完全在内存会话状态下运行-无需钱包,无需RPC,无需API密钥。适用于测试、CEX代理或链上状态不可用的任何环境。

依赖项

包装 用途
@modelcontextprotocol/sdk MCP服务器框架
@solana/kit 现代Solana RPC+PDA衍生
@solana/web3.js 交易大楼
zod 运行时输入验证

许可证

麻省理工学院