Skip to main content
Glama

Server Details

Live market data & technical analysis for US stocks, ETFs and crypto. Read-only, no signup.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
99.9% over 56 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A3.9/5.0

Scored across 15 tools

Disambiguation4/5

Most tools have clearly distinct purposes, but several 'market context' tools (get_macro_context, get_intermarket, get_market_breadth, get_crypto_context) and event/indicator tools (get_event_stats vs get_technical_indicators) overlap thematically. Descriptions clarify usage, so an agent can usually choose correctly, but some hesitation is possible.

Naming Consistency4/5

Thirteen tools use a consistent get_ + snake_case pattern, while two news tools use a public_* prefix. This is a minor deviation and still readable, but it prevents a fully uniform verb_noun convention.

Tool Count5/5

Fifteen tools is appropriate for a broad market-data and technical-analysis server. Each tool covers a distinct analytical need, such as quotes, history, indicators, levels, sentiment, macro, news, and methodology.

Completeness4/5

The surface is comprehensive for technical and market-context analysis, covering instruments, price history, indicators, key levels, sentiment, breadth, macro, intermarket, crypto, news, and methodology. Some adjacent data types, such as options chains or detailed fundamentals/earnings estimates, are absent but can be worked around for most stated use cases.

Available Tools

15 tools
get_crypto_contextCrypto market contextA
Read-onlyIdempotent
Inspect

Crypto market context for a technical read: BTC/ETH dominance and total/alt market cap, Fear & Greed sentiment, perp funding rate & open interest (positioning/leverage), and the Stablecoin Supply Ratio (dry powder). Use ONLY when analysing crypto assets (BTC, ETH, crypto ETFs). Background context, not the primary signal.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dateNo
sourcesNo
etf_flowsNo
liquidityNo
sentimentNo
positioningNo
market_structureNo

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds genuine behavioral context beyond that: the data is supplementary, not a primary signal, and is only meaningful for crypto assets. It does not discuss freshness, caching, or data sourcing, keeping it short of a 5.

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?

Content is front-loaded in a single dense sentence with two short supporting sentences. The parenthetical glosses on funding rate and SSR add interpretive value, though the metric list is packed tightly enough that a reader must parse it carefully.

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

Completeness5/5

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

With zero parameters, an output schema present, and rich annotations, the description's remaining job is to state scope and what is returned, which it does fully. An agent has everything needed to decide whether to call it and how to weight the result.

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?

The tool takes no parameters, so there is no parameter semantics to describe and the baseline of 4 applies. The description does not attempt to document any inputs, which is correct here.

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

Purpose5/5

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

The description names a specific resource (crypto market context) and enumerates exactly what it returns: BTC/ETH dominance, total/alt market cap, Fear & Greed, perp funding rate and open interest, and Stablecoin Supply Ratio. It also scopes itself to crypto assets, which implicitly separates it from siblings like get_macro_context and get_sentiment_data.

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

Usage Guidelines4/5

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

It gives explicit when-to-use guidance ('Use ONLY when analysing crypto assets (BTC, ETH, crypto ETFs)') and a clear caveat that it is background context rather than a primary signal. It does not name the alternative tools (e.g. get_macro_context, get_sentiment_data) an agent should prefer for non-crypto or sentiment-first analysis, so routing is only partly resolved.

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

get_event_statsEvent base ratesA
Read-onlyIdempotent
Inspect

Historical base rates for the technical events firing on a ticker today (e.g. RSI below 30, golden/death cross, new 52-week high/low). For each active event: the forward returns (1w/1m/3m/6m/1y) seen historically after similar events across the US universe, with the sample size and an unconditional baseline to compare against. Answers 'what usually happened after this'; small samples warrant caution.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYesTicker symbol, e.g. 'SPY'

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
tickerNo
active_eventsNo

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint and openWorldHint=false, so safety is covered. The description adds real behavioral context beyond that: the statistics are drawn from the US universe, each event comes with a sample size, and small samples are flagged as caution-worthy.

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?

Three dense sentences, front-loaded with the primary purpose and followed by what is returned per event and the small-sample caveat. Nearly every clause earns its place, though the parenthetical example list could be trimmed.

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?

An output schema exists, and the description still usefully previews the return shape (forward returns at 1w/1m/3m/6m/1y, sample size, unconditional baseline), which helps the agent judge relevance. It is complete enough for a single-parameter read-only tool.

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

Parameters3/5

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

Only one parameter (ticker) and schema description coverage is 100%, so the schema fully documents it. The description adds the implicit scoping of 'on a ticker today' but no format or syntax detail beyond the schema, so the baseline 3 applies.

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

Purpose5/5

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

States a specific verb+resource: historical base rates for technical events firing today, with concrete examples of the event types (RSI below 30, golden/death cross, 52-week high/low). This clearly separates it from siblings like get_technical_indicators, which report current indicator state rather than historical forward-return statistics.

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

Usage Guidelines4/5

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

Provides clear usage context via the quoted question it answers, 'what usually happened after this', which tells the agent the intended analytical framing. It does not, however, state when not to use it or point to an alternative sibling for current indicator values or raw price history.

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

get_instrument_infoInstrument infoA
Read-onlyIdempotent
Inspect

Current snapshot of one instrument: price and recent changes, session state (regular, pre-market, after-hours, closed), 52-week range, and market cap, sector and next earnings date where they apply. Covers US-listed stocks and ETFs and major cryptocurrencies; crypto uses the -USD pair form (BTC-USD, ETH-USD). Forex pairs, futures, options and non-US listings are not covered. Pass a ticker such as 'AAPL', 'SPY' or 'BTC-USD'.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerNoTicker symbol, e.g. 'AAPL'
instrument_idNoUUID of the financial instrument

