jupiter-mcp
jupiter-mcp
jupiter-mcp는 Jupiter의 새로운 Ultra API를 사용하여 솔라나 블록체인에서 토큰 스왑을 실행하는 MCP 서버입니다. 이 서버는 DEX 라우팅과 RFQ(Request for Quote)를 결합하여 최적의 가격으로 토큰 교환을 가능하게 합니다.
특징
- 최적 가격 라우팅: Jupiter의 Ultra API를 통한 DEX 라우팅 및 RFQ 결합으로 최상의 교환 가격 제공
- 슬리피지 제어: 거래 실행 시 슬리피지 허용치 설정 가능
- 우선순위 수수료 처리: 혼잡 네트워크 상황에서의 우선순위 수수료 자동 처리
- 거래 안정성: 트랜잭션 랜딩(transaction landing) 모니터링으로 거래 완료 확인
- 자연어 인터페이스: 간단한 명령어로 복잡한 스왑 실행 가능
- 거래 세부 정보: 수행된 교환에 대한 상세 정보 제공(요금, 경로, 금액 등)
API
도구
스왑 주문 도구
- get_ultra_order: Jupiter의 Ultra API에서 스왑 주문 가져오기
- 입력:
- inputMint: 입력 토큰 민트 주소(예: SOL의 경우 "So11111111111111111111111111111111111111112")
- outputMint: 출력 토큰 민트 주소(예: USDC의 경우 "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v")
- amount: 스왑할 토큰 양(문자열)
- slippageBps: 슬리피지 허용치(basis points, 예: 50은 0.5%)
- 출력:
- requestId: 고유 요청 식별자
- transaction: Base64로 인코딩된 트랜잭션
- inputMint, outputMint: 입출력 토큰 민트 주소
- inAmount, outAmount: 입출력 토큰 양
- price: 교환 비율
스왑 실행 도구
- execute_ultra_order: Jupiter가 지갑 소유자를 대신하여 스왑 트랜잭션 실행
- 입력:
- requestId: get_ultra_order에서 받은 요청 ID
- transaction: 제공된 Base64 인코딩 트랜잭션
- 출력:
- status: 성공 또는 실패 상태
- transactionId: 솔라나 트랜잭션 서명
- slot: 트랜잭션이 포함된 블록 슬롯
- inputAmountResult, outputAmountResult: 실제 교환된 토큰 양
- swapEvents: 스왑 이벤트 상세 정보
사용 방법
설치
# npm을 통한 설치
npm install -g jupiter-mcp
# 또는 직접 저장소 클론
git clone https://github.com/kukapay/jupiter-mcp.git
cd jupiter-mcp
npm install
구성
Claude Desktop에서 사용하기 위해 다음과 같이 설정 파일에 추가합니다:
{
"mcpServers": {
"Jupiter-MCP": {
"command": "node",
"args": ["path/to/jupiter-mcp/server/index.js"],
"env": {
"SOLANA_RPC_URL": "solana rpc url you can access",
"PRIVATE_KEY": "your private key"
}
}
}
}
필수 요건
- Node.js: 버전 18 이상(네이티브 fetch 지원용)
- 솔라나 지갑: 트랜잭션 서명을 위한 private key(base58 인코딩)
- RPC 엔드포인트: 솔라나 RPC 노드 접근(예: https://api.mainnet-beta.solana.com)
토큰 민트 주소 참조
편의를 위해 일반적인 솔라나 토큰 민트 주소:
- SOL (네이티브): So11111111111111111111111111111111111111112
- USDC: EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
- USDT: Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB
- BTC(솔라나): 9n4nbM75f5Ui33ZbPYXn59EwSgE8CGsHtAeTH5YFeJ9E
- ETH(솔라나): 7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs
사용 예시
// 1 SOL을 USDC로 교환하는 주문 가져오기
const order = await get_ultra_order({
inputMint: "So11111111111111111111111111111111111111112",
outputMint: "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
amount: "1.0",
slippageBps: 50
});
// 주문 실행하기
const result = await execute_ultra_order({
requestId: order.requestId,
transaction: order.transaction
});
console.log(`거래 완료! 받은 USDC: ${result.outputAmountResult}`);
자연어 쿼리 예시: - "1.23 SOL을 USDC로 스왑해줘" - "내가 가진 USDC를 SOL로 교환하는데 0.5% 슬리피지로 설정해줘" - "솔라나에서 USDT -> USDC 스왑 경로 알려줘"
연결된 구성 요소
- Solana Agent Kit - 솔라나 블록체인 상호작용을 위한 종합 도구 모음
- Bsc-mcp - BNB 체인 상호작용 도구
- GOAT - 다중 체인 온체인 작업 도구
- token-minter-mcp - 다중 블록체인 ERC-20 토큰 발행 도구
- uniswap-trader-mcp - Uniswap DEX에서 토큰 스왑 자동화