使用说明
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端点可以触发新的区块链查询。