借贷协议MCP服务器

DorkFiMCP是为Voi和Algorand上的DorkFi借贷协议提供市场发现、用户位置查询、清算候选扫描和交易准备的协议级MCP服务器。

  • by NautilusOSS
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 NautilusOSS/DorkFiMCP

使用说明

DorkFiMCP

协议MCP服务器 多克菲 Voi和Algorand的贷款协议。

建筑

DorkFiMCP是位于基础设施MCP层之上的协议级MCP:

UluCoreMCP / UluVoiMCP / UluAlgorandMCP / UluWalletMCP / UluBroadcastMCP
                                ↓
                           DorkFiMCP
                                ↓
                        DorkFi API (reads)
                        On-chain (writes)

数据来源:

  • DorkFi API (dorkfi-api.nautilus.sh)--预先索引的市场数据、用户健康因素、TVL和头寸数据。用于所有读取操作。
  • 在链上 (algod)——用于事务准备(建议参数、ABI编码)。

DorkFiMCP手柄:

  • 利用DorkFi API的实时数据发现市场
  • 具有预先计算的健康因素的用户位置查询
  • 清算候选扫描(Voi上有202多名索引用户)
  • 跨所有链和池的TVL分析
  • 交易准备(未签名)

DorkFiMCP不会:

  • 签署交易(使用UluWalletMCP)
  • 广播事务(使用UluBroadcastMCP)
  • 管理钱包

工具

市场

工具 说明
get_markets 列出贷款市场的实时利率、存款、借款和价格
get_tvl 获取每个市场锁定的总价值和总计

职位

工具 说明
get_position 使用每个池的健康因素获取用户的位置
get_health_factor 检查每个游泳池的健康因素和风险水平

清算

工具 说明
get_liquidation_candidates 从预先索引的健康数据中查找抵押不足的账户

交易准备

工具 说明
deposit_txn 构建未签名的交易以存入(供应)代币
borrow_txn 构建未签名的交易以借用代币
repay_txn 构建未签名的交易以偿还债务
withdraw_txn 构建未签名的交易以提取提供的代币
liquidate_txn 建立未签名的交易以清算头寸

代理工作流

Agent calls DorkFiMCP:  deposit_txn(chain, symbol, amount, sender)
       → returns { transactions: [base64, ...] }

Agent calls UluWalletMCP: wallet_sign_transactions(signerId, transactions)
       → returns signed transactions

Agent calls UluBroadcastMCP: broadcast_transactions(network, txns)
       → returns transaction IDs

链支持

所有工具都接受 chain 参数:

  • "voi" --沃伊主网(池:47139778、47139781)
  • "algorand" --Algorand主网(池:33336882823345940978)

项目结构

index.js              MCP server entry point (11 tools)
lib/
  api.js              DorkFi API client (dorkfi-api.nautilus.sh)
  client.js           Algod client factory, ABI definitions, simulation helpers
  markets.js          Market data from API with symbol resolution
  positions.js        User positions and health factors from API
  liquidation.js      Liquidation candidates from pre-indexed health data
  builders.js         Unsigned transaction group builders (on-chain)
data/
  contracts.json      Chain configs, pool IDs, and token definitions

设置

npm install

跑

node index.js

或者在代理中配置为MCP服务器:

{
  "mcpServers": {
    "dorkfi": {
      "command": "node",
      "args": ["/path/to/DorkFiMCP/index.js"]
    }
  }
}

DorkFi API

读取操作使用 DorkFi API 其提供预索引数据:

端点 由使用
/market-data/{network} get_markets
/user-health/user/{address} get_position, get_health_factor
/user-health/{network} get_liquidation_candidates
/analytics/tvl get_tvl

支持的市场

沃伊(22个市场,2个游泳池)

游泳池47139778: VOI、aUSDC、单位、POW、aALGO、aETH、aBTC、acbBTC、WAD(仅供借用)

游泳池47139781: WAD、GM、CORN、SHELLY、BUIDL、F、NODE、AMMO、IAT、bVOI、NV、EV、FV

Algorand(2个池中的29个市场)

游泳池3333688282: ALGO、USDC、UNIT、POW、goBTC、aVOI、wBTC、goETH、wETH、LINK、SOL、AVAX、WAD(仅限借用)

游泳池3345940978: WAD、FINITE、FOLKS、COOP、HOG、USDt、xUSD、MONKO、HAY、BRO、ALPHA、COMPX、AKTA、PEPE、GOLD$、TINY

链上ABI

交易准备使用经过验证的ABI DorkFiLendingPoolClient.ts:

方法 签名
get_market (uint64)(bool,uint256,uint256,uint64,uint64,uint64,uint64,uint64,uint64,uint256,uint256,uint256,uint256,uint64,uint256,uint256,uint64,uint64)
get_user (address,uint64)(uint256,uint256,uint256,uint256,uint64,uint256)
get_global_user (address)(uint256,uint256,uint64)
get_user_borrow_amount (address,uint64)uint256
deposit (uint64,uint256)uint256
withdraw (uint64,uint256)uint256
borrow (uint64,uint256)uint256
repay (uint64,uint256)uint256
repay_all (uint64)uint256
repay_on_behalf (uint64,uint256,address)uint256
liquidate_cross_market (uint64,uint64,address,uint256,uint256)uint256

已知限制

  1. 多个池中的WAD --WAD出现在每个链的两个池中。 findMarket 返回第一场比赛。对于仅借用WAD池,如果需要,请明确指定池ID。

  2. 交易组 --The prepare_* 工具构建简化的事务组。DorkFi前端使用 ulujs 合同类,用于更复杂的团队建设,具有自动资金和资源共享功能。

  3. 价格范围 -API的价格使用18位小数精度,参考aUSDC=1000000。健康/头寸响应中的美元值通过将原始值除以10^12来近似。

  4. API新鲜度 -读取数据来自DorkFi API,该API定期从链上状态刷新。对于最新的数据,API的POST端点可以触发新的区块链查询。