BuyCrypt
面向开发者和 AI 助手

交易机器人 API 与面向 AI 的 MCP

为 Binance USD-M Futures 编写的机器人无需重写即可在 BuyCrypt 模拟账户上运行:只需更换 API 地址。而 Claude、ChatGPT 和 Cursor 通过 BuyCrypt MCP 服务器可以看到锦标赛、交易员排名以及您的模拟账户。

1 行机器人代码中的改动:换一个 base URL
500+个 USDT 永续合约
9个 MCP 工具,全部只读
api.buycrypt.com实时响应
GET https://api.buycrypt.com/fapi/v1/ticker/price?symbol=BTCUSDT
{ "symbol": "BTCUSDT", "price": "…" }
# 您在 Binance USD-M Futures 上的机器人
- base_url="https://fapi.binance.com"
+ base_url="https://api.buycrypt.com"
两种连接方式

机器人负责交易,助手负责回答问题。

交易机器人 API

请求、签名和响应格式与 Binance USD-M Futures 相同。机器人在您的 BuyCrypt 模拟账户上下单:价格是市场价,资金是模拟的。

  • 使用相同的库:binance-futures-connector,或基于 requests 的自有代码
  • REST、基于 listenKey 的私有 WebSocket,数据流中包含 K 线和标记价格
  • 密钥在应用中创建,只能用于一个模拟账户
API 文档 →

面向 AI 助手的 MCP

在 Claude、ChatGPT 或 Cursor 的设置中填入一个地址,当您询问时,助手就会自动获取 BuyCrypt 的数据。

  • 锦标赛、奖金、参赛者排名、各币种领先者
  • 交易员护照:满分 1000 的评分、等级、交易风格
  • 您的模拟账户:余额、持仓、订单(使用只读密钥)
一分钟完成连接 →
MCP · Model Context Protocol

MCP:将 BuyCrypt 连接到 Claude、ChatGPT 和 Cursor

MCP 是一项开放标准,AI 助手借助它连接外部数据和工具。BuyCrypt 服务器向助手提供平台的实时数据。无需注册,也无需密钥,只有读取您的模拟账户时才需要密钥。

https://buycrypt.com/mcp
Streamable HTTP无需登录只读
  1. 打开 claude.ai 或 Claude Desktop 应用 → Customize → Connectors。
  2. 点击 + Add → Add custom connector。
  3. 名称填 BuyCrypt,地址填 https://buycrypt.com/mcp,然后点击 Continue。
  4. 在 Authentication 部分选择 No sign in,然后点击 Add。

所有 Claude 套餐都支持自定义连接器,免费版可添加一个。在 Team 和 Enterprise 团队中,连接器由组织所有者在 Organization settings → Connectors 中添加。如需连接您的模拟账户,请在同一窗口的 Request headers 区块中添加密钥,具体方法。

  1. 在终端中执行一条命令:
Terminal
claude mcp add --transport http buycrypt https://buycrypt.com/mcp

检查:claude mcp list,列表中会出现 buycrypt。添加 --scope user 可让该服务器在所有项目中可用。

  1. 在浏览器中打开 chatgpt.com/plugins。
  2. 点击 + → Add custom MCP server。
  3. 名称填 BuyCrypt,在 Connection 部分选择公开地址,并填入 https://buycrypt.com/mcp。
  4. Authentication 选择 No authentication。确认提示 I understand and want to continue,然后点击 Create。

ChatGPT 中的自定义 MCP 服务器只能在网页版中添加,并非所有套餐都支持。如果找不到该选项,说明套餐或工作区管理员关闭了它。ChatGPT 无法连接您的模拟账户:它不会把密钥传给服务器。这种情况下可以使用 Claude、Claude Code 和 Cursor。

添加到 Cursor

点击按钮即可打开已配置好的 Cursor。或者手动操作:添加到 ~/.cursor/mcp.json(适用于所有项目)或项目根目录的 .cursor/mcp.json:

mcp.json
{
  "mcpServers": {
    "buycrypt": {
      "url": "https://buycrypt.com/mcp"
    }
  }
}

