MCP · WebSocket · OpenAPI

업비트 API를
AI 도구에 바로 연결

Upbit Bridge는 업비트 OpenAPI를 MCP, REST(/api/v1/), WebSocket으로 이어 줍니다. Claude·Cursor에서는 도구로, 스크립트에서는 curl로 시세·잔고·주문을 처리합니다.

Upbit Bridge 서버 헬스 체크, REST 잔고 조회, MCP 클라이언트 설정 예시

서버 · REST

$ curl http://localhost:8000/health
{"status":"ok"}

$ curl -H "Authorization: Bearer $TOKEN" \
  http://localhost:8000/api/v1/accounts

Cursor / Claude Desktop

{
  "mcpServers": {
    "upbit-bridge": {
      "url": "http://localhost:8000/sse"
    }
  }
}

거래소 API를 에이전트가 읽기 쉽게

시세, 주문, 입출금, 기술적 분석까지 업비트 OpenAPI를 MCP 도구와 REST 엔드포인트로 묶어 뒀습니다. 공개 시세는 키 없이, 계좌·주문은 환경 변수로 인증합니다.

시장 데이터 & 기술적 분석

현재가, 호가, 체결, 캔들, KRW 마켓 요약. RSI·MACD 같은 지표도 캔들 데이터에서 바로 계산합니다.

계좌 & 주문

잔고 조회, 지정가·시장가 주문, 미체결 일괄 취소. MCP 도구와 /api/v1/ REST로 같은 작업을 호출합니다.

REST API /api/v1/

스크립트·크론·봇용 요청-응답 API. 잔고·주문·시세 스냅샷을 curl 한 줄로 치고, 로컬에서는 /docs/api Swagger UI로 확인합니다.

실시간 WebSocket

/ws/ 하나로 ticker, orderbook, myOrder 등 public/private 스트림을 받습니다.

JWT 인증은 게이트웨이가 대신 처리합니다. 클라이언트가 Access Key를 보낼 필요가 없습니다.

입출금

입출금 내역, 출금 요청, 입금·등록 주소 확인, 지갑 상태 점검까지 한 세트로 다룹니다.

프롬프트 템플릿

티커 해석, 포트폴리오 분석, 주문 도움말, 매매 전략. 에이전트가 바로 참고할 프롬프트 4종이 들어 있습니다.

엔드포인트 보호

UPBIT_BRIDGE_AUTH_TOKEN으로 SSE·WebSocket·REST 경로에 Bearer 인증을 걸 수 있습니다. 외부에 노출할 때는 꼭 설정하세요.

하나의 서버, 세 가지 연결 방식

Docker로 띄우면 MCP(SSE), REST(/api/v1/), WebSocket 게이트웨이가 한 프로세스에서 같이 돌아갑니다. 로컬에서는 stdio로 클라이언트가 프로세스를 직접 띄워도 됩니다.

MCP: AI 클라이언트 연동

Claude Desktop, Cursor 등에서 도구 호출로 업비트 API를 씁니다. SSE는 http://localhost:8000/sse, stdio는 python main.py로 연결합니다.

REST: 스크립트·봇

/api/v1/로 잔고·주문·시세를 HTTP로 호출합니다. OpenAPI 스펙은 /docs/api, 이벤트 스펙은 /docs/events입니다.

WebSocket: 스트림 중계

Public(ticker, orderbook)은 키 없이, Private(myOrder, myAsset)은 컨테이너에 등록한 키로 JWT를 만들어 upstream에 붙입니다.

주요 MCP 도구

전체 목록과 인증 여부는 문서에서 확인하세요. 아래는 자주 쓰는 도구 이름입니다.

  • get_ticker
  • get_orderbook
  • get_candles
  • technical_analysis
  • get_market_summary
  • get_accounts
  • create_order
  • cancel_order
  • get_deposits_withdrawals
  • create_withdraw

REST API v1

MCP는 에이전트용, REST는 자동화용입니다. 같은 컨테이너에서 /api/v1/로 잔고·주문·시세를 호출하고, 서버를 띄운 뒤 /docs/api에서 OpenAPI(Swagger)를 확인하세요.

계정 · 주문

  • GET /api/v1/accounts
  • GET /api/v1/accounts/{currency}
  • POST /api/v1/orders
  • GET /api/v1/orders
  • DELETE /api/v1/orders/{uuid}
  • GET /api/v1/orders/chance

시세 · 마켓

  • GET /api/v1/markets
  • GET /api/v1/ticker
  • GET /api/v1/orderbook
  • GET /api/v1/trades
  • GET /api/v1/candles
REST API로 시세와 주문을 호출하는 curl 예시

시세 · 주문

# 공개 시세 (Bridge Bearer만 필요할 수 있음)
curl -H "Authorization: Bearer $TOKEN" \
  "http://localhost:8000/api/v1/ticker?markets=KRW-BTC,KRW-ETH"

# 지정가 매수
curl -X POST -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"market":"KRW-BTC","side":"bid","ord_type":"limit","volume":"0.0001","price":"100000000"}' \
  http://localhost:8000/api/v1/orders

3단계로 시작하기

공개 시세만 볼 거라면 API 키 없이도 됩니다. 계좌·주문·입출금은 업비트 개발자 센터에서 키를 발급받아 주세요. REST는 Docker 기동 후 /docs/api에서도 확인할 수 있습니다.

  1. 환경 변수 준비

    프로젝트 루트에 .env를 만들고 Access Key, Secret Key, Bearer 토큰(권장)을 넣습니다.

  2. Docker로 실행

    ghcr.io/suapapa/upbit-bridge:latest 이미지를 받아 포트 8000으로 띄웁니다. 헬스 체크는 /health입니다.

  3. 클라이언트 연결

    Cursor·Claude는 MCP SSE URL을, 스크립트는 /api/v1/을 사용합니다. 로컬만 쓸 때는 stdio MCP가 더 간단할 수 있습니다.

지금 바로 연결해 보세요

Docker 한 줄이면 MCP, REST, WebSocket이 같이 뜹니다. README만 따라가도 몇 분 안에 AI 클라이언트나 스크립트에서 업비트 API를 호출합니다.