Output Schema

ParametersJSON Schema
NameRequiredDescription
typeNo
sectorNo
tickerNo
currencyNo
industryNo
full_nameNo
market_capNo
market_stateNo
session_noteNo
current_priceNo
instrument_idNo
price_changesNo
price_updated_atNo
fifty_two_week_lowNo
next_earnings_dateNo
fifty_two_week_highNo
extended_hours_priceNo
extended_hours_change_pctNo

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, so the safety profile is covered. The description adds real context beyond that: which asset classes are supported, that crypto requires the -USD pair form, and that fields like market cap/sector/earnings are conditional ('where they apply'). No auth or rate-limit detail, but that is minor given annotation coverage.

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?

Four sentences, front-loaded with the return payload and then the coverage boundaries. Dense and mostly earning its place, though the parenthetical enumeration of session states is slightly list-heavy.

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?

Output schema exists so return values need not be explained. The description covers supported asset classes, exclusion list, pair format, and example inputs — everything needed to invoke correctly, with only the instrument_id alternative left implicit.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description usefully adds crypto pair syntax ('BTC-USD') and multiple ticker examples beyond the schema's single 'AAPL' example, but it only discusses the ticker parameter and never mentions the alternative instrument_id UUID path.

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

Purpose5/5

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

States a specific verb and resource ('Current snapshot of one instrument') and enumerates the exact fields returned (price, session state, 52-week range, market cap, sector, earnings date). This clearly separates it from siblings like get_price_history and get_technical_indicators, which cover different concerns.

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

Usage Guidelines4/5

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

Explicitly bounds coverage: US-listed stocks, ETFs, major crypto (-USD pairs); excludes forex, futures, options, non-US listings. The 'current snapshot' framing implies when to choose it over historical tools, but no alternative sibling is named outright, so it falls short of a 5.

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

get_intermarketIntermarket compassA
Read-onlyIdempotent
Inspect

Intermarket compass — a first-pass read of the market environment through price-ratio lenses: asset-class rotation (bonds vs stocks, commodities), risk appetite (high-yield vs investment-grade credit, small vs large caps, cyclicals vs defensives), defensive flows (gold, utilities, yield-curve proxy) and the dollar. Each lens reports rising/falling vs its 50-day average plus the 20-day change; overall posture is risk_on, risk_off or mixed. Optional focus= ('gold'|'bonds'|'tech'|'commodities'|'equity'|'crypto') adds lenses specific to that asset class.

ParametersJSON Schema
NameRequiredDescriptionDefault
focusNoAsset class being analysed — adds its specific lenses

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
focusNo
votesNo
overallNo
questionsNo

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare a safe, idempotent, closed-world read, so the burden is light. The description still adds real value beyond them: each lens reports rising/falling vs its 50-day average plus 20-day change, and the tool emits a single posture of risk_on/risk_off/mixed, which tells the agent what kind of judgement to expect.

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?

Front-loaded with the tool's purpose and role, then the lens taxonomy, then the optional focus parameter. It is dense with domain jargon but every clause carries information; a slight trim of the lens enumeration would tighten it.

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

Completeness5/5

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

For a zero-required-param, single-enum, read-only analysis tool with an output schema, the description covers what is computed, how each lens is expressed, the posture enum, and the effect of focus. Nothing an agent needs to invoke it correctly is missing.

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

Parameters3/5

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

Schema description coverage is 100% with a single enum-backed parameter, so the baseline is 3. The description restates the same idea ('adds lenses specific to that asset class') without adding syntax, defaults, or per-value distinctions beyond the schema.

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

Purpose5/5

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

States a specific analytical verb ('first-pass read of the market environment') and resource (price-ratio lenses across asset-class rotation, risk appetite, defensive flows, the dollar), with concrete sub-scopes. No sibling in the list (breadth, macro context, relative strength) overlaps this intermarket-ratio scope, so an agent can route to it unambiguously.

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?

'First-pass read' implies a screening use case, which is useful implied guidance. However, it never says when NOT to use it or which sibling (e.g. get_macro_context, get_market_breadth, get_relative_strength) to prefer under which conditions, so the agent must infer the boundary.

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

get_key_levelsKey price levelsA
Read-onlyIdempotent
Inspect

Compute key price levels for a ticker: support/resistance zones (clustered swing highs/lows with touch counts = how often price reacted there), nearby round numbers, 50/200-day moving averages, and the 52-week high/low. Returns nearest levels above (resistance) and below (support) with distance %. Use these for concrete trigger/target/invalidation levels.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYesTicker symbol, e.g. 'SPY'

Output Schema

ParametersJSON Schema
NameRequiredDescription
dateNo
noteNo
closeNo
tickerNo
supportNo
resistanceNo

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds real behavioral context beyond that: how zones are derived (clustered swing highs/lows), what touch counts mean, and that results include nearest levels above/below with a distance metric.

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?

Front-loaded with the action and the output inventory, followed by a short usage sentence. Dense but every clause carries information; no filler sentences, though the parenthetical touch-count explanation makes the first sentence long.

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?

An output schema exists, so return-value detail is not required, and the description adequately covers what is computed and why. Minor gaps remain around data freshness or behavior for non-equity tickers, but nothing essential for correct invocation is missing.

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

Parameters3/5

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

With a single parameter and 100% schema description coverage, the schema already documents 'ticker' including an example. The description adds no additional semantics about the ticker argument, so the baseline of 3 applies.

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

Purpose5/5

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

