kwant
Server Details
Quant intelligence over MCP: backtest, signals, screens, scores & portfolios for US & TSX stocks.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.2/5 across 16 of 16 tools scored. Lowest: 2.6/5.
Tools are mostly distinct but some overlap exists, e.g., compute_universe_scores and screen_with_scores both generate ranking scores, and compute_stats vs compute_portfolio_stats could confuse an agent. However, descriptions clarify differences.
Most tools follow a verb_noun pattern (get_price_history, compute_indicator), but there are deviations like screen_with_scores and build_monthly_universe. Overall pattern is clear and readable.
16 tools is slightly above the typical well-scoped range but fits the broad domain of quantitative finance, covering data retrieval, analysis, screening, and backtesting without being overwhelming.
The tool set covers a comprehensive quantitative workflow: data (price, fundamentals), indicators, signals, screening, universe building, portfolio construction, and backtesting. Minor gaps like order execution or more advanced analytics are absent but not core to the purpose.
Available Tools
16 toolsbacktestInspect
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 next bar's close. Returns trades + performance metrics. (paid: $0.0100/call)
| Name | Required | Description | Default |
|---|---|---|---|
| range | No | ||
| params | No | ||
| ticker | Yes | ||
| strategy | Yes |
build_monthly_universeInspect
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=max, low=min, close=last, volume=sum), and per ticker computes trailing returns over 1/3/6/12 periods plus the latest monthly dollar volume (close * volume). Tickers are ranked by latest dollar volume (descending) and the top top_n are returned. Tickers that fail to fetch or lack enough monthly history are skipped and noted in warnings. range is the lookback (5d,1mo,3mo,6mo,1y,2y,5y,max; default 2y); use a multi-year window so the 12-month horizon is well-defined. values holds range, as_of (latest monthly date, YYYY-MM-DD), count, and results — a ranked list of {ticker, dollar_volume, returns: {1m,3m,6m,12m}, rank} where any horizon longer than the available history is null. (paid: $0.0100/call)
| Name | Required | Description | Default |
|---|---|---|---|
| range | No | ||
| top_n | No | ||
| tickers | No | ||
| resample | No | ||
| universe | No |
compare_tickersInspect
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)
| Name | Required | Description | Default |
|---|---|---|---|
| range | No | 1y | |
| metric | No | total_return | |
| tickers | Yes |
compute_correlation_matrixInspect
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 two tickers; tickers that cannot be fetched are dropped and noted in warnings (at least two must survive). Returns the standard envelope; values holds range, the tickers used, and matrix — a nested dict {rowTicker: {colTicker: correlation}} with a 1.0 diagonal. (paid: $0.0100/call)
| Name | Required | Description | Default |
|---|---|---|---|
| range | No | ||
| tickers | Yes |
compute_indicatorInspect
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/BBANDS), fast/slow/signal (MACD), std (BBANDS), or k/d/smooth_k (STOCH) — pass them either as top-level fields OR nested under params; both work. window and period are accepted as aliases for length. NOTE: for a long window like SMA(200) you MUST set length=200 (the default is 20). The response echoes the effective params it used, and the summary shows the window, e.g. SMA(200). Ensure range spans at least length bars (e.g. range=2y for SMA(200)) or the series is all-warmup NaN. (paid: $0.0050/call)
| Name | Required | Description | Default |
|---|---|---|---|
| d | No | ||
| k | No | ||
| std | No | ||
| fast | No | ||
| slow | No | ||
| range | No | 1y | |
| length | No | ||
| params | No | ||
| period | No | ||
| signal | No | ||
| ticker | Yes | ||
| window | No | ||
| interval | No | 1d | |
| smooth_k | No | ||
| indicator | Yes |
compute_portfolio_statsInspect
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. Returns the standard envelope; values holds range, the normalized weights used, and the stats dict. (paid: $0.0100/call)
| Name | Required | Description | Default |
|---|---|---|---|
| range | No | ||
| weights | Yes | ||
| risk_free_rate | No |
compute_statsInspect
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)
| Name | Required | Description | Default |
|---|---|---|---|
| range | No | 1y | |
| ticker | Yes | ||
| metrics | No | ||
| benchmark | No | ||
| risk_free_rate | No |
compute_universe_scoresInspect
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 signal, then converts those raw scores into cross-sectional z-scores and ranks them across the universe (rank 1 = highest z-score). Signals (Jegadeesh–Titman momentum is 12-month minus 1-month return on month-end resampled closes): jt_momentum (that JT 12-1 momentum), mean_reversion (negative trailing 1-month monthly return), rsi_filtered_momentum (JT momentum, names with a 14-day simple RSI > 70 excluded before z-scoring), trend_quality (JT momentum, names trading at or below their 200-day SMA excluded). Tickers with too little history or that fail to fetch are dropped and reported in warnings. range is the lookback (5d,1mo,3mo,6mo,1y,2y,5y,max; default 2y); top_n truncates the ranked output. values holds universe, signal, range, scored, and results (a list of {ticker, raw, zscore, rank} ordered by rank). (paid: $0.0100/call)
| Name | Required | Description | Default |
|---|---|---|---|
| range | No | ||
| top_n | No | ||
| signal | No | ||
| tickers | No | ||
| universe | No |
construct_portfolioInspect
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), concentrated_vol (highest-vol from a top-score pool), or sharpe_optimized (max-Sharpe long-only). The last three fetch daily history over range (5d,1mo,3mo,6mo,1y,2y,5y,max) and convert it to returns; tickers that fail to fetch are dropped with a warning. Returns the standard envelope; values holds method, top_n, a weights map, and n_holdings. (paid: $0.0100/call)
| Name | Required | Description | Default |
|---|---|---|---|
| range | No | ||
| top_n | No | ||
| method | No | ||
| scores | Yes |
detect_signalsInspect
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 all six): golden_cross = SMA(50) crosses above SMA(200) within lookback; death_cross = SMA(50) crosses below SMA(200); macd_cross = MACD line crosses above its signal line (bullish); rsi_oversold = RSI(14) below 30 at the latest bar; rsi_overbought = RSI(14) above 70 at the latest bar; breakout = latest close exceeds the highest high of the prior 20 bars. A signal needing more history than is available is returned not-triggered with an insufficient-history detail and a warning — it never fails the call. (paid: $0.0050/call)
| Name | Required | Description | Default |
|---|---|---|---|
| range | No | ||
| ticker | Yes | ||
| signals | No | ||
| interval | No | ||
| lookback | No |
get_fundamentalsInspect
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)
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes |
get_price_historyInspect
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)
| Name | Required | Description | Default |
|---|---|---|---|
| range | No | ||
| ticker | Yes | ||
| interval | No |
get_quoteInspect
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)
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes |
run_portfolio_backtestInspect
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 turnover; benchmark drives the hit-rate metric and (with crash_filter) a regime filter holding cash when the benchmark trailing-12m return is negative. Returns the standard envelope; values holds equity_curve, rebalances, metrics, holdings and the echoed parameters. (paid: $0.0100/call)
| Name | Required | Description | Default |
|---|---|---|---|
| range | No | ||
| top_n | No | ||
| method | No | ||
| signal | No | ||
| tickers | Yes | ||
| cost_bps | No | ||
| benchmark | No | ||
| rebalance | No | ||
| crash_filter | No |
screenInspect
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/call)
| Name | Required | Description | Default |
|---|---|---|---|
| range | No | 1y | |
| filters | Yes | ||
| sort_by | No | ||
| universe | Yes | ||
| max_tickers | No |
screen_with_scoresInspect
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)
| Name | Required | Description | Default |
|---|---|---|---|
| range | No | 2y | |
| top_n | No | ||
| signal | No | jt_momentum | |
| universe | Yes | ||
| max_tickers | No |
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!