内容
# KASPACOM DeFi MCP
KASPACOM DeFi 协议的MCP服务器和命令行工具 - DEX、借贷和启动平台,运行在IGRA和Kasplex EVM网络上。
可用作 **MCP服务器**,适用于Claude Desktop、OpenClaw或任何兼容MCP的AI代理,或用作独立的 **命令行工具**,用于脚本编写和监控。
## 功能
- **去中心化交易所(DEX)** - 查询流动性对、代币价格、投资组合余额(Uniswap V2分叉)
- **借贷** - 查看Aave V3市场、利率、仓位、健康因子
- **启动平台** - 列出活跃的LFG代币启动
- **4个网络** - IGRA主网/测试网,Kasplex主网/测试网
- **默认只读** - 查询不需要钱包。写入工具(swap、supply、borrow等)将在第三阶段推出。
## 安装
```bash
npm install @kaspacom/defi-mcp
```
或克隆并在本地构建:
```bash
git clone https://github.com/KASPACOM/kaspacom-defi-mcp.git
cd kaspacom-defi-mcp
npm install
npm run build
```
## 快速入门
### MCP服务器(适用于AI代理)
```bash
# 只读模式(不需要钱包)
MCP_NETWORK="igra-testnet" node dist/mcp/index.js
# 带有钱包,用于未来的写入操作
MCP_WALLET_KEY="0xYOUR_KEY" MCP_NETWORK="igra-testnet" node dist/mcp/index.js
```
### 命令行工具
```bash
# 在npm安装+构建后,或npm链接
kaspacom-defi getPairs --network igra-testnet
kaspacom-defi getTokenPrice WKAS --network igra-testnet
kaspacom-defi getMarkets --network kasplex-testnet
kaspacom-defi getPosition 0xYOUR_ADDRESS --network igra-testnet
kaspacom-defi getPortfolio 0xYOUR_ADDRESS --network igra-testnet
kaspacom-defi getActiveLaunches --network igra-testnet
kaspacom-defi getProtocolInfo --network igra
# JSON输出
kaspacom-defi getPairs --network igra-testnet --json
```
## MCP配置
### Claude Desktop
添加到 `~/Library/Application Support/Claude/claude_desktop_config.json`:
```json
{
"mcpServers": {
"kaspacom-defi": {
"command": "node",
"args": ["/path/to/kaspacom-defi-mcp/dist/mcp/index.js"],
"env": {
"MCP_NETWORK": "igra-testnet"
}
}
}
}
```
### OpenClaw
添加到您的 `openclaw.json`下的 `plugins.mcp.servers`:
```json
{
"kaspacom-defi": {
"command": "node",
"args": ["/path/to/kaspacom-defi-mcp/dist/mcp/index.js"],
"env": {
"MCP_NETWORK": "igra-testnet",
"MCP_WALLET_KEY": "${MCP_WALLET_KEY}"
}
}
}
```
## 网络
| 网络 | 名称 | 链ID | 别名 |
| --- | --- | --- | --- |
| IGRA 主网 | `igra` | 38833 | `mainnet`, `igra-mainnet` |
| IGRA 测试网 | `igra-testnet` | 38836 | `testnet`, `galleon` |
| Kasplex 主网 | `kasplex` | 202555 | `kasplex-mainnet` |
| Kasplex 测试网 | `kasplex-testnet` | 167012 | `kasplex-test` |
## 可用工具
### 读取工具(第2阶段 - 完成)
| 工具 | 描述 |
| --- | --- |
| `getPairs` | 列出DEX流动性对及其储备 |
| `getTokenPrice` | 通过DEX定价路径获取代币价格(以美元计) |
| `getMarkets` | Aave借贷市场:利率、TVL、利用率 |
| `getPosition` | 钱包借贷仓位 + 健康因子 |
| `getPortfolio` | 完整投资组合:余额、LP仓位、借贷 |
| `getActiveLaunches` | 活跃的LFG启动平台代币启动 |
| `getProtocolInfo` | 协议概述:合约、代币、网络 |
### 写入工具(第3阶段 - 待定)
| 工具 | 描述 |
| --- | --- |
| `swap` | 通过DEX路由器兑换代币 |
| `addLiquidity` | 向DEX对添加流动性 |
| `removeLiquidity` | 从DEX对中移除流动性 |
| `supply` | 向Aave借贷提供代币 |
| `borrow` | 从Aave借贷借用代币 |
| `repay` | 偿还借用的代币 |
| `buyLaunchToken` | 从LFG启动平台购买代币 |
| `sellLaunchToken` | 销售/退款LFG启动平台代币 |
写入工具已在MCP模式和命令行工具中注册,但在第三阶段之前返回`not_implemented。这让代理可以发现完整的API表面,而只需执行读取操作。
## 环境变量
| 变量 | 是否必需 | 默认值 | 描述 |
| --- | --- | --- | --- |
| `MCP_NETWORK` | 否 | `igra` | 所有操作的默认网络 |
| `MCP_WALLET_KEY` | 否 | - | 写入操作的私钥(无则只读) |
| `MCP_HEALTH_PORT` | 否 | `3100` | 健康端点端口 |
## 健康检查
MCP服务器公开一个健康端点:
```bash
curl http://127.0.0.1:3100/
# {"status":"ok","server":"kaspacom-defi-mcp","version":"0.1.0","network":"igra",...}
```
## Gas提示(IGRA)
IGRA内存池需要gas价格 **严格高于2 gwei** (最小:`2,000,000,001 wei`)。`eth_estimateGas`不可靠 - 服务器使用静态gas限制:
| 操作 | Gas限制 |
| --- | --- |
| approve | 100,000 |
| swap | 350,000 |
| addLiquidity / removeLiquidity | 400,000 |
| supply / borrow / repay | 500,000 |
## 安全
- **首先使用测试网**。默认为`igra-testnet`或`kasplex-testnet`进行开发。
- **永远不要提交私钥**。仅使用环境变量。`.gitignore`阻止`.env`文件。
- **只读模式是安全的**。省略`MCP_WALLET_KEY`进行监控/分析工作流。
- **健康因子安全性**。借款时,保持健康因子> 1.5。低于1.0 = 清算。
## 开发
```bash
npm install
npm run build # TypeScript编译
npm test # Vitest测试套件
npm run test:watch # 监视模式
```
## 路线图
| 阶段 | 状态 | 描述 |
| --- | --- | --- |
| 第一阶段 - 基础 | 已完成 | 网络配置、RPC客户端、ABI包装器、MCP + 命令行外壳 |
| 第二阶段 - 读取工具 | 已完成 | DEX、借贷、启动平台、投资组合、协议信息查询 |
| 第三阶段 - 写入工具 | 待定 | 交换、流动性、借贷、启动平台写入执行 |
| 第四阶段 - 硬化 | 计划中 | 生产安全性、文档、更广泛的集成润色 |
## 许可证
[MIT](./LICENSE)