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 |
已知限制
- 多个池中的WAD --WAD出现在每个链的两个池中。
findMarket返回第一场比赛。对于仅借用WAD池,如果需要,请明确指定池ID。
- 交易组 --The
prepare_*工具构建简化的事务组。DorkFi前端使用ulujs合同类,用于更复杂的团队建设,具有自动资金和资源共享功能。
- 价格范围 -API的价格使用18位小数精度,参考aUSDC=1000000。健康/头寸响应中的美元值通过将原始值除以10^12来近似。
- API新鲜度 -读取数据来自DorkFi API,该API定期从链上状态刷新。对于最新的数据,API的POST端点可以触发新的区块链查询。
