Skip to main content
Glama

get_search

Read-only

Search for assets matching filter criteria, including categorical states (e.g. oversold assets, strong uptrends, bull/bear flag setups, triangle or wedge setups, free-cash-flow surplus or burn, recent golden crosses, weekly stage 2 assets near the 40w MA with high volume, volatility squeeze active, volume climax detected, insider buying zone, sector-aligned breakouts) or rankings by a field such as market_cap on a historical date. Pass filters as a JSON-encoded array of {field, op, value} objects. Use get_schema to discover valid field names; fields use clean flat names for raw values such as pe_ratio, ma8, ma200, momentum_rsi, momentum_stochastic_k, and momentum_stochastic_d (aliases rsi, stochastic_k, stochastic_d accepted; all three are 0-100, null while lookbacks form, filterable and sortable, available for stocks, ETFs, and crypto), and full expanded names for semantic fields such as momentum_rsi_zone, pattern_bull_flag, pattern_bull_flag_breakout, pattern_bear_flag_breakdown, pattern_ascending_triangle, pattern_rising_wedge, trend_ma_crossover_event, trend_distance_ma40, trend_stage, fundamentals_free_cash_flow, insider_zone, sector_agreement, volatility_squeeze_active, volume_climax_detected, fundamentals_analyst_consensus, and fundamentals_earnings_proximity, fundamentals_earnings_proximity_basis. Use fields to control returned columns and sort_by to rank results server-side.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dateNoHistorical snapshot date (YYYY-MM-DD). Omit for latest per asset class.
limitNoMax results to return. Tier-gated: Starter 25, Plus 100, Pro 500. Default: 20
fieldsNoJSON-encoded array of column names to return. Example: ["ticker", "sector", "market_cap", "pe_ratio", "trend_stage", "ma40", "trend_ma50_slope", "trend_ma_crossover_event", "trend_distance_ma40", "pattern_bull_flag", "pattern_bull_flag_breakout", "pattern_bear_flag_breakdown", "pattern_ascending_triangle", "fundamentals_free_cash_flow", "volume_ratio_band", "insider_zone", "sector_agreement", "volatility_squeeze_active", "volume_climax_detected", "fundamentals_analyst_consensus", "fundamentals_earnings_proximity", "fundamentals_earnings_proximity_basis"]. Omit to get a default core subset: ticker, asset_class, sector, market_cap, market_cap_tier, performance, trend_direction, trend_ma20_slope, trend_ma_compression_band, trend_ma_crossover_event, momentum_rsi_zone, extremes_condition, extremes_condition_rarity, volatility_regime, volume_ratio_band, pattern_bull_flag, pattern_bull_flag_breakout, pattern_bear_flag, pattern_bear_flag_breakdown, pattern_ascending_triangle, pattern_descending_triangle, pattern_symmetrical_triangle, pattern_rising_wedge, pattern_falling_wedge, fundamentals_valuation_zone, range_position. Request fundamentals_free_cash_flow explicitly when you need the stock-only free cash flow burn/surplus band. Request ma8 through ma200 for raw MA values and trend_ma8_slope through trend_ma200_slope for the full MA slope set. Use ["*"] for all fields. Specify fields to reduce token usage. trend_stage is weekly-only and should be requested with timeframe=weekly. Insider fields (insider_zone, insider_net_direction) and sector context fields (sector_rsi_zone, sector_trend, sector_agreement) are available on paid tiers.
filtersYesJSON-encoded filter array. Each filter: {"field": "column_name", "op": "eq|neq|in|gt|gte|lt|lte", "value": "..."}. Example: [{"field": "momentum_rsi_zone", "op": "in", "value": ["oversold", "deep_oversold"]}, {"field": "sector", "op": "eq", "value": "Technology"}]
sort_byNoColumn name to sort results by (e.g. "market_cap", "pe_ratio", "extremes_condition_percentile", "fundamentals_valuation_percentile", "volume_percentile", "sector_oversold_count", "sector_breakout_count"). Must be a valid field name from the schema. Server-side sorting avoids pulling extra fields for client-side ranking.
timeframeNoAnalysis timeframe. Default: daily
sort_directionNoSort direction. Default: desc. Use 'asc' for lowest-first (e.g. cheapest valuation percentile).

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
dataNoThe TickerDB API response payload for this tool call.

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. First observed

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already mark the tool as readOnly and non-destructive, and the description adds meaningful behavioral context beyond that: server-side sorting, default field subsets, tier-gated limits, weekly-only fields, paid-tier restrictions, and null-while-lookbacks behavior for momentum indicators. There is no contradiction with 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?

The description is long but front-loaded with the core purpose and filter syntax. The extensive field-name enumerations are justified by the tool's complexity, and most sentences carry operational guidance. It could be tightened slightly by condensing repeated examples, but it remains focused and useful.

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?

Given the tool's complexity, the description covers filter construction, field discovery, sorting behavior, default outputs, timeframe handling, tier limits, and specialty fields. An output schema exists, so return-value documentation is not required. 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.

Parameters5/5

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

Although schema coverage is 100%, the description substantially enriches parameter understanding with naming conventions (flat raw names vs expanded semantic names), aliases, explicit examples of filter objects, default field lists, and caveats like stock-only free cash flow. This goes well beyond the schema's individual parameter descriptions.

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 opens with 'Search for assets matching filter criteria', which states a specific verb and resource, and goes on to enumerate categorical states and ranking modes. This clearly distinguishes get_search from siblings like get_watchlist, get_summary, and get_schema. The scope 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 Guidelines5/5

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

The description explicitly says to use get_schema to discover valid field names, and provides concrete conditional guidance such as requesting fundamentals_free_cash_flow explicitly when needed, using timeframe=weekly for trend_stage, and specifying fields to reduce token usage. It also notes tier gating and paid-tier field availability, which helps the agent decide acceptable calls.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4.7/5.0
Disambiguation5/5

Each tool targets a distinct resource/action: watchlist mutations, account info, raw candles, schema metadata, filtered searches, per-ticker summaries, and watchlist-wide summaries/deltas. The descriptions explicitly call out when to prefer one tool over another, especially get_watchlist vs get_summary vs get_watchlist_changes.

Naming Consistency5/5

Tool names follow a consistent get_* pattern for retrieval operations, with add_to_watchlist and remove_from_watchlist as clear mutating counterparts. snake_case verb_noun naming is uniform across all 9 tools.

Tool Count5/5

Nine tools is well within the ideal range and each tool earns its place. The set covers data discovery, analytics, raw data access, account management, and watchlist lifecycle without redundant or bloated surface area.

Completeness5/5

The domain of market intelligence and watchlist management is well covered: search/screen, per-ticker summaries, OHLCV data, watchlist add/remove/list, change tracking, schema discovery, and account limits. No obvious dead ends or missing core operations for the stated purpose.