Serveur MCP

Rayana AI

ai.rayana/rayana-ai

Ce que fait ce MCP

Provides read-only market research through ticker scores, signals, portfolio rankings, price history, market briefs, trends, and source consensus.

rayana_ai_analyst_brief
The portfolio-analyst brief with its per-ticker views — the broadcast opinion layer, identical for every caller.
Lecture seule Accès externe
Schéma d’entrée
{'type': 'object', 'title': 'rayana_ai_analyst_briefArguments', 'properties': {'date': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Date', 'default': None}}}
Schéma de sortie
{'type': 'object', 'title': 'AnalystBriefResponse', 'required': ['brief', 'views'], 'properties': {'brief': {'type': 'object', 'title': 'Brief', 'additionalProperties': True}, 'views': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}, 'title': 'Views'}}}
rayana_ai_articles
The public articles feed, newest first, when ``slug`` is omitted; one published article's full body when ``slug`` is given.
Lecture seule Accès externe
Schéma d’entrée
{'type': 'object', 'title': 'rayana_ai_articlesArguments', 'properties': {'slug': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Slug', 'default': None}, 'limit': {'type': 'integer', 'title': 'Limit', 'default': 30}, 'offset': {'type': 'integer', 'title': 'Offset', 'default': 0}}}
Schéma de sortie
{'type': 'object', '$defs': {'ArticleDetail': {'type': 'object', 'title': 'ArticleDetail', 'required': ['slug', 'ticker', 'headline', 'body_md', 'trigger_type'], 'properties': {'dek': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Dek', 'default': None}, 'slug': {'type': 'string', 'title': 'Slug'}, 'ticker': {'type': 'string', 'title': 'Ticker'}, 'body_md': {'type': 'string', 'title': 'Body Md'}, 'headline': {'type': 'string', 'title': 'Headline'}, 'created_at': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Created At', 'default': None}, 'published_at': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Published At', 'default': None}, 'trigger_type': {'type': 'string', 'title': 'Trigger Type'}}}, 'ArticleSummary': {'type': 'object', 'title': 'ArticleSummary', 'required': ['slug', 'ticker', 'headline', 'trigger_type'], 'properties': {'dek': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Dek', 'default': None}, 'slug': {'type': 'string', 'title': 'Slug'}, 'ticker': {'type': 'string', 'title': 'Ticker'}, 'headline': {'type': 'string', 'title': 'Headline'}, 'published_at': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Published At', 'default': None}, 'trigger_type': {'type': 'string', 'title': 'Trigger Type'}}}, 'ArticlesResponse': {'type': 'object', 'title': 'ArticlesResponse', 'required': ['count', 'articles'], 'properties': {'count': {'type': 'integer', 'title': 'Count'}, 'limit': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Limit', 'default': None}, 'total': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Total', 'default': None}, 'offset': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Offset', 'default': None}, 'articles': {'type': 'array', 'items': {'$ref': '#/$defs/ArticleSummary'}, 'title': 'Articles'}}}}, 'title': 'rayana_ai_articlesOutput', 'required': ['result'], 'properties': {'result': {'anyOf': [{'$ref': '#/$defs/ArticlesResponse'}, {'$ref': '#/$defs/ArticleDetail'}], 'title': 'Result'}}}
rayana_ai_complete_setup
Exchange a pairing code from your principal's account page for an API key. Ask them to confirm before you call this: it issues a new key and immediately invalidates the account's previous one, so any other client already using a key will stop working until it is given the new value. The key comes back once and is not retrievable afterwards — only a hash of it is stored. Put it in the ``X-API-Key`` header on this connection and on any REST call. Codes are single-use, expire in 15 minutes, and are burnt after a few wrong guesses; if one is refused, ask for a fresh one rather than retrying.
Destructif
Schéma d’entrée
{'type': 'object', 'title': 'rayana_ai_complete_setupArguments', 'required': ['code'], 'properties': {'code': {'type': 'string', 'title': 'Code'}}}
Schéma de sortie
{'type': 'object', 'title': 'AgentSetup', 'required': ['api_key', 'tier', 'rest_base_url', 'mcp_url', 'header_name', 'note'], 'properties': {'note': {'type': 'string', 'title': 'Note'}, 'tier': {'type': 'string', 'title': 'Tier'}, 'api_key': {'type': 'string', 'title': 'Api Key'}, 'mcp_url': {'type': 'string', 'title': 'Mcp Url'}, 'header_name': {'type': 'string', 'title': 'Header Name'}, 'rest_base_url': {'type': 'string', 'title': 'Rest Base Url'}}, 'description': 'The result of redeeming a pairing code: a usable API key, once.'}
rayana_ai_consensus
Per-source consensus snapshots (insider trades, congressional trades, earnings beats, dated catalysts, on-chain flows, 13F filings, AI news-beneficiary reads). Omit ``source`` for every source at once, or pass one of the slugs returned in a rankings/signals row's source list. ``limit`` caps rows per source. The sources are very unevenly sized — institutional holdings runs to ~1700 rows where on-chain flows may have two — so a source that comes back with exactly ``limit`` rows probably has more, and narrowing with ``source`` and raising ``limit`` reads that one layer deeply for far less context than raising ``limit`` across all seven.
Lecture seule Accès externe
Schéma d’entrée
{'type': 'object', 'title': 'rayana_ai_consensusArguments', 'properties': {'limit': {'type': 'integer', 'title': 'Limit', 'default': 25}, 'source': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Source', 'default': None}}}
Schéma de sortie
{'type': 'object', '$defs': {'Form4ConsensusRow': {'type': 'object', 'title': 'Form4ConsensusRow', 'required': ['ticker', 'company', 'insiders', 'top_title', 'total_value', 'buys', 'run_at'], 'properties': {'buys': {'type': 'integer', 'title': 'Buys'}, 'run_at': {'type': 'string', 'title': 'Run At'}, 'ticker': {'type': 'string', 'title': 'Ticker'}, 'company': {'type': 'string', 'title': 'Company'}, 'insiders': {'type': 'integer', 'title': 'Insiders'}, 'best_role': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Best Role', 'default': None}, 'top_title': {'type': 'string', 'title': 'Top Title'}, 'total_value': {'type': 'number', 'title': 'Total Value'}}}, 'OnchainConsensusRow': {'type': 'object', 'title': 'OnchainConsensusRow', 'required': ['symbol', 'wallets', 'top_label', 'total_value', 'transfers', 'chains', 'run_at'], 'properties': {'chains': {'type': 'string', 'title': 'Chains'}, 'run_at': {'type': 'string', 'title': 'Run At'}, 'symbol': {'type': 'string', 'title': 'Symbol'}, 'wallets': {'type': 'integer', 'title': 'Wallets'}, 'best_tier': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Best Tier', 'default': None}, 'top_label': {'type': 'string', 'title': 'Top Label'}, 'transfers': {'type': 'integer', 'title': 'Transfers'}, 'total_value': {'type': 'number', 'title': 'Total Value'}}}, 'CatalystConsensusRow': {'type': 'object', 'title': 'CatalystConsensusRow', 'required': ['feed', 'category', 'event', 'event_date', 'ticker', 'entity', 'exchange', 'note', 'run_at'], 'properties': {'feed': {'type': 'string', 'title': 'Feed'}, 'note': {'type': 'string', 'title': 'Note'}, 'event': {'type': 'string', 'title': 'Event'}, 'entity': {'type': 'string', 'title': 'Entity'}, 'run_at': {'type': 'string', 'title': 'Run At'}, 'ticker': {'type': 'string', 'title': 'Ticker'}, 'category': {'type': 'string', 'title': 'Category'}, 'exchange': {'type': 'string', 'title': 'Exchange'}, 'confidence': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Confidence', 'default': None}, 'event_date': {'type': 'string', 'title': 'Event Date'}}}, 'DataromaConsensusRow': {'type': 'object', 'title': 'DataromaConsensusRow', 'required': ['ticker', 'company', 'buyers', 'sellers', 'holders', 'buy_usd', 'sell_usd', 'net_usd', 'net_managers', 'run_at'], 'properties': {'buyers': {'type': 'integer', 'title': 'Buyers'}, 'run_at': {'type': 'string', 'title': 'Run At'}, 'ticker': {'type': 'string', 'title': 'Ticker'}, 'buy_usd': {'type': 'number', 'title': 'Buy Usd'}, 'company': {'type': 'string', 'title': 'Company'}, 'holders': {'type': 'integer', 'title': 'Holders'}, 'net_usd': {'type': 'number', 'title': 'Net Usd'}, 'sellers': {'type': 'integer', 'title': 'Sellers'}, 'sell_usd': {'type': 'number', 'title': 'Sell Usd'}, 'net_managers': {'type': 'integer', 'title': 'Net Managers'}}}, 'EarningsConsensusRow': {'type': 'object', 'title': 'EarningsConsensusRow', 'required': ['ticker', 'company', 'report_date', 'report_time', 'fiscal_period', 'run_at'], 'properties': {'run_at': {'type': 'string', 'title': 'Run At'}, 'ticker': {'type': 'string', 'title': 'Ticker'}, 'company': {'type': 'string', 'title': 'Company'}, 'eps_actual': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Eps Actual', 'default': None}, 'market_cap': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Market Cap', 'default': None}, 'report_date': {'type': 'string', 'title': 'Report Date'}, 'report_time': {'type': 'string', 'title': 'Report Time'}, 'eps_estimate': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Eps Estimate', 'default': None}, 'surprise_pct': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Surprise Pct', 'default': None}, 'fiscal_period': {'type': 'string', 'title': 'Fiscal Period'}, 'num_estimates': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Num Estimates', 'default': None}}}, 'CaptradesConsensusRow': {'type': 'object', 'title': 'CaptradesConsensusRow', 'required': ['ticker', 'company', 'buyers', 'sellers', 'net_politicians', 'buy_usd', 'sell_usd', 'net_usd', 'trades', 'run_at'], 'properties': {'buyers': {'type': 'integer', 'title': 'Buyers'}, 'run_at': {'type': 'string', 'title': 'Run At'}, 'ticker': {'type': 'string', 'title': 'Ticker'}, 'trades': {'type': 'integer', 'title': 'Trades'}, 'buy_usd': {'type': 'number', 'title': 'Buy Usd'}, 'company': {'type': 'string', 'title': 'Company'}, 'net_usd': {'type': 'number', 'title': 'Net Usd'}, 'sellers': {'type': 'integer', 'title': 'Sellers'}, 'sell_usd': {'type': 'number', 'title': 'Sell Usd'}, 'net_politicians': {'type': 'integer', 'title': 'Net Politicians'}}}, 'NewsBeneficiaryConsensusRow': {'type': 'object', 'title': 'NewsBeneficiaryConsensusRow', 'required': ['ticker', 'company', 'direction', 'mechanism', 'horizon', 'validated', 'headline', 'source', 'url', 'run_at', 'snapshot_date'], 'properties': {'url': {'type': 'string', 'title': 'Url'}, 'score': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Score', 'default': None}, 'run_at': {'type': 'string', 'title': 'Run At'}, 'source': {'type': 'string', 'title': 'Source'}, 'ticker': {'type': 'string', 'title': 'Ticker'}, 'company': {'type': 'string', 'title': 'Company'}, 'horizon': {'type': 'string', 'title': 'Horizon'}, 'headline': {'type': 'string', 'title': 'Headline'}, 'direction': {'type': 'string', 'title': 'Direction'}, 'mechanism': {'type': 'string', 'title': 'Mechanism'}, 'validated': {'type': 'integer', 'title': 'Validated'}, 'confidence': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Confidence', 'default': None}, 'order_hops': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Order Hops', 'default': None}, 'obviousness': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Obviousness', 'default': None}, 'snapshot_date': {'type': 'string', 'title': 'Snapshot Date'}}}}, 'title': 'ConsensusResponse', 'properties': {'onchain-flows': {'anyOf': [{'type': 'array', 'items': {'$ref': '#/$defs/OnchainConsensusRow'}}, {'type': 'null'}], 'title': 'Onchain-Flows', 'default': None}, 'event-calendar': {'anyOf': [{'type': 'array', 'items': {'$ref': '#/$defs/CatalystConsensusRow'}}, {'type': 'null'}], 'title': 'Event-Calendar', 'default': None}, 'ai-news-analysis': {'anyOf': [{'type': 'array', 'items': {'$ref': '#/$defs/NewsBeneficiaryConsensusRow'}}, {'type': 'null'}], 'title': 'Ai-News-Analysis', 'default': None}, 'insider-activity': {'anyOf': [{'type': 'array', 'items': {'$ref': '#/$defs/Form4ConsensusRow'}}, {'type': 'null'}], 'title': 'Insider-Activity', 'default': None}, 'earnings-surprise': {'anyOf': [{'type': 'array', 'items': {'$ref': '#/$defs/EarningsConsensusRow'}}, {'type': 'null'}], 'title': 'Earnings-Surprise', 'default': None}, 'congressional-trading': {'anyOf': [{'type': 'array', 'items': {'$ref': '#/$defs/CaptradesConsensusRow'}}, {'type': 'null'}], 'title': 'Congressional-Trading', 'default': None}, 'institutional-holdings': {'anyOf': [{'type': 'array', 'items': {'$ref': '#/$defs/DataromaConsensusRow'}}, {'type': 'null'}], 'title': 'Institutional-Holdings', 'default': None}}}
rayana_ai_lanes
Which lanes (daily/turtle/mr) currently have a batch available.
Lecture seule Accès externe
Schéma d’entrée
{'type': 'object', 'title': 'rayana_ai_lanesArguments', 'properties': {}}
Schéma de sortie
{'type': 'object', 'title': 'rayana_ai_lanesDictOutput', 'additionalProperties': {'type': 'boolean'}}
rayana_ai_market_brief
The daily market brief: a generic engine-wide read with no recommendations, descriptive only. Latest by default; pass ``date`` (YYYY-MM-DD) for a specific day.
Lecture seule Accès externe
Schéma d’entrée
{'type': 'object', 'title': 'rayana_ai_market_briefArguments', 'properties': {'date': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Date', 'default': None}}}
Schéma de sortie
{'type': 'object', 'title': 'MarketBriefResponse', 'required': ['brief', 'notes'], 'properties': {'brief': {'type': 'object', 'title': 'Brief', 'additionalProperties': True}, 'notes': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}, 'title': 'Notes'}}}
rayana_ai_plans
What Rayana AI costs and what each tier unlocks. No API key needed — call this first if a research tool refused you for want of one. API and MCP access start at the Pro tier. Prices are USD; annual billing is ten months' price for twelve. Use ``rayana_ai_start_checkout`` to turn a choice here into a link your principal can open.
Lecture seule
Schéma d’entrée
{'type': 'object', 'title': 'rayana_ai_plansArguments', 'properties': {}}
Schéma de sortie
{'type': 'object', '$defs': {'Plan': {'type': 'object', 'title': 'Plan', 'required': ['tier', 'name', 'summary', 'price_monthly_usd', 'price_annual_usd', 'includes', 'limits', 'api_access'], 'properties': {'name': {'type': 'string', 'title': 'Name'}, 'tier': {'enum': ['free', 'standard', 'pro', 'elite'], 'type': 'string', 'title': 'Tier'}, 'limits': {'$ref': '#/$defs/PlanLimits'}, 'summary': {'type': 'string', 'title': 'Summary'}, 'includes': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Includes'}, 'api_access': {'type': 'boolean', 'title': 'Api Access'}, 'price_annual_usd': {'type': 'integer', 'title': 'Price Annual Usd'}, 'price_monthly_usd': {'type': 'integer', 'title': 'Price Monthly Usd'}}}, 'PlanLimits': {'type': 'object', 'title': 'PlanLimits', 'required': ['per_minute', 'per_day'], 'properties': {'per_day': {'type': 'integer', 'title': 'Per Day'}, 'per_minute': {'type': 'integer', 'title': 'Per Minute'}}}}, 'title': 'PlansResponse', 'required': ['plans', 'currency', 'annual_note', 'pricing_url', 'checkout_url', 'access_note'], 'properties': {'plans': {'type': 'array', 'items': {'$ref': '#/$defs/Plan'}, 'title': 'Plans'}, 'currency': {'type': 'string', 'title': 'Currency'}, 'access_note': {'type': 'string', 'title': 'Access Note'}, 'annual_note': {'type': 'string', 'title': 'Annual Note'}, 'pricing_url': {'type': 'string', 'title': 'Pricing Url'}, 'checkout_url': {'type': 'string', 'title': 'Checkout Url'}}}
rayana_ai_portfolio
One model portfolio's full detail: holdings, overlay legs, event feed, NAV series, and windowed returns. Returns an error if the slug's tier (e.g. an Elite-only book) is above this key's own tier — a Pro key does not get Elite content just because it has MCP access.
Lecture seule Accès externe
Schéma d’entrée
{'type': 'object', 'title': 'rayana_ai_portfolioArguments', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'title': 'Slug'}}}
Schéma de sortie
{'type': 'object', '$defs': {'Holding': {'type': 'object', 'title': 'Holding', 'required': ['ticker'], 'properties': {'name': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Name', 'default': None}, 'rank': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Rank', 'default': None}, 'side': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Side', 'default': None}, 'price': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Price', 'default': None}, 'sector': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Sector', 'default': None}, 'ticker': {'type': 'string', 'title': 'Ticker'}, 'cluster': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Cluster', 'default': None}, 'assigned': {'type': 'boolean', 'title': 'Assigned', 'default': False}, 'entry_date': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Entry Date', 'default': None}, 'weight_pct': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Weight Pct', 'default': None}, 'select_metric': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Select Metric', 'default': None}, 'effective_basis': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Effective Basis', 'default': None}, 'instrument_type': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Instrument Type', 'default': None}, 'sel_metric_kind': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Sel Metric Kind', 'default': None}}, 'description': 'One equity (or cash) position in today\'s snapshot.\n\n``weight_pct`` is the only position quantity that exists â\x80\x94 no shares, no\ndollars, by construction of the tables themselves (the FIREWALL note on the\nmodel_portfolio_* DDL in data/db.py). ``side`` is \'long\' (NULL = long) or\n\'short\', and ``weight_pct`` stays POSITIVE either way.\n\nDeliberately absent, all of which the ``list[dict]`` this replaced shipped:\n``rationale`` â\x80\x94 engine text that names the selection mechanism and quotes\nits live cut-points ("invest composite 72 (BUY); tech 68 / fund 55",\n"Donchian breakdown below the 200-SMA; 2N buy-stop $41.80"), i.e. exactly\nthe disclosure ``_public_events`` rewrites event reasons to prevent, one\ntable over; ``metrics`` â\x80\x94 the per-name selection metrics JSON, whose\npublishable aggregate is ``PortfolioMetrics`` below; ``stop_price`` and\n``target_price`` â\x80\x94 the exit rule\'s live cut-points; and the row\'s internal\nidentity (``id`` / ``portfolio_id`` / ``run_id`` / ``recorded_at``).\n\n``assigned`` / ``effective_basis`` are the one allowlisted lift OUT of that\ndropped ``metrics`` block (data/reads.py::_assigned_view), and they are not an\nexception to the rule above: an assignment is an OUTCOME the event feed\nalready publishes in full, not a selection decision. Without them the single\nrow in the book that the picker did NOT choose arrives indistinguishable from\none it did â\x80\x94 a new ticker with ``select_metric: null`` and no basis â\x80\x94 which is\nthe whole of docs/subscriber_followability.md §5.'}, 'Contract': {'type': 'object', 'title': 'Contract', 'properties': {'dte': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Dte', 'default': None}, 'right': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Right', 'default': None}, 'expiry': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Expiry', 'default': None}, 'strike': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Strike', 'default': None}, 'premium': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Premium', 'default': None}, 'contract': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Contract', 'default': None}, 'multiplier': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Multiplier', 'default': None}, 'underlying': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Underlying', 'default': None}}, 'description': "The option contract an overlay leg is written on: its identity\n(expiry/strike/right, per ``_contract_id`` in strategy/model_portfolios.py)\nplus what a reader needs to price it.\n\nDeliberately absent: ``delta`` and ``implied_vol`` â\x80\x94 the leg already\npublishes ``assignment_prob``, which IS |delta| â\x80\x94 and ``iv_rank`` / ``vrp``\n/ ``timing_mult``, the overlay's timing provenance, which is selection\nmechanism (strategy/premium_overlay.py::contract_spec)."}, 'NavPoint': {'type': 'object', 'title': 'NavPoint', 'required': ['nav_date'], 'properties': {'nav': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Nav', 'default': None}, 'nav_date': {'type': 'string', 'title': 'Nav Date'}, 'n_holdings': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'N Holdings', 'default': None}, 'capital_nav': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Capital Nav', 'default': None}, 'drawdown_pct': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Drawdown Pct', 'default': None}, 'turnover_pct': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Turnover Pct', 'default': None}, 'cum_return_pct': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Cum Return Pct', 'default': None}, 'daily_return_pct': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Daily Return Pct', 'default': None}, 'distribution_pct': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Distribution Pct', 'default': None}, 'benchmark_ret_pct': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Benchmark Ret Pct', 'default': None}, 'cum_distribution_pct': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Cum Distribution Pct', 'default': None}}, 'description': 'One session on the track record. ``nav`` is TOTAL return indexed to 100\nat inception and is never restated; ``capital_nav`` is the parallel curve a\nholder sees if they take the distributions out (docs/distribution_layer.md).\n``distribution_pct`` NULL means the book does not distribute at all â\x80\x94 0.0\nmeans it does and nothing settled this session.'}, 'BookEvent': {'type': 'object', 'title': 'BookEvent', 'properties': {'name': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Name', 'default': None}, 'side': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Side', 'default': None}, 'action': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Action', 'default': None}, 'reason': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Reason', 'default': None}, 'ticker': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Ticker', 'default': None}, 'event_date': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Event Date', 'default': None}, 'instrument_type': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Instrument Type', 'default': None}, 'delta_weight_pct': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Delta Weight Pct', 'default': None}}, 'description': 'One row of the public event feed â\x80\x94 the projection of the diff log, not\nthe log. ``reason`` has already been rewritten into the fixed public\nvocabulary by ``_public_reason``; the stored text never reaches here, and\n``source_metric`` (the number behind it) is undeclared on purpose.'}, 'NavWindow': {'type': 'object', 'title': 'NavWindow', 'required': ['label'], 'properties': {'label': {'type': 'string', 'title': 'Label'}, 'covered': {'type': 'boolean', 'title': 'Covered', 'default': False}, 'from_date': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'From Date', 'default': None}, 'return_pct': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Return Pct', 'default': None}, 'distribution_pct': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Distribution Pct', 'default': None}, 'capital_return_pct': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Capital Return Pct', 'default': None}}, 'description': "MTD / 3M / 6M / 12M / ITD total return. ``covered`` False (with\n``return_pct`` None) means the record does not yet reach back past that\nwindow's cutoff â\x80\x94 render it as unavailable, never as the ITD number."}, 'OverlayLeg': {'type': 'object', 'title': 'OverlayLeg', 'required': ['ticker', 'instrument_type'], 'properties': {'name': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Name', 'default': None}, 'price': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Price', 'default': None}, 'ticker': {'type': 'string', 'title': 'Ticker'}, 'instrument': {'$ref': '#/$defs/Contract', 'default': {'dte': None, 'right': None, 'expiry': None, 'strike': None, 'premium': None, 'contract': None, 'multiplier': None, 'underlying': None}}, 'position_group': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Position Group', 'default': None}, 'assignment_prob': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Assignment Prob', 'default': None}, 'instrument_type': {'type': 'string', 'title': 'Instrument Type'}, 'premium_yield_pct': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Premium Yield Pct', 'default': None}, 'notional_weight_pct': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Notional Weight Pct', 'default': None}}, 'description': "One written CSP / covered-call leg currently open against the core.\n\nA leg carries the SAME ticker as the underlying it is written against and\nis sized by NOTIONAL, not book weight â\x80\x94 the two must never be summed, which\nis why the read layer splits them out of ``holdings`` by ``instrument_type``.\n\n``premium_yield_pct`` and ``assignment_prob`` are 0-1 FRACTIONS, unlike\nevery other ``_pct`` field in this API (strategy/premium_overlay.py's\n``annual_yield`` / ``abs(delta)``) â\x80\x94 clients must format them accordingly."}, 'PortfolioMetrics': {'type': 'object', 'title': 'PortfolioMetrics', 'properties': {'n_overlay': {'type': 'integer', 'title': 'N Overlay', 'default': 0}, 'n_holdings': {'type': 'integer', 'title': 'N Holdings', 'default': 0}, 'distribution': {'anyOf': [{'$ref': '#/$defs/DistributionSummary'}, {'type': 'null'}], 'default': None}, 'sleeve_state': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Sleeve State', 'default': None}, 'income_coverage': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Income Coverage', 'default': None}, 'sel_metric_kind': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Sel Metric Kind', 'default': None}, 'total_weight_pct': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Total Weight Pct', 'default': None}, 'total_income_yield': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Total Income Yield', 'default': None}, 'overlay_annual_yield': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Overlay Annual Yield', 'default': None}, 'weighted_income_rate': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Weighted Income Rate', 'default': None}, 'weighted_select_metric': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Weighted Select Metric', 'default': None}, 'weighted_reinvest_required': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Weighted Reinvest Required', 'default': None}, 'weighted_sustainable_yield': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Weighted Sustainable Yield', 'default': None}}, 'description': "Book-level aggregates over today's snapshot (data/reads.py's\n``_book_metrics``). The income figures are weight-weighted over the book's\nTOTAL weight, so an unmeasured name drags the average down rather than being\nassumed to yield like its peers."}, 'PortfolioRegistry': {'type': 'object', 'title': 'PortfolioRegistry', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'title': 'Slug'}, 'tier': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Tier', 'default': None}, 'status': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Status', 'default': None}, 'benchmark': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Benchmark', 'default': None}, 'objective': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Objective', 'default': None}, 'risk_tier': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Risk Tier', 'default': None}, 'asset_class': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Asset Class', 'default': None}, 'construction': {'$ref': '#/$defs/PublicConstruction', 'default': {'exit_rule': None, 'holdings_max': None, 'holdings_min': None, 'turnover_tier': None, 'distribution_policy': None}}, 'display_name': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Display Name', 'default': None}, 'inception_date': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Inception Date', 'default': None}, 'mechanism_blurb': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Mechanism Blurb', 'default': None}}, 'description': "The book's registry row as its detail page sees it: the same\nmerchandising identity as ``ShelfCard``, plus the parsed construction and\nminus the per-caller flags (the detail endpoint's own gate already answered\nthose)."}, 'PublicConstruction': {'type': 'object', 'title': 'PublicConstruction', 'properties': {'exit_rule': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Exit Rule', 'default': None}, 'holdings_max': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Holdings Max', 'default': None}, 'holdings_min': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Holdings Min', 'default': None}, 'turnover_tier': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Turnover Tier', 'default': None}, 'distribution_policy': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Distribution Policy', 'default': None}}, 'description': "The book's construction rules, trimmed to what is safe to publish â\x80\x94 the\nsame set ``_PUBLIC_CONSTRUCTION_KEYS`` names in api/routers/portfolios.py,\nwhich stays the enforcing copy (it runs before this model is built)."}, 'DistributionSummary': {'type': 'object', 'title': 'DistributionSummary', 'required': ['policy'], 'properties': {'since': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Since', 'default': None}, 'policy': {'type': 'string', 'title': 'Policy'}, 'covered_12m': {'type': 'boolean', 'title': 'Covered 12M', 'default': False}, 'sustain_gap_pct': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Sustain Gap Pct', 'default': None}, 'return_of_capital_pct': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Return Of Capital Pct', 'default': None}, 'trailing_12m_yield_pct': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Trailing 12M Yield Pct', 'default': None}, 'distributions_to_date_pct': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Distributions To Date Pct', 'default': None}}, 'description': "The book's distribution record (docs/distribution_layer.md §5). ``None``\non ``PortfolioMetrics.distribution`` means not a distributing book at all;\npresent with ``since`` and ``distributions_to_date_pct`` None means it IS\ndistributing but no session has crossed the seam yet â\x80\x94 a real state, and it\nrenders differently. Nothing here is annualised. Any surface rendering a\ndistribution or yield figure must render ``sustain_gap_pct`` and\n``return_of_capital_pct`` beside it (spec §11, D3)."}}, 'title': 'PortfolioBook', 'required': ['slug', 'book'], 'properties': {'nav': {'type': 'array', 'items': {'$ref': '#/$defs/NavPoint'}, 'title': 'Nav', 'default': []}, 'asof': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Asof', 'default': None}, 'book': {'$ref': '#/$defs/PortfolioRegistry'}, 'slug': {'type': 'string', 'title': 'Slug'}, 'events': {'type': 'array', 'items': {'$ref': '#/$defs/BookEvent'}, 'title': 'Events', 'default': []}, 'metrics': {'$ref': '#/$defs/PortfolioMetrics', 'default': {'n_overlay': 0, 'n_holdings': 0, 'distribution': None, 'sleeve_state': None, 'income_coverage': None, 'sel_metric_kind': None, 'total_weight_pct': None, 'total_income_yield': None, 'overlay_annual_yield': None, 'weighted_income_rate': None, 'weighted_select_metric': None, 'weighted_reinvest_required': None, 'weighted_sustainable_yield': None}}, 'overlay': {'type': 'array', 'items': {'$ref': '#/$defs/OverlayLeg'}, 'title': 'Overlay', 'default': []}, 'windows': {'type': 'array', 'items': {'$ref': '#/$defs/NavWindow'}, 'title': 'Windows', 'default': []}, 'holdings': {'type': 'array', 'items': {'$ref': '#/$defs/Holding'}, 'title': 'Holdings', 'default': []}, 'delayed_to': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Delayed To', 'default': None}}}
rayana_ai_portfolios
The full shelf of Rayana AI's broadcast model portfolios as merchandising cards, with each card's tier/openable/delayed flags.
Lecture seule Accès externe
Schéma d’entrée
{'type': 'object', 'title': 'rayana_ai_portfoliosArguments', 'properties': {'include_retired': {'type': 'boolean', 'title': 'Include Retired', 'default': False}}}
Schéma de sortie
{'type': 'object', '$defs': {'ShelfCard': {'type': 'object', 'title': 'ShelfCard', 'required': ['slug'], 'properties': {'nav': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Nav', 'default': None}, 'slug': {'type': 'string', 'title': 'Slug'}, 'tier': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Tier', 'default': None}, 'status': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Status', 'default': None}, 'delayed': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Delayed', 'default': None}, 'cagr_pct': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Cagr Pct', 'default': None}, 'openable': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Openable', 'default': None}, 'benchmark': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Benchmark', 'default': None}, 'objective': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Objective', 'default': None}, 'risk_tier': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Risk Tier', 'default': None}, 'n_holdings': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'N Holdings', 'default': None}, 'asset_class': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Asset Class', 'default': None}, 'last_update': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Last Update', 'default': None}, 'display_name': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Display Name', 'default': None}, 'drawdown_pct': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Drawdown Pct', 'default': None}, 'cum_return_pct': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Cum Return Pct', 'default': None}, 'inception_date': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Inception Date', 'default': None}, 'mechanism_blurb': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Mechanism Blurb', 'default': None}}, 'description': "One merchandising card on the shelf.\n\n``openable``/``delayed`` are computed per caller by the router, not stored.\n``last_update``/``n_holdings`` arrive already collapsed to the pair this\ncaller's access level entitles them to (``_public_card``) â\x80\x94 the internal\n``last_published_update``/``n_published_holdings`` pair is undeclared here\nand so cannot ship even if that collapse were ever skipped.\n\nDeliberately absent: ``source_lane`` and ``scoring_mode`` (internal lane\nprovenance â\x80\x94 they name the engine that picks the book), the numeric ``id``,\nand the gate configuration (``publish_delay_min``, ``draft_gate_enabled``,\n``consumer_delay_min``), which is policy input rather than reader-facing\ncontent â\x80\x94 a reader sees its *effect*, as ``delayed``."}}, 'title': 'PortfolioShelf', 'required': ['count', 'tier', 'portfolios'], 'properties': {'tier': {'type': 'string', 'title': 'Tier'}, 'count': {'type': 'integer', 'title': 'Count'}, 'portfolios': {'type': 'array', 'items': {'$ref': '#/$defs/ShelfCard'}, 'title': 'Portfolios'}}}
rayana_ai_rankings
Latest ranked candidate batch for a lane: daily (the main research lane), turtle (breakout system), or mr (mean-reversion). Rows come back in rank order, best first, so the default page is the top of the batch. ``total`` in the response is the batch size; when it exceeds ``count``, page with ``offset``. ``include_assessment`` adds each row's technical blob (pattern and cluster validation, volume profile) — it triples the response, so prefer ``rayana_ai_ticker`` for one name's detail and leave this off when scanning.
Lecture seule Accès externe
Schéma d’entrée
{'type': 'object', 'title': 'rayana_ai_rankingsArguments', 'properties': {'lane': {'enum': ['daily', 'turtle', 'mr'], 'type': 'string', 'title': 'Lane', 'default': 'daily'}, 'limit': {'type': 'integer', 'title': 'Limit', 'default': 25}, 'offset': {'type': 'integer', 'title': 'Offset', 'default': 0}, 'include_assessment': {'type': 'boolean', 'title': 'Include Assessment', 'default': False}}}
Schéma de sortie
{'type': 'object', '$defs': {'RankedCandidate': {'type': 'object', 'title': 'RankedCandidate', 'required': ['ticker'], 'properties': {'n': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'N', 'default': None}, 'adx': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Adx', 'default': None}, 'atr': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Atr', 'default': None}, 'name': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Name', 'default': None}, 'rank': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Rank', 'default': None}, 'rsi2': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Rsi2', 'default': None}, 'sma5': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Sma5', 'default': None}, 'hurst': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Hurst', 'default': None}, 'price': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Price', 'default': None}, 'vramp': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Vramp', 'default': None}, 'sector': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Sector', 'default': None}, 'sma200': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Sma200', 'default': None}, 'ticker': {'type': 'string', 'title': 'Ticker'}, 'vscore': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Vscore', 'default': None}, 'sources': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Sources', 'default': None}, 'trend_ok': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Trend Ok', 'default': None}, 'agg_score': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Agg Score', 'default': None}, 'alignment': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Alignment', 'default': None}, 'composite': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Composite', 'default': None}, 'exit_sma5': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Exit Sma5', 'default': None}, 'readiness': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Readiness', 'default': None}, 'assessment': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Assessment', 'default': None}, 'conviction': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Conviction', 'default': None}, 'cycle_zone': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Cycle Zone', 'default': None}, 'fund_score': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Fund Score', 'default': None}, 'tech_score': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Tech Score', 'default': None}, 'cycle_score': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Cycle Score', 'default': None}, 'recorded_at': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Recorded At', 'default': None}, 'donchian_10l': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Donchian 10L', 'default': None}, 'donchian_20h': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Donchian 20H', 'default': None}, 'donchian_20l': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Donchian 20L', 'default': None}, 'donchian_55h': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Donchian 55H', 'default': None}, 'initial_stop': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Initial Stop', 'default': None}, 'signal_count': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Signal Count', 'default': None}, 'breakout_sys1': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Breakout Sys1', 'default': None}, 'breakout_sys2': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Breakout Sys2', 'default': None}, 'regime_choppy': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Regime Choppy', 'default': None}, 'scorer_signal': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Scorer Signal', 'default': None}, 'exit_proximity': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Exit Proximity', 'default': None}, 'exit_rsi_level': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Exit Rsi Level', 'default': None}, 'time_stop_bars': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Time Stop Bars', 'default': None}, 'readiness_label': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Readiness Label', 'default': None}, 'catastrophe_stop': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Catastrophe Stop', 'default': None}, 'efficiency_ratio': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Efficiency Ratio', 'default': None}, 'signal_confirmed': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Signal Confirmed', 'default': None}, 'bb_squeeze_pctile': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Bb Squeeze Pctile', 'default': None}, 'systems_triggered': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Systems Triggered', 'default': None}, 'breakout_confidence': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Breakout Confidence', 'default': None}, 'dist_to_breakout_pct': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Dist To Breakout Pct', 'default': None}}}}, 'title': 'RankingsResponse', 'required': ['lane', 'count', 'candidates'], 'properties': {'lane': {'type': 'string', 'title': 'Lane'}, 'count': {'type': 'integer', 'title': 'Count'}, 'total': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Total', 'default': None}, 'asof_hint': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Asof Hint', 'default': None}, 'truncated': {'type': 'boolean', 'title': 'Truncated', 'default': False}, 'candidates': {'type': 'array', 'items': {'$ref': '#/$defs/RankedCandidate'}, 'title': 'Candidates'}}}
rayana_ai_rotation
Cluster-rotation layer. ``summary``: latest per-cluster RRG quadrant/rank rows with deltas, plus the most recent quadrant-crossing events (``days`` controls the window both are computed over). ``laggards``: members trailing a firing cluster's leader. ``discovered``: unsupervised cluster-discovery cohorts the structural taxonomy misses. ``members``: structural cluster membership. On ``summary``, two blocks are trimmed because together they are 80% of the response while answering a narrower question than the rows do. ``include_trajectory`` adds each cluster's full rank series — a chart payload, off by default. ``events`` returns the newest 25 crossings; if exactly 25 come back there are probably older ones, and a wider ``days`` is not what returns them.
Lecture seule Accès externe
Schéma d’entrée
{'type': 'object', 'title': 'rayana_ai_rotationArguments', 'properties': {'days': {'type': 'integer', 'title': 'Days', 'default': 45}, 'view': {'enum': ['summary', 'laggards', 'discovered', 'members'], 'type': 'string', 'title': 'View', 'default': 'summary'}, 'include_trajectory': {'type': 'boolean', 'title': 'Include Trajectory', 'default': False}}}
Schéma de sortie
{'type': 'object', '$defs': {'RotationResponse': {'type': 'object', 'title': 'RotationResponse', 'required': ['latest', 'trajectory', 'events', 'snapshots'], 'properties': {'asof': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Asof', 'default': None}, 'events': {'type': 'array', 'items': {'$ref': '#/$defs/ClusterRotationEvent'}, 'title': 'Events'}, 'latest': {'type': 'array', 'items': {'$ref': '#/$defs/ClusterMomentumRow'}, 'title': 'Latest'}, 'snapshots': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Snapshots'}, 'prior_date': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Prior Date', 'default': None}, 'trajectory': {'type': 'array', 'items': {'$ref': '#/$defs/ClusterTrajectory'}, 'title': 'Trajectory'}}}, 'ClusterLaggardRow': {'type': 'object', 'title': 'ClusterLaggardRow', 'required': ['cluster_name', 'ticker'], 'properties': {'lag_z': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Lag Z', 'default': None}, 'leader': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Leader', 'default': None}, 'ticker': {'type': 'string', 'title': 'Ticker'}, 'gap_10d': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Gap 10D', 'default': None}, 'cluster_name': {'type': 'string', 'title': 'Cluster Name'}, 'also_surfaced': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Also Surfaced', 'default': None}, 'participation': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Participation', 'default': None}, 'snapshot_date': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Snapshot Date', 'default': None}, 'leader_catalyst': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Leader Catalyst', 'default': None}, 'leader_move_10d': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Leader Move 10D', 'default': None}, 'cluster_move_10d': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Cluster Move 10D', 'default': None}}}, 'ClusterTrajectory': {'type': 'object', 'title': 'ClusterTrajectory', 'required': ['cluster', 'series'], 'properties': {'series': {'type': 'array', 'items': {'$ref': '#/$defs/ClusterTrajectoryPoint'}, 'title': 'Series'}, 'cluster': {'type': 'string', 'title': 'Cluster'}}}, 'ClusterMomentumRow': {'type': 'object', 'title': 'ClusterMomentumRow', 'required': ['cluster_name'], 'properties': {'id': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Id', 'default': None}, 'asof': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Asof', 'default': None}, 'rank': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Rank', 'default': None}, 'mom_5d': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Mom 5D', 'default': None}, 'rs_mom': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Rs Mom', 'default': None}, 'breadth': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Breadth', 'default': None}, 'mom_20d': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Mom 20D', 'default': None}, 'mom_60d': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Mom 60D', 'default': None}, 'cohesion': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Cohesion', 'default': None}, 'quadrant': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Quadrant', 'default': None}, 'rank_pct': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Rank Pct', 'default': None}, 'rs_ratio': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Rs Ratio', 'default': None}, 'n_members': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'N Members', 'default': None}, 'rank_prev': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Rank Prev', 'default': None}, 'rank_delta': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Rank Delta', 'default': None}, 'recorded_at': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Recorded At', 'default': None}, 'cluster_name': {'type': 'string', 'title': 'Cluster Name'}, 'quadrant_prev': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Quadrant Prev', 'default': None}, 'snapshot_date': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Snapshot Date', 'default': None}}}, 'ClusterMembersEntry': {'type': 'object', 'title': 'ClusterMembersEntry', 'properties': {'note': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Note', 'default': None}, 'leads': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Leads', 'default': []}, 'members': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Members', 'default': []}}}, 'ClusterRotationEvent': {'type': 'object', 'title': 'ClusterRotationEvent', 'required': ['date', 'cluster', 'flow'], 'properties': {'to': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'To', 'default': None}, 'date': {'type': 'string', 'title': 'Date'}, 'flow': {'type': 'string', 'title': 'Flow'}, 'from': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'From', 'default': None}, 'cluster': {'type': 'string', 'title': 'Cluster'}}}, 'DiscoveredClusterRow': {'type': 'object', 'title': 'DiscoveredClusterRow', 'required': ['cluster_uid'], 'properties': {'size': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Size', 'default': None}, 'label': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Label', 'default': None}, 'is_new': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Is New', 'default': None}, 'members': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Members', 'default': []}, 'cohesion': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Cohesion', 'default': None}, 'cluster_uid': {'type': 'string', 'title': 'Cluster Uid'}, 'label_source': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Label Source', 'default': None}, 'snapshot_date': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Snapshot Date', 'default': None}, 'structural_match': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Structural Match', 'default': None}}}, 'ClusterTrajectoryPoint': {'type': 'object', 'title': 'ClusterTrajectoryPoint', 'required': ['date'], 'properties': {'date': {'type': 'string', 'title': 'Date'}, 'rank': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Rank', 'default': None}}}}, 'title': 'rayana_ai_rotationOutput', 'required': ['result'], 'properties': {'result': {'anyOf': [{'$ref': '#/$defs/RotationResponse'}, {'type': 'array', 'items': {'$ref': '#/$defs/ClusterLaggardRow'}}, {'type': 'array', 'items': {'$ref': '#/$defs/DiscoveredClusterRow'}}, {'type': 'object', 'additionalProperties': {'$ref': '#/$defs/ClusterMembersEntry'}}], 'title': 'Result'}}}
rayana_ai_search
Resolve free text (ticker or company name) to known Rayana AI symbols, best match first. Pure resolution — never accrues signal.
Lecture seule Accès externe
Schéma d’entrée
{'type': 'object', 'title': 'rayana_ai_searchArguments', 'required': ['q'], 'properties': {'q': {'type': 'string', 'title': 'Q'}, 'limit': {'type': 'integer', 'title': 'Limit', 'default': 8}}}
Schéma de sortie
{'type': 'object', '$defs': {'SearchMatch': {'type': 'object', 'title': 'SearchMatch', 'required': ['ticker'], 'properties': {'name': {'type': 'string', 'title': 'Name', 'default': ''}, 'ticker': {'type': 'string', 'title': 'Ticker'}}}}, 'title': 'rayana_ai_searchOutput', 'required': ['result'], 'properties': {'result': {'type': 'array', 'items': {'$ref': '#/$defs/SearchMatch'}, 'title': 'Result'}}}
rayana_ai_signals
Latest aggregator-consensus batch for one asset lane: which tickers cleared the signal pipeline, blended agg_score, confirming source count.
Lecture seule Accès externe
Schéma d’entrée
{'type': 'object', 'title': 'rayana_ai_signalsArguments', 'properties': {'lane': {'enum': ['equity', 'crypto', 'commodity'], 'type': 'string', 'title': 'Lane', 'default': 'equity'}, 'limit': {'type': 'integer', 'title': 'Limit', 'default': 60}}}
Schéma de sortie
{'type': 'object', '$defs': {'SignalRow': {'type': 'object', 'title': 'SignalRow', 'required': ['ticker'], 'properties': {'ticker': {'type': 'string', 'title': 'Ticker'}, 'sources': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Sources', 'default': None}, 'agg_score': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Agg Score', 'default': None}, 'signal_count': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Signal Count', 'default': None}}}}, 'title': 'SignalsResponse', 'required': ['lane', 'count', 'signals'], 'properties': {'lane': {'type': 'string', 'title': 'Lane'}, 'count': {'type': 'integer', 'title': 'Count'}, 'signals': {'type': 'array', 'items': {'$ref': '#/$defs/SignalRow'}, 'title': 'Signals'}, 'truncated': {'type': 'boolean', 'title': 'Truncated', 'default': False}}}
rayana_ai_start_checkout
Get a link your principal opens in a browser to subscribe. No API key needed. Give them the URL — you cannot complete this yourself, and should not try: they sign in, accept the Terms and authenticate the payment. If the tier includes API access, their account page then shows a short pairing code; read it back into ``rayana_ai_complete_setup`` to get your API key without them pasting a secret into this conversation. **Standard does not include API or MCP access** — if the point of the purchase is a key for you, ask for pro or elite.
Lecture seule
Schéma d’entrée
{'type': 'object', 'title': 'rayana_ai_start_checkoutArguments', 'properties': {'tier': {'enum': ['standard', 'pro', 'elite'], 'type': 'string', 'title': 'Tier', 'default': 'pro'}, 'interval': {'enum': ['month', 'year'], 'type': 'string', 'title': 'Interval', 'default': 'month'}}}
Schéma de sortie
{'type': 'object', 'title': 'CheckoutHandoff', 'required': ['url', 'tier', 'interval', 'price_usd', 'next_steps', 'pairing_note'], 'properties': {'url': {'type': 'string', 'title': 'Url'}, 'tier': {'type': 'string', 'title': 'Tier'}, 'interval': {'type': 'string', 'title': 'Interval'}, 'price_usd': {'type': 'integer', 'title': 'Price Usd'}, 'next_steps': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Next Steps'}, 'pairing_note': {'type': 'string', 'title': 'Pairing Note'}}, 'description': "What an agent hands its human to subscribe. Deliberately NOT a Stripe\nCheckout URL: this link lands on a Rayana page that signs the human in,\ntakes their assent to the Terms, and only then starts Stripe's own hosted\nCheckout. See api/mcp_server.py's `rayana_ai_start_checkout` for why the\nindirection is the point rather than an extra hop."}
rayana_ai_ticker
Full per-ticker research view: score, lane membership, per-source signals, virality, consensus, cluster-rotation position, forward returns.
Lecture seule Accès externe
Schéma d’entrée
{'type': 'object', 'title': 'rayana_ai_tickerArguments', 'required': ['symbol'], 'properties': {'symbol': {'type': 'string', 'title': 'Symbol'}}}
Schéma de sortie
{'type': 'object', '$defs': {'TickerScoreRow': {'type': 'object', 'title': 'TickerScoreRow', 'properties': {'rank': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Rank', 'default': None}, 'hurst': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Hurst', 'default': None}, 'price': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Price', 'default': None}, 'regime': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Regime', 'default': None}, 'run_at': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Run At', 'default': None}, 'script': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Script', 'default': None}, 'signal': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Signal', 'default': None}, 'composite': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Composite', 'default': None}, 'fund_score': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Fund Score', 'default': None}, 'tech_score': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Tech Score', 'default': None}}}}, 'title': 'TickerResponse', 'required': ['ticker', 'truncated'], 'properties': {'score': {'anyOf': [{'$ref': '#/$defs/TickerScoreRow'}, {'type': 'null'}], 'default': None}, 'detail': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Detail', 'default': None}, 'ticker': {'type': 'string', 'title': 'Ticker'}, 'truncated': {'type': 'boolean', 'title': 'Truncated'}}}
rayana_ai_ticker_analyst
Today's cached AI ticker-analyst read (lean, conviction, thesis, evidence for/against, invalidation condition). Never triggers a new model call; 404s if nothing was generated today for this ticker.
Lecture seule Accès externe
Schéma d’entrée
{'type': 'object', 'title': 'rayana_ai_ticker_analystArguments', 'required': ['symbol'], 'properties': {'symbol': {'type': 'string', 'title': 'Symbol'}}}
Schéma de sortie
{'type': 'object', 'title': 'TickerAnalystBrief', 'required': ['ticker', 'analysis_date'], 'properties': {'lean': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Lean', 'default': None}, 'model': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Model', 'default': None}, 'cached': {'type': 'boolean', 'title': 'Cached', 'default': True}, 'thesis': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Thesis', 'default': None}, 'ticker': {'type': 'string', 'title': 'Ticker'}, 'cost_usd': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Cost Usd', 'default': None}, 'conviction': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Conviction', 'default': None}, 'created_at': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Created At', 'default': None}, 'evidence_for': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Evidence For', 'default': []}, 'invalidation': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Invalidation', 'default': None}, 'analysis_date': {'type': 'string', 'title': 'Analysis Date'}, 'evidence_against': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Evidence Against', 'default': []}}}
rayana_ai_ticker_articles
One ticker's published article history, newest first.
Lecture seule Accès externe
Schéma d’entrée
{'type': 'object', 'title': 'rayana_ai_ticker_articlesArguments', 'required': ['symbol'], 'properties': {'symbol': {'type': 'string', 'title': 'Symbol'}}}
Schéma de sortie
{'type': 'object', '$defs': {'ArticleSummary': {'type': 'object', 'title': 'ArticleSummary', 'required': ['slug', 'ticker', 'headline', 'trigger_type'], 'properties': {'dek': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Dek', 'default': None}, 'slug': {'type': 'string', 'title': 'Slug'}, 'ticker': {'type': 'string', 'title': 'Ticker'}, 'headline': {'type': 'string', 'title': 'Headline'}, 'published_at': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Published At', 'default': None}, 'trigger_type': {'type': 'string', 'title': 'Trigger Type'}}}}, 'title': 'ArticlesResponse', 'required': ['count', 'articles'], 'properties': {'count': {'type': 'integer', 'title': 'Count'}, 'limit': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Limit', 'default': None}, 'total': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Total', 'default': None}, 'offset': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Offset', 'default': None}, 'articles': {'type': 'array', 'items': {'$ref': '#/$defs/ArticleSummary'}, 'title': 'Articles'}}}
rayana_ai_ticker_price
Daily close-price history for one ticker over the given period. Long periods are evenly sampled down to ``max_points`` bars rather than cut short, so the series still spans the whole period — ``5Y`` and ``MAX`` return the shape of the history, not its last year. ``last_close``, ``change_pct`` and the ``range_low``/``range_high`` extremes are computed over every bar regardless of sampling.
Lecture seule Accès externe
Schéma d’entrée
{'type': 'object', 'title': 'rayana_ai_ticker_priceArguments', 'required': ['symbol'], 'properties': {'period': {'enum': ['1M', '6M', 'YTD', '1Y', '5Y', 'MAX'], 'type': 'string', 'title': 'Period', 'default': '1Y'}, 'symbol': {'type': 'string', 'title': 'Symbol'}, 'max_points': {'type': 'integer', 'title': 'Max Points', 'default': 260}}}
Schéma de sortie
{'type': 'object', '$defs': {'PricePoint': {'type': 'object', 'title': 'PricePoint', 'required': ['date', 'close'], 'properties': {'date': {'type': 'string', 'title': 'Date'}, 'close': {'type': 'number', 'title': 'Close'}}}}, 'title': 'PriceHistoryResponse', 'required': ['ticker', 'period', 'points'], 'properties': {'period': {'type': 'string', 'title': 'Period'}, 'points': {'type': 'array', 'items': {'$ref': '#/$defs/PricePoint'}, 'title': 'Points'}, 'ticker': {'type': 'string', 'title': 'Ticker'}, 'range_low': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Range Low', 'default': None}, 'change_pct': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Change Pct', 'default': None}, 'last_close': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Last Close', 'default': None}, 'range_high': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Range High', 'default': None}}}
rayana_ai_trends
The attention leaderboard: latest virality snapshot ranked by VScore, with the full intensity/breadth/slope/vramp decomposition.
Lecture seule Accès externe
Schéma d’entrée
{'type': 'object', 'title': 'rayana_ai_trendsArguments', 'properties': {'limit': {'type': 'integer', 'title': 'Limit', 'default': 40}}}
Schéma de sortie
{'type': 'object', '$defs': {'TrendRow': {'type': 'object', 'title': 'TrendRow', 'required': ['ticker'], 'properties': {'slope': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Slope', 'default': None}, 'vramp': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Vramp', 'default': None}, 'ticker': {'type': 'string', 'title': 'Ticker'}, 'breadth': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Breadth', 'default': None}, 'intensity': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Intensity', 'default': None}, 'source_list': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Source List', 'default': None}, 'viral_score': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Viral Score', 'default': None}, 'distinct_days': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Distinct Days', 'default': None}, 'distinct_sources': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Distinct Sources', 'default': None}}}}, 'title': 'TrendsResponse', 'required': ['count', 'leaders'], 'properties': {'asof': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Asof', 'default': None}, 'count': {'type': 'integer', 'title': 'Count'}, 'leaders': {'type': 'array', 'items': {'$ref': '#/$defs/TrendRow'}, 'title': 'Leaders'}, 'truncated': {'type': 'boolean', 'title': 'Truncated', 'default': False}}}
rayana_ai_trends_detail
The attention layer's raw texture. ``sources``: per-source reach today. ``heat``: per-(ticker, source) attention contributions. ``search``: rising/breakout consumer search queries. ``video``: rising video-view velocity. ``limit`` applies to search/video only; omit it to use that view's own default.
Lecture seule Accès externe
Schéma d’entrée
{'type': 'object', 'title': 'rayana_ai_trends_detailArguments', 'required': ['view'], 'properties': {'view': {'enum': ['sources', 'heat', 'search', 'video'], 'type': 'string', 'title': 'View'}, 'limit': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Limit', 'default': None}}}
Schéma de sortie
{'type': 'object', '$defs': {'SourceHeatRow': {'type': 'object', 'title': 'SourceHeatRow', 'required': ['ticker', 'source'], 'properties': {'source': {'type': 'string', 'title': 'Source'}, 'ticker': {'type': 'string', 'title': 'Ticker'}, 'intensity': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Intensity', 'default': None}, 'last_score': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Last Score', 'default': None}, 'recent_age': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Recent Age', 'default': None}, 'days_active': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Days Active', 'default': None}}}, 'VideoTrendRow': {'type': 'object', 'title': 'VideoTrendRow', 'required': ['title'], 'properties': {'link': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Link', 'default': None}, 'title': {'type': 'string', 'title': 'Title'}, 'views': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Views', 'default': None}, 'ticker': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Ticker', 'default': None}, 'channel': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Channel', 'default': None}, 'age_hours': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Age Hours', 'default': None}, 'company_name': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Company Name', 'default': None}, 'velocity_vph': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Velocity Vph', 'default': None}, 'published_date': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Published Date', 'default': None}, 'velocity_score': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Velocity Score', 'default': None}}}, 'SearchTrendRow': {'type': 'object', 'title': 'SearchTrendRow', 'required': ['query'], 'properties': {'day': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Day', 'default': None}, 'query': {'type': 'string', 'title': 'Query'}, 'value': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Value', 'default': None}, 'section': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Section', 'default': None}}}, 'SourceBreadthRow': {'type': 'object', 'title': 'SourceBreadthRow', 'required': ['source', 'tickers'], 'properties': {'source': {'type': 'string', 'title': 'Source'}, 'tickers': {'type': 'integer', 'title': 'Tickers'}, 'avg_intensity': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Avg Intensity', 'default': None}, 'max_intensity': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Max Intensity', 'default': None}}}}, 'title': 'rayana_ai_trends_detailOutput', 'required': ['result'], 'properties': {'result': {'anyOf': [{'type': 'array', 'items': {'$ref': '#/$defs/SourceBreadthRow'}}, {'type': 'array', 'items': {'$ref': '#/$defs/SourceHeatRow'}}, {'type': 'array', 'items': {'$ref': '#/$defs/SearchTrendRow'}}, {'type': 'array', 'items': {'$ref': '#/$defs/VideoTrendRow'}}], 'title': 'Result'}}}
Modifié
rayana_ai_start_checkout
25 September 2026 02:50
Ajouté
rayana_ai_complete_setup
21 September 2026 02:49
Ajouté
rayana_ai_start_checkout
21 September 2026 02:49
Ajouté
rayana_ai_plans
21 September 2026 02:49
Ajouté
rayana_ai_articles
19 September 2026 02:40
Ajouté
rayana_ai_search
19 September 2026 02:40
Ajouté
rayana_ai_portfolio
19 September 2026 02:40
Ajouté
rayana_ai_portfolios
19 September 2026 02:40
Ajouté
rayana_ai_analyst_brief
19 September 2026 02:40
Ajouté
rayana_ai_market_brief
19 September 2026 02:40
Ajouté
rayana_ai_trends_detail
19 September 2026 02:40
Ajouté
rayana_ai_trends
19 September 2026 02:40
Ajouté
rayana_ai_rotation
19 September 2026 02:40
Ajouté
rayana_ai_ticker_articles
19 September 2026 02:40
Ajouté
rayana_ai_ticker_analyst
19 September 2026 02:40
Ajouté
rayana_ai_ticker_price
19 September 2026 02:40
Ajouté
rayana_ai_ticker
19 September 2026 02:40
Ajouté
rayana_ai_consensus
19 September 2026 02:40
Ajouté
rayana_ai_signals
19 September 2026 02:40
Ajouté
rayana_ai_lanes
19 September 2026 02:40
Ajouté
rayana_ai_rankings
19 September 2026 02:40