States a specific verb ('compute') and resource ('key price levels for a ticker'), then enumerates exactly what is produced: support/resistance zones with touch counts, round numbers, 50/200-day MAs, and 52-week high/low. That enumeration functionally distinguishes it from siblings like get_technical_indicators or get_price_history without needing to name them.

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

Usage Guidelines4/5

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

Gives a clear use case — 'Use these for concrete trigger/target/invalidation levels' — which tells the agent the intended decision context. It does not, however, state when to prefer this over get_technical_indicators or get_price_history, so no explicit exclusions or alternatives are offered.

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

get_macro_contextMacro contextA
Read-onlyIdempotent
Inspect

Get macro market context: sector P/E ratios, sector performance, US Treasury rates (2Y/10Y/30Y), CPI inflation data. Also provides key inter-market ratios (HYG/LQD, TLT/SPY) from our price data.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dateNo
inter_market_ratiosNo

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, non-destructive, and openWorld behavior, so the safety profile is covered. The description adds a small amount of provenance by noting the ratios come 'from our price data,' but says nothing about data freshness, update cadence, or reliability of the macro figures.

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

Conciseness5/5

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

Two sentences, front-loaded with the primary content list and no filler. Every clause enumerates a distinct dataset the caller receives.

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?

An output schema exists, so return values need not be described, and the enumerated contents give a solid preview of scope. The only real gap is failing to clarify its boundary against get_intermarket, which shares stated functionality.

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?

The tool takes no parameters, so there are no argument semantics to explain and the schema is trivially complete; baseline 4 applies. The description correctly adds no parameter detail because none is needed.

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 uses a specific verb+resource (get macro market context) and enumerates concrete contents: sector P/E ratios, sector performance, Treasury rates, CPI, and inter-market ratios. It does not explicitly differentiate itself from the sibling get_intermarket, which appears to overlap on the HYG/LQD and TLT/SPY ratios mentioned here.

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

Usage Guidelines2/5

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

There is no statement of when to use this tool, when not to, or which alternative to pick. The omission is notable because the sibling get_intermarket also covers inter-market ratios, so an agent has no basis for choosing between them.

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

get_market_breadthMarket breadth (S&P 500)A
Read-onlyIdempotent
Inspect

S&P 500 market breadth: the percentage of index members above their 50-day and 200-day moving averages, with RSI, trend and 52-week range for each breadth series. A gauge of how broad the current advance or decline is.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dateNo
pct_above_50d_maNo
pct_above_200d_maNo

TDQS

A4/5.0
Behavior3/5

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

Annotations already cover the safety profile (readOnlyHint, idempotentHint, destructiveHint=false), so the burden is lower. The description adds useful content about what data is returned (RSI, trend, 52-week range per series), which is context beyond the annotations. However, it doesn't add behavioral details like data freshness or scope caveats.

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

Conciseness5/5

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

Two tightly written sentences: the first names the resource and lists exactly what is measured; the second supplies the interpretation. Every clause earns its place with no filler.

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?

An output schema exists, so the description needn't detail return values, and with no parameters there's little else to specify. It covers what the tool is and why it matters. A minor gap is the absence of any usage routing relative to the many sibling context 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?

The tool takes zero parameters, so there is nothing to document. Baseline is 4 for a parameterless tool, and the description appropriately focuses on the return content rather than nonexistent inputs.

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

Purpose5/5

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

States a specific resource (S&P 500 market breadth) with exactly what it measures (percentage of members above 50/200-day MAs) and the derived metrics per series. This is clearly distinguishable from siblings like get_technical_indicators (per-instrument) and get_macro_context (macro data).

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?

The description implies what the tool is used for (gauging how broad an advance/decline is) but provides no explicit when-to-use guidance or alternatives. No sibling tools are named to route the agent elsewhere.

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

get_monitoring_optionsMonitoring optionsA
Read-onlyIdempotent
Inspect

Returns available options for ongoing monitoring — price alerts, idea tracking, watchlist monitoring, scheduled digests — with setup instructions and channels (email/Telegram). Call only when the user asks for ongoing monitoring or notifications; never needed to answer a question.

ParametersJSON Schema
NameRequiredDescriptionDefault
intentNoWhich monitoring the user asked for.

Output Schema

ParametersJSON Schema
NameRequiredDescription
intentNo
messageNo
channelsNo
register_urlNo

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnlyHint=true, destructiveHint=false, idempotentHint=true), and the description usefully adds what the tool actually surfaces — setup instructions and delivery channels (email/Telegram). It stops short of describing response shape or whether options are static vs account-dependent, which would have pushed it higher.

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

Conciseness5/5

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

Two sentences, no filler, and the routing constraint is placed at the end where it functions as a gate. Every clause earns its place.

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

Completeness5/5

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

With an output schema present, the description need not explain return values, and the annotations carry the safety semantics. What remains — scope, option types, when to invoke — is fully covered for a zero-required-parameter lookup tool.

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

Parameters3/5

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

Schema description coverage is 100% and the single enum parameter is fully documented in the schema, so the baseline is 3. The description echoes four of the enum values but omits 'memory', adding no syntax or mapping detail beyond what the schema carries.

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

Purpose5/5

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

States a specific verb and resource ('Returns available options for ongoing monitoring') and enumerates the concrete option types (price alerts, idea tracking, watchlist monitoring, scheduled digests) plus channels. This lets an agent distinguish it from the informational siblings like get_market_breadth or get_price_history without opening any schema.

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

Usage Guidelines5/5

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

Gives an explicit when ('Call only when the user asks for ongoing monitoring or notifications') and an explicit when-not ('never needed to answer a question'), which is unusually strong routing guidance. The exclusion is the key discriminator against every sibling tool.

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

