Jupiter MCP Server
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
An MCP server for executing token swaps on the Solana blockchain using Jupiter's new Ultra API.
Features
- Fetch swap orders from Jupiter's Ultra API, combining DEX routing and RFQ (Request for Quote) for optimal pricing.
- Execute swaps via Jupiter's Ultra API, handling slippage, priority fees, and transaction landing.
Prerequisites
- **Node.js**: Version 18 or higher (for native fetch support).
- **Solana Wallet**: A private key (base58-encoded) for signing transactions.
- **RPC Endpoint**: Access to a Solana RPC node (e.g., https://api.mainnet-beta.solana.com).
Installation
1. **Clone the Repository**:
2. **Install Dependencies**:
Ensure you have the MCP Server package installed along with other required dependencies:
3. **Client Configuration**:
Tools
Ultra API Tools
- **get-ultra-order**:
- **Description**: Fetches a swap order from Jupiter's Ultra API, leveraging both DEX routing and RFQ for optimal pricing.
- **Inputs**:
- inputMint: Input token mint address (e.g., SOL or token pubkey).
- outputMint: Output token mint address (e.g., USDC or token pubkey).
- amount: Input amount as a string (e.g., "1.23").
- slippageBps: Slippage tolerance in basis points (e.g., 50 for 0.5%).
- **Output**: JSON with requestId, transaction (base64-encoded), inputMint, outputMint, inAmount, outAmount, price.
- **execute-ultra-order**:
- **Description**: Requests Jupiter to execute the swap transaction on behalf of the wallet owner, handling slippage, priority fees, and transaction landing.
- **Inputs**:
- requestId: Unique identifier from get-ultra-order.
- transaction: Base64-encoded transaction from get-ultra-order.
- **Output**: JSON with status, transactionId, slot, inputAmountResult, outputAmountResult, swapEvents.
Example Interaction
Below are examples of interacting with the server using natural language prompts and expected responses:
Fetching a Swap Order
- **Prompt**: "Get a swap order to trade 1.23 SOL for USDC."
- **Input**:
- Tool: get-ultra-order
- Arguments:
- inputMint: "So11111111111111111111111111111111111111112" (SOL)
- outputMint: "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v" (USDC)
- amount: "1.23"
- slippageBps: 50
- **Response**: