트레이딩 봇용 API와 AI용 MCP
Binance USD-M Futures용으로 작성한 봇은 코드를 다시 쓰지 않고 BuyCrypt 데모 계좌에서 작동합니다. 바뀌는 것은 API 주소뿐입니다. 그리고 Claude, ChatGPT, Cursor는 BuyCrypt MCP 서버를 통해 토너먼트, 트레이더 레이팅, 내 데모 계좌를 볼 수 있습니다.
{ "symbol": "BTCUSDT", "price": "…" }
봇은 거래하고, 어시스턴트는 질문에 답합니다.
트레이딩 봇용 API
요청, 서명, 응답 형식이 Binance USD-M Futures와 같습니다. 봇은 내 BuyCrypt 데모 계좌에 주문을 넣습니다. 가격은 시장 가격, 자금은 데모입니다.
- 같은 라이브러리 사용: binance-futures-connector, requests로 직접 작성한 코드
- REST, listenKey 기반 비공개 WebSocket, 스트림의 캔들과 마크 가격
- 키는 앱에서 만들며 하나의 데모 계좌에서만 작동합니다
AI 어시스턴트용 MCP
Claude, ChatGPT, Cursor 설정에 주소 하나만 넣으면, 질문할 때 어시스턴트가 알아서 BuyCrypt 데이터를 가져옵니다.
- 토너먼트, 상금, 참가자 순위표, 코인별 선두
- 트레이더 패스포트: 1000점 만점 레이팅, 레벨, 거래 스타일
- 내 데모 계좌: 잔고, 포지션, 주문(읽기 전용 키 사용)
MCP: BuyCrypt를 Claude, ChatGPT, Cursor에 연결하세요
MCP는 AI 어시스턴트가 외부 데이터와 도구를 연결하는 개방형 표준입니다. BuyCrypt 서버는 어시스턴트에 플랫폼의 실시간 데이터를 제공합니다. 가입과 키는 필요 없으며, 키는 내 데모 계좌를 볼 때만 필요합니다.
https://buycrypt.com/mcp
- claude.ai 또는 Claude Desktop 앱을 열고 → Customize → Connectors로 이동하세요.
- + Add → Add custom connector를 누르세요.
- 이름은 BuyCrypt, 주소는 https://buycrypt.com/mcp로 입력한 뒤 Continue를 누르세요.
- Authentication에서 No sign in을 고르고 Add를 누르세요.
맞춤 커넥터는 Claude의 모든 요금제에서 쓸 수 있으며, 무료 요금제에서는 1개입니다. Team과 Enterprise에서는 조직 소유자가 Organization settings → Connectors에서 커넥터를 추가합니다. 내 데모 계좌를 쓰려면 같은 창의 Request headers 블록에 키를 추가하세요. 방법 보기
- 터미널에서 명령 하나를 실행하세요:
claude mcp add --transport http buycrypt https://buycrypt.com/mcp
확인: claude mcp list — 목록에 buycrypt가 나타납니다. 모든 프로젝트에서 서버를 쓰려면 --scope user를 추가하세요.
- 브라우저에서 chatgpt.com/plugins를 여세요.
- + → Add custom MCP server를 누르세요.
- 이름은 BuyCrypt로 하고, Connection에서 공개 주소를 선택한 뒤 https://buycrypt.com/mcp를 입력하세요.
- Authentication은 No authentication. 경고 창에서 I understand and want to continue를 확인하고 Create를 누르세요.
ChatGPT에서 맞춤 MCP 서버는 웹 버전에서만 추가할 수 있으며, 모든 요금제에서 지원되지는 않습니다. 메뉴가 보이지 않는다면 요금제나 워크스페이스 관리자가 막아 둔 것입니다. ChatGPT는 서버에 키를 전달하지 않으므로 내 데모 계좌는 연결할 수 없습니다. 이 경우에는 Claude, Claude Code, Cursor를 쓰세요.
버튼을 누르면 설정이 채워진 상태로 Cursor가 열립니다. 직접 하려면 ~/.cursor/mcp.json(모든 프로젝트) 또는 프로젝트 루트의 .cursor/mcp.json에 추가하세요:
{
"mcpServers": {
"buycrypt": {
"url": "https://buycrypt.com/mcp"
}
}
}Streamable HTTP를 지원하는 클라이언트라면 무엇이든 됩니다. 주소 https://buycrypt.com/mcp를 입력하세요. 인증은 필요 없습니다. 로컬 서버(stdio)만 실행할 수 있는 클라이언트라면 mcp-remote 브리지로 연결하세요. Node.js가 필요합니다:
{
"mcpServers": {
"buycrypt": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://buycrypt.com/mcp"]
}
}
}어시스턴트 없이 서버 확인: npx @modelcontextprotocol/inspector --cli https://buycrypt.com/mcp --transport http --method tools/list
서버가 할 수 있는 일
platform_overview지금 어떤 토너먼트가 진행 중이고, 다음은 무엇이며, 토너먼트에 트레이더가 몇 명인지, 최근 상금은 무엇인지.
키 없음list_tournaments진행 중, 예정, 종료된 토너먼트: 코인, 집계 방식, 상금 풀, 참가비, 참가자.
키 없음get_tournament토너먼트 하나: 순위별 상금과 결과가 포함된 참가자 순위표.
키 없음leaderboard7, 30, 90일간 코인별 선두 — 「상위 트레이더」 페이지와 같습니다.
키 없음trader_profile닉네임으로 보는 트레이더 패스포트: 1000점 만점 레이팅, 레벨, 평가의 다섯 요소, 스타일. 공개 프로필만.
키 없음market_ticker무기한 계약의 가격과 24시간 변동률, 예: BTCUSDT.
키 없음demo_account내 데모 계좌의 잔고, 증거금, 열린 포지션.
내 키demo_open_orders내 데모 계좌의 미체결 주문.
내 키demo_recent_results데모 계좌의 최근 결과: 종료된 거래의 손익, 수수료.
내 키어떤 도구도 주문을 넣거나, 토너먼트에 참가하거나, 돈을 옮기지 않습니다. 서버는 읽기만 합니다.
어시스턴트에게 물어볼 것
질문을 누르면 복사됩니다.
어시스턴트가 보는 BuyCrypt
아래는 지금 이 순간 https://buycrypt.com/mcp 서버가 보낸 실제 응답입니다. 어시스턴트는 같은 데이터를 받아 자기 말로 정리해 줍니다.
어시스턴트에서 보는 내 데모 계좌
demo_account, demo_open_orders, demo_recent_results 도구는 사용자의 데모 계좌를 읽습니다. 이를 위해 클라이언트는 API 키를 두 개의 헤더 X-BuyCrypt-Api-Key와 X-BuyCrypt-Api-Secret에 담아 서버로 보냅니다. 어시스턴트용으로는 읽기 전용 키를 만드십시오. 이 키로 잔고, 포지션, 주문은 볼 수 있지만 BuyCrypt는 이 키로 주문, 취소, 레버리지 변경을 실행하지 않습니다(응답 403). 발급 방법.
claude mcp add --transport http buycrypt https://buycrypt.com/mcp \ --header "X-BuyCrypt-Api-Key: YOUR_API_KEY" \ --header "X-BuyCrypt-Api-Secret: YOUR_API_SECRET"
{
"mcpServers": {
"buycrypt": {
"url": "https://buycrypt.com/mcp",
"headers": {
"X-BuyCrypt-Api-Key": "YOUR_API_KEY",
"X-BuyCrypt-Api-Secret": "YOUR_API_SECRET"
}
}
}
}- 커넥터를 추가할 때(Customize → Connectors → Add custom connector) 주소 다음에 No sign in을 고르세요.
- Request headers 블록에 두 개의 헤더 X-BuyCrypt-Api-Key와 X-BuyCrypt-Api-Secret를 내 값으로 추가하세요.
- Add를 누르세요. 키 없이 커넥터를 이미 추가했다면 삭제하고 헤더와 함께 다시 추가하세요.
읽기 전용
MCP 서버는 주문을 넣거나 취소하지 않습니다. 키는 잔고, 포지션, 주문을 읽는 데만 필요합니다. 읽기 전용 키는 다른 사람 손에 들어가더라도 거래에 쓸 수 없습니다.
하나의 데모 계좌
BuyCrypt 키는 그 키를 만든 데모 계좌에서만 작동합니다. 실제 거래소 계좌에는 접근할 수 없습니다.
별도의 키
어시스턴트용으로 별도의 읽기 전용 키를 만드십시오. 키는 buycrypt.com으로만 전송되며, 서버는 키를 저장하지 않고 로그에도 남기지 않습니다. 키는 만든 곳에서 폐기할 수 있습니다.
Binance USD-M Futures 호환 API
경로, HMAC-SHA256 서명, 파라미터, 응답 형식이 Binance USD-M Futures와 같습니다. 다른 점은 하나입니다. 주문은 시장 가격으로 내 BuyCrypt 데모 계좌에서 체결되며, 실제 거래소로는 전송되지 않습니다. 그래서 돈을 걸지 않고 실제 시장에서 전략을 검증할 수 있습니다.
시작하는 법
- 계정. Google 또는 Apple로 웹 터미널이나 BuyCrypt 앱에 로그인하세요. 데모 계좌가 바로 생깁니다.
- 키. 웹 터미널이나 앱에서: Profile → API keys → 데모 계좌 → Bot API keys 블록 → Generate API key. apiKey와 apiSecret을 복사하십시오. 시크릿은 한 번만 표시됩니다. AI 어시스턴트나 모니터링용으로는 웹 터미널에 Generate read-only key (for MCP) 버튼이 있습니다.
- 주소. 사용하는 라이브러리에서 https://fapi.binance.com 대신 https://api.buycrypt.com을 지정하세요. /fapi/v1/… 경로는 그대로입니다.
- 확인. 잔고를 요청하세요 — GET /fapi/v2/balance: 응답에 내 데모 계좌의 USDT가 나옵니다.
알아 둘 점
- USDT 계약과 단방향(one-way) 포지션 모드만 지원합니다. 헤지 모드는 지원하지 않습니다.
- 티커 가격은 /fapi/v1/ticker/price입니다. 최신 라이브러리가 호출하는 /fapi/v2/ticker/price 경로는 아직 지원하지 않습니다.
- 공개 스트림에서는 @kline_1m 캔들(5초마다)과 @markPrice(1초마다)가 전송됩니다.
- recvWindow는 기본 5,000ms, 최대 60,000ms입니다. /fapi/v1/time으로 시계를 맞추세요.
- 거래용 API 키가 있는 계정은 앱 랭킹에 🤖 표시가 붙습니다. 프로그램이 거래한다는 사실을 누구나 볼 수 있습니다.
- 키 권한: 일반 키(READ_TRADE)는 조회와 거래가 가능하고, 읽기 전용 키(READ)는 GET 요청과 listenKey만 허용됩니다. 이 키로 주문, 취소, 레버리지 또는 마진 변경을 요청하면 HTTP 403과 코드 -2015가 반환됩니다.
import os from binance.um_futures import UMFutures client = UMFutures( key=os.environ["BUYCRYPT_API_KEY"], # BuyCrypt 앱에서 받은 키 secret=os.environ["BUYCRYPT_API_SECRET"], base_url="https://api.buycrypt.com", # 바뀌는 유일한 줄 ) print(client.balance()) # 데모 계좌의 USDT client.change_leverage(symbol="BTCUSDT", leverage=5) order = client.new_order(symbol="BTCUSDT", side="BUY", type="MARKET", quantity=0.002) print(order["orderId"], order["status"]) print(client.get_position_risk(symbol="BTCUSDT"))
import hashlib, hmac, os, time, urllib.parse, requests API = "https://api.buycrypt.com" KEY = os.environ["BUYCRYPT_API_KEY"] SECRET = os.environ["BUYCRYPT_API_SECRET"] def signed(method, path, **params): params["timestamp"] = int(time.time() * 1000) query = urllib.parse.urlencode(params) sig = hmac.new(SECRET.encode(), query.encode(), hashlib.sha256).hexdigest() r = requests.request(method, f"{API}{path}?{query}&signature={sig}", headers={"X-MBX-APIKEY": KEY}, timeout=10) r.raise_for_status() return r.json() print(signed("GET", "/fapi/v2/balance")) print(signed("POST", "/fapi/v1/order", symbol="BTCUSDT", side="BUY", type="LIMIT", timeInForce="GTC", quantity=0.002, price=60000))
# 공개 데이터 — 키 없이 curl "https://api.buycrypt.com/fapi/v1/ticker/price?symbol=BTCUSDT" curl "https://api.buycrypt.com/fapi/v1/klines?symbol=ETHUSDT&interval=1h&limit=3" # 데모 계좌 잔고 — 서명된 요청 KEY="YOUR_API_KEY"; SECRET="YOUR_API_SECRET" Q="timestamp=$(date +%s)000" SIG=$(printf '%s' "$Q" | openssl dgst -sha256 -hmac "$SECRET" | sed 's/^.* //') curl -H "X-MBX-APIKEY: $KEY" "https://api.buycrypt.com/fapi/v2/balance?$Q&signature=$SIG"
메서드
REST 기본 주소는 https://api.buycrypt.com입니다. 서명이 필요한 메서드에는 X-MBX-APIKEY 헤더, timestamp, signature가 필요합니다.
시장 데이터 키 없이
계좌와 포지션 서명 필요
거래 서명 필요
WebSocket 스트림
한도와 오류
내 봇의 구독자(베타)
봇을 공개 봇으로 등록할 수 있습니다. 사용자가 앱에서 「연결」을 누르면 BuyCrypt가 그 사용자에게 1,000 데모 USDT가 든 별도의 데모 계좌를 열고, 그 계좌 전용 키를 발급합니다. 키는 subscription.created 이벤트로 내 웹훅에 전달되고, 봇은 구독자의 데모 계좌에서 거래합니다. 사용자가 연결을 끊으면 포지션이 청산되고 키가 무효화되며, subscription.disconnected 이벤트가 옵니다.
봇에는 사용자의 실제 계좌와 거래소 키가 전달되지 않습니다. 별도 데모 계좌의 키만 전달됩니다.
등록은 slug, displayName, webhookUrl(HTTPS만), webhookSecret(32자 이상) 파라미터로 서명된 POST /fapi/v1/bot/profiles를 보내는 방식입니다. 봇은 검토 전까지 PENDING_REVIEW 상태입니다. 모든 이벤트는 서명됩니다: X-BuyCrypt-Signature 헤더 = HMAC-SHA256(webhookSecret, timestamp + "." + 본문), 시간은 X-BuyCrypt-Timestamp에 있습니다. 전송은 최대 6번 재시도됩니다(즉시, 10초, 30초, 2분, 10분, 1시간 후). 연속 10번 전송에 실패하면 웹훅이 비활성화되며, 다시 켜려면 고객 지원에 문의하세요.
import hashlib, hmac, os, time WEBHOOK_SECRET = os.environ["BUYCRYPT_WEBHOOK_SECRET"] def verify(headers, raw_body: bytes) -> bool: ts = int(headers["X-BuyCrypt-Timestamp"]) if abs(time.time() * 1000 - ts) > 5 * 60 * 1000: # 5분보다 오래됨 — 거부 return False expected = hmac.new(WEBHOOK_SECRET.encode(), f"{ts}.".encode() + raw_body, hashlib.sha256).hexdigest() return hmac.compare_digest(expected, headers["X-BuyCrypt-Signature"])
BuyCrypt 키는 데모 계좌만 엽니다
하나의 계좌에 연결
API 키는 특정 데모 계좌용으로 발급되며 그 계좌에서만 작동합니다. 이 API로는 거래소의 실제 계좌에 접근할 수 없습니다. 읽기 전용 키는 이 계좌에서도 거래하지 않습니다.
시크릿은 한 번만 표시됩니다
키와 시크릿은 코드나 공개 저장소가 아니라 환경 변수나 시크릿 관리자에 보관하세요.
즉시 회수
웹 터미널이나 앱의 같은 "Bot API keys" 블록에서 "Revoke"를 누르십시오. 이 키를 사용하는 모든 요청은 즉시 401 오류를 받습니다.
자주 묻는 질문
봇이 실제 돈으로 거래하나요?
아니요. BuyCrypt API는 내 데모 계좌에서 주문을 체결합니다. 가격은 시장 가격, 잔고는 데모 USDT입니다. 주문은 거래소로 전송되지 않으므로 위험 없이 전략을 검증할 수 있습니다.
BuyCrypt에 맞게 봇을 다시 작성해야 하나요?
보통은 아닙니다. 봇이 Binance USD-M Futures로 작동한다면 기본 주소를 https://api.buycrypt.com으로 바꾸고 BuyCrypt 키를 넣으세요. 경로, 서명, 응답 형식은 같습니다. 봇이 헤지 모드와 /fapi/v2/ticker/price 경로를 쓰지 않는지 확인하세요.
API 키는 어디서 받나요?
웹 터미널이나 BuyCrypt 앱에서: Profile → API keys → 데모 계좌 → Bot API keys → Generate API key. MCP와 AI 어시스턴트용으로는 웹 터미널에서 "Generate read-only key (for MCP)"를 사용하십시오. 이 키는 계좌를 볼 수 있지만 거래하지 않습니다. 시크릿은 한 번만 표시되므로 바로 저장하십시오. 같은 곳에서 키를 폐기할 수도 있습니다.
MCP란 무엇이고 왜 필요한가요?
MCP(Model Context Protocol)는 AI 어시스턴트가 외부 데이터를 연결하는 개방형 표준입니다. https://buycrypt.com/mcp 서버를 연결하면 Claude, ChatGPT, Cursor에게 토너먼트, 선두 트레이더, 트레이더 패스포트에 대해 물어볼 수 있고, 어시스턴트는 BuyCrypt의 실시간 데이터로 답합니다.
MCP를 연결하려면 가입해야 하나요?
아니요. 토너먼트, 랭킹, 트레이더 패스포트, 가격은 키 없이 볼 수 있습니다. 키는 데모 계좌를 읽는 세 가지 도구에만 필요하며, 읽기 전용 키면 충분합니다.
AI 어시스턴트가 MCP로 거래할 수 있나요?
아니요. 서버의 아홉 가지 도구는 모두 데이터를 읽기만 합니다. 주문을 넣거나 취소하지 않고, 토너먼트에 참가하지 않으며, 돈을 옮기지 않습니다.
봇 개발자가 내 거래소 키를 받게 되나요?
아니요. 다른 사람의 봇을 연결하면 BuyCrypt가 그 봇을 위한 별도의 데모 계좌를 열고 그 계좌 전용 키만 발급합니다. 내 실제 계좌와 거래소 키는 봇에 전달되지 않습니다. 데이터 보호에 관한 자세한 내용은 「보안」 페이지에 있습니다.