The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the Buda MCP listing page.
MCP server for Buda.com — the leading cryptocurrency exchange in Chile, Colombia, and Peru. Gives any MCP-compatible AI assistant live access to market data, order books, trade history, spreads, technical indicators, and price simulation — no account or API key required.
Or install permanently:
claude_desktop_config.json)~/.cursor/mcp.json)All tools are public — no API key or account required.
get_market_summary ⭐ Start hereOne-call summary: last price, bid/ask, spread %, 24h volume, price change, and liquidity_rating (high / medium / low). Best first tool when a user asks about any specific market.
| Parameter | Type | Required | Description |
|---|---|---|---|
market_id | string | Yes | Market ID (e.g. BTC-CLP). |
get_marketsList all trading pairs on Buda.com, or get details for a specific market (fees, minimum order size, discount tiers).
| Parameter | Type | Required | Description |
|---|---|---|---|
market_id | string | No | Market ID (e.g. BTC-CLP). Omit to list all markets. |
get_tickerCurrent snapshot: last price, best bid/ask, 24h volume, and price change over 24h and 7d.
| Parameter | Type | Required | Description |
|---|---|---|---|
market_id | string | Yes | Market ID (e.g. BTC-CLP, ETH-COP). |
get_orderbookCurrent order book: sorted bids and asks as {price, amount} objects.
| Parameter | Type | Required | Description |
|---|---|---|---|
market_id | string | Yes | Market ID. |
limit | number | No | Max price levels per side (default: all). |
get_tradesRecent trade history as typed objects: {timestamp_ms, amount, price, direction}.
| Parameter | Type | Required | Description |
|---|---|---|---|
market_id | string | Yes | Market ID. |
limit | number | No | Number of trades (default 50, max 100). |
timestamp | number | No | Unix seconds — returns trades older than this (pagination). |
get_market_volume24h and 7-day transacted volume by side (bid = buys, ask = sells).
| Parameter | Type | Required | Description |
|---|---|---|---|
market_id | string | Yes | Market ID. |
get_spreadBid/ask spread: absolute value and percentage of the ask price.
| Parameter | Type | Required | Description |
|---|---|---|---|
market_id | string | Yes | Market ID. |
compare_marketsSide-by-side ticker data for all pairs of a given base currency across all quote currencies.
| Parameter | Type | Required | Description |
|---|---|---|---|
base_currency | string | Yes | Base currency (e.g. BTC, ETH). |
get_price_historyOHLCV candles aggregated from raw trade history (Buda has no native candlestick endpoint). Supports 5m, 15m, 30m, 1h, 4h, 1d periods.
| Parameter | Type | Required | Description |
|---|---|---|---|
market_id | string | Yes | Market ID. |
period | string | No | 5m / 15m / 30m / 1h / 4h / 1d (default 1h). |
limit | number | No | Raw trades to fetch before aggregation (default 100, max 1000). |
get_arbitrage_opportunitiesDetects cross-country price discrepancies for an asset across Buda's CLP, COP, and PEN markets, normalized to USDC.
| Parameter | Type | Required | Description |
|---|---|---|---|
base_currency | string | Yes | e.g. BTC. |
threshold_pct | number | No | Minimum discrepancy to report (default 0.5). |
simulate_orderSimulates a buy or sell order using live ticker data — no order is ever placed. Returns estimated_fill_price, fee_amount, total_cost, slippage_vs_mid_pct. All responses include simulation: true.
| Parameter | Type | Required | Description |
|---|---|---|---|
market_id | string | Yes | Market ID. |
side | buy | sell | Yes | Order side. |
amount | number | Yes | Order size in base currency. |
price | number | No | Omit for market order simulation. |
calculate_position_sizeKelly-style position sizing from capital, risk %, entry, and stop-loss. Fully client-side — no API call.
| Parameter | Type | Required | Description |
|---|---|---|---|
market_id | string | Yes | Market ID (for context). |
capital | number | Yes | Total capital to size from. |
risk_pct | number | Yes | % of capital to risk (0.1–10). |
entry_price | number | Yes | Entry price. |
stop_loss_price | number | Yes | Stop-loss price. |
get_market_sentimentComposite sentiment score (−100 to +100) from three components: 24h price variation (40%), volume vs 7-day average (35%), spread vs market-type baseline (25%). Returns score, label, component_breakdown, and a disclaimer.
| Parameter | Type | Required | Description |
|---|---|---|---|
market_id | string | Yes | Market ID. |
get_technical_indicatorsRSI (14), MACD (12/26/9), Bollinger Bands (20, 2σ), SMA 20, SMA 50 — computed server-side from Buda trade history (no external libraries). Returns signal interpretations and a structured warning if fewer than 20 candles are available. Includes disclaimer.
| Parameter | Type | Required | Description |
|---|---|---|---|
market_id | string | Yes | Market ID. |
period | string | No | 1h / 4h / 1d (default 1h). |
limit | number | No | Raw trades to fetch (500–1000). |
get_real_quotationReturns a real-time quotation for a given order amount and direction, showing exact fill price, fee, and balance changes without placing an order.
| Parameter | Type | Required | Description |
|---|---|---|---|
market_id | string | Yes | Market ID. |
type | Bid | Ask | Yes | Order side. |
amount | number | Yes | Order size in base currency. |
limit_price | number | No | Limit price for limit quotations. |
get_available_banksLists available banks for fiat deposits/withdrawals in a given currency's country.
| Parameter | Type | Required | Description |
|---|---|---|---|
currency | string | Yes | Fiat currency code (e.g. CLP, COP, PEN). |
In addition to tools, the server exposes MCP Resources that clients can read directly:
| URI | Description |
|---|---|
buda://markets | JSON list of all Buda.com markets |
buda://ticker/{market} | JSON ticker for a specific market (e.g. buda://ticker/BTC-CLP) |
buda://summary/{market} | Full market summary with liquidity rating (e.g. buda://summary/BTC-CLP) |
| Quote | Country | Sample pairs |
|---|---|---|
| CLP | Chile | BTC-CLP, ETH-CLP, SOL-CLP |
| COP | Colombia | BTC-COP, ETH-COP, SOL-COP |
| PEN | Peru | BTC-PEN, ETH-PEN |
| USDC | USD-pegged | BTC-USDC, USDT-USDC |
| BTC | Cross | ETH-BTC, LTC-BTC, BCH-BTC |
Run tests:
The dist/http.js entrypoint runs an Express server with:
POST /mcp — Streamable HTTP MCP transportGET /mcp — SSE streaming transportGET /health — health check ({ status })GET /.well-known/mcp/server-card.json — Smithery-compatible static tool manifest| Variable | Required | Description |
|---|---|---|
PORT | No | HTTP listen port (default: 3000) |
MCP_RATE_LIMIT | No | Max requests per IP per minute on /mcp (default: 120) |
TRUST_PROXY_HOPS | No | Number of reverse-proxy hops to trust for X-Forwarded-For (default: 1). |
The server exposes only public Buda.com API endpoints. No credentials are accepted or stored. Input validation is applied to all tool parameters to prevent prompt injection. Error messages are sanitized — internal details (paths, upstream errors) are logged to stderr only and never returned to callers.
Please report security issues privately via GitHub Security Advisories — not as public issues. See SECURITY.md for the full disclosure policy.
Agent context: AGENTS.md | Operational notes: docs/PROJECT_MEMORY.md | Changelog: CHANGELOG.md | Security: SECURITY.md
MIT — Buda.com API docs