바이낸스 MCP 서버
바이낸스 암호화폐 거래소 데이터를 대규모 언어 모델(LLM) 에이전트에 노출하는 모델 컨텍스트 프로토콜(MCP) 서버입니다. 이 서버를 통해 LLM은 표준화된 인터페이스를 통해 바이낸스의 실시간 및 과거 시장 데이터에 접근할 수 있습니다.
특징
실시간 가격 데이터 : Binance에서 모든 거래 쌍의 현재 가격을 확인하세요
주문장 접근 : 다양한 가격 수준에서 매수/매도 관심을 보여주는 주문장 스냅샷을 검색합니다.
과거 가격 데이터 : 모든 기간의 OHLCV(시가, 고가, 저가, 종가, 거래량) 캔들스틱 데이터를 가져옵니다.
실시간 WebSocket 스트림 : WebSocket을 통해 실시간 거래, 티커 및 주문장 업데이트를 구독하세요.
종합 시장 데이터 : 거래, 24시간 통계, 집계 거래, 롤링 윈도우 데이터 등에 액세스하세요.
거래소 정보 : 거래 규칙, 심볼 정보 및 수수료 구조에 액세스하세요
읽기 전용 작업 : 모든 데이터는 Binance의 공개 REST API를 통해 가져옵니다(API 키 필요 없음)
MCP 표준 준수 : 모든 MCP 호환 LLM 클라이언트와 호환됩니다.
Related MCP server: BSC MCP Server
요구 사항
파이썬 3.8 이상
CLI 도구가 포함된
mcp패키지(mcp[cli])REST API용
requests라이브러리WebSocket 스트림을 위한
websockets라이브러리서빙용
uvicorn(선택 사항)
설치
이 저장소를 복제하세요:
지엑스피1
종속성 설치:
용법
서버를 직접 실행
독립 실행형 모드로 서버를 실행하려면:
이렇게 하면 STDIO를 통해 연결을 수신하는 MCP 서버가 시작됩니다.
MCP Inspector를 사용한 개발 모드
개발 및 테스트를 위해 MCP Inspector를 사용하세요.
이렇게 하면 MCP Inspector 인터페이스가 열리고, 여기서 서버 도구를 대화형으로 테스트할 수 있습니다.
Claude Desktop에 설치
Claude Desktop과 함께 이 서버를 사용하려면:
아직 MCP CLI 도구를 설치하지 않았다면 설치하세요.
Claude Desktop에 서버를 설치하세요:
이제 Claude Desktop 대화에서 바로 Binance 데이터에 액세스할 수 있습니다.
예시 클라이언트
프로그래밍 방식의 사용을 보여주기 위해 클라이언트 스크립트의 예가 제공됩니다.
이 스크립트는 서버에 연결하여 다양한 유형의 시장 데이터를 검색합니다.
사용 가능한 도구
연결성 및 기본 정보
ping_binance() : Binance API 서버에 대한 연결을 테스트합니다.
예:
ping_binance()
get_server_time() : Binance에서 현재 서버 시간을 가져옵니다.
예:
get_server_time()
시장 데이터
get_price(symbol) : 거래 쌍의 현재 가격을 가져옵니다.
예:
get_price(symbol="BTCUSDT")
get_order_book(symbol, depth=10) : 현재 주문서를 가져옵니다.
예:
get_order_book(symbol="ETHUSDT", depth=5)
get_historical_prices(symbol, interval="1d", limit=100) : 과거 OHLCV 데이터 가져오기
예:
get_historical_prices(symbol="BTCUSDT", interval="1h", limit=24)유효한 간격: "1m", "3m", "5m", "15m", "30m", "1h", "2h", "4h", "6h", "8h", "12h", "1d", "3d", "1w", "1M"
get_ui_klines(symbol, interval="1d", limit=100) : UI에 최적화된 캔들스틱 데이터 가져오기
예:
get_ui_klines(symbol="BTCUSDT", interval="1h", limit=24)
get_recent_trades(symbol, limit=20) : 심볼에 대한 가장 최근 거래를 가져옵니다.
예:
get_recent_trades(symbol="BTCUSDT", limit=50)
get_historical_trades(symbol, limit=20, from_id=None) : 심볼에 대한 이전 거래를 가져옵니다.
예:
get_historical_trades(symbol="BTCUSDT", limit=100, from_id=12345)
get_aggregate_trades(symbol, limit=20) : 압축/집계 거래를 가져옵니다.
예:
get_aggregate_trades(symbol="ETHUSDT", limit=30)
get_24hr_ticker(symbol) : 24시간 가격 변화 통계를 가져옵니다.
예:
get_24hr_ticker(symbol="BNBUSDT")
get_all_24hr_tickers() : 모든 심볼에 대한 24시간 통계를 가져옵니다.
예:
get_all_24hr_tickers()
get_trading_day_ticker(symbol, type="FULL") : 거래일 가격 변화 통계를 가져옵니다.
예:
get_trading_day_ticker(symbol="BTCUSDT", type="FULL")
get_all_trading_day_tickers(type="FULL") : 모든 심볼에 대한 거래일 통계를 가져옵니다.
예:
get_all_trading_day_tickers(type="MINI")
get_rolling_window_ticker(symbol, window_size="1d", type="FULL") : 롤링 윈도우 가격 통계를 가져옵니다.
예:
get_rolling_window_ticker(symbol="BTCUSDT", window_size="4h")
get_all_rolling_window_tickers(window_size="1d", type="FULL") : 모든 심볼에 대한 롤링 윈도우 통계를 가져옵니다.
예:
get_all_rolling_window_tickers(window_size="4h", type="MINI")
get_average_price(symbol) : 현재 평균 가격(5분 가중 평균)을 가져옵니다.
예:
get_average_price(symbol="BTCUSDT")
get_book_ticker(symbol) : 최고 입찰가/매도가 및 수량 가져오기
예:
get_book_ticker(symbol="ETHBTC")
get_all_book_tickers() : 모든 심볼에 대한 최고 입찰/매도 가격을 가져옵니다.
예:
get_all_book_tickers()
시장 정보
get_exchange_info() : 거래 규칙 및 심볼 목록을 포함한 포괄적인 거래소 정보를 얻습니다.
get_trading_fees() : 기본 거래 수수료율을 가져옵니다(참고: 데모 목적으로 기본 공공 수수료를 반환합니다)
웹소켓 스트림
subscribe_to_trade_stream(symbol) : 실시간 거래 이벤트 구독
예:
subscribe_to_trade_stream(symbol="BTCUSDT")
subscribe_to_kline_stream(symbol, interval="1m") : 캔들스틱/클라인 업데이트 구독
예:
subscribe_to_kline_stream(symbol="BTCUSDT", interval="5m")
subscribe_to_ticker_stream(symbol) : 24시간 티커 업데이트 구독
예:
subscribe_to_ticker_stream(symbol="ETHUSDT")
subscribe_to_book_ticker_stream(symbol) : 최고 입찰/매도 가격 업데이트 구독
예:
subscribe_to_book_ticker_stream(symbol="BNBUSDT")
subscribe_to_depth_stream(symbol, levels=10) : 주문서 업데이트 구독
예:
subscribe_to_depth_stream(symbol="BTCUSDT", levels=5)
list_active_subscriptions() : 모든 활성 WebSocket 구독을 나열합니다.
예:
list_active_subscriptions()
get_latest_stream_data(stream_name) : 스트림에서 최신 데이터를 가져옵니다.
예:
get_latest_stream_data(stream_name="btcusdt@trade")
unsubscribe_from_stream(stream_name) : 스트림 구독 취소
예:
unsubscribe_from_stream(stream_name="btcusdt@kline_1m")
cleanup_all_streams() : 모든 WebSocket 연결을 닫고 리소스를 정리합니다.
예:
cleanup_all_streams()
프로젝트 구조
예시
기본 연결성
현재 시장 데이터 얻기
WebSocket 스트림 작업
구현 상태
구현 및 계획된 API 엔드포인트에 대한 자세한 개요는 API 구현 상태 문서를 참조하세요.
서버 확장
새로운 도구 추가
새로운 도구를 추가하려면 Binance API 모듈에서 적절한 기능을 만든 다음 명령 모듈 중 하나에서 이를 MCP 도구로 등록합니다.
개인 API 엔드포인트 지원
인증된 API 호출을 지원하려면:
인증을 포함하도록
binance_api.py수정하세요.무역 작업을 위한 추가 명령 모듈을 생성합니다.
server.py에 새로운 명령을 등록합니다.
문제 해결
연결 문제 : 클라이언트에 연결을 시도하기 전에 서버가 실행 중인지 확인하세요.
속도 제한 : Binance는 과도한 API 호출에 대해 속도 제한을 적용할 수 있습니다. 트래픽이 많은 배포에 대해 캐싱 구현을 고려하세요.
WebSocket 안정성 : WebSocket 연결은 24시간(Binance 제한) 후에 끊길 수 있습니다. 서버는 자동으로 다시 연결을 시도합니다.
데이터 형식 : 다른 기호나 간격은 약간 다른 형식으로 데이터를 반환할 수 있습니다.
특허
이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여되었습니다. 자세한 내용은 라이선스 파일을 참조하세요.
감사의 말
포괄적인 공개 API를 제공하는 바이낸스
LLM 도구 상호 작용을 표준화하기 위한 MCP 프로젝트