@guiie/buda-mcp 1.2.2 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +68 -0
- package/PUBLISH_CHECKLIST.md +71 -63
- package/README.md +4 -4
- package/dist/http.js +39 -0
- package/dist/index.js +29 -0
- package/dist/tools/arbitrage.d.ts +35 -0
- package/dist/tools/arbitrage.d.ts.map +1 -0
- package/dist/tools/arbitrage.js +142 -0
- package/dist/tools/balances.d.ts.map +1 -1
- package/dist/tools/balances.js +24 -4
- package/dist/tools/calculate_position_size.d.ts +48 -0
- package/dist/tools/calculate_position_size.d.ts.map +1 -0
- package/dist/tools/calculate_position_size.js +111 -0
- package/dist/tools/compare_markets.d.ts.map +1 -1
- package/dist/tools/compare_markets.js +11 -10
- package/dist/tools/dead_mans_switch.d.ts +84 -0
- package/dist/tools/dead_mans_switch.d.ts.map +1 -0
- package/dist/tools/dead_mans_switch.js +236 -0
- package/dist/tools/market_sentiment.d.ts +30 -0
- package/dist/tools/market_sentiment.d.ts.map +1 -0
- package/dist/tools/market_sentiment.js +104 -0
- package/dist/tools/market_summary.d.ts +43 -0
- package/dist/tools/market_summary.d.ts.map +1 -0
- package/dist/tools/market_summary.js +81 -0
- package/dist/tools/markets.d.ts.map +1 -1
- package/dist/tools/markets.js +4 -2
- package/dist/tools/orderbook.d.ts.map +1 -1
- package/dist/tools/orderbook.js +14 -4
- package/dist/tools/orders.d.ts.map +1 -1
- package/dist/tools/orders.js +41 -3
- package/dist/tools/price_history.d.ts.map +1 -1
- package/dist/tools/price_history.js +5 -43
- package/dist/tools/simulate_order.d.ts +45 -0
- package/dist/tools/simulate_order.d.ts.map +1 -0
- package/dist/tools/simulate_order.js +139 -0
- package/dist/tools/spread.d.ts.map +1 -1
- package/dist/tools/spread.js +10 -8
- package/dist/tools/technical_indicators.d.ts +39 -0
- package/dist/tools/technical_indicators.d.ts.map +1 -0
- package/dist/tools/technical_indicators.js +223 -0
- package/dist/tools/ticker.d.ts.map +1 -1
- package/dist/tools/ticker.js +24 -3
- package/dist/tools/trades.d.ts.map +1 -1
- package/dist/tools/trades.js +17 -3
- package/dist/tools/volume.d.ts.map +1 -1
- package/dist/tools/volume.js +21 -3
- package/dist/types.d.ts +9 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils.d.ts +23 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +68 -0
- package/marketplace/README.md +1 -1
- package/marketplace/claude-listing.md +60 -14
- package/marketplace/gemini-tools.json +183 -9
- package/marketplace/openapi.yaml +335 -119
- package/package.json +1 -1
- package/server.json +2 -2
- package/src/http.ts +44 -0
- package/src/index.ts +34 -0
- package/src/tools/arbitrage.ts +202 -0
- package/src/tools/balances.ts +27 -4
- package/src/tools/calculate_position_size.ts +141 -0
- package/src/tools/compare_markets.ts +11 -10
- package/src/tools/dead_mans_switch.ts +314 -0
- package/src/tools/market_sentiment.ts +141 -0
- package/src/tools/market_summary.ts +124 -0
- package/src/tools/markets.ts +4 -2
- package/src/tools/orderbook.ts +15 -4
- package/src/tools/orders.ts +45 -4
- package/src/tools/price_history.ts +5 -57
- package/src/tools/simulate_order.ts +182 -0
- package/src/tools/spread.ts +10 -8
- package/src/tools/technical_indicators.ts +282 -0
- package/src/tools/ticker.ts +27 -3
- package/src/tools/trades.ts +18 -3
- package/src/tools/volume.ts +24 -3
- package/src/types.ts +12 -0
- package/src/utils.ts +73 -0
- package/test/unit.ts +758 -0
package/marketplace/openapi.yaml
CHANGED
|
@@ -7,11 +7,14 @@ info:
|
|
|
7
7
|
Provides live prices, spreads, OHLCV history, order books, trade history, and volume for all markets.
|
|
8
8
|
No authentication required for public tools.
|
|
9
9
|
|
|
10
|
+
All response schemas are flat and typed: monetary amounts are returned as floats with
|
|
11
|
+
separate _currency fields instead of [amount, currency] arrays.
|
|
12
|
+
|
|
10
13
|
**Note:** This spec describes a deployed HTTP wrapper around the buda-mcp
|
|
11
14
|
stdio server. Deploy locally with mcp-proxy:
|
|
12
15
|
mcp-proxy --port 8000 -- npx -y @guiie/buda-mcp
|
|
13
16
|
Or point `servers[0].url` at your hosted instance.
|
|
14
|
-
version: 1.
|
|
17
|
+
version: 1.3.0
|
|
15
18
|
contact:
|
|
16
19
|
url: https://github.com/gtorreal/buda-mcp
|
|
17
20
|
|
|
@@ -25,8 +28,10 @@ paths:
|
|
|
25
28
|
operationId: getMarkets
|
|
26
29
|
summary: List all trading pairs
|
|
27
30
|
description: |
|
|
28
|
-
|
|
29
|
-
Each market entry includes base/quote currencies,
|
|
31
|
+
Lists all available markets on Buda.com, or details for a single market.
|
|
32
|
+
Each market entry includes base/quote currencies, taker/maker fees as decimals,
|
|
33
|
+
minimum order amount, and fee discount tiers.
|
|
34
|
+
Example: 'What is the taker fee and minimum order size for BTC-CLP?'
|
|
30
35
|
parameters:
|
|
31
36
|
- name: market_id
|
|
32
37
|
in: query
|
|
@@ -56,6 +61,8 @@ paths:
|
|
|
56
61
|
description: |
|
|
57
62
|
Returns the current market snapshot: last traded price, best bid (max_bid),
|
|
58
63
|
best ask (min_ask), 24h volume, and price change over 24h and 7d.
|
|
64
|
+
All prices are floats in the quote currency. price_variation_24h is a decimal fraction.
|
|
65
|
+
Example: 'What is the current Bitcoin price in Chilean pesos?'
|
|
59
66
|
parameters:
|
|
60
67
|
- name: market_id
|
|
61
68
|
in: query
|
|
@@ -79,8 +86,10 @@ paths:
|
|
|
79
86
|
operationId: getOrderbook
|
|
80
87
|
summary: Order book for a market
|
|
81
88
|
description: |
|
|
82
|
-
Returns the current limit order book
|
|
83
|
-
|
|
89
|
+
Returns the current limit order book as typed objects with float price and amount fields.
|
|
90
|
+
Bids are sorted highest-price first; asks lowest-price first.
|
|
91
|
+
Prices are in the quote currency; amounts are in the base currency.
|
|
92
|
+
Example: 'What are the top 5 buy and sell orders for BTC-CLP right now?'
|
|
84
93
|
parameters:
|
|
85
94
|
- name: market_id
|
|
86
95
|
in: query
|
|
@@ -112,8 +121,10 @@ paths:
|
|
|
112
121
|
operationId: getTrades
|
|
113
122
|
summary: Recent trade history for a market
|
|
114
123
|
description: |
|
|
115
|
-
Returns recent trades
|
|
116
|
-
|
|
124
|
+
Returns recent trades as typed objects with float fields.
|
|
125
|
+
Each entry has timestamp_ms (integer), amount (float, base currency),
|
|
126
|
+
price (float, quote currency), and direction ("buy" or "sell").
|
|
127
|
+
Example: 'What was the last executed price for BTC-CLP and was it a buy or sell?'
|
|
117
128
|
parameters:
|
|
118
129
|
- name: market_id
|
|
119
130
|
in: query
|
|
@@ -155,8 +166,9 @@ paths:
|
|
|
155
166
|
operationId: getMarketVolume
|
|
156
167
|
summary: 24h and 7-day volume for a market
|
|
157
168
|
description: |
|
|
158
|
-
Returns transacted volume broken down by side (ask = sell, bid = buy)
|
|
159
|
-
and time window (24h and 7d).
|
|
169
|
+
Returns transacted volume as floats broken down by side (ask = sell, bid = buy)
|
|
170
|
+
and time window (24h and 7d). All volumes are in the market's base currency.
|
|
171
|
+
Example: 'How much Bitcoin was sold on BTC-CLP in the last 24 hours?'
|
|
160
172
|
parameters:
|
|
161
173
|
- name: market_id
|
|
162
174
|
in: query
|
|
@@ -180,8 +192,9 @@ paths:
|
|
|
180
192
|
operationId: getSpread
|
|
181
193
|
summary: Bid/ask spread for a market
|
|
182
194
|
description: |
|
|
183
|
-
Returns the best bid price, best ask price, absolute spread, and spread
|
|
184
|
-
|
|
195
|
+
Returns the best bid price, best ask price, absolute spread, and spread percentage
|
|
196
|
+
as floats. spread_percentage is in percent (e.g. 0.15 means 0.15%).
|
|
197
|
+
Example: 'Is BTC-CLP liquid enough to buy 10M CLP without significant slippage?'
|
|
185
198
|
parameters:
|
|
186
199
|
- name: market_id
|
|
187
200
|
in: query
|
|
@@ -206,8 +219,9 @@ paths:
|
|
|
206
219
|
summary: Compare all pairs of a base currency side by side
|
|
207
220
|
description: |
|
|
208
221
|
Returns ticker data for all trading pairs of a given base currency across all supported
|
|
209
|
-
quote currencies (CLP, COP, PEN, USDC, BTC, ETH).
|
|
210
|
-
|
|
222
|
+
quote currencies (CLP, COP, PEN, USDC, BTC, ETH). All prices and change values are floats.
|
|
223
|
+
price_change_24h is in percent (e.g. 1.23 means +1.23%).
|
|
224
|
+
Example: 'In which country is Bitcoin currently most expensive on Buda?'
|
|
211
225
|
parameters:
|
|
212
226
|
- name: base_currency
|
|
213
227
|
in: query
|
|
@@ -233,8 +247,10 @@ paths:
|
|
|
233
247
|
description: |
|
|
234
248
|
IMPORTANT: Candles are aggregated client-side from raw trades (Buda has no native
|
|
235
249
|
candlestick endpoint) — increase 'limit' for deeper history but expect slower responses.
|
|
236
|
-
Returns OHLCV (open/high/low/close
|
|
237
|
-
|
|
250
|
+
Returns OHLCV candles with float values (open/high/low/close in quote currency,
|
|
251
|
+
volume in base currency). Candle timestamps are UTC bucket boundaries.
|
|
252
|
+
Supports 1h, 4h, and 1d candle periods.
|
|
253
|
+
Example: 'Show me the hourly BTC-CLP price chart for the past 24 hours.'
|
|
238
254
|
parameters:
|
|
239
255
|
- name: market_id
|
|
240
256
|
in: query
|
|
@@ -269,17 +285,73 @@ paths:
|
|
|
269
285
|
"404":
|
|
270
286
|
$ref: "#/components/responses/NotFound"
|
|
271
287
|
|
|
288
|
+
/get_market_summary:
|
|
289
|
+
get:
|
|
290
|
+
operationId: getMarketSummary
|
|
291
|
+
summary: Complete market overview in a single call
|
|
292
|
+
description: |
|
|
293
|
+
One-call summary of everything relevant about a market: last price, best bid/ask,
|
|
294
|
+
spread %, 24h volume, 24h and 7d price change, and a liquidity_rating.
|
|
295
|
+
liquidity_rating: "high" (spread < 0.3%), "medium" (0.3–1%), "low" (> 1%).
|
|
296
|
+
All prices and volumes are floats. Best first tool to call when a user asks about a specific market.
|
|
297
|
+
Example: 'Give me a complete overview of the BTC-CLP market right now.'
|
|
298
|
+
parameters:
|
|
299
|
+
- name: market_id
|
|
300
|
+
in: query
|
|
301
|
+
required: true
|
|
302
|
+
description: Market identifier (e.g. "BTC-CLP", "ETH-COP"). Case-insensitive.
|
|
303
|
+
schema:
|
|
304
|
+
type: string
|
|
305
|
+
example: BTC-CLP
|
|
306
|
+
responses:
|
|
307
|
+
"200":
|
|
308
|
+
description: Full market summary
|
|
309
|
+
content:
|
|
310
|
+
application/json:
|
|
311
|
+
schema:
|
|
312
|
+
$ref: "#/components/schemas/MarketSummaryResponse"
|
|
313
|
+
"404":
|
|
314
|
+
$ref: "#/components/responses/NotFound"
|
|
315
|
+
|
|
316
|
+
/get_arbitrage_opportunities:
|
|
317
|
+
get:
|
|
318
|
+
operationId: getArbitrageOpportunities
|
|
319
|
+
summary: Cross-country price discrepancies normalized to USDC
|
|
320
|
+
description: |
|
|
321
|
+
Detects price discrepancies for a given asset across Buda's CLP, COP, and PEN markets,
|
|
322
|
+
normalized to USDC using current exchange rates. Returns pairwise discrepancies above
|
|
323
|
+
threshold_pct, sorted descending by opportunity size.
|
|
324
|
+
IMPORTANT: Buda taker fee is 0.8% per leg (~1.6% round-trip). Deduct fees before acting.
|
|
325
|
+
Example: 'Is there an arbitrage opportunity for BTC between Chile and Peru right now?'
|
|
326
|
+
parameters:
|
|
327
|
+
- name: base_currency
|
|
328
|
+
in: query
|
|
329
|
+
required: true
|
|
330
|
+
description: Base asset to scan (e.g. "BTC", "ETH"). Case-insensitive.
|
|
331
|
+
schema:
|
|
332
|
+
type: string
|
|
333
|
+
example: BTC
|
|
334
|
+
- name: threshold_pct
|
|
335
|
+
in: query
|
|
336
|
+
required: false
|
|
337
|
+
description: Minimum discrepancy percentage to include (default 0.5). Round-trip fees ~1.6%.
|
|
338
|
+
schema:
|
|
339
|
+
type: number
|
|
340
|
+
minimum: 0
|
|
341
|
+
default: 0.5
|
|
342
|
+
example: 1.0
|
|
343
|
+
responses:
|
|
344
|
+
"200":
|
|
345
|
+
description: Arbitrage opportunities found
|
|
346
|
+
content:
|
|
347
|
+
application/json:
|
|
348
|
+
schema:
|
|
349
|
+
$ref: "#/components/schemas/ArbitrageResponse"
|
|
350
|
+
"404":
|
|
351
|
+
$ref: "#/components/responses/NotFound"
|
|
352
|
+
|
|
272
353
|
components:
|
|
273
354
|
schemas:
|
|
274
|
-
Amount:
|
|
275
|
-
type: array
|
|
276
|
-
description: Monetary amount as [value_string, currency_code]
|
|
277
|
-
items:
|
|
278
|
-
type: string
|
|
279
|
-
minItems: 2
|
|
280
|
-
maxItems: 2
|
|
281
|
-
example: ["65929908.0", "CLP"]
|
|
282
|
-
|
|
283
355
|
Market:
|
|
284
356
|
type: object
|
|
285
357
|
properties:
|
|
@@ -296,7 +368,10 @@ components:
|
|
|
296
368
|
type: string
|
|
297
369
|
example: CLP
|
|
298
370
|
minimum_order_amount:
|
|
299
|
-
|
|
371
|
+
type: array
|
|
372
|
+
items:
|
|
373
|
+
type: string
|
|
374
|
+
example: ["0.00001", "BTC"]
|
|
300
375
|
taker_fee:
|
|
301
376
|
type: string
|
|
302
377
|
example: "0.8"
|
|
@@ -325,55 +400,67 @@ components:
|
|
|
325
400
|
market:
|
|
326
401
|
$ref: "#/components/schemas/Market"
|
|
327
402
|
|
|
328
|
-
|
|
403
|
+
TickerResponse:
|
|
329
404
|
type: object
|
|
330
405
|
properties:
|
|
331
406
|
market_id:
|
|
332
407
|
type: string
|
|
333
408
|
example: BTC-CLP
|
|
334
409
|
last_price:
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
410
|
+
type: number
|
|
411
|
+
example: 65675000
|
|
412
|
+
last_price_currency:
|
|
413
|
+
type: string
|
|
414
|
+
example: CLP
|
|
338
415
|
min_ask:
|
|
339
|
-
|
|
416
|
+
type: number
|
|
417
|
+
example: 65678531
|
|
418
|
+
min_ask_currency:
|
|
419
|
+
type: string
|
|
420
|
+
example: CLP
|
|
421
|
+
max_bid:
|
|
422
|
+
type: number
|
|
423
|
+
example: 65675000
|
|
424
|
+
max_bid_currency:
|
|
425
|
+
type: string
|
|
426
|
+
example: CLP
|
|
340
427
|
volume:
|
|
341
|
-
|
|
342
|
-
|
|
428
|
+
type: number
|
|
429
|
+
example: 5.00837363
|
|
430
|
+
volume_currency:
|
|
343
431
|
type: string
|
|
344
|
-
|
|
345
|
-
|
|
432
|
+
example: BTC
|
|
433
|
+
price_variation_24h:
|
|
434
|
+
type: number
|
|
435
|
+
description: Decimal fraction (e.g. 0.019 = +1.9%)
|
|
436
|
+
example: 0.019
|
|
346
437
|
price_variation_7d:
|
|
347
|
-
type:
|
|
348
|
-
example:
|
|
438
|
+
type: number
|
|
439
|
+
example: -0.032
|
|
349
440
|
|
|
350
|
-
|
|
441
|
+
OrderBookEntry:
|
|
351
442
|
type: object
|
|
352
443
|
properties:
|
|
353
|
-
|
|
354
|
-
|
|
444
|
+
price:
|
|
445
|
+
type: number
|
|
446
|
+
example: 65675000
|
|
447
|
+
amount:
|
|
448
|
+
type: number
|
|
449
|
+
example: 0.01520608
|
|
355
450
|
|
|
356
451
|
OrderBookResponse:
|
|
357
452
|
type: object
|
|
358
453
|
properties:
|
|
359
454
|
bids:
|
|
360
455
|
type: array
|
|
361
|
-
description: Buy orders sorted
|
|
456
|
+
description: Buy orders sorted highest-price first
|
|
362
457
|
items:
|
|
363
|
-
|
|
364
|
-
items:
|
|
365
|
-
type: string
|
|
366
|
-
minItems: 2
|
|
367
|
-
maxItems: 2
|
|
458
|
+
$ref: "#/components/schemas/OrderBookEntry"
|
|
368
459
|
asks:
|
|
369
460
|
type: array
|
|
370
|
-
description: Sell orders sorted
|
|
461
|
+
description: Sell orders sorted lowest-price first
|
|
371
462
|
items:
|
|
372
|
-
|
|
373
|
-
items:
|
|
374
|
-
type: string
|
|
375
|
-
minItems: 2
|
|
376
|
-
maxItems: 2
|
|
463
|
+
$ref: "#/components/schemas/OrderBookEntry"
|
|
377
464
|
bid_count:
|
|
378
465
|
type: integer
|
|
379
466
|
description: Total number of bid levels in the full book
|
|
@@ -382,51 +469,69 @@ components:
|
|
|
382
469
|
description: Total number of ask levels in the full book
|
|
383
470
|
|
|
384
471
|
TradeEntry:
|
|
385
|
-
type:
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
472
|
+
type: object
|
|
473
|
+
properties:
|
|
474
|
+
timestamp_ms:
|
|
475
|
+
type: integer
|
|
476
|
+
example: 1775857164247
|
|
477
|
+
amount:
|
|
478
|
+
type: number
|
|
479
|
+
example: 0.00113757
|
|
480
|
+
price:
|
|
481
|
+
type: number
|
|
482
|
+
example: 65675000
|
|
483
|
+
direction:
|
|
484
|
+
type: string
|
|
485
|
+
enum: [buy, sell]
|
|
486
|
+
example: buy
|
|
392
487
|
|
|
393
488
|
TradesResponse:
|
|
394
489
|
type: object
|
|
395
490
|
properties:
|
|
396
|
-
|
|
397
|
-
type:
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
type: array
|
|
410
|
-
items:
|
|
411
|
-
$ref: "#/components/schemas/TradeEntry"
|
|
491
|
+
timestamp:
|
|
492
|
+
type: string
|
|
493
|
+
description: Most recent trade timestamp (ms)
|
|
494
|
+
last_timestamp:
|
|
495
|
+
type: string
|
|
496
|
+
description: Oldest trade timestamp in this response (ms)
|
|
497
|
+
market_id:
|
|
498
|
+
type: string
|
|
499
|
+
example: BTC-CLP
|
|
500
|
+
entries:
|
|
501
|
+
type: array
|
|
502
|
+
items:
|
|
503
|
+
$ref: "#/components/schemas/TradeEntry"
|
|
412
504
|
|
|
413
505
|
VolumeResponse:
|
|
414
506
|
type: object
|
|
415
507
|
properties:
|
|
416
|
-
|
|
417
|
-
type:
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
508
|
+
market_id:
|
|
509
|
+
type: string
|
|
510
|
+
example: BTC-CLP
|
|
511
|
+
ask_volume_24h:
|
|
512
|
+
type: number
|
|
513
|
+
example: 0.63744329
|
|
514
|
+
ask_volume_24h_currency:
|
|
515
|
+
type: string
|
|
516
|
+
example: BTC
|
|
517
|
+
ask_volume_7d:
|
|
518
|
+
type: number
|
|
519
|
+
example: 7.41219004
|
|
520
|
+
ask_volume_7d_currency:
|
|
521
|
+
type: string
|
|
522
|
+
example: BTC
|
|
523
|
+
bid_volume_24h:
|
|
524
|
+
type: number
|
|
525
|
+
example: 4.37093034
|
|
526
|
+
bid_volume_24h_currency:
|
|
527
|
+
type: string
|
|
528
|
+
example: BTC
|
|
529
|
+
bid_volume_7d:
|
|
530
|
+
type: number
|
|
531
|
+
example: 11.93962368
|
|
532
|
+
bid_volume_7d_currency:
|
|
533
|
+
type: string
|
|
534
|
+
example: BTC
|
|
430
535
|
|
|
431
536
|
SpreadResponse:
|
|
432
537
|
type: object
|
|
@@ -434,24 +539,25 @@ components:
|
|
|
434
539
|
market_id:
|
|
435
540
|
type: string
|
|
436
541
|
example: BTC-CLP
|
|
437
|
-
|
|
542
|
+
price_currency:
|
|
438
543
|
type: string
|
|
439
544
|
example: CLP
|
|
440
545
|
best_bid:
|
|
441
|
-
type:
|
|
442
|
-
example:
|
|
546
|
+
type: number
|
|
547
|
+
example: 65675000
|
|
443
548
|
best_ask:
|
|
444
|
-
type:
|
|
445
|
-
example:
|
|
549
|
+
type: number
|
|
550
|
+
example: 65678531
|
|
446
551
|
spread_absolute:
|
|
447
|
-
type:
|
|
448
|
-
example:
|
|
552
|
+
type: number
|
|
553
|
+
example: 3531
|
|
449
554
|
spread_percentage:
|
|
450
|
-
type:
|
|
451
|
-
|
|
555
|
+
type: number
|
|
556
|
+
description: Spread as percent of ask price (e.g. 0.0054 means 0.0054%)
|
|
557
|
+
example: 0.0054
|
|
452
558
|
last_price:
|
|
453
|
-
type:
|
|
454
|
-
example:
|
|
559
|
+
type: number
|
|
560
|
+
example: 65675000
|
|
455
561
|
|
|
456
562
|
CompareMarketsResponse:
|
|
457
563
|
type: object
|
|
@@ -468,23 +574,24 @@ components:
|
|
|
468
574
|
type: string
|
|
469
575
|
example: BTC-CLP
|
|
470
576
|
last_price:
|
|
471
|
-
type:
|
|
472
|
-
example:
|
|
473
|
-
|
|
577
|
+
type: number
|
|
578
|
+
example: 65675000
|
|
579
|
+
last_price_currency:
|
|
474
580
|
type: string
|
|
475
581
|
example: CLP
|
|
476
582
|
best_bid:
|
|
477
|
-
type:
|
|
583
|
+
type: number
|
|
478
584
|
best_ask:
|
|
479
|
-
type:
|
|
585
|
+
type: number
|
|
480
586
|
volume_24h:
|
|
481
|
-
type:
|
|
587
|
+
type: number
|
|
482
588
|
price_change_24h:
|
|
483
|
-
type:
|
|
484
|
-
|
|
589
|
+
type: number
|
|
590
|
+
description: In percent (e.g. 1.23 means +1.23%)
|
|
591
|
+
example: 1.23
|
|
485
592
|
price_change_7d:
|
|
486
|
-
type:
|
|
487
|
-
example:
|
|
593
|
+
type: number
|
|
594
|
+
example: -1.20
|
|
488
595
|
|
|
489
596
|
OhlcvCandle:
|
|
490
597
|
type: object
|
|
@@ -494,20 +601,20 @@ components:
|
|
|
494
601
|
format: date-time
|
|
495
602
|
example: "2026-04-10T12:00:00.000Z"
|
|
496
603
|
open:
|
|
497
|
-
type:
|
|
498
|
-
example:
|
|
604
|
+
type: number
|
|
605
|
+
example: 65221078.43
|
|
499
606
|
high:
|
|
500
|
-
type:
|
|
501
|
-
example:
|
|
607
|
+
type: number
|
|
608
|
+
example: 65975364
|
|
502
609
|
low:
|
|
503
|
-
type:
|
|
504
|
-
example:
|
|
610
|
+
type: number
|
|
611
|
+
example: 65164404.87
|
|
505
612
|
close:
|
|
506
|
-
type:
|
|
507
|
-
example:
|
|
613
|
+
type: number
|
|
614
|
+
example: 65386647
|
|
508
615
|
volume:
|
|
509
|
-
type:
|
|
510
|
-
example:
|
|
616
|
+
type: number
|
|
617
|
+
example: 0.52341200
|
|
511
618
|
trade_count:
|
|
512
619
|
type: integer
|
|
513
620
|
example: 12
|
|
@@ -524,6 +631,9 @@ components:
|
|
|
524
631
|
candle_count:
|
|
525
632
|
type: integer
|
|
526
633
|
example: 6
|
|
634
|
+
trades_fetched:
|
|
635
|
+
type: integer
|
|
636
|
+
example: 100
|
|
527
637
|
note:
|
|
528
638
|
type: string
|
|
529
639
|
candles:
|
|
@@ -531,6 +641,112 @@ components:
|
|
|
531
641
|
items:
|
|
532
642
|
$ref: "#/components/schemas/OhlcvCandle"
|
|
533
643
|
|
|
644
|
+
MarketSummaryResponse:
|
|
645
|
+
type: object
|
|
646
|
+
properties:
|
|
647
|
+
market_id:
|
|
648
|
+
type: string
|
|
649
|
+
example: BTC-CLP
|
|
650
|
+
last_price:
|
|
651
|
+
type: number
|
|
652
|
+
example: 65675000
|
|
653
|
+
last_price_currency:
|
|
654
|
+
type: string
|
|
655
|
+
example: CLP
|
|
656
|
+
bid:
|
|
657
|
+
type: number
|
|
658
|
+
example: 65675000
|
|
659
|
+
ask:
|
|
660
|
+
type: number
|
|
661
|
+
example: 65678531
|
|
662
|
+
spread_pct:
|
|
663
|
+
type: number
|
|
664
|
+
description: Bid/ask spread as percentage of ask
|
|
665
|
+
example: 0.0054
|
|
666
|
+
volume_24h:
|
|
667
|
+
type: number
|
|
668
|
+
example: 5.00837363
|
|
669
|
+
volume_24h_currency:
|
|
670
|
+
type: string
|
|
671
|
+
example: BTC
|
|
672
|
+
price_change_24h:
|
|
673
|
+
type: number
|
|
674
|
+
description: In percent (e.g. 1.9 means +1.9%)
|
|
675
|
+
example: 1.9
|
|
676
|
+
price_change_7d:
|
|
677
|
+
type: number
|
|
678
|
+
example: -3.2
|
|
679
|
+
liquidity_rating:
|
|
680
|
+
type: string
|
|
681
|
+
enum: [high, medium, low]
|
|
682
|
+
description: "high: spread < 0.3%, medium: 0.3–1%, low: > 1%"
|
|
683
|
+
example: high
|
|
684
|
+
|
|
685
|
+
ArbitrageMarketPrice:
|
|
686
|
+
type: object
|
|
687
|
+
properties:
|
|
688
|
+
market_id:
|
|
689
|
+
type: string
|
|
690
|
+
example: BTC-CLP
|
|
691
|
+
price_usdc:
|
|
692
|
+
type: number
|
|
693
|
+
example: 65675
|
|
694
|
+
local_price:
|
|
695
|
+
type: number
|
|
696
|
+
example: 65675000
|
|
697
|
+
usdc_rate:
|
|
698
|
+
type: number
|
|
699
|
+
example: 1000
|
|
700
|
+
|
|
701
|
+
ArbitrageOpportunity:
|
|
702
|
+
type: object
|
|
703
|
+
properties:
|
|
704
|
+
market_a:
|
|
705
|
+
type: string
|
|
706
|
+
example: BTC-CLP
|
|
707
|
+
market_b:
|
|
708
|
+
type: string
|
|
709
|
+
example: BTC-PEN
|
|
710
|
+
price_a_usdc:
|
|
711
|
+
type: number
|
|
712
|
+
example: 65675
|
|
713
|
+
price_b_usdc:
|
|
714
|
+
type: number
|
|
715
|
+
example: 67568
|
|
716
|
+
discrepancy_pct:
|
|
717
|
+
type: number
|
|
718
|
+
example: 2.88
|
|
719
|
+
higher_market:
|
|
720
|
+
type: string
|
|
721
|
+
example: BTC-PEN
|
|
722
|
+
lower_market:
|
|
723
|
+
type: string
|
|
724
|
+
example: BTC-CLP
|
|
725
|
+
|
|
726
|
+
ArbitrageResponse:
|
|
727
|
+
type: object
|
|
728
|
+
properties:
|
|
729
|
+
base_currency:
|
|
730
|
+
type: string
|
|
731
|
+
example: BTC
|
|
732
|
+
threshold_pct:
|
|
733
|
+
type: number
|
|
734
|
+
example: 0.5
|
|
735
|
+
markets_analyzed:
|
|
736
|
+
type: array
|
|
737
|
+
items:
|
|
738
|
+
$ref: "#/components/schemas/ArbitrageMarketPrice"
|
|
739
|
+
opportunities_found:
|
|
740
|
+
type: integer
|
|
741
|
+
example: 1
|
|
742
|
+
opportunities:
|
|
743
|
+
type: array
|
|
744
|
+
items:
|
|
745
|
+
$ref: "#/components/schemas/ArbitrageOpportunity"
|
|
746
|
+
fees_note:
|
|
747
|
+
type: string
|
|
748
|
+
example: "Buda taker fee is 0.8% per leg. A round-trip arbitrage costs approximately 1.6% in fees."
|
|
749
|
+
|
|
534
750
|
Error:
|
|
535
751
|
type: object
|
|
536
752
|
properties:
|
package/package.json
CHANGED
package/server.json
CHANGED
|
@@ -6,12 +6,12 @@
|
|
|
6
6
|
"url": "https://github.com/gtorreal/buda-mcp",
|
|
7
7
|
"source": "github"
|
|
8
8
|
},
|
|
9
|
-
"version": "1.
|
|
9
|
+
"version": "1.4.0",
|
|
10
10
|
"packages": [
|
|
11
11
|
{
|
|
12
12
|
"registryType": "npm",
|
|
13
13
|
"identifier": "@guiie/buda-mcp",
|
|
14
|
-
"version": "1.
|
|
14
|
+
"version": "1.4.0",
|
|
15
15
|
"transport": {
|
|
16
16
|
"type": "stdio"
|
|
17
17
|
}
|