DeFi自动化工具包

Sui Agent Kit是一个基于Node.js的工具包,旨在简化在Sui区块链上与Navi Protocol的DeFi交互,提供自动化脚本和AI代理支持。

  • by ParaDevsAI
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 ParaDevsAI/Sui-Agent-Kit-Navi

使用说明

隋特工Kit🤖🌊 - 基于Navi协议的自动DeFi网关

Sui Agent Kit诞生于简化Sui区块链上DeFi开发的热情,并为像您这样的构建者提供Sui Overflow 2025黑客马拉松的支持!

我们认为,与强大的DeFi协议交互不应该是一场复杂的磨难。这个工具包就是我们的答案:一个强大的、对代理友好的工具包,它抽象了Navi Protocol SDK的复杂性,通过模型上下文协议(MCP)将其丰富的功能作为一组直观的“工具”公开。

我们的使命是提供基础设施,使开发人员能够在Sui上快速原型化、构建和部署复杂的DeFi应用程序、自动化脚本和AI驱动的代理,特别关注利用Navi协议的深度流动性和功能。

Sui Agent Kit是什么?

Sui Agent Kit是一个使用TypeScript构建的Node.js服务器应用程序。它充当桥梁,将简单的MCP工具调用转换为与Sui网络上的Navi协议的直接交互。

用例

  • 自动投资组合再平衡器: 在Navi上监控您的健康因素并自动存入/提取抵押品或偿还/借用资产以维持目标健康因素的代理人。
  • 产量农业代理: 在Navi上识别高收益机会(例如,为vSUI抵押SUI、提供资产)并自动转移资金以实现回报最大化的代理。
  • 带一键操作的DeFi仪表板: 一个web界面,在后端使用Sui Agent Kit显示投资组合信息,并允许用户通过单击执行复杂的Navi操作。
  • 人工智能财务顾问: 一个AI代理使用该工具包分析市场状况和用户的投资组合,然后在Navi上建议并(在获得许可的情况下)执行最佳的DeFi策略。
  • Navi的自定义工具: 使用更专业的工具扩展工具包,或围绕它为高级Navi用户构建新的实用程序。

##核心组件:##

  • MCP服务器(navi-mcp-server/src/mcp_server/server.ts): 使用实现MCP服务器 @modelcontextprotocol/sdk。它定义并注册了所有可用于与Navi交互的工具。
  • Navi SDK集成(navi-mcp-server/src/core_navi/navi_client.ts): 管理与Navi SDK的连接,包括钱包初始化(通过助记词或私钥从 .env).
  • 配置(navi-mcp-server/src/config.ts): 加载必要的环境变量(RPC URL、代理钱包凭据)。
  • 制图员(navi-mcp-server/src/mcp_server/mappers.ts): 处理人类可读的资产符号/金额与Navi SDK所需格式之间的转换。
  • 基于工具的API: 所有交互都作为MCP工具公开,使任何兼容MCP的客户端(如AI代理或 @modelcontextprotocol/inspector CLI)使用。

主要特征和功能

Sui Agent Kit使您的应用程序和代理能够:

  • 📊 管理代理组合:
    • navi_getAgentPortfolio:检索当前供应和借款余额。
    • navi_getAgentHealthFactor:检查代理人的健康因素。
    • navi_getAgentDynamicHealthFactor:预测假设供应/借款变化后的健康因素。
  • 🌊 与贷款池互动:
    • navi_depositAsset:存款SUI、USDC、USDT等作为抵押品。
    • navi_withdrawAsset:提取存款资产。
    • navi_borrowAsset:以抵押品为抵押借入资产。
    • navi_repayDebt:偿还借款。
  • 💱 执行掉期(通过NAVI聚合器):
    • navi_getSwapQuote:获取将一种资产换成另一种资产的报价。
    • navi_executeSwap:执行令牌交换。
  • 💧 杠杆流动性质押(vSUI):
    • navi_stakeSuiForVSui:让SUI获得vSUI(VoloSui)。
    • navi_unstakeVSuiForSui:取消vSUI以接收SUI。
  • 💰 处理奖励:
    • navi_getAgentAvailableRewards:检查无人领取的奖励。
    • navi_claimAllAgentRewards:领取所有可用奖励。
    • navi_getAgentRewardsHistory:查看领取奖励的历史记录。
  • 📈 准入市场数据:
    • navi_getPoolInfoBySymbol:获取特定资产池(例如SUI池)的详细信息。
    • navi_getAllPoolsInfo:获取所有可用资产池的详细信息。
    • navi_getReserveDetail:获取有关特定资产储备的深入信息。
  • ✅ 基本服务器Ping:
    • ping:检查Sui Agent Kit服务器是否响应。

(请参阅中的工具定义 navi-mcp-server/src/mcp_server/server.ts 用于每个工具的详细输入/输出模式)。

