Skip to main content
Glama

Get opportunity feed

get_opportunities
Read-onlyIdempotent

The Today's Market opportunity feed: ranked, evidence-backed market observations (funding extremes, unusual options flow, analyst actions, big equity moves, technical breaks, institutional positioning) refreshed every ~10 minutes — do not poll faster. view=market is the shared market-wide ranking; view=for_you re-ranks it around YOUR watchlist, tracked cases, and mandates (the API key's user); view=saved returns only the cards you saved. Each item carries an opportunity_id (mo_…) usable with get_opportunity_detail, a headline, score, magnitude, community ratings, and a price reaction (change_pct from price_reaction.baseline_as_of; price_reaction.baseline_basis says whether that baseline is published_at or first_seen_ts). Two card times: published_at = when the card first became visible in the feed (use it for 'what is new since I last checked' and for measuring outcomes); first_seen_ts = when the detector first saw the setup, which can be hours to days earlier (about 44h for technical cards). published_at is null for older cards: fall back to first_seen_ts. coverage distinguishes categories that are empty (looked, nothing today) from unavailable (the detector could not look). view=for_you backfills with market-ranked cards once your personal matches run out — by design, not a failure: each item's section says which it is (personalized vs market_fallback) and display_reason says why a personal card was chosen. (Requires api:read.)

Input Schema

NameRequiredDescriptionDefault
sortNore-order by detector first-seen time (first_seen_ts, not publication) or a community tally
viewNo
limitNo
tickerNoexact ticker filter, e.g. 'NVDA'
categoriesNofilter to these category lenses; omit for all
min_market_cap_usdNo
big_move_min_market_cap_usdNoBig Move market-cap floor; omit for $500M, 0 for Any
big_move_min_session_dollar_volume_usdNoBig Move session-dollar-volume floor; omit for $10M, 0 for Any

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / sort / description
      Previous value: -"re-order by first detection time or a community tally"New value: +"re-order by detector first-seen time (first_seen_ts, not publication) or a community tally"
  2. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Annotations cover read-only/idempotency, and the description adds substantial behavioral context beyond them: ~10-minute refresh with explicit 'do not poll faster', backfill described as by-design with section/display_reason signals, and coverage distinguishing 'empty' from 'unavailable'. This is exactly the kind of operational nuance annotations cannot express.

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 core purpose and views before diving into field semantics. It is dense and long, but with no output schema the return-field explanations (published_at, first_seen_ts, baseline_basis) earn their 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?

For a complex read tool with 8 params, no output schema, and multiple enum modes, the description covers views, refresh cadence, fallback semantics, the null-published_at case, and the key return fields. An agent can call and interpret it without further help.

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 63% and notably the `view` param has no schema description at all, which the description compensates for thoroughly. Other params (limit, min_market_cap_usd) go undocumented in both places, keeping it below a 5.

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 (ranked, evidence-backed market observations) and enumerates the observation types. The three view modes are each explained so the agent knows exactly what 'get_opportunities' returns per mode.

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?

Clearly distinguishes view=market vs view=for_you vs view=saved and the backfill behavior, and names get_opportunity_detail as the follow-up using opportunity_id. It states a polling constraint but doesn't contrast with siblings like scan_markets or get_fired_signals, so the when-to-use-vs-alternative is incomplete.

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