Skip to main content
Glama
JerBouma

Finance Toolkit

momentum

Read-onlyIdempotent

Compute momentum indicators like RSI, MACD, and Stochastic directly from price data to assess trend strength and spot reversals, without fetching prices first.

Instructions

Momentum technical indicators (RSI, MACD, Stochastic Oscillator, Williams %R, Aroon, ADX, CCI, MFI, rate of change, Ichimoku Cloud, awesome, ultimate and Chande momentum oscillators, vortex, Know Sure Thing and more). Applied to price data automatically — no need to fetch prices first. Each indicator needs its window of history before it produces values, so the first periods after start_date can be empty and quarterly or yearly periods with long windows can be empty on short histories; start earlier to warm up. Requires tickers='AAPL' — use comma-separated values for multiple tickers. get_relative_strength gives the price relative to the benchmark, the Mansfield relative strength and a 1-99 relative strength rating across the tickers; get_seasonality the average return, hit rate and t-statistic per calendar month (frequency='month') or weekday (frequency='weekday').

Input Schema

NameRequiredDescriptionDefault
lagNoNumber of periods to lag when computing growth rates.
limitNoThe rows to return, like head and tail: 5 for the first five, -5 for the last five (the most recent of a time series). A table with its periods as columns (financial statements, ratios) keeps its first or last periods instead. For ETF holdings the largest (or, negative, the smallest) by weight, and for a list (e.g. news or a screener) its length.
growthNoReturn period-over-period growth rates instead of absolute values.
periodNoObservation frequency, e.g. 'daily', 'weekly', 'monthly', 'quarterly', or 'annual' (supported values differ per method).daily
windowNoThe number of periods the indicator looks back over, e.g. 14 or 20. Leave unset to use the default of the indicator you selected. Defaults differ between indicators.
tickersNoComma-separated ticker symbols, e.g. 'AAPL,MSFT,GOOGL'.
weightsNoThe four weights applied to each smoothed Rate of Change series before summing.
constantNoConstant multiplier used in the CCI calculation.
end_dateNoEnd of the date range in YYYY-MM-DD format.2026-10-27
window_1NoThe number of periods for the first short-term window.
window_2NoThe number of periods for the second mid-term window.
window_3NoThe number of periods for the third long-term window.
frequencyNo"month" (per calendar month) or "weekday" (per day of the week).month
indicatorYesName of the specific metric to calculate, one of the listed values. Required — search_metrics finds the indicator (and its tool) for a metric by name.
quarterlyNoReturn quarterly data instead of annual when True.
start_dateNoStart of the date range in YYYY-MM-DD format.2021-10-28
base_windowNoThe number of periods to consider for the Base Line (Kijun-sen) calculation, also used as the forward displacement for both Leading Spans.
long_windowNoFor get_percentage_price_oscillator: The number of periods for the long-term moving average. For get_moving_average_convergence_divergence: The number of periods for the longer moving average. For get_awesome_oscillator: The number of periods for the long-term SMA of the median price. Leave unset to use the default of the indicator you selected. Defaults are 26 for get_moving_average_convergence_divergence, get_percentage_price_oscillator; 34 for get_awesome_oscillator.
roc_windowsNoThe four lookback periods used for the underlying Rate of Change calculations.
sma_windowsNoThe four Simple Moving Average smoothing periods applied to each Rate of Change series.
standardizeNoReturn the Z-Score (standard score) instead of the raw values, i.e. how many standard deviations each value is from the mean of its own series. When combined with growth=True, the growth values are standardized instead of the raw values.
close_columnNoThe column in the historical data that represents.Adj Close
short_windowNoFor get_percentage_price_oscillator: The number of periods for the short-term moving average. For get_moving_average_convergence_divergence: The number of periods for the shorter moving average. For get_awesome_oscillator: The number of periods for the short-term SMA of the median price. Leave unset to use the default of the indicator you selected. Defaults are 12 for get_moving_average_convergence_divergence, get_percentage_price_oscillator; 5 for get_awesome_oscillator.
show_columnsNoComma-separated names to filter the output. For historical data use the key names visible in any response record (e.g. 'Close,Volume,Return'). For financial statements use the 'metric' field values from the response (e.g. 'Revenue,Net Income,EBITDA'). Call the tool once without this parameter to see all available names, then repeat with show_columns to reduce response size and token usage.
signal_windowNoFor get_moving_average_convergence_divergence: The number of periods for the signal line. For get_know_sure_thing: Number of periods for the Simple Moving Average of the KST used as the signal line.
smooth_windowNoThe number of periods used to smooth the %K line into the %D signal line.
benchmark_tickerNoTicker used as the market benchmark, e.g. 'SPY' or '^GSPC'.SPY
conversion_windowNoThe number of periods to consider for the Conversion Line (Tenkan-sen) calculation.
lead_span_b_windowNoThe number of periods to consider for the Lead Span B (Senkou Span B) calculation.

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed8 schema fields changedv2.3.0
    • changedInput schema / properties / close_column / description
      Previous value: -"For get_money_flow_index, get_williams_percent_r: The name of the column containing the close prices. For get_aroon_indicator, get_ichimoku_cloud, get_stochastic_oscillator, get_moving_average_convergence_divergence, get_relative_strength_index, get_balance_of_power, get_awesome_oscillator, get_vortex_indicator, get_elder_ray_index, get_rate_of_change, get_choppiness_index, get_know_sure_thing: The column name for closing prices in the historical data. For get_commodity_channel_index, get_relative_vigor_index, get_force_index, get_ultimate_oscillator, get_percentage_price_oscillator, get_detrended_price_oscillator, get_average_directional_index, get_chande_momentum_oscillator: The column in the historical data that represents the closing prices."New value: +"The column in the historical data that represents."
    • changedInput schema / properties / end_date / default
      Previous value: -"2026-10-14"New value: +"2026-10-27"
    • addedInput schema / properties / frequency
      Added value: +{
      +  "default": "month",
      +  "description": "\"month\" (per calendar month) or \"weekday\" (per day of the week).",
      +  "type": "string"
      +}
    • changedInput schema / properties / indicator / enum
      Previous value: -[
      -  "get_money_flow_index",
      -  "get_williams_percent_r",
      -  "get_aroon_indicator",
      -  "get_commodity_channel_index",
      -  "get_relative_vigor_index",
      -  "get_force_index",
      -  "get_ultimate_oscillator",
      -  "get_percentage_price_oscillator",
      -  "get_detrended_price_oscillator",
      -  "get_average_directional_index",
      -  "get_chande_momentum_oscillator",
      -  "get_ichimoku_cloud",
      -  "get_stochastic_oscillator",
      -  "get_moving_average_convergence_divergence",
      -  "get_relative_strength_index",
      -  "get_balance_of_power",
      -  "get_awesome_oscillator",
      -  "get_vortex_indicator",
      -  "get_elder_ray_index",
      -  "get_rate_of_change",
      -  "get_choppiness_index",
      -  "get_know_sure_thing"
      -]New value: +[
      +  "get_money_flow_index",
      +  "get_williams_percent_r",
      +  "get_aroon_indicator",
      +  "get_commodity_channel_index",
      +  "get_relative_vigor_index",
      +  "get_force_index",
      +  "get_ultimate_oscillator",
      +  "get_percentage_price_oscillator",
      +  "get_detrended_price_oscillator",
      +  "get_average_directional_index",
      +  "get_chande_momentum_oscillator",
      +  "get_ichimoku_cloud",
      +  "get_stochastic_oscillator",
      +  "get_moving_average_convergence_divergence",
      +  "get_relative_strength_index",
      +  "get_balance_of_power",
      +  "get_awesome_oscillator",
      +  "get_vortex_indicator",
      +  "get_elder_ray_index",
      +  "get_rate_of_change",
      +  "get_choppiness_index",
      +  "get_know_sure_thing",
      +  "get_relative_strength",
      +  "get_seasonality"
      +]
    • changedInput schema / properties / long_window / description
      Previous value: -"For get_percentage_price_oscillator: The number of periods for the long-term moving average. For get_moving_average_convergence_divergence: The number of periods for the longer moving average. For get_awesome_oscillator: The number of periods for the long-term SMA of the median price. Leave unset to use the default of the indicator you selected. Defaults are 26 for get_moving_average_convergence_divergence; 28 for get_percentage_price_oscillator; 34 for get_awesome_oscillator."New value: +"For get_percentage_price_oscillator: The number of periods for the long-term moving average. For get_moving_average_convergence_divergence: The number of periods for the longer moving average. For get_awesome_oscillator: The number of periods for the long-term SMA of the median price. Leave unset to use the default of the indicator you selected. Defaults are 26 for get_moving_average_convergence_divergence, get_percentage_price_oscillator; 34 for get_awesome_oscillator."
    • changedInput schema / properties / short_window / description
      Previous value: -"For get_percentage_price_oscillator: The number of periods for the short-term moving average. For get_moving_average_convergence_divergence: The number of periods for the shorter moving average. For get_awesome_oscillator: The number of periods for the short-term SMA of the median price. Leave unset to use the default of the indicator you selected. Defaults are 12 for get_moving_average_convergence_divergence; 5 for get_awesome_oscillator; 7 for get_percentage_price_oscillator."New value: +"For get_percentage_price_oscillator: The number of periods for the short-term moving average. For get_moving_average_convergence_divergence: The number of periods for the shorter moving average. For get_awesome_oscillator: The number of periods for the short-term SMA of the median price. Leave unset to use the default of the indicator you selected. Defaults are 12 for get_moving_average_convergence_divergence, get_percentage_price_oscillator; 5 for get_awesome_oscillator."
    • changedInput schema / properties / start_date / default
      Previous value: -"2021-10-15"New value: +"2021-10-28"
    • changedInput schema / properties / weights / description
      Previous value: -"The portfolio weight per ticker as an object, e.g. {'AAPL': 0.6, 'MSFT': 0.4}; equal weights when left unset."New value: +"The four weights applied to each smoothed Rate of Change series before summing."
  2. Changed53 schema fields changedv2.2.3
    • changedInput schema / properties / base_window / description
      Previous value: -"Value for base_window."New value: +"The number of periods to consider for the Base Line (Kijun-sen) calculation, also used as the forward displacement for both Leading Spans."
    • removedInput schema / properties / base_window / title
      Removed value: -"Base Window"
    • removedInput schema / properties / benchmark_ticker / title
      Removed value: -"Benchmark Ticker"
    • changedInput schema / properties / close_column / description
      Previous value: -"Value for close_column."New value: +"For get_money_flow_index, get_williams_percent_r: The name of the column containing the close prices. For get_aroon_indicator, get_ichimoku_cloud, get_stochastic_oscillator, get_moving_average_convergence_divergence, get_relative_strength_index, get_balance_of_power, get_awesome_oscillator, get_vortex_indicator, get_elder_ray_index, get_rate_of_change, get_choppiness_index, get_know_sure_thing: The column name for closing prices in the historical data. For get_commodity_channel_index, get_relative_vigor_index, get_force_index, get_ultimate_oscillator, get_percentage_price_oscillator, get_detrended_price_oscillator, get_average_directional_index, get_chande_momentum_oscillator: The column in the historical data that represents the closing prices."
    • removedInput schema / properties / close_column / title
      Removed value: -"Close Column"
    • changedInput schema / properties / constant / description
      Previous value: -"Value for constant."New value: +"Constant multiplier used in the CCI calculation."
    • removedInput schema / properties / constant / title
      Removed value: -"Constant"
    • changedInput schema / properties / conversion_window / description
      Previous value: -"Value for conversion_window."New value: +"The number of periods to consider for the Conversion Line (Tenkan-sen) calculation."
    • removedInput schema / properties / conversion_window / title
      Removed value: -"Conversion Window"
    • changedInput schema / properties / end_date / default
      Previous value: -"2026-10-02"New value: +"2026-10-14"
    • removedInput schema / properties / end_date / title
      Removed value: -"End Date"
    • removedInput schema / properties / growth / title
      Removed value: -"Growth"
    • changedInput schema / properties / indicator / description
      Previous value: -"Name of the specific metric to calculate, e.g. 'get_asset_turnover_ratio'. Required — omitting it returns the list of available indicators."New value: +"Name of the specific metric to calculate, one of the listed values. Required — search_metrics finds the indicator (and its tool) for a metric by name."
    • removedInput schema / properties / indicator / title
      Removed value: -"Indicator"
    • addedInput schema / properties / lag / anyOf
      Added value: +[
      +  {
      +    "type": "integer"
      +  },
      +  {
      +    "items": {
      +      "type": "integer"
      +    },
      +    "type": "array"
      +  }
      +]
    • removedInput schema / properties / lag / title
      Removed value: -"Lag"
    • removedInput schema / properties / lag / type
      Removed value: -"integer"
    • changedInput schema / properties / lead_span_b_window / description
      Previous value: -"Value for lead_span_b_window."New value: +"The number of periods to consider for the Lead Span B (Senkou Span B) calculation."
    • removedInput schema / properties / lead_span_b_window / title
      Removed value: -"Lead Span B Window"
    • addedInput schema / properties / limit
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "The rows to return, like head and tail: 5 for the first five, -5 for the last five (the most recent of a time series). A table with its periods as columns (financial statements, ratios) keeps its first or last periods instead. For ETF holdings the largest (or, negative, the smallest) by weight, and for a list (e.g. news or a screener) its length."
      +}
    • changedInput schema / properties / long_window / description
      Previous value: -"Value for long_window. Leave unset to use the default of the indicator you selected. Defaults are 26 for get_moving_average_convergence_divergence; 28 for get_percentage_price_oscillator; 34 for get_awesome_oscillator."New value: +"For get_percentage_price_oscillator: The number of periods for the long-term moving average. For get_moving_average_convergence_divergence: The number of periods for the longer moving average. For get_awesome_oscillator: The number of periods for the long-term SMA of the median price. Leave unset to use the default of the indicator you selected. Defaults are 26 for get_moving_average_convergence_divergence; 28 for get_percentage_price_oscillator; 34 for get_awesome_oscillator."
    • removedInput schema / properties / long_window / title
      Removed value: -"Long Window"
    • changedInput schema / properties / period / description
      Previous value: -"Observation frequency, e.g. 'monthly', 'quarterly', or 'annual'."New value: +"Observation frequency, e.g. 'daily', 'weekly', 'monthly', 'quarterly', or 'annual' (supported values differ per method)."
    • removedInput schema / properties / period / title
      Removed value: -"Period"
    • removedInput schema / properties / quarterly / title
      Removed value: -"Quarterly"
    • changedInput schema / properties / roc_windows / description
      Previous value: -"Value for roc_windows."New value: +"The four lookback periods used for the underlying Rate of Change calculations."
    • removedInput schema / properties / roc_windows / title
      Removed value: -"Roc Windows"
    • changedInput schema / properties / short_window / description
      Previous value: -"Value for short_window. Leave unset to use the default of the indicator you selected. Defaults are 12 for get_moving_average_convergence_divergence; 5 for get_awesome_oscillator; 7 for get_percentage_price_oscillator."New value: +"For get_percentage_price_oscillator: The number of periods for the short-term moving average. For get_moving_average_convergence_divergence: The number of periods for the shorter moving average. For get_awesome_oscillator: The number of periods for the short-term SMA of the median price. Leave unset to use the default of the indicator you selected. Defaults are 12 for get_moving_average_convergence_divergence; 5 for get_awesome_oscillator; 7 for get_percentage_price_oscillator."
    • removedInput schema / properties / short_window / title
      Removed value: -"Short Window"
    • removedInput schema / properties / show_columns / title
      Removed value: -"Show Columns"
    • changedInput schema / properties / signal_window / description
      Previous value: -"Value for signal_window."New value: +"For get_moving_average_convergence_divergence: The number of periods for the signal line. For get_know_sure_thing: Number of periods for the Simple Moving Average of the KST used as the signal line."
    • removedInput schema / properties / signal_window / title
      Removed value: -"Signal Window"
    • changedInput schema / properties / sma_windows / description
      Previous value: -"Value for sma_windows."New value: +"The four Simple Moving Average smoothing periods applied to each Rate of Change series."
    • removedInput schema / properties / sma_windows / title
      Removed value: -"Sma Windows"
    • changedInput schema / properties / smooth_window / description
      Previous value: -"Value for smooth_window."New value: +"The number of periods used to smooth the %K line into the %D signal line."
    • removedInput schema / properties / smooth_window / title
      Removed value: -"Smooth Window"
    • removedInput schema / properties / standardize / title
      Removed value: -"Standardize"
    • changedInput schema / properties / start_date / default
      Previous value: -"2021-10-03"New value: +"2021-10-15"
    • removedInput schema / properties / start_date / title
      Removed value: -"Start Date"
    • addedInput schema / properties / tickers / anyOf
      Added value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "items": {
      +      "type": "string"
      +    },
      +    "type": "array"
      +  }
      +]
    • removedInput schema / properties / tickers / title
      Removed value: -"Tickers"
    • removedInput schema / properties / tickers / type
      Removed value: -"string"
    • changedInput schema / properties / weights / description
      Previous value: -"Value for weights."New value: +"The portfolio weight per ticker as an object, e.g. {'AAPL': 0.6, 'MSFT': 0.4}; equal weights when left unset."
    • removedInput schema / properties / weights / title
      Removed value: -"Weights"
    • changedInput schema / properties / window / description
      Previous value: -"Value for window. Leave unset to use the default of the indicator you selected. Defaults differ between indicators."New value: +"The number of periods the indicator looks back over, e.g. 14 or 20. Leave unset to use the default of the indicator you selected. Defaults differ between indicators."
    • removedInput schema / properties / window / title
      Removed value: -"Window"
    • changedInput schema / properties / window_1 / description
      Previous value: -"Value for window_1."New value: +"The number of periods for the first short-term window."
    • removedInput schema / properties / window_1 / title
      Removed value: -"Window 1"
    • changedInput schema / properties / window_2 / description
      Previous value: -"Value for window_2."New value: +"The number of periods for the second mid-term window."
    • removedInput schema / properties / window_2 / title
      Removed value: -"Window 2"
    • changedInput schema / properties / window_3 / description
      Previous value: -"Value for window_3."New value: +"The number of periods for the third long-term window."
    • removedInput schema / properties / window_3 / title
      Removed value: -"Window 3"
    • removedInput schema / title
      Removed value: -"momentumArguments"
  3. Changed2 schema fields changedv2.2.1
    • changedInput schema / properties / end_date / default
      Previous value: -"2026-08-19"New value: +"2026-10-02"
    • changedInput schema / properties / start_date / default
      Previous value: -"2021-08-20"New value: +"2021-10-03"
  4. Changed22 schema fields changedv2.2.0
    • changedInput schema / properties / base_window / default
      Previous value: -20New value: +26
    • changedInput schema / properties / end_date / default
      Previous value: -"2026-07-14"New value: +"2026-08-19"
    • changedInput schema / properties / indicator / enum
      Previous value: -[
      -  "get_money_flow_index",
      -  "get_williams_percent_r",
      -  "get_aroon_indicator",
      -  "get_commodity_channel_index",
      -  "get_relative_vigor_index",
      -  "get_force_index",
      -  "get_ultimate_oscillator",
      -  "get_percentage_price_oscillator",
      -  "get_detrended_price_oscillator",
      -  "get_average_directional_index",
      -  "get_chande_momentum_oscillator",
      -  "get_ichimoku_cloud",
      -  "get_stochastic_oscillator",
      -  "get_moving_average_convergence_divergence",
      -  "get_relative_strength_index",
      -  "get_balance_of_power"
      -]New value: +[
      +  "get_money_flow_index",
      +  "get_williams_percent_r",
      +  "get_aroon_indicator",
      +  "get_commodity_channel_index",
      +  "get_relative_vigor_index",
      +  "get_force_index",
      +  "get_ultimate_oscillator",
      +  "get_percentage_price_oscillator",
      +  "get_detrended_price_oscillator",
      +  "get_average_directional_index",
      +  "get_chande_momentum_oscillator",
      +  "get_ichimoku_cloud",
      +  "get_stochastic_oscillator",
      +  "get_moving_average_convergence_divergence",
      +  "get_relative_strength_index",
      +  "get_balance_of_power",
      +  "get_awesome_oscillator",
      +  "get_vortex_indicator",
      +  "get_elder_ray_index",
      +  "get_rate_of_change",
      +  "get_choppiness_index",
      +  "get_know_sure_thing"
      +]
    • changedInput schema / properties / lead_span_b_window / default
      Previous value: -40New value: +52
    • addedInput schema / properties / long_window / anyOf
      Added value: +[
      +  {
      +    "type": "integer"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedInput schema / properties / long_window / default
      Previous value: -28New value: +null
    • changedInput schema / properties / long_window / description
      Previous value: -"Value for long_window."New value: +"Value for long_window. Leave unset to use the default of the indicator you selected. Defaults are 26 for get_moving_average_convergence_divergence; 28 for get_percentage_price_oscillator; 34 for get_awesome_oscillator."
    • removedInput schema / properties / long_window / type
      Removed value: -"integer"
    • addedInput schema / properties / roc_windows
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Value for roc_windows.",
      +  "title": "Roc Windows"
      +}
    • addedInput schema / properties / short_window / anyOf
      Added value: +[
      +  {
      +    "type": "integer"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedInput schema / properties / short_window / default
      Previous value: -7New value: +null
    • changedInput schema / properties / short_window / description
      Previous value: -"Value for short_window."New value: +"Value for short_window. Leave unset to use the default of the indicator you selected. Defaults are 12 for get_moving_average_convergence_divergence; 5 for get_awesome_oscillator; 7 for get_percentage_price_oscillator."
    • removedInput schema / properties / short_window / type
      Removed value: -"integer"
    • addedInput schema / properties / sma_windows
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Value for sma_windows.",
      +  "title": "Sma Windows"
      +}
    • removedInput schema / properties / smooth_widow
      Removed value: -{
      -  "default": 3,
      -  "description": "Value for smooth_widow.",
      -  "title": "Smooth Widow",
      -  "type": "integer"
      -}
    • addedInput schema / properties / smooth_window
      Added value: +{
      +  "default": 3,
      +  "description": "Value for smooth_window.",
      +  "title": "Smooth Window",
      +  "type": "integer"
      +}
    • changedInput schema / properties / start_date / default
      Previous value: -"2021-07-15"New value: +"2021-08-20"
    • addedInput schema / properties / weights
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Value for weights.",
      +  "title": "Weights"
      +}
    • addedInput schema / properties / window / anyOf
      Added value: +[
      +  {
      +    "type": "integer"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedInput schema / properties / window / default
      Previous value: -14New value: +null
    • changedInput schema / properties / window / description
      Previous value: -"Value for window."New value: +"Value for window. Leave unset to use the default of the indicator you selected. Defaults differ between indicators."
    • removedInput schema / properties / window / type
      Removed value: -"integer"
  5. Changed3 schema fields changed
    • changedInput schema / properties / end_date / default
      Previous value: -"2026-07-09"New value: +"2026-07-14"
    • addedInput schema / properties / standardize
      Added value: +{
      +  "default": false,
      +  "description": "Return the Z-Score (standard score) instead of the raw values, i.e. how many standard deviations each value is from the mean of its own series. When combined with growth=True, the growth values are standardized instead of the raw values.",
      +  "title": "Standardize",
      +  "type": "boolean"
      +}
    • changedInput schema / properties / start_date / default
      Previous value: -"2021-07-10"New value: +"2021-07-15"
  6. Changed2 schema fields changedv2.1.4
    • changedInput schema / properties / end_date / default
      Previous value: -"2026-06-27"New value: +"2026-07-09"
    • changedInput schema / properties / start_date / default
      Previous value: -"2021-06-28"New value: +"2021-07-10"
  7. Changed2 schema fields changedv2.1.3
    • changedInput schema / properties / end_date / default
      Previous value: -"2026-06-23"New value: +"2026-06-27"
    • changedInput schema / properties / start_date / default
      Previous value: -"2021-06-24"New value: +"2021-06-28"
  8. Changed4 schema fields changedv0.1.2
    • changedInput schema / properties / end_date / default
      Previous value: -"2026-06-22"New value: +"2026-06-23"
    • removedInput schema / properties / rounding
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "type": "integer"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "default": null,
      -  "description": "Number of decimal places to round results to.",
      -  "title": "Rounding"
      -}
    • addedInput schema / properties / show_columns
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Comma-separated names to filter the output. For historical data use the key names visible in any response record (e.g. 'Close,Volume,Return'). For financial statements use the 'metric' field values from the response (e.g. 'Revenue,Net Income,EBITDA'). Call the tool once without this parameter to see all available names, then repeat with show_columns to reduce response size and token usage.",
      +  "title": "Show Columns"
      +}
    • changedInput schema / properties / start_date / default
      Previous value: -"2021-06-23"New value: +"2021-06-24"
  9. Addedv0.1.1

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish read-only, idempotent, open-world behavior. The description adds meaningful context beyond them: automatic price retrieval, warm-up gaps for long windows, multi-ticker support, and special output semantics for get_relative_strength and get_seasonality.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded and the paragraph is dense with useful information, including warm-up behavior and special indicators. It is somewhat long due to the indicator list, but that list earns its place by helping an agent recognize coverage.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the rich 29-parameter schema, output schema, and annotations, the description covers the key behavioral surprises and usage constraints. It does not need to explain every parameter, but it could more explicitly route agents among sibling metric-family tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds operational meaning by explaining the start_date/window warm-up relationship, comma-separated tickers, and frequency semantics for seasonality.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the resource specifically as momentum technical indicators and lists many concrete indicator types, so an agent knows this is a technical-analysis computation tool. It distinguishes itself from broad sibling categories such as volatility or risk, though it does not explicitly name those siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives useful operating context: price data is fetched automatically, tickers are required, and starting earlier avoids empty warm-up periods. However, it does not explicitly state when to choose this tool over siblings or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.