入门指南

先决条件

  1. Node.js和npm: 确保安装了最新版本。
  2. 隋钱包: 你需要一个Sui钱包助记词或私钥给代理人。此钱包将用于签署交易并与Navi协议交互。确保它有天然气费用的SUI和您打算用于测试的任何资产(例如,存款的SUI)。
  3. 克隆存储库:
    git clone https://github.com/ParaDevsAI/Sui-Agent-Kit-Navi/
    cd Sui-Agent-Kit-Navi
    

设置和配置

  1. 导航到服务器目录:
    cd navi-mcp-server
    
  2. 安装依赖关系:
    npm install
    
  3. 配置环境变量: 创建一个 .env 文件在 navi-mcp-server 目录。您可以复制 ../.env.example (如果你在根目录下创建一个)或从头开始创建:
    # Sui RPC URL - Mainnet, Testnet, or Devnet
    SUI_RPC_URL=https://fullnode.mainnet.sui.io:443
    
    # Your Agent's Wallet Mnemonic (recommended for ease of use)
    NAVI_AGENT_MNEMONIC="your twelve or twenty-four word mnemonic phrase here"
    
    # OR, if using a private key (Base64 encoded private key bytes - NOT the hex string)
    # Ensure this is the private key for the account derived from the mnemonic if you used mnemonic first
    # NAVI_AGENT_PRIVATE_KEY="your_base64_encoded_private_key_bytes_here"
    
    重要提示:
    • 用实际数据替换占位符。
    • 如果使用 NAVI_AGENT_PRIVATE_KEY,它必须是Base64编码的 字节 私钥。
    • 永远不要承诺你的 .env 将具有真实凭据的文件保存到公共存储库! 这 .gitignore 文件应该已经阻止了这一点。

构建工具包

从 navi-mcp-server 目录:

npm run build

这将TypeScript代码编译为JavaScript dist 目录。

运行Sui代理工具包服务器

从 navi-mcp-server 目录:

node dist/index.js

配置MCP客户端(例如 mcp.json)

如果您使用的MCP客户端工具依赖于JSON配置文件(通常命名为 mcp.json 或类似,如 @modelcontextprotocol/inspector 如果不使用 --cli 直接标记),您需要配置它以正确启动和管理Sui Agent Kit服务器。

下面是一个示例片段,说明如何配置 navi-mcp-agent 在这样一个JSON文件中。 您需要修改文件路径以匹配您的本地计算机设置。

{
  "mcpServers": {
    "navi-mcp-agent": {
      "command": "node",
      "args": [
        "YOUR_ABSOLUTE_PATH_TO/SuiAgentKit/navi-mcp-server/dist/index.js"
      ],
      "cwd": "YOUR_ABSOLUTE_PATH_TO/SuiAgentKit/navi-mcp-server",
      "env": {
        "SUI_RPC_URL": "https://fullnode.mainnet.sui.io:443",
        "NAVI_AGENT_MNEMONIC": "your optional mnemonic if not using .env or to override .env",
        "NAVI_AGENT_PRIVATE_KEY": "your_optional_private_key_if_not_using_.env_or_to_override_.env"
      }
    }
  }
}

需要定制的关键部件:

  • "args":
    • 路径 \"YOUR_ABSOLUTE_PATH_TO/SuiAgentKit/navi-mcp-server/dist/index.js\" 至关重要。替换 YOUR_ABSOLUTE_PATH_TO 实际绝对路径为 SuiAgentKit 您系统上的目录。例如:
      • 在Windows上: \"C:\\\\Users\\\\YourUser\\\\Projects\\\\SuiAgentKit\\\\navi-mcp-server\\\\dist\\\\index.js\" (注意双反斜杠以兼容JSON)。
      • 在macOS/Linux上: \"/Users/YourUser/Projects/SuiAgentKit/navi-mcp-server/dist/index.js\".
  • \"cwd\" (当前工作目录):
    • 同样,替换 YOUR_ABSOLUTE_PATH_TO 在……里面 \"YOUR_ABSOLUTE_PATH_TO/SuiAgentKit/navi-mcp-server\" 通过绝对路径 navi-mcp-server 目录。
      • 在Windows上: \"C:\\\\Users\\\\YourUser\\\\Projects\\\\SuiAgentKit\\\\navi-mcp-server\".
      • 在macOS/Linux上: \"/Users/YourUser/Projects/SuiAgentKit/navi-mcp-server\".
  • \"env\":
    • 本节允许您在MCP客户端启动时专门为代理设置环境变量。
    • 此处提供的值可以覆盖在 .env 由加载的文件 navi-mcp-server 如果没有,则可以使用 .env 文件存在。
    • 对硬编码敏感信息要谨慎,例如 NAVI_AGENT_PRIVATE_KEY 或 NAVI_AGENT_MNEMONIC 如果该文件可能被共享或提交给版本控制,则可以直接将其转换为JSON文件。对于本地开发和测试来说,这可能很方便。使用a .env 文件内 navi-mcp-server 通常建议使用目录(如主设置中所述)来管理机密。

