MCP 문서 관리

메뉴

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 스왑 경로 알려줘"

연결된 구성 요소