使用说明
隋特工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/inspectorCLI)使用。
主要特征和功能
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 用于每个工具的详细输入/输出模式)。
入门指南
先决条件
- Node.js和npm: 确保安装了最新版本。
- 隋钱包: 你需要一个Sui钱包助记词或私钥给代理人。此钱包将用于签署交易并与Navi协议交互。确保它有天然气费用的SUI和您打算用于测试的任何资产(例如,存款的SUI)。
- 克隆存储库:
git clone https://github.com/ParaDevsAI/Sui-Agent-Kit-Navi/ cd Sui-Agent-Kit-Navi
设置和配置
- 导航到服务器目录:
cd navi-mcp-server - 安装依赖关系:
npm install - 配置环境变量:
创建一个
.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\".
- 在Windows上:
- 路径
\"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\".
- 在Windows上:
- 同样,替换
\"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:
-
确保Sui Agent Kit服务器正在运行 在一个终端中。
-
在……里面 另一个终端 (从
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黑客马拉松
让我们一起在穗上打造去中心化金融的未来!