Valuein — SEC EDGAR Fundamentals & Smart-Money Data

io.github.valuein/mcp-sec-edgar

Provides point-in-time SEC EDGAR fundamentals, filings, ownership signals, financial analysis, valuation models, research reports…

equibles

io.github.daniel3303/equibles

Provides equity and market research tools covering SEC filings, company financials, portfolios, prices, options, macroeconomic da…

EventTrader Research (read-only)

com.cymetica/event-trader-research

Offers read-only research on funds, event markets, order books, arena markets, crypto pools, backtests, and related financial ana…

World Monitor

app.worldmonitor/mcp

Delivers live geopolitical, conflict, country-risk, market, energy, climate, aviation, supply-chain, and macroeconomic intelligen…

Slacking.biz — SEC Financial Data + US Economics + Demographics + FX

io.github.Th3Slack3r/slacking-biz

Provides financial, economic, demographic, foreign-exchange, regulatory, and company research data from public sources.

TipRanks

com.tipranks/tipranks

Provides market research and investment data covering stocks, ETFs, commodities, crypto, forex, analyst ratings, news, earnings, …

welcome

com.thebalancedinvestorclub/welcome

Provides market data and educational investment research for stocks, ETFs, and crypto, including fundamentals, prices, macro indi…

Currencyformat

io.github.pipeworx-io/currencyformat

Formats localized numbers and currencies and also provides routed access to structured financial, market, government, and researc…