此JSON配置告诉MCP客户端如何启动Sui Agent Kit服务器(node dist/index.js),在哪里可以找到它(args 和 cwd),以及要传递给它的环境变量。

您应该看到日志消息,指示服务器已启动并连接到Navi SDK。现在可以接受MCP工具调用了!

与套件交互(测试和开发)

向正在运行的Sui Agent Kit发送工具调用的最简单方法是使用 MCP检查器CLI:

  1. 确保Sui Agent Kit服务器正在运行 在一个终端中。

  2. 在……里面 另一个终端 (从 navi-mcp-server 目录,或确保 npx 可以找到当地 node_modules):

    # Example: Ping the server
    npx @modelcontextprotocol/inspector --cli ts-node src/index.ts --method tools/call --tool-name mcp_navi-mcp-agent_ping --tool-arg random_string=hello
    
    # Example: Get Agent Portfolio
    npx @modelcontextprotocol/inspector --cli ts-node src/index.ts --method tools/call --tool-name navi_getAgentPortfolio
    
    # Example: Deposit 0.1 SUI
    npx @modelcontextprotocol/inspector --cli ts-node src/index.ts --method tools/call --tool-name navi_depositAsset --tool-arg assetSymbol=SUI --tool-arg amount=0.1
    
    • 注: 这 --cli ts-node src/index.ts 检查器命令中的部分告诉如何启动 另一个实例 如果服务器尚未运行或用于模式发现,请检查您的服务器。由于您的服务器已经在stdio上运行和监听,如果配置为这样,检查器也可以直接将请求管道传输到它,但提供的示例通常是通过让检查器管理子进程来实现的。对于与已经运行的stdio服务器的直接交互,您通常会将JSON MCP请求管道传输到其stdin。
    • 请参阅测试脚本(test_general_flow.ps1等等) navi-mcp-server 目录中提供了更多工具调用及其参数的示例。这些PowerShell脚本可以适应bash或其他脚本语言。

All Functions

函数名 描述
initializeNaviConnection 初始化已建立的Navi SDK连接。
sleep 在指定的毫秒数内暂停执行的实用函数。
handleGetPoolInfoResource 获取遗留资源接口(内部使用)的池信息(按符号或全部)。
handleGetPoolInfoBySymbolTool 使用Navi协议获取特定资产符号的详细池信息。
handleGetAllPoolInfoTool 获取Navi协议中所有可用池的详细信息。
handleGetAgentPortfolioTool 检索代理的当前资产组合(供应和借款余额)。
handleGetAgentHealthFactorTool 获取代理当前的健康因素。
handleError 将SDK操作中的错误格式化为标准工具结果结构。
handleNaviDepositAsset 处理将指定数量的资产存入代理的Navi。
handleNaviWithdrawAsset 处理从Navi为代理提取指定数量的资产。
handleNaviBorrowAsset 为代理人处理从Navi借入指定金额的资产。
handleNaviRepayDebt 处理Navi中给定资产的指定金额的债务偿还。
handleGetSwapQuoteTool 获取通过NAVI聚合器将一种资产兑换为另一种资产的掉期报价。
handleNaviExecuteSwap 根据给定的掉期和滑点参数,通过NAVI聚合器执行代币掉期。
handleGetAgentAvailableRewardsTool 检索代理的所有可用(无人认领)奖励。
handleClaimAgentRewards 领取代理的所有可用奖励,并可选择首先更新oracle价格。
handleGetAgentDynamicHealthFactorTool 在特定资产的供应/借款发生假设变化后,预测代理人的健康因素。
handleGetReserveDetailTool 获取有关Navi协议中特定资产储备的详细信息。
handleStakeSuiForVSui 让SUI(VolSui)获得vSUI;强制执行最低赌注金额。
handleUnstakeVSuiForSui 取消vSUI(VolSui)以接收SUI;可以取消预订特定数量或所有vSUI。
handleGetAgentRewardsHistoryTool 获取代理人领取奖励的历史记录,并可选择分页。

贡献

我们将Sui Agent Kit打造成社区资产!欢迎捐款。无论是添加新工具、改进文档、修复错误还是建议新功能,请随时打开问题或提交拉取请求。

让我们一起在穗上打造去中心化金融的未来!

💝 支持我们

通过使用来支持我们的工作 帕拉苏伊 SUI上的液体质押: springsui.com/SUI-ParaSui

内置于❤️ Sui Overflow 2025黑客马拉松

让我们一起在穗上打造去中心化金融的未来!

🌊 Navi工具包存储库 | 🏦 SuiLend+SuiSpring套件库