Rayana AI
by rayana.ai · remote · no sign-in to list tools · v1.1.1 · published by ai.rayana
Read-only impersonal market research: portfolio rankings, ticker scores, signals, daily briefs.
20 tools: 1 can delete or cancel things, 18 change things and 1 only read.
Scanned Oct 21, 2026
- Deletes or cancels1Claude Code: deny: see these tools
- Can't be undone0Claude Code: ask
- Changes things18Claude Code: ask: see these tools
- Only reads1Claude Code: allow: see these tools
1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http rayana-ai https://mcp.rayana.ai/mcpFindings
Matches of fixed checks, with the text they matched.
The server marks "rayana_ai_start_checkout" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":false}; The name "rayana_ai_start_checkout" says "start": a word for a change.
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
20 tools
Deletes or cancels 1Claude Code: deny
rayana_ai_complete_setupFor clients that connect with an API key rather than OAuth: exchanges a pairing code from the user's account page for an API key.No findings
Why it is in this group
- The input takes a statement or command to run (input.code), which can change anything it can reach.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it For clients that connect with an API key rather than OAuth: exchanges a pairing code from the user's account page for an API key. Destructive: it issues a new key and immediately revokes the account's previous one, so any other client still using the old key stops working. OAuth connections are not affected. The key is returned once and cannot be retrieved later; only a hash of it is stored. It is sent as the `X-API-Key` header on MCP and REST requests. Codes are single-use, expire after 15 minutes, and are invalidated after a few wrong attempts.
Annotations the server declares
- destructiveHint: true
- idempotentHint: false
- openWorldHint: false
- readOnlyHint: false
- title: Redeem a pairing code
Changes things 18Claude Code: ask
rayana_ai_analyst_briefThe portfolio-analyst brief with its per-ticker views — the broadcast opinion layer, identical for every caller.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it The portfolio-analyst brief with its per-ticker views — the broadcast opinion layer, identical for every caller.
Annotations the server declares
- openWorldHint: true
- readOnlyHint: true
- title: Portfolio analyst brief
rayana_ai_articlesThe public articles feed, newest first, when `slug` is omitted; one published article's full body when `slug` is given.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it The public articles feed, newest first, when `slug` is omitted; one published article's full body when `slug` is given.
Annotations the server declares
- openWorldHint: true
- readOnlyHint: true
- title: Research articles
rayana_ai_consensusPer-source consensus snapshots (insider trades, congressional trades, earnings beats, dated catalysts, on-chain flows, 13F filings, AI news-beneficiary reads).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it 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.
Annotations the server declares
- openWorldHint: true
- readOnlyHint: true
- title: Per-source consensus snapshots
rayana_ai_lanesWhich lanes (daily/turtle/mr) currently have a batch available.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Which lanes (daily/turtle/mr) currently have a batch available.
Annotations the server declares
- openWorldHint: true
- readOnlyHint: true
- title: Available ranking lanes
rayana_ai_market_briefThe daily market brief: a generic engine-wide read with no recommendations, descriptive only.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it 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.
Annotations the server declares
- openWorldHint: true
- readOnlyHint: true
- title: Daily market brief
rayana_ai_plansRayana AI's subscription tiers: price, rate limits, and what each tier includes.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Rayana AI's subscription tiers: price, rate limits, and what each tier includes. Works without signing in or an API key. The research tools on this server require the Pro tier or higher. Prices are USD; annual billing is ten months' price for twelve. `rayana_ai_start_checkout` returns a subscription link for a tier listed here.
Annotations the server declares
- openWorldHint: false
- readOnlyHint: true
- title: Plans and pricing
rayana_ai_portfolioOne model portfolio's full detail: holdings, overlay legs, event feed, NAV series, and windowed returns.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it One model portfolio's full detail: holdings, overlay legs, event feed, NAV series, and windowed returns. Returns an error if the book's tier (e.g. an Elite-only book) is above the caller's own subscription tier.
Annotations the server declares
- openWorldHint: true
- readOnlyHint: true
- title: Model portfolio detail
rayana_ai_portfoliosThe full shelf of Rayana AI's broadcast model portfolios as merchandising cards, with each card's tier/openable/delayed flags.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it The full shelf of Rayana AI's broadcast model portfolios as merchandising cards, with each card's tier/openable/delayed flags.
Annotations the server declares
- openWorldHint: true
- readOnlyHint: true
- title: Model portfolio shelf
rayana_ai_rankingsLatest ranked candidate batch for a lane: daily (the main research lane), turtle (breakout system), or mr (mean-reversion).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it 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`, later rows are reached with `offset`. `include_assessment` adds each row's technical detail (pattern and cluster validation, volume profile) and roughly triples the response; `rayana_ai_ticker` returns the same detail for a single name.
Annotations the server declares
- openWorldHint: true
- readOnlyHint: true
- title: Ranked candidates by lane
rayana_ai_rotationCluster-rotation layer.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it 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.
Annotations the server declares
- openWorldHint: true
- readOnlyHint: true
- title: Cluster rotation
rayana_ai_signalsLatest aggregator-consensus batch for one asset lane: which tickers cleared the signal pipeline, blended agg_score, confirming source count.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Latest aggregator-consensus batch for one asset lane: which tickers cleared the signal pipeline, blended agg_score, confirming source count.
Annotations the server declares
- openWorldHint: true
- readOnlyHint: true
- title: Signal consensus batch
rayana_ai_start_checkoutReturns a subscription link for a tier, which the user opens in a browser.1 finding
Why it is in this group
- The name "rayana_ai_start_checkout" says "start": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "rayana_ai_start_checkout" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":false}; The name "rayana_ai_start_checkout" says "start": a word for a change.
Description, as the server wrote it Returns a subscription link for a tier, which the user opens in a browser. Works without signing in or an API key. The tool itself takes no payment: the user signs in, accepts the Terms of Service and pays on Stripe's hosted checkout page. Standard does not include access to this server's research tools; Pro and Elite do. After payment, a connection that signs in with OAuth (as Claude's connectors do) reaches the research tools once the user signs in with the same account. A client that connects with an API key instead gets one through a pairing code on the account page (see `rayana_ai_complete_setup`).
Annotations the server declares
- openWorldHint: false
- readOnlyHint: true
- title: Start a subscription
rayana_ai_tickerFull per-ticker research view: score, lane membership, per-source signals, virality, consensus, cluster-rotation position, forward returns.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Full per-ticker research view: score, lane membership, per-source signals, virality, consensus, cluster-rotation position, forward returns.
Annotations the server declares
- openWorldHint: true
- readOnlyHint: true
- title: Ticker research view
rayana_ai_ticker_analystToday's cached AI ticker-analyst read (lean, conviction, thesis, evidence for/against, invalidation condition).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it 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.
Annotations the server declares
- openWorldHint: true
- readOnlyHint: true
- title: Ticker AI analyst read
rayana_ai_ticker_articlesOne ticker's published article history, newest first.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it One ticker's published article history, newest first.
Annotations the server declares
- openWorldHint: true
- readOnlyHint: true
- title: Ticker article history
rayana_ai_ticker_priceDaily close-price history for one ticker over the given period.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it 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.
Annotations the server declares
- openWorldHint: true
- readOnlyHint: true
- title: Ticker price history
rayana_ai_trendsThe attention leaderboard: latest virality snapshot ranked by VScore, with the full intensity/breadth/slope/vramp decomposition.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it The attention leaderboard: latest virality snapshot ranked by VScore, with the full intensity/breadth/slope/vramp decomposition.
Annotations the server declares
- openWorldHint: true
- readOnlyHint: true
- title: Attention leaderboard
rayana_ai_trends_detailThe attention layer's raw texture.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it 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.
Annotations the server declares
- openWorldHint: true
- readOnlyHint: true
- title: Attention detail
Only reads 1Claude Code: allow
rayana_ai_searchResolve free text (ticker or company name) to known Rayana AI symbols, best match first.No findings
Why it is in this group
- The name "rayana_ai_search" says "search": a word for reading.
Description, as the server wrote it Resolve free text (ticker or company name) to known Rayana AI symbols, best match first. Pure resolution — never accrues signal.
Annotations the server declares
- openWorldHint: true
- readOnlyHint: true
- title: Symbol search
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.1.1. Values in angle brackets are yours to fill in.
claude mcp add --transport http rayana-ai https://mcp.rayana.ai/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__rayana-ai__rayana_ai_search"
],
"ask": [
"mcp__rayana-ai__rayana_ai_rankings",
"mcp__rayana-ai__rayana_ai_lanes",
"mcp__rayana-ai__rayana_ai_signals",
"mcp__rayana-ai__rayana_ai_consensus",
"mcp__rayana-ai__rayana_ai_ticker",
"mcp__rayana-ai__rayana_ai_ticker_price",
"mcp__rayana-ai__rayana_ai_ticker_analyst",
"mcp__rayana-ai__rayana_ai_ticker_articles",
"mcp__rayana-ai__rayana_ai_rotation",
"mcp__rayana-ai__rayana_ai_trends",
"mcp__rayana-ai__rayana_ai_trends_detail",
"mcp__rayana-ai__rayana_ai_market_brief",
"mcp__rayana-ai__rayana_ai_analyst_brief",
"mcp__rayana-ai__rayana_ai_portfolios",
"mcp__rayana-ai__rayana_ai_portfolio",
"mcp__rayana-ai__rayana_ai_articles",
"mcp__rayana-ai__rayana_ai_plans",
"mcp__rayana-ai__rayana_ai_start_checkout"
],
"deny": [
"mcp__rayana-ai__rayana_ai_complete_setup"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as rayana-ai. Review it before you use it.