Skip to main content
Glama

Stocklake — AI Stock Intelligence

Get Multiple Stocks

get_stocks
Read-onlyIdempotent

Batch stock data for up to 25 symbols in a single call - the same fields get_stock returns for the same key/symbol, so this is a true batch version, not a thinned-down scan. Returns a dict keyed by symbol. Missing symbols are omitted from the result. Each symbol in the batch counts as one call toward the daily limit. A request over 25 symbols is rejected outright (error: batch_too_large) rather than silently served on just the first 25 - split a larger list into multiple calls. Available to all tiers (fundamentals/indicators/company profile, free).

Pro tier adds, per symbol, the same precomputed blocks get_stock adds - rating {score, direction, signals}, signals (per-indicator breakdown), relative_strength, market_risk {beta_spy_1y, corr_spy_1y}, sector_context (revenue growth/margins vs sector median - see get_stock), and the minimum AI-narrative slice (ai_verdict, ai_headline, ai_score, ai_score_band). None of this costs an AI call on your request - it's all precomputed and just needs projecting.

NOT included, even on pro - call get_stock(symbol) for stance_signals, or get_stock_research(symbol) for the full ai_summary text (summary/key_points/ risks/near_term/longer_term) plus cross-source news/insider/signal context.

Response also carries duplicates_collapsed: how many input symbols normalized (case-folding, share-class aliasing e.g. "BRK.B"->"BRK-B") or literally repeated onto a symbol already counted elsewhere in this batch. requested - len(missing or []) - duplicates_collapsed == count always holds.

Input Schema

NameRequiredDescriptionDefault
symbolsYesList of stock ticker symbols, up to 25 per call. Each symbol counts as one call toward the daily limit. A request over 25 symbols is rejected outright (error: batch_too_large) rather than silently served on just the first 25 - split a larger list into multiple calls.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / symbols / description
      Previous value: -"List of stock ticker symbols, up to 25 per call. Each symbol counts as one call toward the daily limit. A request over 25 symbols is rejected outright (error: batch_too_large) rather than silently served on just the first 25 — split a larger list into multiple calls."New value: +"List of stock ticker symbols, up to 25 per call. Each symbol counts as one call toward the daily limit. A request over 25 symbols is rejected outright (error: batch_too_large) rather than silently served on just the first 25 - split a larger list into multiple calls."
  2. Changed1 schema field changed
    • addedInput schema / properties / symbols / description
      Added value: +"List of stock ticker symbols, up to 25 per call. Each symbol counts as one call toward the daily limit. A request over 25 symbols is rejected outright (error: batch_too_large) rather than silently served on just the first 25 — split a larger list into multiple calls."
  3. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Goes well past the annotations (which only cover read-only/idempotent safety) by disclosing quota costs ('each symbol counts as one call toward the daily limit'), hard rejection over 25 symbols with the exact error code batch_too_large, omission of missing symbols, and dedup/normalization behavior. It also notes pro-tier blocks are precomputed and cost no AI call, which is material for cost planning.

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

Conciseness3/5

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

Front-loaded with the key constraints, but the tier-content enumeration is dense and partly duplicates the schema's 25-symbol rule. The closing sentence is garbled and truncated ('requested - len(missing or []) - duplicates_collapsed == count always holds'), which costs clarity.

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

Completeness4/5

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

Given an output schema exists, the description needn't explain return shape, yet it helpfully lists the tier-dependent fields and the duplicates_collapsed key. The only real hole is the malformed invariant sentence, which leaves the accounting rule ambiguous.

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

Parameters4/5

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

Schema coverage is 100%, so the 25-symbol limit and per-call cost are already documented; the description largely restates them. It does add genuine meaning beyond the schema by describing symbol normalization (case-folding, share-class aliasing like BRK.B -> BRK-B) and the duplicates_collapsed accounting.

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 ('batch stock data for up to 25 symbols') and explicitly positions itself as a true batch of get_stock, not a thinned-down scan. It also names the siblings that cover what it does not: get_stock for stance_signals and get_stock_research for full ai_summary.

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 concrete when-to-use guidance (batch up to 25, split larger lists) and explicit routing for out-of-scope data ('call get_stock(symbol) for stance_signals, or get_stock_research(symbol) for the full ai_summary text'). Tier availability (free vs pro) is stated so an agent knows what it can expect from its plan.

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.

Resources