Connect Kwant and your agent gets 16 tools, among them backtest, build_monthly_universe, compare_tickers. It answers at https://kwant.sh/mcp over streamable HTTP, and it listed its tools to an anonymous client, so no sign-in was needed for that. Our probes reached it 6 of 6 times since 12 September 2026; the last check, on 24 October 2026, succeeded.
Quant intelligence over MCP: backtest, signals, screens, scores & portfolios for US & TSX stocks.
Description as the publisher wrote it.
| Tool | What it does |
|---|---|
backtest | Backtest a simple long-only technical strategy on daily price history. Strategies: sma_cross (golden/death cross of SMA 50/200), rsi_reversion (enter RSI<30, exit RSI>70), macd_cross (MACD line vs signal). No-lookahead: signals act on the n Inputs: ticker, strategy, range, params |
build_monthly_universe | Rank a universe of tickers by monthly dollar volume with trailing returns. Resolves either a named universe (SP500, TSX) or an explicit tickers override, bulk-fetches daily OHLCV over range, resamples each to monthly bars (open=first, high= Inputs: universe, tickers, range, resample, top_n |
compare_tickers | 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 th Inputs: tickers, metric, range |
compute_correlation_matrix | Compute the pairwise return-correlation matrix for a list of tickers. Fetches each ticker's daily history over range, converts it to daily returns, and computes the pairwise Pearson correlation (aligned on shared dates). Requires at least t Inputs: tickers, range |
compute_indicator | Compute a technical indicator (RSI, MACD, SMA, EMA, BBANDS, ATR, ADX, STOCH) over a ticker's price history. Returns the warmup-aligned series plus the latest values and a one-line summary. Tune the window with `length` (SMA/EMA/RSI/ATR/ADX/ Inputs: ticker, indicator, params, length, window, period |
compute_portfolio_stats | 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 tota Inputs: weights, range, risk_free_rate |
compute_stats | 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 `ben Inputs: ticker, metrics, range, risk_free_rate, benchmark |
compute_universe_scores | Score and rank a universe of tickers by a cross-sectional signal. Resolves either a named universe (SP500, TSX) or an explicit tickers override, bulk-fetches daily price history over range, computes a raw per-ticker score for the chosen sig Inputs: universe, tickers, signal, range, top_n |
construct_portfolio | Turn a {ticker: score} mapping into long-only portfolio weights. Selects names and assigns non-negative weights that sum to 1.0 using the chosen method: top_n_weighted (weight by clipped score), equal_weight, risk_parity (inverse-volatility Inputs: scores, method, top_n, range |
detect_signals | Detect classic technical-analysis signals on a ticker's price history. Each requested signal is evaluated and reported as triggered/not-triggered with a date and human-readable detail under signal_summary. Signals (omit `signals` to check a Inputs: ticker, signals, lookback, interval, range |
get_fundamentals | 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, se Inputs: ticker |
get_price_history | 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 Inputs: ticker, interval, range |
get_quote | 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 Inputs: ticker |
run_portfolio_backtest | 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_filtere Inputs: tickers, signal, method, range, rebalance, top_n |
screen | Screen a stock universe for tickers matching quantitative filters (logical AND). Fields: price, rsi, sma_50, sma_200, volatility, sharpe, max_drawdown, total_return, dollar_volume, garman_klass_vol. Ops: lt, lte, gt, gte. (paid: $0.0100/cal Inputs: universe, filters, range, max_tickers, sort_by |
screen_with_scores | Rank a stock universe by a continuous cross-sectional signal score (rank 1 = highest z-score). Signals: jt_momentum, mean_reversion, rsi_filtered_momentum, trend_quality. Scores are relative to the scanned set. (paid: $0.0100/call) Inputs: universe, signal, range, top_n, max_tickers |
Every block below points at https://kwant.sh/mcp. Pick your client and copy.
claude mcp add --transport http kwant https://kwant.sh/mcp
{
"mcpServers": {
"kwant": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://kwant.sh/mcp"]
}
}
}{
"mcpServers": {
"kwant": {
"url": "https://kwant.sh/mcp"
}
}
}{
"servers": {
"kwant": {
"type": "http",
"url": "https://kwant.sh/mcp"
}
}
}{
"context_servers": {
"kwant": {
"url": "https://kwant.sh/mcp"
}
}
}{
"mcpServers": {
"kwant": {
"serverUrl": "https://kwant.sh/mcp"
}
}
}{
"mcpServers": {
"kwant": {
"url": "https://kwant.sh/mcp"
}
}
}name: Kwant
version: 0.0.1
schema: v1
mcpServers:
- name: Kwant
type: streamable-http
url: https://kwant.sh/mcp{
"mcpServers": {
"kwant": {
"httpUrl": "https://kwant.sh/mcp"
}
}
}{
"mcpServers": {
"kwant": {
"type": "http",
"url": "https://kwant.sh/mcp"
}
}
}{
"mcpServers": {
"kwant": {
"url": "https://kwant.sh/mcp"
}
}
}goose://extension?url=https%3A%2F%2Fkwant.sh%2Fmcp&type=streamable_http&id=kwant&name=Kwant
It answered our last check on 24 October 2026 in 368 ms. Over 6 checks since 12 September 2026 it answered 6. Status here comes from Neuronto's own probes, not from the publisher.
Yes. It is published by kwant.sh and served from kwant.sh, the vendor's own domain: https://kwant.sh/mcp.
16, as returned by the server's own tools/list on 23 September 2026: backtest, build_monthly_universe, compare_tickers, compute_correlation_matrix, compute_indicator, compute_portfolio_stats, compute_stats, compute_universe_scores, and 8 more.
It answered our last check on 24 October 2026 in 368 ms. Over 6 checks since 12 September 2026 it answered 6.
Put the server under mcpServers in ~/.cursor/mcp.json with the URL https://kwant.sh/mcp. The exact JSON is above, with the same setup for Claude Code, Claude Desktop, VS Code, Windsurf, Zed, Gemini CLI and the rest.
It listed its tools to an anonymous client, so reading the tool list needs no key. Individual tools can still ask for credentials in their own inputs.
No: the publisher declares paid use. {"protocols": ["x402"], "price": 0.005, "currency": "USDC", "networks": ["base"], "verified": "live", "priceSource": "live", "checked": 1792850328}
Publisher: sh.kwant. Endpoint host: kwant.sh. ARD identifier: urn:air:sh.kwant:mcp:kwant.
First indexed 10 September 2026. The tools are exactly what the server returned; nothing on this page
is inferred from its name. Ranking in Neuronto search is never for sale.