remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
Integrations
Provides real-time and historical cryptocurrency market data from Binance, including current prices, order book snapshots, OHLCV candlestick data, and exchange information like trading rules and fee structures.
바이낸스 MCP 서버
바이낸스 암호화폐 거래소 데이터를 대규모 언어 모델(LLM) 에이전트에 노출하는 모델 컨텍스트 프로토콜(MCP) 서버입니다. 이 서버를 통해 LLM은 표준화된 인터페이스를 통해 바이낸스의 실시간 및 과거 시장 데이터에 접근할 수 있습니다.
특징
- 실시간 가격 데이터 : Binance에서 모든 거래 쌍의 현재 가격을 확인하세요
- 주문장 접근 : 다양한 가격 수준에서 매수/매도 관심을 보여주는 주문장 스냅샷을 검색합니다.
- 과거 가격 데이터 : 모든 기간의 OHLCV(시가, 고가, 저가, 종가, 거래량) 캔들스틱 데이터를 가져옵니다.
- 실시간 WebSocket 스트림 : WebSocket을 통해 실시간 거래, 티커 및 주문장 업데이트를 구독하세요.
- 종합 시장 데이터 : 거래, 24시간 통계, 집계 거래, 롤링 윈도우 데이터 등에 액세스하세요.
- 거래소 정보 : 거래 규칙, 심볼 정보 및 수수료 구조에 액세스하세요
- 읽기 전용 작업 : 모든 데이터는 Binance의 공개 REST API를 통해 가져옵니다(API 키 필요 없음)
- MCP 표준 준수 : 모든 MCP 호환 LLM 클라이언트와 호환됩니다.
요구 사항
- 파이썬 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 프로젝트
This server cannot be installed
LLM에 Binance 암호화폐 거래소 데이터를 공개하는 모델 컨텍스트 프로토콜 서버로, 에이전트가 API 키가 없어도 실시간 가격, 주문장, 과거 시장 데이터에 액세스할 수 있도록 합니다.