{"serverId":"mcp-registry/sh.kwant/kwant","tools":[{"name":"compare_tickers","fixed":{"name":"compare_tickers","description":"Rank two or more tickers against each other by a single metric (total_return, volatility, sharpe, max_drawdown, last_price). Symbols that cannot be resolved (or lack enough history) are skipped and noted in `warnings` rather than failing the call. Returns a ranked list of {ticker, value, rank, currency} (rank 1 = best). (paid: $0.0050/call)","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["tickers"],"properties":{"range":{"enum":["5d","1mo","3mo","6mo","1y","2y","5y","max"],"type":"string","default":"1y"},"metric":{"enum":["total_return","volatility","sharpe","max_drawdown","last_price"],"type":"string","default":"total_return"},"tickers":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":225,"tokensAfter":225},{"name":"compute_portfolio_stats","fixed":{"name":"compute_portfolio_stats","description":"Compute portfolio-level statistics for a weighted basket of tickers. Given a {ticker: weight} mapping, fetches each ticker's daily history over range and returns the portfolio-level (not per-ticker) volatility, sharpe, max_drawdown and total_return of the weighted basket. weights need NOT sum to 1 (normalized internally). Tickers that cannot be fetched are dropped, a note is added to warnings, and the remaining weights are renormalized. risk_free_rate is an annual rate used only by Sharpe. Retur","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["weights"],"properties":{"range":{"enum":["5d","1mo","3mo","6mo","1y","2y","5y","max"],"type":"string"},"weights":{"type":"object","additionalProperties":{"type":"number"}},"risk_free_rate":{"type":"number"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":246,"tokensAfter":246},{"name":"compute_stats","fixed":{"name":"compute_stats","description":"Compute quantitative statistics (volatility, sharpe, max_drawdown, returns, beta, correlation) over a ticker's daily price history. Omit `metrics` to default to volatility/sharpe/max_drawdown/returns. `beta` and `correlation` require a `benchmark` ticker; `risk_free_rate` is used only by the Sharpe ratio. (paid: $0.0050/call)","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["ticker"],"properties":{"range":{"enum":["5d","1mo","3mo","6mo","1y","2y","5y","max"],"type":"string","default":"1y"},"ticker":{"type":"string"},"metrics":{"anyOf":[{"type":"array","items":{"enum":["volatility","sharpe","max_drawdown","beta","returns","correlation"],"type":"string"}},{"type":"null"}]},"benchmark":{"type":["string","null"]},"risk_free_rate":{"type":"number","default":0}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":246,"tokensAfter":246},{"name":"get_fundamentals","fixed":{"name":"get_fundamentals","description":"Get fundamental data for a ticker (profile + key ratios). US symbols are bare (AAPL); TSX symbols use the Yahoo .TO form (RY.TO) or the TSX:RY form. Returns an envelope whose values holds available fundamentals: name, exchange, currency, sector, industry, market_cap, pe_ratio, forward_pe, eps, dividend_yield, beta, fifty_two_week_high, fifty_two_week_low, asof. Fields not covered by the provider are null. (paid: $0.0050/call)","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["ticker"],"properties":{"ticker":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":181,"tokensAfter":181},{"name":"get_price_history","fixed":{"name":"get_price_history","description":"Get historical OHLCV price bars for a ticker. US symbols are bare (AAPL, MSFT); TSX symbols use the Yahoo .TO form (RY.TO) or the TSX:RY form. interval is one of 1m,5m,15m,30m,1h,1d,1wk,1mo (default 1d); range is one of 5d,1mo,3mo,6mo,1y,2y,5y,max (default 1y). Returns an envelope whose values contains interval, range, currency, count, and bars (records with an ISO timestamp plus open, high, low, close, volume). (paid: $0.0050/call)","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["ticker"],"properties":{"range":{"enum":["5d","1mo","3mo","6mo","1y","2y","5y","max"],"type":"string"},"ticker":{"type":"string"},"interval":{"enum":["1m","5m","15m","30m","1h","1d","1wk","1mo"],"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":228,"tokensAfter":228},{"name":"get_quote","fixed":{"name":"get_quote","description":"Get the latest available quote for a ticker. US symbols are bare (AAPL); TSX symbols use the Yahoo .TO form (RY.TO) or the TSX:RY form. Returns an envelope whose values holds the quote fields (price, currency, previous_close, change, change_percent, volume, market_state, asof as an ISO string). (paid: $0.0050/call)","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["ticker"],"properties":{"ticker":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":148,"tokensAfter":148},{"name":"run_portfolio_backtest","fixed":{"name":"run_portfolio_backtest","description":"Backtest a rebalanced, multi-ticker, long-only quant portfolio. Fetches daily history for every ticker over range, then runs a walk-forward simulation: at each period-end rebalance the chosen signal (jt_momentum, mean_reversion, rsi_filtered_momentum, trend_quality) scores each name using only data up to that date, and method turns those scores into long-only weights. Returns gross and net (after cost) performance. rebalance is M (monthly) or Q (quarterly); cost_bps is round-trip cost on turnove","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["tickers"],"properties":{"range":{"enum":["5d","1mo","3mo","6mo","1y","2y","5y","max"],"type":"string"},"top_n":{"type":"integer"},"method":{"enum":["top_n_weighted","equal_weight","risk_parity","concentrated_vol","sharpe_optimized"],"type":"string"},"signal":{"enum":["jt_momentum","mean_reversion","rsi_filtered_momentum","trend_quality"],"type":"string"},"tickers":{"type":"array","items":{"type":"string"}},"cost_bps":{"type":"number"},"benchmark":{"type":["string","null"]},"rebalance":{"enum":["M","Q"],"type":"string"},"crash_filter":{"type":"boolean"}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":344,"tokensAfter":344}],"toolsChanged":7,"tokensSaved":0,"todo":[{"tool":"backtest","params":["range","params","ticker","strategy"]},{"tool":"build_monthly_universe","params":["range","top_n","tickers","resample","universe"]},{"tool":"compare_tickers","params":["range","metric","tickers"]},{"tool":"compute_correlation_matrix","params":["range","tickers"]},{"tool":"compute_indicator","params":["d","k","std","fast","slow","range","length","params","period","signal","ticker","window","interval","smooth_k","indicator"]},{"tool":"compute_portfolio_stats","params":["range","weights","risk_free_rate"]},{"tool":"compute_stats","params":["range","ticker","metrics","benchmark","risk_free_rate"]},{"tool":"compute_universe_scores","params":["range","top_n","signal","tickers","universe"]},{"tool":"construct_portfolio","params":["range","top_n","method","scores"]},{"tool":"detect_signals","params":["range","ticker","signals","interval","lookback"]},{"tool":"get_fundamentals","params":["ticker"]},{"tool":"get_price_history","params":["range","ticker","interval"]},{"tool":"get_quote","params":["ticker"]},{"tool":"run_portfolio_backtest","params":["range","top_n","method","signal","tickers","cost_bps","benchmark","rebalance","crash_filter"]},{"tool":"screen","params":["range","filters","sort_by","universe","max_tickers"]},{"tool":"screen_with_scores","params":["range","top_n","signal","universe","max_tickers"]}],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}