get_price_historyPrice history (OHLCV)B
Read-onlyIdempotent
Inspect

Get daily OHLCV price history for a ticker: open/high/low/close/volume. Use period_days to control how far back (default 365, max 3650).

ParametersJSON Schema
NameRequiredDescriptionDefault
barsNohow many recent sessions to return when no window is given (default 20, max 120)
tickerYesTicker symbol, e.g. 'SPY', 'GDX', 'AAPL'
to_dateNoend of the window to quote, YYYY-MM-DD
from_dateNostart of the window to quote, YYYY-MM-DD
period_daysNoNumber of days of history (default 365, max 3650)

Output Schema

ParametersJSON Schema
NameRequiredDescription
tickerNo
currentNo
date_rangeNo
total_barsNo
instrument_idNo
recent_pricesNo
period_return_pctNo

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds default/max limits on the history window but says nothing about throttling, data availability, or gaps in the series. With annotations carrying the safety burden, this is adequate but thin.

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

Conciseness5/5

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

Two tight sentences, front-loaded with the resource and scope, with the acronym expanded inline. Nothing is wasted.

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

Completeness3/5

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

Return values are covered by the output schema and safety by annotations, so the description need not repeat those. However, four overlapping window parameters (bars, from_date, to_date, period_days) coexist with no explanation of which takes precedence, leaving a real ambiguity the description could have resolved.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents ticker, bars, dates, and period_days. The description only restates period_days' default and max ('default 365, max 3650'), duplicating the schema, and never clarifies precedence between period_days, bars, and the from/to date pair.

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?

States a specific verb and resource ('Get daily OHLCV price history for a ticker') and spells out the OHLCV components, which cleanly separates it from siblings like get_technical_indicators or get_instrument_info. It does not name an alternative explicitly, but the resource is unambiguous.

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

Usage Guidelines2/5

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

The description gives no when-to-use context and does not route the agent to or away from any sibling. The only guidance is a default/max on period_days, which is a parameter detail rather than a usage condition.

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

get_relative_strengthRelative strength (A/B)A
Read-onlyIdempotent
Inspect

Relative strength of one ticker against another as a price ratio A/B (e.g. GDX/GLD, HYG/LQD, XLK/SPY, NVDA/SPY): how far the ratio sits above or below its 50- and 200-day averages, the ratio's RSI and trend, recent values, and a one-line verdict on which side is leading.

ParametersJSON Schema
NameRequiredDescriptionDefault
ticker_aYesNumerator ticker, e.g. 'GDX'
ticker_bYesDenominator ticker, e.g. 'GLD'
period_daysNoDays of history (default 365, max 1825)

Output Schema

ParametersJSON Schema
NameRequiredDescription
pairNo
trendNo
signalsNo
data_pointsNo
ratio_sma50No
ratio_rsi_14No
ratio_sma200No
current_ratioNo
recent_valuesNo
period_change_pctNo

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, openWorldHint=false, so the safety profile is fully covered. The description adds value beyond that by disclosing what the analysis computes (distance from 50/200-day averages, RSI, trend, recent values, one-line verdict), though much of this overlaps with the existing output schema.

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?

A single dense sentence, front-loaded with the core purpose and followed by the computed outputs. Every clause carries meaning, though the output enumeration makes it longer than strictly necessary given an output schema exists.

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?

With an output schema present, return values need not be spelled out, and annotations carry the safety profile, so the description is largely complete for a 3-parameter read-only analytics tool. It lacks any explicit guidance on period_days selection tradeoffs, a minor gap.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents ticker_a as numerator, ticker_b as denominator, and period_days defaults/limits. The description reinforces the A/B orientation with example ratios, but adds no syntax or format details beyond the schema—baseline 3 applies.

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

Purpose5/5

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

States a specific verb+resource (relative strength of one ticker against another as a price ratio A/B) and names concrete example pairs (GDX/GLD, HYG/LQD). This clearly distinguishes it from generic siblings like get_technical_indicators or get_price_history without needing to open either schema.

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?

Usage is implied by the example pairs (e.g. GDX/GLD for gold miners vs gold, XLK/SPY for sector vs benchmark), which hints at when the tool is appropriate. However, there is no explicit when-to-use vs alternatives statement and no exclusions relative to get_technical_indicators or get_intermarket.

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

get_sentiment_dataMarket sentimentA
Read-onlyIdempotent
Inspect

Market sentiment from Cboe's daily options statistics: put/call ratios for all products, equities, indices, SPX and VIX options, with the underlying call and put volumes, plus a contrarian flag when the equity put/call ratio sits at an extreme.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoWhich data: 'all' (default) or 'put_call' — both return the Cboe put/call set.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dateNo
put_callNo

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so safety is covered. The description adds real behavioral context beyond that: the data source (Cboe daily statistics), the exact datasets returned, and the conditional contrarian flag — information an agent cannot get from annotations.

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?

A single dense sentence that front-loads the source and resource before listing the contents. Every clause carries information, though the length edges toward a run-on.

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?

With an output schema present, return values need not be explained, and annotations cover the safety profile. The description supplies the data provenance and contents, leaving little an agent needs before calling it.

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

Parameters3/5

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

Schema description coverage is 100% and the single enum parameter is fully documented in the schema, so the baseline is 3. The description adds no parameter-level detail, but the schema already handles the 'all' vs 'put_call' semantics.

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 a specific resource — Cboe daily options statistics — and enumerates exactly what it returns (put/call ratios for all products, equities, indices, SPX and VIX, plus underlying volumes). This is far more specific than a tautology, though it never explicitly distinguishes itself from siblings like get_macro_context or get_market_breadth.

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?

