Skip to main content
Glama

Stocklake — AI Stock Intelligence

Get Signals

get_signals
Read-onlyIdempotent

AI-screened stock signals recently surfaced by the Stocklake pipeline — sourced from news analysis, sector screening, and sentiment signals.

Shows what the pipeline noticed in the last 24 hours (falling back to the most recent signals regardless of age if nothing has fired in that window — see window in the response). This reflects what the AI pipeline found, not whether Stocklake's own internal trading engine still holds it live — a signal it later dropped or let expire is still shown here, since that's a fact about our own trading state, not about the signal's informational value.

Parameters:

  • direction: "POSITIVE" | "NEGATIVE" | "NEUTRAL" (default: all). NEUTRAL covers both a flat/undecided read AND a genuinely two-sided idea (real opposing bull/bear theses on the same symbol) — in the latter case signal_score is the STRONGER of the two sides (see signal_score below), so a high score alongside NEUTRAL means "real conviction here, just no directional consensus," not "nothing going on." The two-sided detail is in rationale.

  • min_signal_score: minimum composite signal score 0-100 (default 60) — a blend of conviction/confidence/flag_score, source track record, and real technical factors. This is the field to filter on. Always compared against a single number, including for NEUTRAL/two-sided ideas — a result is never returned below your threshold on both sides.

  • min_conviction, min_flag_score: DEPRECATED, ignored for filtering — kept in the signature only so existing callers don't hard-fail; ai.stocklake.dev's internal scoring retired the raw conviction/confidence/flag_score triad in favor of signal_score. Passing a non-default value here has no effect and is logged for a planned removal.

  • source: filter by signal source — "news" | "screener" | "sentiment" | "social" (default: all)

  • limit: max results to return (default 50, max 50). Each returned signal counts as one call toward your daily limit.

Returns:

  • count: number of signals returned

  • window: "24h" (fresh activity found) or a fallback note when the last 24h had nothing and the response instead shows the most recent signals overall

  • signals[]: each with symbol, direction, signal_score (0-100), signal_score_band (human-readable label — "Weak"/"Moderate"/"Strong"/"Very Strong"), source, rationale, expires, flagged_at

Pro tier only — AI pipeline cost attached. For informational purposes only. Not financial advice.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoMax results to return (default 50, max 50). Each returned signal counts as one call toward your daily limit.
sourceNoFilter by signal source: "news" | "screener" | "sentiment" | "social" (default: all).
directionNoFilter by direction: "POSITIVE" | "NEGATIVE" | "NEUTRAL" (default: all). NEUTRAL covers both a flat/undecided read and a genuinely two-sided idea (see signal_score below).
min_convictionNoDEPRECATED, ignored for filtering — kept in the signature only so existing callers don't hard-fail; internal scoring retired the raw conviction/confidence/flag_score triad in favor of signal_score. Passing a non-default value here has no effect and is logged for a planned removal.
min_flag_scoreNoDEPRECATED, ignored for filtering — kept in the signature only so existing callers don't hard-fail; internal scoring retired the raw conviction/confidence/flag_score triad in favor of signal_score. Passing a non-default value here has no effect and is logged for a planned removal.
min_signal_scoreNoMinimum composite signal score, 0-100 (default 60) — a blend of conviction/confidence/flag_score, source track record, and real technical factors. This is the field to filter on.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds substantial behavioral context beyond these: signals that were later dropped or expired are still shown, the fallback to most recent signals, the Pro tier cost implication, and a clear 'not financial advice' disclaimer. No contradiction with annotations; in fact it complements them.

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 longer than minimal but is well-structured with clear sections and bullet points. It front-loads the core purpose, then covers parameters and returns logically. No redundant or vague sentences—every sentence adds information, including the deprecation note and disclaimer. It earns its length.

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?

The description includes return fields with their types and meanings, all parameter defaults and ranges, deprecation status, fallback behavior, cost implications, and a disclaimer. Even though an output schema exists, the description fully documents what the agent needs to call the tool correctly and interpret results. Nothing essential is missing.

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% with detailed parameter descriptions, so baseline is 3. The description adds meaningful value beyond the schema: it explains the NEUTRAL direction's dual meaning (flat vs two-sided) and how signal_score is compared for two-sided ideas, elaborates on the deprecated fields' effect, and clarifies the semantics of signal_score as a composite. This extra nuance justifies a 4.

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 states a specific verb and resource: 'AI-screened stock signals recently surfaced by the Stocklake pipeline' with explicit sources (news analysis, sector screening, sentiment). It clearly distinguishes itself from siblings like get_market_movers or get_news_feed by focusing on pipeline-flagged signals rather than raw market data or news. The purpose 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 Guidelines4/5

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

The description explains when to use it (to see what the AI pipeline noticed in the last 24 hours) and clarifies that it reflects pipeline findings, not internal trading state — a key usage nuance. It also notes the fallback behavior for empty 24h windows. However, it does not explicitly contrast with any specific sibling tool or state when not to use it, leaving some inference to the agent.

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.2/5.0
Disambiguation4/5

Most tools have clearly distinct targets—single stock, batch, news, history, insider activity, screener, market pulse, and so on. The closest pairs are get_earnings_calendar vs get_earnings_intelligence and get_market_assessment vs get_market_pulse, which overlap in raw inputs but differ in AI interpretation; the descriptions provide enough clarification to avoid serious misselection.

Naming Consistency5/5

All 17 tools follow a consistent get_<resource> snake_case pattern, with hierarchical names like get_stock, get_stocks, get_stock_news, get_stock_history, and get_stock_research making related resources obvious. There are no mixed naming conventions or vague verb choices.

Tool Count4/5

At 17 tools, the set is slightly above the ideal range, but the scope is broad and each tool has a plausible role in an AI stock intelligence workflow. The convenience aggregations like get_stocks and get_stock_research add some redundancy but remain purposeful rather than bloated.

Completeness5/5

The surface is comprehensive for a read-only AI stock intelligence domain: single-stock fundamentals and technicals, batch lookups, price history, per-stock and market-wide news, insider activity, screening, market pulse, macro assessment, sector intelligence, earnings, signals, and watchlist enrichment. No major operational dead ends are apparent.

Resources