关于 Aster Agent Gateway
Aster Agent Gateway 是只读的 Aster DEX 市场及账户数据网关,供 Agent 分析加密资产和全天候交易的传统金融永续合约。它整合期货、现货、资金费率、订单簿和金库流量数据,并按各市场间隔处理资金费率。
主要功能
- 01浏览期货和现货市场
- 02按市场间隔筛选资金费率
- 03查看订单簿、成交和 K 线
- 04比较标记价格与指数价格
- 05读取金库流量和地址账户数据
适用场景
- 01比较不同间隔市场的资金费率
- 02查看黄金、石油和股票永续合约
- 03筛选标记价格与指数价差较大的市场
- 04检查金库存款及公开账户数据
MCP 相关
MCP 服务提供 13 个只读工具,用于查询 Aster 期货、现货市场、资金费率、成交、金库流量和账户数据。它使用公共端点、缓存结果并执行速率限制。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
13收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| sort | string | 否 | |
| limit | integer | 否 |
详细介绍
aster-agent-gateway
Aster 列出了约 580 种期货,其中约 32 种是你不会想到能在加密货币 DEX 上交易的资产:黄金、石油、国债、个股和指数永续合约,它们全天候交易,而标的市场却处于休市状态。这个 MCP 服务将整个市场列表以及约 68 个现货交易对、资金费率、订单簿、K 线和金库存款流,呈现在 AI Agent 面前。只读且无需密钥;仅使用公共端点(fapi.asterdex.com/fapi/v3、sapi.asterdex.com/api/v3、tapi.asterdex.com/info、Solana RPC、可选的 EVM RPC),并进行缓存和速率限制。
使用场景
先看资金费率,因为这正是 Aster 与众不同之处。各市场的间隔从 1 小时到 8 小时不等;如果直接年化,8 小时结算的市场读数会低估 8 倍。筛选器会根据每一行对应的间隔计算数据,并同时显示上限和下限,因此显示 4,148%/年的读数时,也会附上解释这一数据的背景。
接着看看凌晨 3 点的 TradFi 市场列表:黄金报 $4,365,成交量实时更新;石油的负资金费率让多头持仓获利(我们查看时为 -0.0001%/1 小时);Micron 隔夜上涨 4.8%。只需一个 API,且采用与加密货币市场行相同的惯例。
mark_index_divergence 会按标记价格与指数价格的价差为全部约 756 个市场排序。我们记录数据的那天早上,RTXUSDT 同时位居该榜单(溢价 505 个基点)和资金费率榜首,这是典型的挤空前兆。金库存款流显示资金被存放在何处;未平仓合约量快照按交易对展示,并如实说明 Aster 无法提供无需密钥的未平仓合约量历史数据。
完整演练:examples/use-cases.md。
快速入门
Claude Code:
claude mcp add aster -- uvx aster-agent-gateway
stdio(默认,用于本地 Agent):
uvx aster-agent-gateway
或从检出目录运行:
git clone https://github.com/alekskram/aster-agent-gateway
cd aster-agent-gateway
uv sync
uv run aster-agent-gateway
Claude Desktop / Cursor 配置:
{
"mcpServers": {
"aster": {
"command": "uvx",
"args": ["aster-agent-gateway"]
}
}
}
托管形式,通过 8904 端口提供可流式传输的 HTTP 服务:
uvx aster-agent-gateway --http # 127.0.0.1:8904
curl http://127.0.0.1:8904/health # -> {"ok": true, "service": "aster-agent-gateway", ...}
Codex(~/.codex/config.toml)
[mcp_servers.aster]
command = "uvx"
args = ["aster-agent-gateway"]
ZCode:注册服务(复制粘贴)
# 1) start the gateway (keep it running)
uvx aster-agent-gateway --http --port 8904 &
# 2) register it (merges into ~/.zcode/cli/config.json)
python3 - <<'PY'
import json, os
p = os.path.expanduser("~/.zcode/cli/config.json")
os.makedirs(os.path.dirname(p), exist_ok=True)
cfg = json.load(open(p)) if os.path.exists(p) else {}
cfg.setdefault("mcp", {}).setdefault("servers", {})["aster"] = {
"type": "http", "url": "http://127.0.0.1:8904/mcp"}
json.dump(cfg, open(p, "w"), indent=2)
print("aster-agent-gateway registered:", p)
PY
所有 13 个工具均为只读(标注为 readOnlyHint: true, destructiveHint: false)。
| # | 工具 | 签名 | 功能 |
|---|---|---|---|
| 1 | market_overview | market_overview(limit=20, sort="volume") | 通过一次 ONE ticker/24hr 调用并结合 exchangeInfo 获取期货面板:TRADING 市场、交易量最高的市场、状态计数、新上线市场(onboardDate)。 |
| 2 | exchange_symbols | exchange_symbols(venue="futures", symbol=None, include_junk=False) | 提供带筛选条件和精度信息的交易对全集,包括 MIN_NOTIONAL、stepSize、leverageFilter;默认过滤 TEST*/SETTLING 无效项。 |
| 3 | order_book | order_book(symbol, venue="futures", depth=10) | fapi 深度 / sapi api/v3 深度;将 limit 调整至有定价的档位(考虑权重)。 |
| 4 | klines | klines(symbol, interval="1h", limit=100, market="futures", price_type="last") | 在 fapi 上获取 last/mark/index K 线;现货数据通过 sapi 获取。 |
| 5 | trades | trades(symbol, limit=20, venue="futures") | 获取最新的免密钥交易;实时探测现货路径(若不可用则返回如实说明的错误字典)。 |
| 6 | spot_overview | spot_overview(limit=20) | 通过 sapi ticker/24hr 和 exchangeInfo 获取现货交易对;过滤 TEST* 无效项。 |
| 7 | funding_overview | funding_overview(limit=20, sort="rate") | 通过 premiumIndex 和 fundingInfo 获取全部约 730 个费率:混合 1/2/4/8 小时间隔(会标记)、上限/下限、interestRate、nextFundingTime。 |
| 8 | tradfi_markets | tradfi_markets(limit=20, window=None) | 按资产类别(贵金属/股票/能源/国债/外汇)筛选 TradFi 永续合约,并包含 tradfi_crypto_corr 子块:根据 K 线计算本地 TradFi 与 BTC 的相关性。 |
| 9 | funding_screener | funding_screener(top=10, direction="both") | 单次调用即可按年化资金费率、溢价、标记价格与指数价格的价差进行排名,并通过 funding_regime 显示距上限/下限的余量。 |
| 10 | oi_snapshot | oi_snapshot(symbols=None, top=10) | 按交易对获取未平仓合约量 openInterest(每次最多 10 个交易对)。无法免密钥获取 OI 历史数据(404),会如实说明。 |
| 11 | deposit_flows | deposit_flows(chain_filter="all", limit=20) | 获取 Solana 金库签名(免密钥);设置 ASTER_EVM_RPC_URL* 后可获取 EVM 金库转账,并通过 deposit_stats 提供按小时/链分类的数据。 |
| 12 | account_view | account_view(address, data="balance") | 通过 tapi aster_getBalance/openOrders/userFills,免密钥查询任意地址;若因隐私限制无法返回数据,则返回如实解释原因的错误字典。 |
| 13 | mark_index_divergence | mark_index_divergence(limit=20) | 通过一次 premiumIndex 调用筛选标记价格与指数价格的价差,并对排名前 3 的结果使用 markPriceKlines 与 klines 进行交叉核对。 |
为什么使用网关,而不是原始 API?
Aster 的 fapi/sapi/tapi 端点都是普通 REST 接口。难点在于语义:
| 原始 API 提供 | 你还需要构建 |
|---|---|
| 各市场的资金费率间隔不同(1 小时至 8 小时) | 按交易对正确年化;简单乘以 ×24×365 会使 8 小时市场的数值高估 8 倍 |
| 资金费率上限/下限字段使用新旧两种名称 | 名称协商与回退机制(此网关读取 fundingFeeCap/FundingFeeFloor,并会如实降级) |
| 约 580 个交易对,混合了加密货币、全天候 TradFi 永续合约和现货 | 链/资产类别筛选、现货指数偏离排名,以及 OI 未公开时的容量筛选 |
| 三个独立的 API 接口(期货/现货/tapi)以及 Solana | 统一的工具接口,提供一致的交易对处理方式和逐字段来源标记 |
速率限制
本地执行的两个 REST 限流桶,会根据权重进行控制:
- fapi 每分钟 2400 权重,sapi 每分钟 6000 权重(每次调用后读取响应头
X-MBX-USED-WEIGHT-1M)。超过限流桶容量的 80% 后,客户端会自动限速;遇到 429 时会遵照Retry-After退避;遇到 418(重复出现 429 导致 IP 封禁)时,会触发 60 秒拒绝冷却期。深度和 K 线请求的 limit 会调整至有定价的档位,避免调用方意外耗尽权重。 - Solana 每分钟 10 个请求、tapi 每分钟 30 个请求、EVM 每分钟 20 个请求的本地限额 (各自独立计数,超限时会快速返回如实说明的错误)。
TTL 缓存:exchangeInfo 为 3600 秒,fundingInfo 为 600 秒,premiumIndex 和 tickers 为 15 秒,深度为 5 秒,K 线为 60 秒,交易为 10 秒,openInterest 为 30 秒。
数据说明
- API 返回的所有数值在上游均为 STRING;使用不会抛出异常的辅助函数解析,
null始终表示“不可用”,绝不表示零。 - 所有上游故障均返回错误字典
{"error", "source", "reason"},绝不返回回溯。 - 无密钥时不存在 OI 历史数据(
/futures/data/openInterestHist返回 404)——网关会如实说明,而不会捏造数据。 - EVM 金库日志需要
ASTER_EVM_RPC_URL(或按链设置ASTER_EVM_RPC_URL_{BSC,ETH,ARB});免费的公共 RPC 会以 -32005 拒绝金库查询。未设置时 -> 如实提示“未配置 RPC”。 - tapi 账户隐私:大多数账户是私有的;空结果会报告为隐私限制,而不是数据。
- 缓存响应会包含
age_seconds/fetched_at新鲜度字段。
套件组成
四个同类只读 MCP 网关,风格一致:无需密钥、带缓存、如实降级。
| 网关 | 重点 |
|---|---|
| dydx-agent-gateway | dYdX v4:已验证交易者的 PnL、资金费率/OI 异常检测器、排行榜 |
| arcus-agent-gateway | Robinhood Chain 上的 194 种代币化美国股票:报价、持有者、大额转账 |
| hyperliquid-agent-gateway | Hyperliquid:233 种永续合约 + 现货、资金费率套利、账户风险、HyperEVM |
| aster-agent-gateway(你正在查看此项目) | Aster DEX:约 580 种期货合约,包括 24/7 TradFi 永续合约、资金费率上限/下限 |
这四个项目都可在 glama.ai 和 PyPI 上找到;任何一个都可以通过 uvx <name> 安装。
许可证
MIT。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。