There is no explicit when-to-use statement or named alternative, but the mention of a 'contrarian flag when the equity put/call ratio sits at an extreme' implies the tool's role as a sentiment/crowding gauge. Usage is inferable from the data described rather than stated.

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

get_ta_methodologyTechnical analysis methodologyA
Read-onlyIdempotent
Inspect

Look up MarketCrew's distilled technical-analysis methodology — our own synthesized notes on how to read indicators, structure, levels and regime — to ground an answer in a consistent framework. Returns short passages in our words with relevance scores.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesWhat you want the methodology on, e.g. 'reading RSI in a trend'
top_kNoHow many passages to return (default 6)

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
messageNo

TDQS

A4/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the bar is lower. The description adds real value by disclosing that the corpus is an internally authored, curated framework rather than retrieved web content, and that returns are 'short passages ... with relevance scores'.

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

Conciseness5/5

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

Two sentences, front-loaded with what the tool is, followed by what it returns. No filler or repetition of the title.

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?

With an output schema present, return values need not be explained, and the description covers purpose, usage context, and return shape adequately. Only the absence of explicit when-not guidance keeps it from a 5.

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

Parameters3/5

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

Schema description coverage is 100%, so both 'query' and 'top_k' are already documented in the schema; the baseline of 3 applies. The description adds no syntax, example, or default guidance beyond what the schema provides.

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

Purpose5/5

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

States a specific verb ('look up') and a precisely scoped resource: MarketCrew's distilled, synthesized TA methodology notes, explicitly contrasted with raw data by the phrase 'our own synthesized notes.' An agent can distinguish this from get_technical_indicators or public_search_news without opening a schema.

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 an implied use case ('to ground an answer in a consistent framework') but never states when to prefer this over siblings such as get_technical_indicators or when it is inappropriate. Usage is inferable but not explicit, and no alternative is named.

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

get_technical_indicatorsTechnical indicatorsB
Read-onlyIdempotent
Inspect

Calculate technical indicators for a ticker: SMA(50/200), RSI(14), MACD, ATR(14), ADX(14) trend strength, Stochastic(14,3), volume (OBV trend + volume vs 20-day average), RSI/price divergence, Golden/Death Cross, and RSI regime. Computed from daily price history.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYesTicker symbol, e.g. 'SPY'

Output Schema

ParametersJSON Schema
NameRequiredDescription
dateNo
closeNo
tickerNo
weeklyNo
signalsNo
positionNo
range_52wNo
indicatorsNo

TDQS

B3.4/5.0
Behavior3/5

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

The annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint=false, covering the safety profile. The description adds that indicators are computed from daily price history, which is useful context about data granularity, but does not disclose rate limits, auth requirements, or error behavior.

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

Conciseness5/5

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

The description is a single front-loaded sentence that immediately states the action and resource before listing the computed indicators. Every item in the list contributes to scope, and there is no filler or redundancy.

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?

For a read-only calculation tool with one required parameter, full schema coverage, rich annotations, and an output schema, the description is nearly complete. It fully enumerates what is computed and the data source, though it omits usage context that would help in a suite with many related market-context siblings.

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

Parameters3/5

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

There is only one parameter, ticker, and schema description coverage is 100% with the example 'SPY'. The description says 'for a ticker' but adds no syntax or format detail beyond what the schema already provides, matching the baseline for high schema coverage.

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 states a specific verb (Calculate) and resource (technical indicators for a ticker) and lists the exact indicators computed, making the tool's scope unambiguous. It does not explicitly name or differentiate itself from sibling tools such as get_price_history or get_ta_methodology, which keeps it from a 5.

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

Usage Guidelines2/5

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

The description gives no guidance about when to use this tool versus alternatives like get_price_history, get_key_levels, or get_ta_methodology. Usage is only implied by the tool's name and purpose, with no stated context or exclusions.

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

public_instrument_newsInstrument newsA
Read-onlyIdempotent
Inspect

Latest news for a ticker — headline, a short summary and a mandatory source_url to the original article (never the full third-party text). Use to ground a market read in recent, attributable news.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax articles to return (default 30, max 60)
tickerYesTicker symbol, e.g. 'NBIS', 'AAPL', 'GDX'
days_backNoHow many days back to fetch (default 30, max 90)

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultsNo

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive and openWorld=false, so safety is covered. The description adds genuinely useful behavioral context beyond that: output is headline + summary only, source_url is mandatory, and it explicitly never returns full third-party text — a licensing/content constraint an agent should know. It says nothing about rate limits or freshness/latency, keeping it from a 5.

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

Conciseness5/5

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

A single tightly packed sentence plus a short usage clause, with the resource and returned fields front-loaded and zero wasted words.

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?

With an output schema present, return-value explanation is not needed, and the content constraints (summary-only, mandatory source) cover the key disclosure. What remains unstated is the alternative route (public_search_news) and any rate/pagination behavior, so it is strong but not fully complete.

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

Parameters3/5

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

Schema coverage is 100% (ticker, limit, days_back all documented with defaults and maxima), so the schema carries the parameter burden. The description adds no syntax, default, or range detail beyond it; baseline 3 is appropriate.

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?

Names a specific resource and scope ('Latest news for a ticker') plus the returned shape (headline, short summary, source_url). It implicitly separates itself from the generic public_search_news sibling by being ticker-scoped, but never says so outright, so it stops short of full sibling differentiation.

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

Usage Guidelines4/5

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

