{"serverInfo":{"name":"Bitculator","version":"1.0.0"},"tools":[{"name":"search_coins","title":"Search Coins","description":"Resolve a cryptocurrency by free-text name or symbol to its canonical slug, with a ranked market summary (price, market cap, rank, 24h/7d change) per match. Call this first whenever the user names an asset and you do not already know its slug \u2014 every other coin tool is addressed by slug.","inputSchema":{"properties":{"query":{"description":"Free-text search matched against coin names and symbols, e.g. \"bitcoin\" or \"SOL\".","maxLength":100,"type":"string"},"type":{"description":"Optionally restrict matches to native coins or tokens.","enum":["coin","token"],"type":"string"},"limit":{"description":"Maximum number of matches to return.","default":10,"minimum":1,"maximum":50,"type":"integer"}},"type":"object","required":["query"]},"annotations":{"readOnlyHint":true},"outputSchema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer"},"slug":{"type":"string"},"name":{"type":["string","null"]},"symbol":{"type":"string"},"rank":{"type":["integer","null"]},"price":{"type":["string","null"]},"marketcap":{"type":["number","null"]},"volume_24h":{"type":["number","null"]},"change_24h":{"type":["number","null"]},"change_7d":{"type":["number","null"]},"change_rank_24h":{"type":["integer","null"]},"change_rank_7d":{"type":["integer","null"]},"circulating_supply":{"type":["string","null"]},"logo":{"type":["string","null"]},"listed_at":{"type":["string","null"]},"last_updated":{"type":["string","null"]}}}},"meta":{"type":"object","properties":{"current_page":{"type":"integer"},"from":{"type":["integer","null"]},"last_page":{"type":"integer"},"per_page":{"type":"integer"},"to":{"type":["integer","null"]},"total":{"type":"integer"}}}}}},{"name":"get_coin","title":"Get Coin Profile","description":"Full profile for one coin by slug: supplies, rank and rank changes, all-time high/low and distance from them, fully-diluted valuation, links, contracts, and description. Use for \"tell me about X\" questions; for just the current price prefer get_prices.","inputSchema":{"properties":{"slug":{"description":"Canonical coin slug, e.g. \"bitcoin\". Resolve via search_coins if unknown.","maxLength":120,"type":"string"}},"type":"object","required":["slug"]},"annotations":{"readOnlyHint":true},"outputSchema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"integer"},"slug":{"type":"string"},"name":{"type":["string","null"]},"symbol":{"type":"string"},"type":{"type":"string"},"rank":{"type":["integer","null"]},"price":{"type":["string","null"]},"marketcap":{"type":["number","null"]},"fully_diluted_valuation":{"type":["number","null"]},"volume_24h":{"type":["number","null"]},"change_24h":{"type":["number","null"]},"change_7d":{"type":["number","null"]},"change_rank_24h":{"type":["integer","null"]},"change_rank_7d":{"type":["integer","null"]},"supply":{"type":"object","properties":{"circulating":{"type":["string","null"]},"total":{"type":["string","null"]},"max":{"type":["string","null"]}}},"today":{"type":"object","properties":{"open":{"type":["string","null"]},"high":{"type":["string","null"]},"low":{"type":["string","null"]},"close":{"type":["string","null"]}}},"all_time_high":{"type":["object","null"],"properties":{"price":{"type":"string"},"date":{"type":["string","null"]},"percent_from":{"type":["number","null"]}}},"all_time_low":{"type":["object","null"],"properties":{"price":{"type":"string"},"date":{"type":["string","null"]},"percent_from":{"type":["number","null"]}}},"counts":{"type":"object","properties":{"exchanges":{"type":["integer","null"]},"pairs":{"type":["integer","null"]},"tickers":{"type":["integer","null"]},"wallets":{"type":["integer","null"]}}},"decimals":{"type":["integer","null"]},"genesis_date":{"type":["string","null"]},"description":{"type":["string","null"]},"links":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"url":{"type":["string","null"]}}}},"contracts":{"type":"array"},"logo":{"type":["string","null"]},"last_updated":{"type":["string","null"]}}}}}},{"name":"get_prices","title":"Get Current Prices","description":"Current spot prices for up to 100 coins in one call (price, market cap, 24h volume, 24h/7d change, rank), optionally converted to a fiat currency. The cheapest way to answer \"what is X trading at\" \u2014 pass several coins at once instead of calling repeatedly. Exactly one of slugs, symbols, or ids is required.","inputSchema":{"properties":{"slugs":{"description":"Comma-separated coin slugs, e.g. \"bitcoin,ethereum,solana\". Preferred selector.","maxLength":2000,"type":"string"},"symbols":{"description":"Comma-separated ticker symbols, e.g. \"BTC,ETH\". Case-insensitive; ambiguous symbols resolve to the highest-ranked match.","maxLength":1000,"type":"string"},"ids":{"description":"Comma-separated numeric Bitculator coin ids.","maxLength":1000,"type":"string"},"convert":{"description":"Fiat currency symbol to convert prices into, e.g. \"EUR\". Defaults to USD.","maxLength":10,"type":"string"}},"type":"object"},"annotations":{"readOnlyHint":true},"outputSchema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer"},"slug":{"type":"string"},"symbol":{"type":"string"},"name":{"type":["string","null"]},"rank":{"type":["integer","null"]},"price":{"type":["string","null"]},"marketcap":{"type":["number","null"]},"volume_24h":{"type":["number","null"]},"change_24h":{"type":["number","null"]},"change_7d":{"type":["number","null"]},"change_rank_24h":{"type":["integer","null"]},"change_rank_7d":{"type":["integer","null"]},"last_updated":{"type":["string","null"]}}}},"meta":{"type":"object","properties":{"currency":{"type":"string"},"count":{"type":"integer"}}}}}},{"name":"get_price_history","title":"Get Price History (OHLCV)","description":"OHLCV candles for a coin over a date range. Use for \"how did X perform since\u2026\", volatility, and charting questions. Data retention by interval: minutely ~8 days, half-hourly ~3 months, hourly ~6 months, daily = full history. Returns the most recent candles in the window, oldest first. Keep limit modest; for bulk exports point the user to the REST API.","inputSchema":{"properties":{"slug":{"description":"Canonical coin slug, e.g. \"bitcoin\".","maxLength":120,"type":"string"},"interval":{"description":"Candle interval.","default":"daily","enum":["minutely","half-hourly","hourly","daily"],"type":"string"},"start":{"description":"Window start as YYYY-MM-DD (or ISO 8601). Defaults to an interval-appropriate recent window.","type":"string"},"end":{"description":"Window end as YYYY-MM-DD (or ISO 8601). Defaults to now.","type":"string"},"limit":{"description":"Maximum number of candles to return.","default":90,"minimum":1,"maximum":500,"type":"integer"}},"type":"object","required":["slug"]},"annotations":{"readOnlyHint":true},"outputSchema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"time":{"type":"string"},"price":{"type":"string"},"open":{"type":["string","null"]},"high":{"type":["string","null"]},"low":{"type":["string","null"]},"close":{"type":["string","null"]},"volume_24h":{"type":["number","null"]},"marketcap":{"type":["number","null"]}}}},"meta":{"type":"object","properties":{"coin":{"type":"string"},"interval":{"type":"string"},"count":{"type":"integer"},"retention":{"type":"string"}}}}}},{"name":"get_historical_price","title":"Get Price On Date","description":"The price of one coin on one specific past date (falls back up to 3 days when the exact day has no data). Use for \"what was BTC worth on my birthday / when I bought it\" questions. For a range of dates use get_price_history instead.","inputSchema":{"properties":{"slug":{"description":"Canonical coin slug, e.g. \"bitcoin\".","maxLength":120,"type":"string"},"date":{"description":"The date as YYYY-MM-DD. Must be 2009-01-01 or later and not in the future.","type":"string"}},"type":"object","required":["slug","date"]},"annotations":{"readOnlyHint":true},"outputSchema":{"type":"object","properties":{"data":{"type":"object","properties":{"slug":{"type":"string"},"symbol":{"type":"string"},"date":{"type":"string"},"price":{"type":"string"},"currency":{"type":"string"}}}}}},{"name":"get_top_movers","title":"Get Top Movers","description":"The biggest gainers or losers by percentage change over the last 24 hours or 7 days. Use for \"what is pumping / dumping right now\" questions.","inputSchema":{"properties":{"direction":{"description":"Whether to return the top gainers or the top losers.","enum":["gainers","losers"],"type":"string"},"interval":{"description":"The change window to rank by.","default":"24h","enum":["24h","7d"],"type":"string"},"limit":{"description":"Maximum number of coins to return.","default":10,"minimum":1,"maximum":50,"type":"integer"}},"type":"object","required":["direction"]},"annotations":{"readOnlyHint":true},"outputSchema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer"},"slug":{"type":"string"},"name":{"type":["string","null"]},"symbol":{"type":"string"},"rank":{"type":["integer","null"]},"price":{"type":["string","null"]},"marketcap":{"type":["number","null"]},"volume_24h":{"type":["number","null"]},"change_24h":{"type":["number","null"]},"change_7d":{"type":["number","null"]},"change_rank_24h":{"type":["integer","null"]},"change_rank_7d":{"type":["integer","null"]},"circulating_supply":{"type":["string","null"]},"logo":{"type":["string","null"]},"listed_at":{"type":["string","null"]},"last_updated":{"type":["string","null"]}}}},"meta":{"type":"object","properties":{"current_page":{"type":"integer"},"from":{"type":["integer","null"]},"last_page":{"type":"integer"},"per_page":{"type":"integer"},"to":{"type":["integer","null"]},"total":{"type":"integer"}}}}}},{"name":"get_trending_coins","title":"Get Trending Coins","description":"The coins currently drawing the most attention on Bitculator, with compact market rows. Use for \"what is hot / what are people looking at right now\" questions.","inputSchema":{"properties":{"limit":{"description":"Maximum number of trending coins to return.","default":10,"minimum":1,"maximum":20,"type":"integer"}},"type":"object"},"annotations":{"readOnlyHint":true},"outputSchema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer"},"slug":{"type":"string"},"name":{"type":["string","null"]},"symbol":{"type":"string"},"rank":{"type":["integer","null"]},"price":{"type":["string","null"]},"marketcap":{"type":["number","null"]},"logo":{"type":["string","null"]},"score":{"type":"integer"}}}}}}},{"name":"get_global_market","title":"Get Global Market Snapshot","description":"Whole-market snapshot: total market cap, total 24h volume, BTC/ETH dominance, coin/token/exchange/pair counts, and the market Fear & Greed reading (quote its `index`, 0-100 as Bitculator shows it, never the raw -100..+100 `score`). Use for \"how is the market doing\" questions and as context before deeper analysis.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true},"outputSchema":{"type":"object","properties":{"data":{"type":"object","properties":{"total_marketcap":{"type":"number"},"total_volume_24h":{"type":"number"},"total_cryptocurrencies":{"type":"integer"},"total_tokens":{"type":"integer"},"total_exchanges":{"type":"integer"},"total_pairs":{"type":"integer"},"total_markets":{"type":"integer"},"dominance":{"type":"object","properties":{"btc":{"type":["number","null"]},"eth":{"type":["number","null"]},"top3":{"type":"array","items":{"type":"object","properties":{"symbol":{"type":"string"},"domination":{"type":"number"}}}}}},"fear_greed":{"type":["object","null"],"properties":{"score":{"type":"integer"},"index":{"type":"integer"},"regime":{"type":["string","null"]}}},"last_updated":{"type":["string","null"]}}}}}},{"name":"get_global_history","title":"Get Global Market History","description":"Time series of the total crypto market cap or total volume. Use for \"is the market up this month / how has the market developed\" questions. Each point is {time, marketcap} for metric=marketcap and {time, volume} for metric=volume. Periods: 24h (half-hourly points), 7d (hourly), 30d (daily), all (daily since records began \u2014 large; prefer a bounded period).","inputSchema":{"properties":{"metric":{"description":"Which global series to return.","enum":["marketcap","volume"],"type":"string"},"period":{"description":"The window to return.","default":"24h","enum":["24h","7d","30d","all"],"type":"string"}},"type":"object","required":["metric"]},"annotations":{"readOnlyHint":true},"outputSchema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"time":{"type":["string","null"]},"marketcap":{"type":"number"}}}},"meta":{"type":"object","properties":{"metric":{"type":"string"},"period":{"type":"string"},"count":{"type":"integer"}}}}}},{"name":"get_fear_greed","title":"Get Fear & Greed Index","description":"The Fear & Greed sentiment index for the whole market, or for one coin when a slug is passed. Includes 7d/30d interval sub-scores. The go-to gauge for \"how are people feeling about the market / about X\" questions. Quote `index` (0-100, exactly as Bitculator shows it: 0-19 extreme fear, 20-39 fear, 40-59 neutral, 60-79 greed, 80-100 extreme greed), never the raw `score` (a -100..+100 composite).","inputSchema":{"properties":{"coin":{"description":"Optional coin slug for a per-coin reading, e.g. \"bitcoin\". Omit for the market-wide index.","maxLength":120,"type":"string"}},"type":"object"},"annotations":{"readOnlyHint":true},"outputSchema":{"type":"object","properties":{"data":{"type":"object","properties":{"scope":{"type":"string"},"score":{"type":["integer","null"]},"index":{"type":["integer","null"]},"regime":{"type":["string","null"]},"intervals":{"type":"object","properties":{"7d":{"type":"object","properties":{"score":{"type":["integer","null"]},"index":{"type":["integer","null"]},"regime":{"type":["string","null"]},"breakdown":{"type":"object","properties":{"volume":{"type":["integer","null"]},"breadth":{"type":["integer","null"]},"momentum":{"type":["integer","null"]},"volatility":{"type":["integer","null"]}}},"score_normalized":{"type":["integer","null"]}}},"30d":{"type":"object","properties":{"score":{"type":["integer","null"]},"index":{"type":["integer","null"]},"regime":{"type":["string","null"]},"breakdown":{"type":"object","properties":{"volume":{"type":["integer","null"]},"breadth":{"type":["integer","null"]},"momentum":{"type":["integer","null"]},"volatility":{"type":["integer","null"]}}},"score_normalized":{"type":["integer","null"]}}}}}}}}}},{"name":"get_altseason_index","title":"Get Altseason Index","description":"The altseason index \u2014 whether altcoins are outperforming Bitcoin right now. Pass days > 0 to include daily history for trend questions (\"are we heading into altseason?\").","inputSchema":{"properties":{"days":{"description":"Days of daily history to include (1-365). Omit for the current reading only.","minimum":1,"maximum":365,"type":"integer"}},"type":"object"},"annotations":{"readOnlyHint":true},"outputSchema":{"type":"object","properties":{"data":{"type":"object","properties":{"current":{"type":"object","properties":{"date":{"type":"string"},"beaters_7d":{"type":"integer"},"beaters_30d":{"type":"integer"},"beaters_90d":{"type":"integer"}}},"history":{"type":"array","items":{"type":"object","properties":{"date":{"type":"string"},"beaters_7d":{"type":"integer"},"beaters_30d":{"type":"integer"},"beaters_90d":{"type":"integer"}}}}}}}}},{"name":"convert_currency","title":"Convert Currency","description":"Convert an amount between any crypto and/or fiat currencies (up to 10 targets per call) using live rates. Use this for ALL \"how much is X in Y\" math instead of computing it yourself from prices \u2014 it preserves precision.","inputSchema":{"properties":{"from":{"description":"Source currency slug, e.g. \"bitcoin\" or \"united-states-dollar\".","maxLength":120,"type":"string"},"to":{"description":"Comma-separated target currency slugs, up to 10, e.g. \"ethereum,euro\".","maxLength":1500,"type":"string"},"amount":{"description":"The amount of the source currency to convert.","default":1,"minimum":1.0e-9,"maximum":1000000000000,"type":"number"}},"type":"object","required":["from","to"]},"annotations":{"readOnlyHint":true},"outputSchema":{"type":"object","properties":{"data":{"type":"object","properties":{"from":{"type":"object","properties":{"slug":{"type":"string"},"symbol":{"type":"string"}}},"amount":{"type":"number"},"results":{"type":"array","items":{"type":"object","properties":{"slug":{"type":"string"},"symbol":{"type":"string"},"value":{"type":"string"}}}}}}}}},{"name":"list_exchanges","title":"List Exchanges","description":"Ranked list of exchanges with 24h volume, volume dominance, and pair/asset counts. Use for \"biggest exchanges\" and CEX-versus-DEX questions, or to resolve an exchange name to its slug.","inputSchema":{"properties":{"type":{"description":"Optionally restrict to centralized or decentralized exchanges.","enum":["cex","dex"],"type":"string"},"search":{"description":"Free-text search matched against exchange names.","maxLength":100,"type":"string"},"sort":{"description":"Comma-separated sort fields, prefix with \"-\" for descending. Fields: volume, rank, volume_dominance, change_24h, change_7d, pairs, assets. Defaults to -volume (highest 24h volume first).","maxLength":100,"type":"string"},"limit":{"description":"Maximum number of exchanges to return.","default":10,"minimum":1,"maximum":50,"type":"integer"}},"type":"object"},"annotations":{"readOnlyHint":true},"outputSchema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer"},"slug":{"type":"string"},"name":{"type":"string"},"rank":{"type":["integer","null"]},"volume_24h":{"type":["number","null"]},"volume_dominance":{"type":["number","null"]},"change_24h":{"type":["number","null"]},"change_7d":{"type":["number","null"]},"change_rank_24h":{"type":["integer","null"]},"change_rank_7d":{"type":["integer","null"]},"pairs":{"type":["integer","null"]},"assets":{"type":["integer","null"]},"logo":{"type":["string","null"]},"last_updated":{"type":["string","null"]}}}},"meta":{"type":"object","properties":{"current_page":{"type":"integer"},"from":{"type":["integer","null"]},"last_page":{"type":"integer"},"per_page":{"type":"integer"},"to":{"type":["integer","null"]},"total":{"type":"integer"}}}}}},{"name":"get_exchange","title":"Get Exchange Profile","description":"Full profile for one exchange by slug: rank, 24h volume and changes, volume dominance, listed pairs and assets, and links. Resolve the slug via list_exchanges when unknown.","inputSchema":{"properties":{"slug":{"description":"Canonical exchange slug, e.g. \"binance\".","maxLength":120,"type":"string"}},"type":"object","required":["slug"]},"annotations":{"readOnlyHint":true},"outputSchema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"integer"},"slug":{"type":"string"},"name":{"type":"string"},"type":{"type":["string","null"]},"rank":{"type":["integer","null"]},"volume_24h":{"type":["number","null"]},"volume_dominance":{"type":["number","null"]},"change_24h":{"type":["number","null"]},"change_7d":{"type":["number","null"]},"change_rank_24h":{"type":["integer","null"]},"change_rank_7d":{"type":["integer","null"]},"pairs":{"type":["integer","null"]},"assets":{"type":["integer","null"]},"established":{"type":["string","null"]},"location":{"type":["string","null"]},"website":{"type":["string","null"]},"logo":{"type":["string","null"]},"last_updated":{"type":["string","null"]}}}}}},{"name":"get_exchange_trust_score","title":"Get Exchange Trust Score","description":"An exchange's trust score (0-10) with its full 13-factor breakdown. Both are null for an unranked exchange (no active spot volume yet) - it has not been scored, which is not the same as a low score. Use for \"is exchange X safe / reputable / trustworthy\" questions.","inputSchema":{"properties":{"slug":{"description":"Canonical exchange slug, e.g. \"binance\".","maxLength":120,"type":"string"}},"type":"object","required":["slug"]},"annotations":{"readOnlyHint":true},"outputSchema":{"type":"object","properties":{"data":{"type":"object","properties":{"exchange":{"type":"string"},"score":{"type":["number","null"]},"breakdown":{"type":["object","null"],"properties":{"rank":{"type":"number"},"volume":{"type":"number"},"age":{"type":"number"},"volume_trend":{"type":"number"},"stability":{"type":"number"},"rank_stability":{"type":"number"},"ticker_health":{"type":"number"},"pairs":{"type":"number"},"community":{"type":"number"},"assets":{"type":"number"},"dominance":{"type":"number"},"market_breadth":{"type":"number"},"transparency":{"type":"number"}}}}}}}},{"name":"get_coin_markets","title":"Get Coin Markets","description":"Where a coin trades: its markets/tickers across exchanges with pair, price, and 24h volume, sorted by volume. Use for \"where can I buy X / most liquid venue for X\" questions.","inputSchema":{"properties":{"slug":{"description":"Canonical coin slug, e.g. \"bitcoin\".","maxLength":120,"type":"string"},"exchange":{"description":"Optional exchange slug to restrict results to one venue.","maxLength":120,"type":"string"},"instrument":{"description":"Optionally restrict to one instrument type.","enum":["spot","future","option","swap","margin"],"type":"string"},"limit":{"description":"Maximum number of markets to return.","default":10,"minimum":1,"maximum":50,"type":"integer"}},"type":"object","required":["slug"]},"annotations":{"readOnlyHint":true},"outputSchema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer"},"symbol":{"type":["string","null"]},"name":{"type":["string","null"]},"pair_id":{"type":["integer","null"]},"instrument":{"type":["string","null"]},"exchange":{"type":["object","null"],"properties":{"id":{"type":"integer"},"slug":{"type":"string"},"name":{"type":"string"}}},"price":{"type":["string","null"]},"price_usd":{"type":["string","null"]},"change_24h":{"type":["number","null"]},"volume_usd":{"type":["number","null"]},"volume_dominance":{"type":["number","null"]},"low":{"type":["string","null"]},"high":{"type":["string","null"]},"last_updated":{"type":["string","null"]}}}},"meta":{"type":"object","properties":{"current_page":{"type":"integer"},"from":{"type":["integer","null"]},"last_page":{"type":"integer"},"per_page":{"type":"integer"},"to":{"type":["integer","null"]},"total":{"type":"integer"},"coin":{"type":"string"}}}}}},{"name":"get_coin_technicals","title":"Get Coin Technical Indicators","description":"The multi-indicator technical snapshot for a coin in one call: RSI, MACD, SMA, ADX, MFI, CCI, OBV, VWAP, volatility, and more, each with its latest state and score. Use for \"is X overbought / what do the technicals say about X\" questions.","inputSchema":{"properties":{"slug":{"description":"Canonical coin slug, e.g. \"bitcoin\".","maxLength":120,"type":"string"}},"type":"object","required":["slug"]},"annotations":{"readOnlyHint":true},"outputSchema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"indicator":{"type":"string"},"state":{"type":"string"},"score":{"type":"integer"},"data":{"type":"object","properties":{"value":{"type":"number"},"window":{"type":"integer"}}}}}},"meta":{"type":"object","properties":{"coin":{"type":"string"}}}}}},{"name":"get_liquidations_summary","title":"Get Liquidations Summary","description":"Today's futures liquidation totals with long/short split and dominance. Use for \"how much got liquidated today / are longs or shorts getting wiped\" questions. Coverage note in meta; data may be null right after the daily rollover.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true},"outputSchema":{"type":"object","properties":{"data":{"type":["object","null"],"properties":{"date":{"type":"string"},"total_usd":{"type":"number"},"long_usd":{"type":"number"},"short_usd":{"type":"number"},"longs":{"type":"integer"},"shorts":{"type":"integer"},"dominance":{"type":"object","properties":{"long":{"type":["number","null"]},"short":{"type":["number","null"]}}}}},"meta":{"type":"object","properties":{"note":{"type":"string"}}}}}},{"name":"calculate_dca","title":"Calculate DCA Backtest","description":"Backtest a dollar-cost-averaging strategy against real price history: \"what if I had bought $100 of bitcoin every week since 2022\". Returns total invested, coins accumulated, current value, and profit/loss. Set series=true only when the user wants the per-purchase breakdown (large output).","inputSchema":{"properties":{"slug":{"description":"Canonical coin slug, e.g. \"bitcoin\".","maxLength":120,"type":"string"},"amount":{"description":"USD amount purchased at each interval.","minimum":0.01,"maximum":1000000000,"type":"number"},"interval":{"description":"Purchase cadence.","enum":["daily","weekly","monthly","quarterly","yearly"],"type":"string"},"start":{"description":"First purchase date as YYYY-MM-DD (2009-01-01 or later, before today).","type":"string"},"end":{"description":"Last purchase date as YYYY-MM-DD. Defaults to today.","type":"string"},"series":{"description":"Include the per-purchase series (can be large - keep false unless asked).","default":false,"type":"boolean"}},"type":"object","required":["slug","amount","interval","start"]},"annotations":{"readOnlyHint":true},"outputSchema":{"type":"object","properties":{"data":{"type":"object","properties":{"summary":{"type":"object","properties":{"purchases":{"type":"integer"},"invested":{"type":"number"},"accumulated":{"type":"number"},"final_value":{"type":"number"},"profit":{"type":"number"},"roi":{"type":["number","null"]}}},"series":{"type":["array","null"],"items":{"type":"object","properties":{"date":{"type":"string"},"price":{"type":"number"},"invested":{"type":"number"},"value":{"type":"number"}}}}}},"meta":{"type":"object","properties":{"coin":{"type":"string"},"interval":{"type":"string"},"start":{"type":"string"},"end":{"type":"string"},"amount_per_buy":{"type":"number"},"currency":{"type":"string"}}}}}}]}