任何支持 Streamable HTTP 的客户端都可以使用:填入地址 https://buycrypt.com/mcp,无需授权。如果客户端只能运行本地服务器(stdio),可以通过桥接工具 mcp-remote 连接,需要 Node.js:

claude_desktop_config.json 及类似配置
{
  "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

单场锦标赛:各名次奖金以及带成绩的参赛者排名。

无需密钥
leaderboard

某币种 7、30 或 90 天的领先者,与「顶级交易员」页面一致。

无需密钥
trader_profile

按昵称查询交易员护照:满分 1000 的评分、等级、五项评估、风格。仅限公开资料。

无需密钥
market_ticker

永续合约(例如 BTCUSDT)的价格和 24 小时涨跌幅。

无需密钥
demo_account

您模拟账户的余额、保证金和未平仓仓位。

您的密钥
demo_open_orders

您模拟账户的未成交订单。

您的密钥
demo_recent_results

模拟账户的近期结果:已平仓交易的盈亏和手续费。

您的密钥

没有任何工具会下单、报名锦标赛或转移资金,服务器只读取数据。

可以问助手什么

点击问题即可复制。

实时示例

助手眼中的 BuyCrypt

下面是服务器 https://buycrypt.com/mcp 此刻的真实响应。助手获取的就是这些数据,并用自己的话复述。

显示本月 BTC 前 5 名交易员
助手调用 leaderboard{"coin":"BTC","period_days":30,"limit":5}
正在加载服务器响应…
使用您的密钥

在助手中查看您的模拟账户

demo_account、demo_open_orders 和 demo_recent_results 这三个工具读取您的模拟账户。为此,客户端通过两个请求头把您的 API 密钥传给服务器:X-BuyCrypt-Api-Key 和 X-BuyCrypt-Api-Secret。请为助手创建只读密钥:它能看到余额、持仓和订单,但 BuyCrypt 不会凭它执行下单、撤单或调整杠杆(返回 403)。如何获取。

Terminal
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"
mcp.json
{
  "mcpServers": {
    "buycrypt": {
      "url": "https://buycrypt.com/mcp",
      "headers": {
        "X-BuyCrypt-Api-Key": "YOUR_API_KEY",
        "X-BuyCrypt-Api-Secret": "YOUR_API_SECRET"
      }
    }
  }
}
  1. 添加连接器时(Customize → Connectors → Add custom connector),填好地址后选择 No sign in。
  2. 在 Request headers 区块中添加两个请求头:X-BuyCrypt-Api-Key 和 X-BuyCrypt-Api-Secret,填入您的值。
  3. 点击 Add。如果连接器已在没有密钥的情况下添加过,请删除后带上请求头重新添加。

只读

MCP 服务器不会下单,也不会撤单。它需要密钥只是为了读取余额、持仓和订单。即使只读密钥落入他人之手,也无法用它交易。

一个模拟账户

BuyCrypt 密钥只能用于为其创建的那个模拟账户,无法访问真实的交易所账户。

单独的密钥

请为助手创建单独的只读密钥。密钥只发送到 buycrypt.com,服务器不会保存它,也不会写入日志。您可以在创建它的地方撤销它。

交易机器人 API

兼容 Binance USD-M Futures 的 API

路径、HMAC-SHA256 签名、参数和响应格式都与 Binance USD-M Futures 相同。唯一的区别是:订单按市场价在您的 BuyCrypt 模拟账户上执行,不会发送到真实交易所。这样就能在真实市场上检验策略,而不拿资金冒险。

如何开始

  1. 账户。通过 Google 或 Apple 登录网页终端或 BuyCrypt 应用。模拟账户会立即创建。
  2. 密钥。在网页终端或应用中:个人资料 → API 密钥 → 您的模拟账户 → Bot API keys 区块 → Generate API key。复制 apiKey 和 apiSecret:apiSecret 只显示一次。如用于 AI 助手或监控,网页终端中有 Generate read-only key (for MCP) 按钮。
  3. 地址。在您的库中把 https://fapi.binance.com 换成 https://api.buycrypt.com。路径 /fapi/v1/… 保持不变。
  4. 检查。查询余额 GET /fapi/v2/balance:响应中会显示您模拟账户的 USDT。

注意事项

  • 仅支持 USDT 合约和单向持仓模式(one-way),不支持双向持仓模式。
  • 行情价格请使用 /fapi/v1/ticker/price。新版库调用的路径 /fapi/v2/ticker/price 暂不支持。
  • 公开数据流推送 @kline_1m(每 5 秒)和 @markPrice(每秒)。
  • recvWindow 默认 5,000 毫秒,最长 60,000 毫秒。请通过 /fapi/v1/time 校准时钟。
  • 使用交易 API 密钥的账户会在应用排行榜中带有 🤖 标志:所有人都能看到这个账户由程序交易。
  • 密钥权限:普通密钥(READ_TRADE)可读取和交易,只读密钥(READ)仅限 GET 请求和 listenKey。用它下单、撤单、调整杠杆或保证金,会返回 HTTP 403 和错误码 -2015。
pip install binance-futures-connector
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"))
pip install requests
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))
bash, openssl
# 公开数据:无需密钥
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。

市场数据 无需密钥
GET/fapi/v1/ping · /fapi/v1/time连通性检查和服务器时间(毫秒)。
GET/fapi/v1/exchangeInfo合约、价格和数量过滤器、限额。
GET/fapi/v1/ticker/price · /ticker/24hr · /ticker/bookTicker最新价格、24 小时统计、最优买卖价。
GET/fapi/v1/depth · /fapi/v1/klines订单簿和 K 线。
GET/fapi/v1/premiumIndex · /fapi/v1/fundingRate标记价格、指数和资金费率。
账户与仓位 需签名
GET/fapi/v2/account · /fapi/v3/account余额、保证金和仓位一次返回(v1、v2 和 v3 相同)。
GET/fapi/v2/balance · /fapi/v3/balance模拟账户余额,仅 USDT。
GET/fapi/v2/positionRisk · /fapi/v3/positionRisk未平仓仓位:入场价、标记价格、未实现盈亏、强平价格。
GET/fapi/v1/userTrades · /fapi/v1/income按交易对查询成交记录和收益历史:盈亏、手续费。
GET/fapi/v1/commissionRate · /fapi/v1/leverageBracket按交易对查询手续费率和杠杆档位。
交易 需签名
POST/fapi/v1/order新订单:MARKET、LIMIT、STOP、STOP_MARKET、TAKE_PROFIT、TAKE_PROFIT_MARKET、TRAILING_STOP_MARKET;reduceOnly、closePosition、timeInForce、newClientOrderId。
GET/fapi/v1/order · /openOrders · /allOrders单个订单、未成交订单、历史订单。
PUT/fapi/v1/order修改限价单。
DELETE/fapi/v1/order · /allOpenOrders撤销单个订单或某交易对的全部订单。
POST/fapi/v1/batchOrders一次请求下多个订单;DELETE 为批量撤单。
POST/fapi/v1/algoOrder条件订单(止损、止盈、追踪);GET /openAlgoOrders、/allAlgoOrders,DELETE /algoOrder、/algoOpenOrders。
POST/fapi/v1/leverage · /fapi/v1/marginType按交易对设置杠杆和保证金模式。
GET/fapi/v1/positionSide/dual始终为 dualSidePosition: false,即单向持仓模式。
WebSocket 数据流
POST/fapi/v1/listenKey私有数据流密钥有效期 60 分钟;PUT 延长,DELETE 关闭。
WSwss://api.buycrypt.com/fapi/ws/<listenKey>您账户的事件:ORDER_TRADE_UPDATE、ACCOUNT_UPDATE、MARGIN_CALL,采用 Binance 格式。
WSwss://api.buycrypt.com/fapi/ws-market/btcusdt@markPrice单个市场的公开数据流:@markPrice 和 @kline_1m。
WSwss://api.buycrypt.com/stream?streams=btcusdt@markPrice/ethusdt@kline_1m一个连接中订阅多个数据流,响应包装为 {"stream", "data"}。
限额与错误
1 分钟2,400 权重 · 1,200 次签名读取按每个 API 密钥计算。响应中包含 X-MBX-USED-WEIGHT-1M 和 X-MBX-ORDER-COUNT-10S 请求头。
10 秒300 个订单超出时返回 HTTP 429 和 Retry-After。
ERR-1021 · -1022 · -2014 · -2015时间超出 recvWindow · 签名错误 · 密钥格式错误 · 密钥已撤销或无效(HTTP 401);密钥为只读,但请求是交易请求(HTTP 403)。
ERR-1102 · -2010 · -2011 · -2019缺少必填参数 · 订单被拒绝 · 订单不存在 · 保证金不足。
您的机器人的订阅者(测试版)