'Use to ground a market read in recent, attributable news' gives a concrete when-to-use scenario. It offers no exclusions or alternative routing (e.g., when to prefer public_search_news over this tool), which caps it at 4.

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

public_search_newsNews searchA
Read-onlyIdempotent
Inspect

Semantic news search across tracked instruments — returns matching items with a short summary and a mandatory source_url (never full article text).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results to return (default 10, max 20)
queryYesNatural language search query describing ONE semantic angle, e.g. 'Nebius Meta deal contract $27 billion compute capacity'
days_backNoHow many days back to search (default 30, max 90)
min_similarityNoMinimum similarity threshold 0.0-1.0 (default 0.40)

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultsNo

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already cover read-only/idempotent/non-destructive, so the description adds real value by disclosing the output contract: matching items with a short summary and a mandatory source_url, never full article text. That is a meaningful behavioral constraint beyond structured fields.

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

Conciseness5/5

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

A single sentence that front-loads the core action and compresses scope, output shape, and a key limitation with no filler.

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?

All parameters are documented in schema and an output schema exists, so the description only needed to frame intent and output character, which it does. The only gap is not positioning against the overlapping sibling public_instrument_news.

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

Parameters3/5

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

Schema description coverage is 100%, so all four parameters are already fully documented with defaults and ranges. The description adds only the concept of semantic search and one-angle framing, which is already implied by the query parameter text.

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?

States a specific verb and resource ('Semantic news search across tracked instruments') and previews the return shape. It doesn't explicitly distinguish itself from the sibling public_instrument_news, so it stops short of a 5.

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?

