关于 buda-mcp — Buda.com Cryptocurrency Exchange
buda-mcp 为 MCP 客户端提供 Buda.com 公开加密货币交易所 API 数据,面向查询智利、哥伦比亚和秘鲁市场的用户。除行情和订单簿外,还提供技术指标、跨市场价差分析及不下单的交易模拟。
主要功能
- 01查询行情、订单簿和成交记录
- 02计算技术指标与市场情绪
- 03比较跨国市场价格差异
- 04模拟订单及实时报价
- 05提供市场和行情 MCP 资源
适用场景
- 01查看 Buda.com 交易对的实时行情
- 02分析成交历史与技术指标
- 03比较 CLP、COP 和 PEN 市场价格
- 04估算订单成交价、费用和滑点
MCP 相关
该服务通过 MCP 工具和资源向客户端提供 Buda.com 的公开市场数据;无需账户或 API 密钥。支持 stdio 和 Streamable HTTP 传输。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
16收录的工具列表 · 更新于 3 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| market_id | string | 否 | 可选的市场 ID(例如 'BTC-CLP'、'ETH-BTC')。省略则列出所有市场。 |
详细介绍
buda-mcp
适用于 Buda.com 的 MCP 服务——智利、哥伦比亚和秘鲁领先的加密货币交易所。让任何兼容 MCP 的 AI 助手都能实时访问市场数据、订单簿、交易历史、价差、技术指标和价格模拟——无需账户或 API 密钥。
快速开始
npx @guiie/buda-mcp
或永久安装:
npm install -g @guiie/buda-mcp
buda-mcp
在 MCP 客户端中安装
Claude Code
claude mcp add buda-mcp -- npx -y @guiie/buda-mcp
Claude Desktop(claude_desktop_config.json)
{
"mcpServers": {
"buda-mcp": {
"command": "npx",
"args": ["-y", "@guiie/buda-mcp"]
}
}
}
Cursor(~/.cursor/mcp.json)
{
"mcpServers": {
"buda-mcp": {
"command": "npx",
"args": ["-y", "@guiie/buda-mcp"]
}
}
}
工具
所有工具均可公开使用——无需 API 密钥或账户。
get_market_summary ⭐ 从这里开始
一键获取摘要:最新价格、买入价/卖出价、价差百分比、24 小时交易量、价格变动和 liquidity_rating(high / medium / low)。用户询问任何特定市场时,最适合作为第一个工具。
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
market_id | string | 是 | 市场 ID(例如 BTC-CLP)。 |
get_markets
列出 Buda.com 上的所有交易对,或获取指定市场的详情(手续费、最小订单量、折扣等级)。
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
market_id | string | 否 | 市场 ID(例如 BTC-CLP)。省略则列出所有市场。 |
get_ticker
当前快照:最新价格、最佳买入价/卖出价、24 小时交易量,以及 24 小时和 7 天内的价格变动。
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
market_id | string | 是 | 市场 ID(例如 BTC-CLP、ETH-COP)。 |
get_orderbook
当前订单簿:按排序排列的买单和卖单,表示为 {price, amount} 对象。
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
market_id | string | 是 | 市场 ID。 |
limit | number | 否 | 每侧的最高价格档位数(默认:全部)。 |
get_trades
近期交易历史,包含类型化对象:{timestamp_ms, amount, price, direction}。
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
market_id | string | 是 | 市场 ID。 |
limit | number | 否 | 交易数量(默认 50,最多 100)。 |
timestamp | number | 否 | Unix 秒——返回早于此时间的交易(分页)。 |
get_market_volume
按买卖方向统计的 24 小时和 7 天成交量(bid = 买入,ask = 卖出)。
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
market_id | string | 是 | 市场 ID。 |
get_spread
买入价/卖出价价差:绝对值及其占卖出价的百分比。
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
market_id | string | 是 | 市场 ID。 |
compare_markets
并排比较指定基础货币在所有计价货币中的交易对行情数据。
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
base_currency | string | 是 | 基础货币(例如 BTC、ETH)。 |
get_price_history
根据原始交易历史聚合 OHLCV 蜡烛图数据(Buda 没有原生蜡烛图接口)。支持 5m、15m、30m、1h、4h、1d 周期。
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
market_id | string | 是 | 市场 ID。 |
period | string | 否 | 5m / 15m / 30m / 1h / 4h / 1d(默认 1h)。 |
limit | number | 否 | 聚合前获取的原始交易数量(默认 100,最多 1000)。 |
get_arbitrage_opportunities
检测资产在 Buda 的 CLP、COP 和 PEN 市场之间的跨国价格差异,并统一换算为 USDC。
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
base_currency | string | 是 | 例如 BTC。 |
threshold_pct | number | 否 | 要报告的最低差异(默认值为 0.5)。 |
simulate_order
使用实时报价数据模拟买入或卖出订单——不会实际下单。返回 estimated_fill_price、fee_amount、total_cost、slippage_vs_mid_pct。所有响应均包含 simulation: true。
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
market_id | string | 是 | 市场 ID。 |
side | buy | sell | 是 | 订单方向。 |
amount | number | 是 | 以基础货币计价的订单数量。 |
price | number | 否 | 模拟市价订单时省略。 |
calculate_position_size
根据资金、风险百分比、入场价和止损价计算 Kelly 风格的仓位规模。完全在客户端执行——不会调用 API。
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
market_id | string | 是 | 市场 ID(用于提供上下文)。 |
capital | number | 是 | 用于计算仓位规模的总资金。 |
risk_pct | number | 是 | 承担风险的资金百分比(0.1–10)。 |
entry_price | number | 是 | 入场价。 |
stop_loss_price | number | 是 | 止损价。 |
get_market_sentiment
由三个部分构成的综合情绪分数(−100 至 +100):24 小时价格变化(40%)、成交量相对 7 日均值的变化(35%)、价差相对市场类型基准的变化(25%)。返回 score、label、component_breakdown 和 disclaimer。
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
market_id | string | 是 | 市场 ID。 |
get_technical_indicators
RSI(14)、MACD(12/26/9)、布林带(20,2σ)、SMA 20、SMA 50——根据 Buda 交易历史在服务端计算(不使用外部库)。返回信号解读;如果可用 K 线少于 20 根,则返回结构化警告。包含 disclaimer。
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
market_id | string | 是 | 市场 ID。 |
period | string | 否 | 1h / 4h / 1d(默认值为 1h)。 |
limit | number | 否 | 要获取的原始交易数量(500–1000)。 |
get_real_quotation
根据给定的订单数量和方向返回实时报价,显示确切的成交价、手续费和余额变化,且不会实际下单。
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
market_id | string | 是 | 市场 ID。 |
type | Bid | Ask | 是 | 订单方向。 |
amount | number | 是 | 以基础货币计价的订单数量。 |
limit_price | number | 否 | 限价报价的限价。 |
get_available_banks
列出指定货币所属国家可用于法币存款和取款的银行。
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
currency | string | 是 | 法币代码(例如 CLP、COP、PEN)。 |
MCP 资源
除工具外,服务还会公开 MCP 资源,客户端可以直接读取:
| URI | 描述 |
|---|---|
buda://markets | 所有 Buda.com 市场的 JSON 列表 |
buda://ticker/{market} | 特定市场的 JSON 报价信息(例如 buda://ticker/BTC-CLP) |
buda://summary/{market} | 包含流动性评级的完整市场摘要(例如 buda://summary/BTC-CLP) |
覆盖的市场
| 报价货币 | 国家 | 示例交易对 |
|---|---|---|
| CLP | 智利 | BTC-CLP、ETH-CLP、SOL-CLP |
| COP | 哥伦比亚 | BTC-COP、ETH-COP、SOL-COP |
| PEN | 秘鲁 | BTC-PEN、ETH-PEN |
| USDC | 与 USD 锚定 | BTC-USDC、USDT-USDC |
| BTC | 跨市场 | ETH-BTC、LTC-BTC、BCH-BTC |
从源代码构建
git clone https://github.com/gtorreal/buda-mcp.git
cd buda-mcp
npm install
npm run build
node dist/index.js # stdio (for MCP clients)
node dist/http.js # HTTP on port 3000 (for Railway / hosted)
运行测试:
npm run test:unit # 100 unit tests, no network required
npm run test:integration # live API tests (skips if unreachable)
npm test # both
HTTP / Railway 部署
dist/http.js 入口会运行一个 Express 服务器,提供:
POST /mcp— Streamable HTTP MCP 传输GET /mcp— SSE 流式传输GET /health— 健康检查({ status })GET /.well-known/mcp/server-card.json— 兼容 Smithery 的静态工具清单
环境变量
| 变量 | 必需 | 描述 |
|---|---|---|
PORT | 否 | HTTP 监听端口(默认值:3000) |
MCP_RATE_LIMIT | 否 | /mcp 每个 IP 每分钟的最大请求数(默认值:120) |
TRUST_PROXY_HOPS | 否 | 信任的反向代理跳数,用于处理 X-Forwarded-For(默认值:1)。 |
安全
服务器仅公开 Buda.com API 的公共端点。不接受或存储任何凭据。所有工具参数均经过输入验证,以防止提示词注入。错误消息经过清理:内部详情(路径、上游错误)仅记录到 stderr,不会返回给调用者。
报告漏洞
请通过 GitHub Security Advisories 私下报告安全问题,不要作为公开议题提交。完整的披露政策请参阅 SECURITY.md。
项目结构
src/
client.ts BudaClient (HTTP + 429 retry)
cache.ts In-memory TTL cache with in-flight deduplication
types.ts TypeScript types for Buda API responses
validation.ts validateMarketId(), validateCurrency()
utils.ts flattenAmount(), aggregateTradesToCandles(), getLiquidityRating()
version.ts Single source of truth for version string
index.ts stdio MCP server entrypoint
http.ts HTTP/SSE MCP server entrypoint
tools/
markets.ts get_markets
ticker.ts get_ticker
orderbook.ts get_orderbook
trades.ts get_trades
volume.ts get_market_volume
spread.ts get_spread
compare_markets.ts compare_markets
price_history.ts get_price_history
arbitrage.ts get_arbitrage_opportunities
market_summary.ts get_market_summary
simulate_order.ts simulate_order
calculate_position_size.ts calculate_position_size
market_sentiment.ts get_market_sentiment
technical_indicators.ts get_technical_indicators
banks.ts get_available_banks
quotation.ts get_real_quotation
marketplace/
cursor-mcp.json Cursor MCP config example
claude-listing.md Claude registry listing
openapi.yaml OpenAPI spec (GPT Actions / HTTP wrapper)
gemini-tools.json Gemini function declarations
文档
Agent 上下文:AGENTS.md | 运维说明:docs/PROJECT_MEMORY.md | 更新日志:CHANGELOG.md | 安全:SECURITY.md
许可证
MIT — Buda.com API 文档
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。