Skip to content

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.

Deletes · 1Changes · 18

20 tools: 1 can delete or cancel things, 18 change things and 1 only read.

Scanned Oct 21, 2026

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/mcp

Findings

Matches of fixed checks, with the text they matched.

1 warn
  • The server marks "rayana_ai_start_checkout" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"openWorldHint":false}; The name "rayana_ai_start_checkout" says "start": a word for a change.

    What this check looks for

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".

      Matched text

      annotations: {"readOnlyHint":true,"openWorldHint":false}; The name "rayana_ai_start_checkout" says "start": a word for a change.

      What this check looks for
    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
Only reads 1Claude Code: allow

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/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.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.