Usage is implied by the 'semantic search' framing and the schema's 'ONE semantic angle' hint, but there is no statement of when to use this versus public_instrument_news or any other sibling, and no exclusions or prerequisites.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 15 tool updates
    • Changedget_crypto_context7 fields changed
      • changedOutput schema / properties / date / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / etf_flows / type
        Previous value: -"object"New value: +[
        +  "object",
        +  "null"
        +]
      • changedOutput schema / properties / liquidity / type
        Previous value: -"object"New value: +[
        +  "object",
        +  "null"
        +]
      • changedOutput schema / properties / market_structure / type
        Previous value: -"object"New value: +[
        +  "object",
        +  "null"
        +]
      • changedOutput schema / properties / positioning / type
        Previous value: -"object"New value: +[
        +  "object",
        +  "null"
        +]
      • changedOutput schema / properties / sentiment / type
        Previous value: -"object"New value: +[
        +  "object",
        +  "null"
        +]
      • changedOutput schema / properties / sources / type
        Previous value: -"object"New value: +[
        +  "object",
        +  "null"
        +]
    • Changedget_event_stats3 fields changed
      • changedOutput schema / properties / active_events / type
        Previous value: -"array"New value: +[
        +  "array",
        +  "null"
        +]
      • changedOutput schema / properties / note / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / ticker / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
    • Changedget_instrument_info18 fields changed
      • changedOutput schema / properties / currency / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / current_price / type
        Previous value: -"number"New value: +[
        +  "number",
        +  "null"
        +]
      • changedOutput schema / properties / extended_hours_change_pct / type
        Previous value: -"number"New value: +[
        +  "number",
        +  "null"
        +]
      • changedOutput schema / properties / extended_hours_price / type
        Previous value: -"number"New value: +[
        +  "number",
        +  "null"
        +]
      • changedOutput schema / properties / fifty_two_week_high / type
        Previous value: -"number"New value: +[
        +  "number",
        +  "null"
        +]
      • changedOutput schema / properties / fifty_two_week_low / type
        Previous value: -"number"New value: +[
        +  "number",
        +  "null"
        +]
      • changedOutput schema / properties / full_name / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / industry / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / instrument_id / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / market_cap / type
        Previous value: -"number"New value: +[
        +  "number",
        +  "null"
        +]
      • changedOutput schema / properties / market_state / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / next_earnings_date / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / price_changes / type
        Previous value: -"object"New value: +[
        +  "object",
        +  "null"
        +]
      • changedOutput schema / properties / price_updated_at / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / sector / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / session_note / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / ticker / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / type / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
    • Changedget_intermarket5 fields changed
      • changedOutput schema / properties / focus / type
        Previous value: -"object"New value: +[
        +  "object",
        +  "null"
        +]
      • changedOutput schema / properties / note / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / overall / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / questions / type
        Previous value: -"array"New value: +[
        +  "array",
        +  "null"
        +]
      • changedOutput schema / properties / votes / type
        Previous value: -"object"New value: +[
        +  "object",
        +  "null"
        +]
    • Changedget_key_levels6 fields changed
      • changedOutput schema / properties / close / type
        Previous value: -"number"New value: +[
        +  "number",
        +  "null"
        +]
      • changedOutput schema / properties / date / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / note / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / resistance / type
        Previous value: -"array"New value: +[
        +  "array",
        +  "null"
        +]
      • changedOutput schema / properties / support / type
        Previous value: -"array"New value: +[
        +  "array",
        +  "null"
        +]
      • changedOutput schema / properties / ticker / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
    • Changedget_macro_context2 fields changed
      • changedOutput schema / properties / date / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / inter_market_ratios / type
        Previous value: -"object"New value: +[
        +  "object",
        +  "null"
        +]
    • Changedget_market_breadth3 fields changed
      • changedOutput schema / properties / date / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / pct_above_200d_ma / type
        Previous value: -"object"New value: +[
        +  "object",
        +  "null"
        +]
      • changedOutput schema / properties / pct_above_50d_ma / type
        Previous value: -"object"New value: +[
        +  "object",
        +  "null"
        +]
    • Changedget_monitoring_options4 fields changed
      • changedOutput schema / properties / channels / type
        Previous value: -"array"New value: +[
        +  "array",
        +  "null"
        +]
      • changedOutput schema / properties / intent / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / message / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / register_url / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
    • Changedget_price_history7 fields changed
      • changedOutput schema / properties / current / type
        Previous value: -"object"New value: +[
        +  "object",
        +  "null"
        +]
      • changedOutput schema / properties / date_range / type
        Previous value: -"object"New value: +[
        +  "object",
        +  "null"
        +]
      • changedOutput schema / properties / instrument_id / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / period_return_pct / type
        Previous value: -"number"New value: +[
        +  "number",
        +  "null"
        +]
      • changedOutput schema / properties / recent_prices / type
        Previous value: -"array"New value: +[
        +  "array",
        +  "null"
        +]
      • changedOutput schema / properties / ticker / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / total_bars / type
        Previous value: -"number"New value: +[
        +  "number",
        +  "null"
        +]
    • Changedget_relative_strength10 fields changed
      • changedOutput schema / properties / current_ratio / type
        Previous value: -"number"New value: +[
        +  "number",
        +  "null"
        +]
      • changedOutput schema / properties / data_points / type
        Previous value: -"number"New value: +[
        +  "number",
        +  "null"
        +]
      • changedOutput schema / properties / pair / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / period_change_pct / type
        Previous value: -"number"New value: +[
        +  "number",
        +  "null"
        +]
      • changedOutput schema / properties / ratio_rsi_14 / type
        Previous value: -"number"New value: +[
        +  "number",
        +  "null"
        +]
      • changedOutput schema / properties / ratio_sma200 / type
        Previous value: -"number"New value: +[
        +  "number",
        +  "null"
        +]
      • changedOutput schema / properties / ratio_sma50 / type
        Previous value: -"number"New value: +[
        +  "number",
        +  "null"
        +]
      • changedOutput schema / properties / recent_values / type
        Previous value: -"array"New value: +[
        +  "array",
        +  "null"
        +]
      • changedOutput schema / properties / signals / type
        Previous value: -"object"New value: +[
        +  "object",
        +  "null"
        +]
      • changedOutput schema / properties / trend / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
    • Changedget_sentiment_data4 fields changed
      • changedInput schema / properties / type / description
        Previous value: -"Which data: 'all' (default), 'put_call', 'vix'"New value: +"Which data: 'all' (default) or 'put_call' — both return the Cboe put/call set."
      • changedInput schema / properties / type / enum
        Previous value: -[
        -  "all",
        -  "put_call",
        -  "vix"
        -]New value: +[
        +  "all",
        +  "put_call"
        +]
      • changedOutput schema / properties / date / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / put_call / type
        Previous value: -"object"New value: +[
        +  "object",
        +  "null"
        +]
    • Changedget_ta_methodology2 fields changed
      • changedOutput schema / properties / error / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / message / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
    • Changedget_technical_indicators8 fields changed
      • changedOutput schema / properties / close / type
        Previous value: -"number"New value: +[
        +  "number",
        +  "null"
        +]
      • changedOutput schema / properties / date / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / indicators / type
        Previous value: -"object"New value: +[
        +  "object",
        +  "null"
        +]
      • changedOutput schema / properties / position / type
        Previous value: -"object"New value: +[
        +  "object",
        +  "null"
        +]
      • changedOutput schema / properties / range_52w / type
        Previous value: -"object"New value: +[
        +  "object",
        +  "null"
        +]
      • changedOutput schema / properties / signals / type
        Previous value: -"object"New value: +[
        +  "object",
        +  "null"
        +]
      • changedOutput schema / properties / ticker / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / weekly / type
        Previous value: -"object"New value: +[
        +  "object",
        +  "null"
        +]
    • Changedpublic_instrument_news1 field changed
      • changedOutput schema / properties / results / type
        Previous value: -"array"New value: +[
        +  "array",
        +  "null"
        +]
    • Changedpublic_search_news1 field changed
      • changedOutput schema / properties / results / type
        Previous value: -"array"New value: +[
        +  "array",
        +  "null"
        +]
  2. 1 tool update
    • Changedget_intermarket1 field changed
      • changedInput schema / properties / focus / enum
        Previous value: -[
        -  "gold",
        -  "bonds",
        -  "tech",
        -  "commodities",
        -  "equity"
        -]New value: +[
        +  "gold",
        +  "bonds",
        +  "tech",
        +  "commodities",
        +  "equity",
        +  "crypto"
        +]
  3. 15 tool updates
    • Changedget_crypto_context1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "date": {
        +      "type": "string"
        +    },
        +    "etf_flows": {
        +      "type": "object"
        +    },
        +    "liquidity": {
        +      "type": "object"
        +    },
        +    "market_structure": {
        +      "type": "object"
        +    },
        +    "positioning": {
        +      "type": "object"
        +    },
        +    "sentiment": {
        +      "type": "object"
        +    },
        +    "sources": {
        +      "type": "object"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedget_event_stats1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "active_events": {
        +      "items": {},
        +      "type": "array"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "ticker": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedget_instrument_info1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "currency": {
        +      "type": "string"
        +    },
        +    "current_price": {
        +      "type": "number"
        +    },
        +    "extended_hours_change_pct": {
        +      "type": "number"
        +    },
        +    "extended_hours_price": {
        +      "type": "number"
        +    },
        +    "fifty_two_week_high": {
        +      "type": "number"
        +    },
        +    "fifty_two_week_low": {
        +      "type": "number"
        +    },
        +    "full_name": {
        +      "type": "string"
        +    },
        +    "industry": {
        +      "type": "string"
        +    },
        +    "instrument_id": {
        +      "type": "string"
        +    },
        +    "market_cap": {
        +      "type": "number"
        +    },
        +    "market_state": {
        +      "type": "string"
        +    },
        +    "next_earnings_date": {
        +      "type": "string"
        +    },
        +    "price_changes": {
        +      "type": "object"
        +    },
        +    "price_updated_at": {
        +      "type": "string"
        +    },
        +    "sector": {
        +      "type": "string"
        +    },
        +    "session_note": {
        +      "type": "string"
        +    },
        +    "ticker": {
        +      "type": "string"
        +    },
        +    "type": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedget_intermarket1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "focus": {
        +      "type": "object"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "overall": {
        +      "type": "string"
        +    },
        +    "questions": {
        +      "items": {},
        +      "type": "array"
        +    },
        +    "votes": {
        +      "type": "object"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedget_key_levels1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "close": {
        +      "type": "number"
        +    },
        +    "date": {
        +      "type": "string"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "resistance": {
        +      "items": {},
        +      "type": "array"
        +    },
        +    "support": {
        +      "items": {},
        +      "type": "array"
        +    },
        +    "ticker": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedget_macro_context1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "date": {
        +      "type": "string"
        +    },
        +    "inter_market_ratios": {
        +      "type": "object"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedget_market_breadth1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "date": {
        +      "type": "string"
        +    },
        +    "pct_above_200d_ma": {
        +      "type": "object"
        +    },
        +    "pct_above_50d_ma": {
        +      "type": "object"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedget_monitoring_options1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "channels": {
        +      "items": {},
        +      "type": "array"
        +    },
        +    "intent": {
        +      "type": "string"
        +    },
        +    "message": {
        +      "type": "string"
        +    },
        +    "register_url": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedget_price_history4 fields changed
      • addedInput schema / properties / bars
        Added value: +{
        +  "description": "how many recent sessions to return when no window is given (default 20, max 120)",
        +  "type": "integer"
        +}
      • addedInput schema / properties / from_date
        Added value: +{
        +  "description": "start of the window to quote, YYYY-MM-DD",
        +  "type": "string"
        +}
      • addedInput schema / properties / to_date
        Added value: +{
        +  "description": "end of the window to quote, YYYY-MM-DD",
        +  "type": "string"
        +}
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "current": {
        +      "type": "object"
        +    },
        +    "date_range": {
        +      "type": "object"
        +    },
        +    "instrument_id": {
        +      "type": "string"
        +    },
        +    "period_return_pct": {
        +      "type": "number"
        +    },
        +    "recent_prices": {
        +      "items": {},
        +      "type": "array"
        +    },
        +    "ticker": {
        +      "type": "string"
        +    },
        +    "total_bars": {
        +      "type": "number"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedget_relative_strength1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "current_ratio": {
        +      "type": "number"
        +    },
        +    "data_points": {
        +      "type": "number"
        +    },
        +    "pair": {
        +      "type": "string"
        +    },
        +    "period_change_pct": {
        +      "type": "number"
        +    },
        +    "ratio_rsi_14": {
        +      "type": "number"
        +    },
        +    "ratio_sma200": {
        +      "type": "number"
        +    },
        +    "ratio_sma50": {
        +      "type": "number"
        +    },
        +    "recent_values": {
        +      "items": {},
        +      "type": "array"
        +    },
        +    "signals": {
        +      "type": "object"
        +    },
        +    "trend": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedget_sentiment_data1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "date": {
        +      "type": "string"
        +    },
        +    "put_call": {
        +      "type": "object"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedget_ta_methodology1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "error": {
        +      "type": "string"
        +    },
        +    "message": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedget_technical_indicators1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "close": {
        +      "type": "number"
        +    },
        +    "date": {
        +      "type": "string"
        +    },
        +    "indicators": {
        +      "type": "object"
        +    },
        +    "position": {
        +      "type": "object"
        +    },
        +    "range_52w": {
        +      "type": "object"
        +    },
        +    "signals": {
        +      "type": "object"
        +    },
        +    "ticker": {
        +      "type": "string"
        +    },
        +    "weekly": {
        +      "type": "object"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedpublic_instrument_news1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "results": {
        +      "items": {},
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedpublic_search_news1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "results": {
        +      "items": {},
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
  4. 15 tool updates
    • First observedget_crypto_context
    • First observedget_event_stats
    • First observedget_instrument_info
    • First observedget_intermarket
    • First observedget_key_levels
    • First observedget_macro_context
    • First observedget_market_breadth
    • First observedget_monitoring_options
    • First observedget_price_history
    • First observedget_relative_strength
    • First observedget_sentiment_data
    • First observedget_ta_methodology
    • First observedget_technical_indicators
    • First observedpublic_instrument_news
    • First observedpublic_search_news

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    A
    maintenance
    US/HK markets — 110 tools: real-time quotes, options, orders, fundamentals, alerts, DCA & portfolio
    165
    13
    Apache 2.0
  • A
    license
    B
    quality
    B
    maintenance
    Provides real-time market data, technical analysis, screeners, and backtesting for stocks, crypto, forex, and futures across global exchanges, enabling AI assistants to fetch quotes, indicators, and strategy results via natural language.
    37
    1
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Enables scanning and querying stock market data across thousands of US tickers and top cryptos, with tools for signal analysis, historical replay, and webhook subscriptions.
    35
    25 npm
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources