MCP 服务器
智能体连接后会发现五个工具,阅读其描述以了解有哪些数据,然后自行组合请求。无需拼接 URL,也无需解析 REST 结构。
服务器通过 HTTP 传输使用 MCP 协议。它将请求转发给 API,并对响应做轻度标准化。
#连接
一个 URL 和一个请求头。服务器默认关闭:没有有效的 X-API-KEY 时,不会公布任何工具,每个请求都会收到 401。
{
"mcpServers": {
"bytnode": {
"type": "http",
"url": "https://mcp.bytnode.com",
"headers": { "X-API-KEY": "your_key" }
}
}
}配置文件的具体格式取决于智能体,但原则不变。
#五个工具
它们都是只读的、无副作用的,并且是幂等的。因此智能体可以放心地重复调用。
get_system_info
诊断工具。一次调用即可返回服务健康状态、交易对列表以及各数据源的新鲜度。应当首先调用它:知道某个数据源滞后,会影响对后续分析的信任程度。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
include_status | boolean | true | 设为 false 时,只查询健康状态和交易对,更轻量。 |
get_market_data
按需组合的快照,基于 REST 快照。智能体指定所需字段,服务器并行查询并组装结果。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
symbol | string | 必填 | 无默认值。实时列表可通过 get_system_info 获取。 |
timeframe | string | 1h | 仅适用于多周期字段。 |
61 data fields | int | bool | — | 值为深度;对于只有当前值的字段则为 true。 |
get_history
单个指标在某个时间窗口内的历史,支持分页。共路由四十六个指标;每个指标都声明其目标,校验在任何网络调用之前完成。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
metric | string | 必填 | 46 个之一。未知时:返回列出全部 46 个指标的错误。 |
symbol | string | — | 用于按交易对的指标,例如 BTCUSDT。 |
asset | string | — | 用于按资产的指标,例如 BTC。只填资产,而不是交易对。 |
series | string | — | 用于按序列的指标,例如 DGS10、EURUSD。 |
timeframe | string | 1h | 适用于十五个多周期指标,其他情况忽略。 |
since_ms / until_ms | integer | — | 以 Unix 毫秒表示的时间窗口。 |
limit | integer | 100 | 在时间过滤之后应用。ls_ratio 和 spread 上限降为 500。 |
fields | string | — | 对每行做 CSV 投影,嵌套字段用点号表示。 |
get_market_emotions
全市场的恐惧与贪婪指数。不带时间边界时返回最新数据点;带 since_ms 或 until_ms 时切换为历史模式。不接受交易对:该指数是全局的。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
source | string | fear_greed | 唯一支持的值。 |
limit | integer | 50 | 历史模式下的数据点数量。 |
since_ms / until_ms | integer | — | 切换到历史模式。 |
get_market_indicators
二十种技术指标,按需计算。symbol、timeframe 和 indicators 为必填;只有 results 有默认值 1。
await c.call_tool("get_market_indicators", {
"symbol": "BTCUSDT",
"timeframe": "1h",
"results": 60,
"indicators": [
{"id": "rsi_fast", "type": "rsi", "period": 7},
{"id": "rsi_slow", "type": "rsi", "period": 21},
{"id": "macd", "type": "macd", "fast": 12, "slow": 26, "signal": 9},
{"id": "adx_mid", "type": "adx", "period": 14},
],
})规则与 REST 相同:十四种多实例类型使用 _fast / _mid / _slow 标识符,其余六种使用不带后缀的标识符,并且上限为 results + warm-up ≤ 1000。
#指标定位
每个指标都声明了它希望如何被定位。定位错误会被明确拒绝,绝不会被悄悄吞掉。
| 情况 | 响应 |
|---|---|
| 两个或以上目标 | 错误:一次只能使用一个定位参数。 |
| 需要目标但未提供 | 返回说明所需参数的错误,并附示例。 |
| 目标类型错误 | 错误:该指标需要 asset 而不是 symbol,反之亦然。 |
| 全市场指标却指定了目标 | 错误:不接受任何定位参数。 |
| asset 填写了交易对 | 错误:asset 只接受资产本身。不会自动推导。 |
#46 个指标
十九个按交易对的指标(symbol 参数)
basisbuysell_ratiocvd_seriesfunding_cumulativefunding_rate_8hheatmap_clustersliq_cumulativeliq_ratiols_ratioob_aggregatedoi_deltaspreadtokenomicstradetrade_futuretrade_sizetrade_spotvwapvwap_window
六个按资产的指标(asset 参数)
options_oioptions_oi_deltaoptions_ivoptions_iv_klinesoptions_pc_ratiooptions_volume
全部支持多周期和时间窗口。
两个按序列的指标(series 参数)
macromacro_intraday
macro 有意不支持多周期:把月度序列切成小时步长会造成隐性退化。macro_intraday 支持多周期,但不接受 30m。两者涵盖的品种不同:不要互相替代。
十九个全市场指标(无目标)
btc_feesbtc_mempoolbtc_miningbtc_networketh_defieth_deflationeth_gaseth_gas_momentumeth_ratioeth_squeezeeth_stakingeth_supplyfear_greedglobal_marketnet_liquidityonchain_active_addressesonchain_miner_stressonchain_mvrvonchain_nvt
没有专门的历史
price_change、macro_correlations、macro_momentum 和 macro_risk 是状态快照:通过 get_market_data 获取,而不是 get_history。
七个不支持时间窗口的指标
funding_rate_8h、funding_cumulative、ls_ratio、spread、trade、trade_spot 和 trade_future 不接受 since_ms 或 until_ms。传入会被拒绝而不是忽略:否则智能体会以为在过滤某个窗口,实际上收到的是最新的原始数据点。请只使用 limit。
#响应键
在不改变数据结构的前提下增加四个键。unavailable 和 coverage 与快照中的相同。另外两个是 MCP 特有的:
{
"timeframe_applied": "1h",
"scopes": {
"klines_1h": "symbol:BTCUSDT",
"options": "asset:BTC",
"fear_greed": "market"
}
}timeframe_applied:实际应用的周期,只要请求了多周期字段就会出现。scopes:每个字段的实际作用范围,按数据中出现的键索引。三种取值:symbol:X、asset:X、market。没有它时,全市场指数可能出现在标注为某个资产的响应中,而无从得知。
标准化
服务器整理自身的输出,但不改变任何数值:多周期键使用参数名而非 API 名(cvd_series@1h、spread@1h、ob_aggregated@4h),时间戳统一为 YYYY-MM-DDTHH:MM:SSZ,CVD 行中的主动成交量采用与 K 线中相同的名称。
#错误
所有错误都遵循同一种格式 Erreur (HTTP NNN) : message,这样智能体只需识别一种情况。
| 情况 | 行为 |
|---|---|
| 请求没有有效密钥 | 401,在公布任何工具之前。 |
| 密钥被 API 拒绝 | Erreur (HTTP 403) : Cle API absente, invalide ou revoquee. |
| 数据族不在方案内 | Erreur (HTTP 403) : Cette famille de donnees n est pas incluse dans votre offre. 该指标存在,只是不在你的方案中。 |
| 超出速率限制 | Erreur (HTTP 429) : Debit depasse. 请降低调用频率;Retry-After 为一秒。 |
| 月度配额已用尽 | Erreur (HTTP 429) : Quota mensuel epuise. 配额在每月第一天重置,或在更换方案后立即恢复。 |
| 其他请求错误 | Erreur (HTTP NNN),后跟 API 返回的详情。 |
| 服务器错误 | 自动重试一次,然后返回不可用消息。 |
| 超时 | 三十秒无响应后返回 Erreur (HTTP 504)。 |
| 未知指标 | 消息中会列出 46 个有效指标。 |
| 定位无效 | 在任何网络调用之前返回说明所需参数的明确错误。 |