永续合约交易服务器

一个支持AI代理在Solana上通过Jupiter Perpetuals进行永续合约交易的模型上下文协议服务器。

  • by diaorui
  • TypeScript
  • 本地部署
  • 3 星标
  • 更新于
在 GitHub 查看 diaorui/jupiter-perps-mcp

使用说明

Jupiter Perps MCP服务器

A. 模型上下文协议 服务器,使AI代理能够在其上交易永久期货 木星永恒 (索拉纳)。

⚠️ 免责声明 本软件仅用于教育和研究目的。交易永久期货涉及巨大的损失风险,并不适合所有投资者。您对任何交易决策和产生的损失负全部责任。作者和贡献者对您使用本软件不承担任何责任。使用你能承受损失的资金,风险自负。

特性

  • 市场数据:实时价格、24小时统计数据和历史OHLCV蜡烛
  • 投资组合管理:查看USDC余额、未结头寸、PnL和费用
  • 持仓交易:打开、增加和关闭杠杆头寸(1.1x-100x)
  • 费用估算:执行前计算交易成本
  • 交易安全:自动计算预算优化和模拟

支持资产:SOL、ETH、BTC

运作原理

木星Perpetuals使用 基于oracle 共享流动性池的定价模型:

  • 定价:交易以oracle价格(Signal/Chainlink/Pyth)执行,而不是订单价格
  • 流动性:您与SOL、ETH、WBTC、USDC、USDT池进行交易(不与其他交易者进行交易)
  • 防滑保护: MAX_SLIPPAGE_BPS 在交易执行过程中防止oracle价格变动
  • 费用:
    • 基础交易费+价格影响费(保护流动性提供者)
    • 每小时借款费用(而不是传统的融资利率)

这意味着大型交易不会受到订单簿深度问题的影响,但如果交易确认期间价格发生变化,oracle价格仍可能出现下滑。

关键概念

位置模型:头寸按资产+方确定(例如,“长期SOL”)。每个资产/边对只能有一个头寸。该协议会自动将任何额外的头寸合并到现有头寸中,增加其规模并调整入场价格。

抵押品:所有头寸均使用美元作为抵押品。对于多头头寸,协议在内部将USDC转换为资产。

费用:开仓/增仓/平仓时支付交易费用(基础+价格影响)。借款费用按小时累计,并在修改/关闭时结算。使用 estimate_open_position 在交易前了解总成本。

交易:所有交易立即以市场价格执行(无限价单)。工具返回事务签名用于日志记录。协议在单独的事务中异步处理位置——这可能需要几秒钟的时间,并且可能会失败。使用 get_account_portfolio 以验证位置是否已成功创建。

先决条件

  • Node.js 18+
  • 一个装有USDC的Solana钱包用于交易
  • 钱包私钥(base58编码)

安装

git clone <repository-url>
cd jupiter-perps-mcp
npm install
npm run build

配置

创建一个 .env 文件:

cp .env.example .env

所需设置:

WALLET_PRIVATE_KEY=your_base58_encoded_private_key
RPC_URL=https://api.mainnet-beta.solana.com

可选设置:

MAX_SLIPPAGE_BPS=200                    # Default: 200 (2%)
PRIORITY_FEE_MICRO_LAMPORTS=100000      # Default: 100000

用法

局部测试

与MCP检查员快速验证:

npx @modelcontextprotocol/inspector node dist/index.js

使用克劳德代码(本地)

创建 .mcp.json 在您的项目目录中:

{
  "mcpServers": {
    "jupiter-perps": {
      "command": "node",
      "args": ["/absolute/path/to/jupiter-perps-mcp/dist/index.js"]
    }
  }
}

或使用 ${workspaceFolder} 对于相对路径:

{
  "mcpServers": {
    "jupiter-perps": {
      "command": "node",
      "args": ["${workspaceFolder}/jupiter-perps-mcp/dist/index.js"]
    }
  }
}

远程设置(沙盒环境)

将MCP服务器作为HTTP服务运行,以将敏感的钱包密钥与Claude Code隔离开来。钱包私钥保留在主机上,而Claude Code在单独的环境中运行,只能通过MCP工具进行交易。

1.在主机(具有钱包访问权限)上,配置 .env:

MCP_PORT=3000                           # HTTP server port (default: 3000)

2.以HTTP模式启动:

npm run start:remote

或设置 MCP_MODE=http 在 .env 用于部署/自动化。

3.在沙盒Claude Code环境中,创建 .mcp.json:

{
  "mcpServers": {
    "jupiter-perps": {
      "type": "http",
      "url": "http://localhost:3000/mcp"
    }
  }
}

对于不同的机器,更换 localhost 使用主机IP(例如。, http://192.168.1.100:3000/mcp).

安全:默认情况下,服务器绑定到localhost。对于远程访问,使用SSH隧道、VPN或防火墙规则来控制访问。

4.测试连接:

curl http://localhost:3000/health

可用工具

市场数据和交易

工具 说明
get_market_snapshot 当前市场价格、24小时统计数据、费用和流动性
get_candles 历史OHLCV数据(5m、15m、1h、4h、1d、1w)
get_account_portfolio USDC余额、头寸、PnL和待平仓费用
estimate_open_position 交易前计算费用和最终头寸
open_position 开立或增加杠杆头寸
close_position 以市场价格平仓

技术指标

工具 说明
get_indicator_rsi RSI动量振荡器(0-100,>70超买,<30超卖)
get_indicator_macd MACD趋势和动量指标
get_indicator_bollinger_bands 布林带波动率和均值回归指标
get_indicator_atr 止损配售的ATR波动性度量
get_indicator_ema 指数移动平均线(比SMA快)
get_indicator_sma 简单移动平均线(经典趋势指标)
get_indicator_stochastic 随机动量振荡器(0-100,>80超买,<20超卖)

安全

⚠️ 重要安全注意事项

  • 永远不要承诺你的 .env 文件
  • 使用资金有限的专用钱包
  • 所有头寸均使用美元作为抵押品
  • 确认前查看交易详情
  • 考虑在生产环境中使用私有RPC端点

许可证

麻省理工学院