@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 expiresVault可选模式
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 | 运行时输入验证 |
许可证
麻省理工学院