机器人可以注册为公开机器人:用户在应用中点击「连接」,BuyCrypt 会为其开设一个带 1,000 模拟 USDT 的单独模拟账户,并发放仅限该账户的密钥。密钥通过 subscription.created 事件发送到您的 webhook,机器人就在订阅者的模拟账户上交易。用户断开连接时,仓位平仓,密钥失效,您会收到 subscription.disconnected。

机器人拿不到用户的真实账户和交易所密钥,只能拿到单独模拟账户的密钥。

注册方式:发送签名的 POST /fapi/v1/bot/profiles,参数为 slug、displayName、webhookUrl(仅限 HTTPS)和 webhookSecret(至少 32 个字符);审核通过前,机器人状态为 PENDING_REVIEW。每个事件都有签名:请求头 X-BuyCrypt-Signature = HMAC-SHA256(webhookSecret, timestamp + "." + body),时间位于 X-BuyCrypt-Timestamp。投递最多重试 6 次(立即、10 秒、30 秒、2 分钟、10 分钟、1 小时后);连续 10 次投递失败后 webhook 会被停用,如需重新启用请联系支持。

验证 webhook 签名,Python
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 访问交易所的真实账户。只读密钥在该账户上同样不能交易。

secret 只显示一次

请把密钥和 secret 存放在环境变量或密钥管理器中,不要写在代码里,也不要放进公开仓库。

一秒撤销

在网页终端或应用中,于同一个「Bot API keys」区块点击「Revoke」:使用该密钥的所有请求将立即收到 401 错误。

常见问题

常见问题

机器人用真实资金交易吗?

不是。BuyCrypt API 在您的模拟账户上执行订单:价格是市场价,余额是模拟 USDT。订单不会发送到交易所,因此可以零风险检验策略。

需要为 BuyCrypt 重写机器人吗?

通常不需要。如果机器人对接的是 Binance USD-M Futures,把基础地址换成 https://api.buycrypt.com,并填入 BuyCrypt 密钥即可。路径、签名和响应格式都相同。请确认机器人没有使用双向持仓模式和 /fapi/v2/ticker/price 路径。

在哪里获取 API 密钥?

在网页终端或 BuyCrypt 应用中:个人资料 → API 密钥 → 您的模拟账户 → Bot API keys → Generate API key。用于 MCP 和 AI 助手时,请在网页终端中选择「Generate read-only key (for MCP)」:这种密钥能查看账户,但不能交易。apiSecret 只显示一次,请立即保存。也可以在同一位置撤销密钥。

什么是 MCP,有什么用?

MCP(Model Context Protocol)是 AI 助手连接外部数据的开放标准。连接服务器 https://buycrypt.com/mcp 后,您可以向 Claude、ChatGPT 或 Cursor 询问锦标赛、领先者和交易员护照,助手会根据 BuyCrypt 的实时数据回答。

连接 MCP 需要注册吗?

不需要。锦标赛、排行榜、交易员护照和价格无需密钥即可查看。只有读取您模拟账户的三个工具需要密钥,只读密钥就足够了。

AI 助手可以通过 MCP 交易吗?

不可以。服务器的九个工具全部只读:不会下单或撤单,不会报名锦标赛,也不会转移资金。

机器人开发者会拿到我的交易所密钥吗?

不会。当您连接他人的机器人时,BuyCrypt 会为它开设单独的模拟账户,并只发放该账户的密钥。您的真实账户和交易所密钥不会交给机器人。数据保护详情请见「安全」页面。

从模拟账户开始

BuyCrypt 账户免费:机器人可用的模拟账户、应用中的 API 密钥,以及能看出策略价值的锦标赛和排名。