Model Context Protocol (MCP) server for freee API integration
Ava Advisor is installed from its publisher's own source and answers where it runs, so this marketplace is not in the path of a single call. There is no address here to send one to, and a panel that pretended otherwise would be showing you an answer we made up. Install it and call it from your own client — the Installation tab has the entry for each one.
What it does
Your AI watches the markets so you can live your life. Financial intelligence for everybody.
Quickstart
# 1 — add it to Claude Code
claude mcp add --scope user --transport http ava-advisor-mcp https://mcp.ava.fund/mcp
# 2 — ask your agent for something these tools do
# theme_summary, brief, search_news and 34 more
Ava Advisor costs nothing on mcprush: there is no plan to choose here, no cap to set and nothing mcprush can bill you for.
Collected from a public index. Nobody has claimed this account, so nothing here was written by its author — claim it if it is yours.
Where are you running it?
Every route below installs the same thing and ends at the same approval screen. Nothing here runs on your machine and nothing runs on ours: this server answers at its publisher’s own address, and what you install is the connection straight to it.
This is a public server: it answers at its publisher’s own address and this marketplace is not in the path. Claude Code registers it in one command; --scope user makes it available in every project. The transport below is http, as the publisher's own manifest declares it. Its publisher asks you to sign in with OAuth: run /mcp in Claude Code and pick this server, and it opens a browser for that once.
claude mcp add --scope user --transport http ava-advisor-mcp https://mcp.ava.fund/mcpReconnect, or start a new session, and the tools appear in the model’s tool list.
One config entry pointing straight at the publisher’s own address — this marketplace is not in the path, and nothing from this listing executes on your machine.
37 tools, with what each one reads, writes and reaches shown before you agree — the same list on every route above. Read the tool surface.
Tool surface
What the model actually sees. Descriptions are diffed on every release — see version history.
Pre-composed analyst brief for a megatrend theme: pulse, winners/losers, top entities, aspect heatmap, ripple. theme = a theme name or id/slug; window = 7d/30d/90d/1y/mtd/qtd/ytd.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| theme | string | yes | A megatrend theme — name/slug (resolved for you) or node id. |
| window | string | no | News-recency window: 7d/30d/90d/180d/1y or mtd/qtd/ytd. Omit → a sensible default. (Price history is unaffected — this only scopes the NEWS lens.) |
| country | no | Optional market ISO-2 filter. |
The generalized ANALYST BRIEF — one composed "how is <scope> doing right now?" picture (pulse + net direction, top_stories, winners/losers, aspect_heatmap, top_entities, top_assets) for any AND-combination of scopes. ⭐ Use to SUMMARIZE a scope (theme / news category / country / sector / aspect) — NOT a raw article list (that's search_news/news_feed). ⛔ NOT for a single COMPANY or marke
| Parameter | Type | Required | Notes |
|---|---|---|---|
| news_type | no | News CATEGORY (exact names only, e.g. macro_economic, commodity_supply, earnings_results). | |
| country | no | Market filter — CSV of ISO-2 codes (e.g. US or CN,TW,HK). 🌍 If the question names a NATIONALITY or REGION ('European','Thai','Chinese','ASEAN'), put it HERE — never leave it inside a concept/q/ | |
| aspect | no | Impact CHANNEL filter (e.g. demand, competition, tariff, monetary). Omit → all channels. | |
| gics | no | A GICS sector/industry — a CODE PREFIX (sector 25 / group 2550 / industry 255010 / sub 25501010, CSV for several) OR plain English ('banks', 'semiconductors', 'biotech'); the server resolves i | |
| megatrend | no | A megatrend node — a name/slug (resolved for you, e.g. foundry) or an int node id. CSV for several. | |
| window | string | no | News-recency window: 7d/30d/90d/180d/1y or mtd/qtd/ytd. Omit → a sensible default. (Price history is unaffected — this only scopes the NEWS lens.) |
| from_ | no | Lower time bound, ISO date YYYY-MM-DD. ⚠️ Ava Advisor NEWS coverage starts 2026-01-01 (nothing before). | |
| to | no | Upper time bound, ISO date YYYY-MM-DD. | |
| interval | no | Time-bucketing of the pulse series: day|week|month. | |
| lang | no | Translate title/brief_text: en|th|ja. |
SEMANTIC news search across ALL covered asset classes — stocks, FX, crypto, COMMODITIES (metals like copper/gold, energy like oil), and private companies. Articles matched by MEANING, impact-labeled (title, publisher, entities, direction, why). USE THIS for 'copper news', 'metals', 'gold', etc. instead of a web search. entity_type keeps only stock/forex/crypto/commodity/private hits.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| q | string | yes | Free-text SEMANTIC news query — a topic/event/asset in any language ('copper', 'oil shock', 'Fed rate hike', 'ข่าวทองคำ'). |
| entity_type | no | Keep only hits of one kind: stock|forex|crypto|commodity|private. Omit → all. | |
| collapse | no | Merge near-duplicate stories (same article from many outlets) into one row + dup_count. Default ON; pass false for the raw un-deduped feed. | |
| limit | no | Max rows (default 20, hard cap 50). Keep SMALL + narrow the scope; page/refine rather than dump — heavily-covered assets have hundreds of articles. | |
| from_ | no | Lower time bound, ISO date YYYY-MM-DD. ⚠️ Ava Advisor NEWS coverage starts 2026-01-01 (nothing before). | |
| to | no | Upper time bound, ISO date YYYY-MM-DD. | |
| window | no | News-recency window: 7d/30d/90d/180d/1y or mtd/qtd/ytd. Omit → a sensible default. (Price history is unaffected — this only scopes the NEWS lens.) | |
| detail | no | compact (default): per story title, date, publisher, types, impact_score, a short brief and the TOP-3 impacted entities (direction + relevance + one-line why) — fits the client's tool-output limit. | |
| format | no | json (default): structured rows. text: the same stories as plain readable lines (no JSON keys / quotes / nesting) — about half the size; prefer it when you only need to READ the news to answer. |
The filtered impact feed — news by megatrend/country/aspect/direction/news_type, across stocks, FX, crypto, COMMODITIES (metals/energy) and private cos. Use for 'negative tariff news on Semiconductors', 'macro news moving European stocks', 'copper / metals news', etc. Near-duplicate stories are MERGED by default (+dup_count); collapse=false for the raw feed. limit = how many
| Parameter | Type | Required | Notes |
|---|---|---|---|
| megatrend | no | A megatrend node — a name/slug (resolved for you, e.g. foundry) or an int node id. CSV for several. | |
| country | no | Market filter — CSV of ISO-2 codes (e.g. US or CN,TW,HK). 🌍 If the question names a NATIONALITY or REGION ('European','Thai','Chinese','ASEAN'), put it HERE — never leave it inside a concept/q/ | |
| aspect | no | Impact CHANNEL filter (e.g. demand, competition, tariff, monetary). Omit → all channels. | |
| direction | no | Filter by impact direction: pos | neg | ambiguous. Omit → all. | |
| news_type | no | News CATEGORY (exact names only, e.g. macro_economic, commodity_supply, earnings_results). | |
| only_scored | no | Keep only articles carrying a judged per-entity impact. Omit → all gated articles. | |
| min_relevance | no | Minimum impact relevance, 0–1. | |
| limit | no | Max rows (default 20, hard cap 50). Keep SMALL + narrow the scope; page/refine rather than dump — heavily-covered assets have hundreds of articles. | |
| collapse | no | Merge near-duplicate stories (same article from many outlets) into one row + dup_count. Default ON; pass false for the raw un-deduped feed. | |
| from_ | no | Lower time bound, ISO date YYYY-MM-DD. ⚠️ Ava Advisor NEWS coverage starts 2026-01-01 (nothing before). | |
| to | no | Upper time bound, ISO date YYYY-MM-DD. | |
| window | no | News-recency window: 7d/30d/90d/180d/1y or mtd/qtd/ytd. Omit → a sensible default. (Price history is unaffected — this only scopes the NEWS lens.) | |
| detail | no | compact (default): per story title, date, publisher, types, impact_score, a short brief and the TOP-3 impacted entities (direction + relevance + one-line why) — fits the client's tool-output limit. | |
| format | no | json (default): structured rows. text: the same stories as plain readable lines (no JSON keys / quotes / nesting) — about half the size; prefer it when you only need to READ the news to answer. |
How news moved a specific company/asset (incl commodities like GOLD.COMM) — per-article impact (direction + aspect + why), most recent first. Near-duplicate stories are MERGED by default (each row = one story + dup_count); collapse=false for the raw feed. limit = how many (default 20, max 50). Ordered by how hard each story hits this entity (relevance, 1.0 = directly about it; a ma
| Parameter | Type | Required | Notes |
|---|---|---|---|
| ticker | string | yes | A Ava Advisor ticker OR a company/asset NAME — the SERVER resolves it (no lookup step). A COMPANY/proper NAME passes AS-IS in any language (茅台/トヨタ/삼성 resolve natively — never translate a name); a gene |
| direction | no | Filter by impact direction: pos | neg | ambiguous. Omit → all. | |
| limit | no | Max rows (default 20, hard cap 50). Keep SMALL + narrow the scope; page/refine rather than dump — heavily-covered assets have hundreds of articles. | |
| collapse | no | Merge near-duplicate stories (same article from many outlets) into one row + dup_count. Default ON; pass false for the raw un-deduped feed. | |
| from_ | no | Lower time bound, ISO date YYYY-MM-DD. ⚠️ Ava Advisor NEWS coverage starts 2026-01-01 (nothing before). | |
| to | no | Upper time bound, ISO date YYYY-MM-DD. | |
| country | no | OPTIONAL market disambiguator — pass ONLY when ticker is a plain NAME that collides across markets (the Thai vs Korean 'KBANK'); omit for a distinctive name or an exact ticker (an unneeded country s | |
| window | no | News-recency window: 7d/30d/90d/180d/1y or mtd/qtd/ytd. Omit → a sensible default. (Price history is unaffected — this only scopes the NEWS lens.) | |
| context | no | OPTIONAL but RECOMMENDED — paste the user's FULL request VERBATIM (any language: 'ขอราคาผลไม้ apple', 'compare Apple and Microsoft stock'). The server uses it to disambiguate which candidate each `tic |
What the US OPTIONS MARKET is saying — the POSITIONING lens (~547 popular US optionable names, stocks + ETFs). Pairs with the news→impact read: for "how is <X> doing?" fetch THIS *and* stock_impact/news_feed and fuse them (news = what's happening + WHY; options = how the market is positioned — direction lean via put/call, fear/greed via skew, IV level, dealer-gamma stability, m
| Parameter | Type | Required | Notes |
|---|---|---|---|
| ticker | no | A US-listed OPTIONABLE ticker OR a plain company name (resolved server-side) — ~547 names — or an index-ETF proxy (S&P→SPY, Nasdaq→QQQ). Non-US / uncovered → covered:false (not an error). | |
| style | string | no | Narration style: plain (layperson, default) | technical. |
| as_of | no | As-of date YYYY-MM-DD (point-in-time positioning). | |
| tickers | no | Batch form — several tickers at once (instead of ticker). | |
| dates | no | Specific expiry dates YYYY-MM-DD to focus the read on. | |
| context | no | OPTIONAL but RECOMMENDED — paste the user's FULL request VERBATIM (any language: 'ขอราคาผลไม้ apple', 'compare Apple and Microsoft stock'). The server uses it to disambiguate which candidate each `tic |
Find STOCKS by an options-behaviour pattern (opana lens) across the ~557 US optionable names — returns ranked UNDERLYINGS each with a plain-language because + metrics (value, and prev→delta for a trend/flip). STOCK scanner only: it does NOT pick option contracts/strikes/expiries (for one named stock's detail use options_sentiment). The pattern is a key OR plain English (the ser
| Parameter | Type | Required | Notes |
|---|---|---|---|
| pattern | string | yes | An options-behaviour pattern — an exact key OR plain English ('cheap implied vol', 'crowd getting fearful', 'smart money piling in'); the server resolves it. CSV = AND-combine (intersect), e.g. 'iv_ch |
| horizon | string | no | short | long — which options horizon to read (default long = the positioning/conviction lens; short = the gamma/near-term lens). |
| min_strength | no | Optional cutoff on the ranked axis / Δ — omit to let the scanner return the top-ranked names. | |
| limit | no | Max rows (default 20, hard cap 50). Keep SMALL + narrow the scope; page/refine rather than dump — heavily-covered assets have hundreds of articles. |
THE roster tool: investable MEMBER companies of a theme (curated membership). Rolls up sub-themes (a parent node returns its children's members too). Use this — not screen_stocks — for 'who are the players / real names in <theme>' (screen_stocks is a NEWS-ranked subset gated to news-epicenter members). country='all' (default) gives the complete cross-market list; an ISO-2 scopes to o
| Parameter | Type | Required | Notes |
|---|---|---|---|
| theme | string | yes | A megatrend theme — name/slug (resolved for you) or node id. |
| country | no | all (DEFAULT) = the whole cross-market roster — use this for 'who are the players in <theme>'. Or an ISO-2 market to scope to ONE venue. ⚠️ keyed by LISTING VENUE, not domicile: a foreign name lists | |
| exposure | no | Filter by exposure tier (e.g. core). Omit → all members. | |
| limit | no | Max rows (default 20, hard cap 50). Keep SMALL + narrow the scope; page/refine rather than dump — heavily-covered assets have hundreds of articles. |
Off-coverage / private companies the news moved within a theme — the 'beyond tickers' surface. limit = how many (default 20, max 50). Returns {companies, count, total, note?} — honor note when total > count (it's a top slice, not the whole set).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| theme | string | yes | A megatrend theme — name/slug (resolved for you) or node id. |
| country | no | Market filter — CSV of ISO-2 codes (e.g. US or CN,TW,HK). 🌍 If the question names a NATIONALITY or REGION ('European','Thai','Chinese','ASEAN'), put it HERE — never leave it inside a concept/q/ | |
| limit | no | Max rows (default 20, hard cap 50). Keep SMALL + narrow the scope; page/refine rather than dump — heavily-covered assets have hundreds of articles. |
Competitors + peers of a company (news-derived relationship graph). limit caps EACH list (default 15, max 50). Each side carries total/count/note — a big total (peers often run to hundreds) means you're seeing a TOP slice; say so rather than implying it's the complete set.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| ticker | string | yes | A Ava Advisor ticker OR a company/asset NAME — the SERVER resolves it (no lookup step). A COMPANY/proper NAME passes AS-IS in any language (茅台/トヨタ/삼성 resolve natively — never translate a name); a gene |
| country | no | OPTIONAL market disambiguator — pass ONLY when ticker is a plain NAME that collides across markets (the Thai vs Korean 'KBANK'); omit for a distinctive name or an exact ticker (an unneeded country s | |
| limit | no | Max competitors + peers each (default/cap per _lim). | |
| context | no | OPTIONAL but RECOMMENDED — paste the user's FULL request VERBATIM (any language: 'ขอราคาผลไม้ apple', 'compare Apple and Microsoft stock'). The server uses it to disambiguate which candidate each `tic |
Browse / discover the megatrend taxonomy (25 tier-1 families + sub-nodes) — resolve a theme id.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query | no | Optional free-text filter over the megatrend taxonomy; omit → the browsable tree. |
List the user's OWN portfolios (id, name, base_currency, account_type, nav, total_return_pct, unrealized_pnl, position_count, …) so you can pick one to analyze. Call this FIRST whenever the user says 'my portfolio' without a number — show the names, then pass the chosen id to portfolio_context. Owner-scoped: only ever the user's own portfolios. If count is 0 (they own none),
Takes no parameters.
An LLM-ready snapshot of ONE of the user's OWN portfolios (owner-scoped) — analyze it directly. NO window → default: meta · summary · a lifetime(all-time) + recent(~12mo) block, EACH with performance (return/cagr/sharpe/sortino/calmar/drawdown/vol/win_rate) + attribution · positions · closed_positions (realized_pnl) · composition (point-in-time holdings) · `allocation
| Parameter | Type | Required | Notes |
|---|---|---|---|
| portfolio_id | integer | yes | The portfolio's id (call list_portfolios first if the user says 'my portfolio' without a number). |
| from_ | no | Window start YYYY-MM-DD — re-scopes performance/attribution/composition together. | |
| to | no | Window end YYYY-MM-DD. | |
| window | no | Re-scope perf+attribution+composition to a period: 7d/…/ytd. Omit → lifetime + recent(12mo). | |
| snapshots | no | Point-in-time composition cadence: year|quarter|month|week|day|off (default quarter); auto-coarsens over long spans. |
🔴 WRITE — save a NOTE to the user's account (this PERSISTS data; it is NOT a read/lookup). Typical flow: FIRST give the user your complete answer as usual, THEN — as the final step of the turn — call write_note once to keep it. 🔴 IF YOUR ANSWER CONTAINED A TABLE / NUMERIC COMPARISON, keep it as a MARKDOWN table in body — lead with the table, do NOT re-narrate the numbers int
| Parameter | Type | Required | Notes |
|---|---|---|---|
| subject | string | yes | Short title / subject line of the note. |
| body | string | yes | The note's full text in MARKDOWN — the distilled answer/observation/thesis to persist. PRESERVE the structure of your answer: any numeric / tabular data goes in a markdown TABLE (pipe syntax `| col | |
| summary | no | One-line summary (shown when the note is collapsed). | |
| note_type | no | reference (concept/understanding) | tracking (dated market read) | thesis | decision. | |
| category | no | Optional free-text category. | |
| tags | no | Free-text tags for retrieval. | |
| stocks | no | PRIMARY stocks/assets the note is ABOUT — an exact Ava Advisor ticker OR a plain NAME the SERVER resolves (any asset class; an ambiguous name → reconfirm). ⚠️ A COMMODITY discussed via the trade tools | |
| mentioned_stocks | no | Secondary tickers merely referenced (a peer named in passing). | |
| megatrend_ids | no | ADVANCED — raw megatrend node id(s) if you already hold one (e.g. a theme tool's megatrend.id). Normally just name the theme in gics and the server routes it to a megatrend. | |
| gics | no | The note's INDUSTRY/SECTOR or THEME — a GICS code OR plain English ('banks', 'semiconductors', 'AI'); the server resolves each and routes a curated theme to a megatrend link. (Derived free if the note | |
| portfolio_id | no | Link the note to one of the user's portfolios, if relevant. | |
| agent | no | Which app is writing the note — EXACTLY one of: Claude | Claude Code | Claude Coworks | ChatGPT | Codex | Gemini | Other (case-sensitive); the server falls back to the connection's clien | |
| context | no | OPTIONAL but RECOMMENDED — paste the user's FULL request VERBATIM (any language: 'ขอราคาผลไม้ apple', 'compare Apple and Microsoft stock'). The server uses it to disambiguate which candidate each `tic |
Recall the USER'S OWN saved notes — their personal investment knowledge base (owner-scoped, only ever their notes). Two combinable ways: • SEMANTIC recall via q — natural language ("what did I say about foundry manufacturing?"); results are ranked by MEANING with a similarity score (cross-language OK). • Structured filters: stock (a ticker → their notes about it), `th
| Parameter | Type | Required | Notes |
|---|---|---|---|
| q | no | Semantic query text — recall notes by MEANING (cross-language). | |
| stock | no | Filter to notes about a ticker (name/ticker → resolved). | |
| theme | no | Filter to a theme (name → megatrend, incl. subtree rollup). | |
| gics | no | GICS code filter. | |
| tag | no | Tag filter. | |
| note_type | no | Filter by type (reference/tracking/thesis/decision). | |
| since | no | Only notes since this date/window (e.g. 30d or YYYY-MM-DD). | |
| limit | no | Max rows (default 20, hard cap 50). Keep SMALL + narrow the scope; page/refine rather than dump — heavily-covered assets have hundreds of articles. | |
| relation | no | With stock=: direct (note ABOUT it) | indirect (merely referenced) | any (default). | |
| context | no | OPTIONAL but RECOMMENDED — paste the user's FULL request VERBATIM (any language: 'ขอราคาผลไม้ apple', 'compare Apple and Microsoft stock'). The server uses it to disambiguate which candidate each `tic |
The FULL saved note (including its body) by id — owner-scoped. Use after query_notes when you need the complete content, not just the summary.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| note_id | integer | yes | The note's id (from query_notes results). Owner-scoped → 404 if not yours. |
List the user's OWN feed playlists (id, name, emoji, item_count, items[{kind,ref_id,label}]). 🔴 Call this FIRST whenever the user refers to a playlist BY NAME ("add X to My Tech List") — you match the (possibly mistyped / mis-spaced) name against the REAL names yourself. If the user didn't say WHICH and they own more than one, ASK which one (show the names). If they own NONE, offer to
Takes no parameters.
🔴 WRITE — create a new feed playlist (owner-scoped). Do NOT auto-create from a possible typo: call list_playlists FIRST and only create when the name genuinely doesn't exist, or the user confirms a new one. Returns the created playlist {id, name, …}.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | The new playlist's display name. |
| emoji | no | Optional emoji icon for the playlist. |
🔴 WRITE — add one or more STOCKS/assets to a playlist (batch, idempotent). Each entry may be an exact Ava Advisor ticker OR a name/symbol the server resolves (any asset class: stock/ETF/commodity/crypto/FX). An ambiguous name (e.g. same name across markets) returns a needs_confirmation reconfirm — pick the exact ticker and re-call. playlist_id from list_playlists. Re-adding an e
| Parameter | Type | Required | Notes |
|---|---|---|---|
| playlist_id | integer | yes | The playlist's id (from list_playlists). |
| tickers | array | yes | Stocks to add — an EXACT Ava Advisor ticker (AAPL.US, BTC-USD.CC) OR a plain NAME/symbol ('Apple', 'ซัมซุง', 'btcusd') which the SERVER resolves for you (any asset class). An ambiguous/same-name-a |
| context | no | OPTIONAL but RECOMMENDED — paste the user's FULL request VERBATIM (any language: 'ขอราคาผลไม้ apple', 'compare Apple and Microsoft stock'). The server uses it to disambiguate which candidate each `tic |
🔴 WRITE — remove one or more stocks (by ticker) from a playlist (batch). playlist_id from list_playlists. Returns {removed, not_found, item_count} — relay not_found (a ticker that wasn't in the playlist) to the user.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| playlist_id | integer | yes | The playlist's id. |
| tickers | array | yes | Ava Advisor tickers to remove from the playlist. |
Price context for a tradable ticker (stock / ETF / index-ETF / forex / crypto / commodity), split & dividend-ADJUSTED — a DIGESTED read, NOT a raw bar series: windowed changes (1w/1mo/3mo/ytd/1y), 52-week range + drawdown_from_52w_high_pct (how far below the peak), realized vol + realized_vol_percentile_1y (is today's vol high vs its OWN year), trend vs SMA50/200, volume conviction
| Parameter | Type | Required | Notes |
|---|---|---|---|
| ticker | string | yes | A Ava Advisor ticker OR a company/asset NAME — the SERVER resolves it (no lookup step). A COMPANY/proper NAME passes AS-IS in any language (茅台/トヨタ/삼성 resolve natively — never translate a name); a gene |
| to | no | As-of date YYYY-MM-DD — features computed as of that day (point-in-time). Omit → latest. | |
| from_ | no | Lower bound of price history YYYY-MM-DD. Narrowing below ~1y nulls the long windows. Price history goes back DECADES (unlike news, 2026+). | |
| country | no | OPTIONAL market disambiguator — pass ONLY when ticker is a plain NAME that collides across markets (the Thai vs Korean 'KBANK'); omit for a distinctive name or an exact ticker (an unneeded country s | |
| context | no | OPTIONAL but RECOMMENDED — paste the user's FULL request VERBATIM (any language: 'ขอราคาผลไม้ apple', 'compare Apple and Microsoft stock'). The server uses it to disambiguate which candidate each `tic |
The LATEST TRADED PRICE today for US stocks / ETFs — a DELAYED intraday quote (typically ~15 minutes behind), with today's change vs the previous close. Use it when the user asks about TODAY during the US session ("why is UBER down today", "where is NVDA trading"): every other price tool is END-OF-DAY (last close). US listings only — any other market returns not_covered (use stock_pr
| Parameter | Type | Required | Notes |
|---|---|---|---|
| tickers | yes | 1–10 US tickers or company NAMES (e.g. UBER.US, Uber, AAPL) — names are resolved for you. | |
| context | no | OPTIONAL but RECOMMENDED — paste the user's FULL request VERBATIM (any language: 'ขอราคาผลไม้ apple', 'compare Apple and Microsoft stock'). The server uses it to disambiguate which candidate each `tic |
What a US ETF / fund HOLDS: top holdings with % of NAV, sector (GICS) and country weights, plus the fund facts — AUM, expense ratio, benchmark / index or active, holdings count, top-10 concentration, tracking difference (SEC N-PORT / N-CEN filings; as_of dates say how fresh). Use it for "what does SCHD hold", "how concentrated is QQQ", "SPY vs VOO fees", "sector mix of XLE". ETFs rar
| Parameter | Type | Required | Notes |
|---|---|---|---|
| ticker | string | yes | A Ava Advisor ticker OR a company/asset NAME — the SERVER resolves it (no lookup step). A COMPANY/proper NAME passes AS-IS in any language (茅台/トヨタ/삼성 resolve natively — never translate a name); a gene |
| top | no | How many top holdings to list (default 15, max 50). | |
| context | no | OPTIONAL but RECOMMENDED — paste the user's FULL request VERBATIM (any language: 'ขอราคาผลไม้ apple', 'compare Apple and Microsoft stock'). The server uses it to disambiguate which candidate each `tic |
A SMALL, bounded price SERIES for drawing a chart (a device screen, a sparkline) plus headline numbers — the counterpart of stock_prices, which is a digested read with no series. Returns ticker, name, metric_kind (yield = a bond yield / rate: levels in %, moves in bps via period_change_bps / change_bps_by_period), currency, range, interval (day|week|month), period_start_date
| Parameter | Type | Required | Notes |
|---|---|---|---|
| ticker | string | yes | A Ava Advisor ticker OR a company/asset NAME — the SERVER resolves it (no lookup step). A COMPANY/proper NAME passes AS-IS in any language (茅台/トヨタ/삼성 resolve natively — never translate a name); a gene |
| range | no | Chart window. 1w|1mo|3mo → daily points; 6mo|1y → weekly; 3y|5y → monthly; 10y → 2-month; max = full history (1–12-month points). Default 1mo. Never more than 65 points. | |
| include_volume | no | Add series.volumes (summed per week/month). Default false — closes only. | |
| country | no | OPTIONAL market disambiguator — pass ONLY when ticker is a plain NAME that collides across markets (the Thai vs Korean 'KBANK'); omit for a distinctive name or an exact ticker (an unneeded country s | |
| context | no | OPTIONAL but RECOMMENDED — paste the user's FULL request VERBATIM (any language: 'ขอราคาผลไม้ apple', 'compare Apple and Microsoft stock'). The server uses it to disambiguate which candidate each `tic |
The same digested price context for UP TO 50 tickers in ONE call — a watchlist / cohort snapshot ("which of these names are most extended, or deepest in drawdown"). Returns results (in input order) + unresolved (unknown / no-price-history tickers). to/from_ as in stock_prices.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| tickers | array | yes | UP TO 50 items, EACH a Ava Advisor ticker OR a plain company/asset NAME — the SERVER resolves names (pass context to disambiguate); a watchlist/cohort. Returns results in input order + `unresolved |
| to | no | As-of date YYYY-MM-DD (point-in-time). Omit → latest. | |
| from_ | no | Lower bound of price history YYYY-MM-DD (below ~1y nulls the long windows). | |
| context | no | OPTIONAL but RECOMMENDED — paste the user's FULL request VERBATIM (any language: 'ขอราคาผลไม้ apple', 'compare Apple and Microsoft stock'). The server uses it to disambiguate which candidate each `tic | |
| chart_range | no | Leave unset. For apps/devices that draw charts themselves: adds chart (≤ 65 points) to the first 5 results. |
⭐ How the FUTURES market is POSITIONED — the CFTC Commitment of Traders lens for commodities, FX, rates and equity indices (the non-equity TWIN of options_sentiment; the two together cover positioning for every asset class). Answers 'is this trade crowded?', 'is the smart money leaning the other way?', 'is the good news already priced into positioning?'. Returns: crowding (the specul
| Parameter | Type | Required | Notes |
|---|---|---|---|
| q | string | yes | A COMMODITY / FX / RATES / INDEX to read FUTURES positioning for — a concept IN ENGLISH (oil, gold, copper, natural gas, US 10Y treasury, euro, S&P 500; translate first) or a Ava Advisor ticker (WTI.C |
⭐ FUTURES / CFTC-COT speculative positioning extremes — which commodity / FX / rate / equity-INDEX FUTURES have the CROWD at a 3-year extreme right now (NOT single-stock equity options → for 'stretched put/call' or crowded STOCK names use options_scan). The discovery scan across every tracked futures market at once. COT / FUTURES lens ONLY. Surfaces stretched positioning (≥90th or ≤10t
| Parameter | Type | Required | Notes |
|---|---|---|---|
| asset_class | no | Filter: commodity | fx | rates | equity_index. Omit = all. | |
| limit | no | Max markets (default 15, max 50). |
⭐ Company FINANCIAL STATEMENTS — income / balance / cash-flow + auto-detected abnormality signals. Read ONE company or COMPARE up to 8 (revenue, growth, margins, ROE, FCF…), on a clean normalized feed uniform across every industry (banks, insurers, REITs). 🔴 To compare SEVERAL, pass them ALL in ONE call (tickers='TSLA.US,MSFT.US') — a single call aligns them on a common basis+curr
| Parameter | Type | Required | Notes |
|---|---|---|---|
| tickers | yes | 1–8 comma-separated COMMON-STOCK companies to read/compare financial statements for. EACH entry can be EITHER an exact Ava Advisor ticker ('AAPL.US', '2330.TW') — used directly — OR a bare symbol / co | |
| period | no | OPTIONAL time selector, mapped to each company's FISCAL year. Forms: '5' or '5y' = last 5 years (default 5) · '2022' = that fiscal year · '2022-2023' = a range · '2020,2022' = specific years · '5q' = | |
| fields | no | OPTIONAL — the granularity dial. LEAVE EMPTY for the DIGEST (headline + ratios ROE/ROA/margins/debt/current/quick + capital-return dividends/buybacks + abnormality signals) — the safe default that alr | |
| currency | no | Convert ABSOLUTE totals to this currency (e.g. USD) at each period's date so cross-currency companies compare — margins/growth are currency-neutral anyway. A multi-company compare defaults to USD. | |
| context | no | OPTIONAL but RECOMMENDED — paste the user's FULL request VERBATIM (any language: 'ขอราคาผลไม้ apple', 'compare Apple and Microsoft stock'). The server uses it to disambiguate which candidate each `tic |
EXECUTE a unified screen = universe ∩ fundamental ∩ technical ∩ options (any leg optional; each grammar resolved server-side — key or plain English). Returns {universe, count, sort, executed_criteria (the resolved request that ran — save/re-run it verbatim), results:[{head_listing_id, ticker, name, score, matched_legs, matched:{ta, fundamental:{<metric>:{value, basis, window?, series?, per
| Parameter | Type | Required | Notes |
|---|---|---|---|
| fundamental | no | The FUNDAMENTAL leg — AND-ed conditions (each = a METRIC concept + a SHAPE pattern + its value; key or plain English, server-resolved). e.g. roe>20% & 3y revenue growth → [{concept:'roe',pattern:' | |
| ta | no | The TECHNICAL leg — a THEN chain of steps (usually ONE). Each signal = pattern (SHAPE) + operands a/b (LINES), key or plain English, server-resolved. e.g. golden cross + volume spike → [{anchor: | |
| options | no | The OPTIONS leg — an options-behaviour term, key or plain English ('fear_building','iv_cheap','the crowd getting brave'), server-resolved. Intersects the ~557 US-optionable names showing it; an option | |
| options_horizon | no | Options horizon: 'long' (default, positioning/conviction) or 'short' (gamma/near-term). Only meaningful with options. | |
| gics | no | OPTIONAL universe SCOPE — industry/theme concept(s), CSV of ATOMIC concepts (decompose 'banks and insurance' → 'banks,insurance'). Each = English ('banks','semiconductors','AI') or a GICS code prefix | |
| country | no | OPTIONAL operating-country scope — one or MORE ISO-2 codes, OR'd (a stock matches if in ANY of them). e.g. ['US'] · ['CN','US'] for China+US · ['TH','SG','MY']. Omit = all countries. | |
| size | no | OPTIONAL market-cap size tier(s), OR'd — 'large'|'mid'|'small'|'micro'. RELATIVE per-market MSCI tiers ('small' = small FOR ITS market, not in USD; no separate 'mega'). For an ABSOLUTE USD size / 'und | |
| asset_type | no | OPTIONAL asset type(s), OR'd: 'Common Stock','ETF','Crypto','Currency','Commodity','Bond','Index','Fund','ADR','REIT'. Crypto≠Currency (forex); gold/silver=Commodity. Omit = all (a company screen usua | |
| theme | no | ADVANCED raw-passthrough — megatrend THEME node_id(s), OR'd (core member of ANY). Normally OMIT: name the theme in gics ('AI') and the server routes it. Use only with a known node_id. | |
| exclude_gics | no | OPTIONAL — EXCLUDE industry/theme CONCEPT(s), CSV, codes or plain English ('banks','AI'); server-resolved & routed same as gics. Applies to EVERY leg ('high-yield but NOT banks' = fundamental divide | |
| exclude_country | no | OPTIONAL — EXCLUDE operating-country(ies), ISO-2. 'global ex-US' = exclude_country=['US']. Universe-level, applies to every leg. | |
| exclude_theme | no | ADVANCED raw-passthrough — EXCLUDE megatrend THEME node_id(s). Normally just name the theme to exclude in exclude_gics ('not AI'); the server routes it. Universe-level negation across every leg. | |
| min_market_cap_usd | no | OPTIONAL ABSOLUTE min market cap USD (50000000000 = $50bn). Use this (not size) for a USD floor / 'under $X' band. | |
| max_market_cap_usd | no | OPTIONAL ABSOLUTE max market cap USD (2000000000 = under $2bn). Pair with min for a band. | |
| timeframe | no | Chart for the TA leg: 1=daily (default) · 2=weekly · 3=monthly. TA operand periods & for_bars are counted in BARS of this timeframe. | |
| window_bars | no | TA-leg LOOKBACK in bars of timeframe — how far back a signal may have fired / the span a THEN-chain completes within ('…within the last N days'; 'divergence within 50 days' → 50). Whole ta leg; om | |
| dividend_min_streak_years | no | OPTIONAL dividend gate — keep stocks with a no-cut dividend streak ≥ N years (reliability streak in a 10-year window, capped at 10; NOT the full age). A membership gate — combine with a fundamental/ta | |
| dividend_min_cagr | no | OPTIONAL dividend gate — 5-year dividend CAGR ≥ this % (5 = ≥5%/yr). Needs a fundamental/ta/options base leg too. | |
| sort | no | Rank key: 'ta' (default, TA chain score) · 'options' (use when options present) · 'mcap' · a TA-context oscillator ('rsi'/'adx' — 'most overbought'→'rsi') · or any fundamental metric key in the resu | |
| limit | no | How many stocks to SHOW (default 10). Over-fetches a ~4× buffer (capped 100) so 'show me a few more' is served from THIS result — don't re-screen; re-screen only to exceed the buffer. |
⭐ The cohort SCREENER: "which stocks in <a group> are interesting / winning / losing / most-talked-about, and how cheap or expensive do they trade?" Ranks the companies in a scope by how news is hitting them (lead with the winners-vs-losers split), and EVERY row carries its VALUATION (P/E, P/B, dividend yield, 52w) — so this is also the tool for "which in <group> are cheap / worth inve
| Parameter | Type | Required | Notes |
|---|---|---|---|
| megatrend | no | A megatrend node — a name/slug (resolved for you, e.g. foundry) or an int node id. CSV for several. | |
| gics | no | A GICS sector/industry — a CODE PREFIX (sector 25 / group 2550 / industry 255010 / sub 25501010, CSV for several) OR plain English ('banks', 'semiconductors', 'biotech'); the server resolves i | |
| country | no | Market filter — CSV of ISO-2 codes (e.g. US or CN,TW,HK). 🌍 If the question names a NATIONALITY or REGION ('European','Thai','Chinese','ASEAN'), put it HERE — never leave it inside a concept/q/ | |
| direction | no | pos → winners only · neg → losers/at-risk only · omit → all. | |
| aspect | no | Impact CHANNEL filter (e.g. demand, competition, tariff, monetary). Omit → all channels. | |
| order_by | no | news_count (default, most attention) | relevance | market_cap. | |
| min_impact | no | Min article importance, 1–5. | |
| min_relevance | no | Min centrality to its news, 0–1. | |
| min_market_cap_usd | no | Min market cap, USD. | |
| window | no | News-recency window: 7d/30d/90d/180d/1y or mtd/qtd/ytd. Omit → a sensible default. (Price history is unaffected — this only scopes the NEWS lens.) | |
| from_ | no | Start date YYYY-MM-DD. ⚠️ per-stock impact scoring only exists from ~2026-07-03 (earlier → empty). | |
| to | no | Upper time bound, ISO date YYYY-MM-DD. | |
| gate | no | megatrend scope only: both (default, strict member AND epicenter) | membership (looser). | |
| limit | no | Max rows (default 20, hard cap 50). Keep SMALL + narrow the scope; page/refine rather than dump — heavily-covered assets have hundreds of articles. |
💰 THE income screener — "which stocks pay a high / reliable / growing DIVIDEND?" Ranks the DIVIDEND-PAYING universe (all payers, not just news-covered) and hands you the raw pieces to tell a real income name from a YIELD TRAP (don't trust a headline yield). 🔴 A multi-metric ask that also needs P/E / financial-health (dividend AND low P/E AND healthy) belongs in screen_unified (a
| Parameter | Type | Required | Notes |
|---|---|---|---|
| country | no | Market filter — CSV of ISO-2 codes (e.g. US or CN,TW,HK). 🌍 If the question names a NATIONALITY or REGION ('European','Thai','Chinese','ASEAN'), put it HERE — never leave it inside a concept/q/ | |
| gics | no | A GICS sector/industry — a CODE PREFIX (sector 25 / group 2550 / industry 255010 / sub 25501010, CSV for several) OR plain English ('banks', 'semiconductors', 'biotech'); the server resolves i | |
| exclude_gics | no | OPTIONAL — EXCLUDE a sector/industry from the screen (GICS code prefix e.g. '4010', OR plain English 'banks' — the server resolves the name). 'high-yield stocks but NOT banks' = exclude_gics='banks'. | |
| min_yield | no | Min dividend yield in PERCENT (3 = 3%). | |
| max_yield | no | Max yield % — guards against trap-tier yields. | |
| min_streak_years | no | Min no-cut streak years (0–10; caps at 10 = clean across the whole tracked decade). HIGHER = more reliable. A low bar lets a name that CUT recently through — it may have only rebuilt a short streak si | |
| min_cagr | no | Min 5-year dividend CAGR, %. | |
| min_market_cap_usd | no | Min market cap, USD. | |
| max_market_cap_usd | no | Max market cap, USD. | |
| max_payout | no | Max payout ratio — 'high yield but payout NOT stretched'. Fraction (0.7) or percent (70). | |
| order_by | no | yield (default) | streak | cagr. | |
| limit | no | Max rows (default 20, hard cap 50). Keep SMALL + narrow the scope; page/refine rather than dump — heavily-covered assets have hundreds of articles. |
International TRADE STATISTICS — countries' import/export flows, partners, rankings and balances from UN Comtrade (official customs data). NOT securities trading: it never places, routes or executes an order. Pick mode; each mode reads a subset of the params (see each param's note).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| mode | string | yes | flows = one country's trade of a product over time · top_partners = a country's biggest trading partners for a product · top_traders = rank COUNTRIES by trade of a product (world/region) · balance = a |
| reporter | no | Reporting country — name/ISO/M49 ('Thailand'/'THA'/'764'), server-resolved. REQUIRED for flows/top_partners/balance. | |
| codes | no | Product: HS code(s) OR a plain-English product ('copper','cars'), server-resolved. REQUIRED for flows/top_partners/top_traders; omit for balance → TOTAL (all goods). | |
| partner | no | Partner country, or 'World' (default). flows/balance only. | |
| flow | no | export/import/both. Defaults: flows/top_partners=export, top_traders=import. | |
| period | no | Year '2023' / list '2020,2021' / range '2015:2024' / 'lastN' / 'latest'. DYNAMIC — never hardcode. Defaults vary by mode. | |
| type | no | goods (default, HS) | services (EBOPS, value-only). flows/top_partners. | |
| freq | no | annual (default) | monthly (YYYYMM, goods only). flows only. | |
| mirror | no | Also return the partner-reported figure + discrepancy (China esp.). flows only, goods. | |
| scope | no | top_traders only: world (default) / continent / subregion / econ group (asean/eu/g7) / CSV ISO-2. | |
| rank_by | no | top_traders only: value (default) / growth (CAGR) / streak. | |
| order | no | top_traders only: desc (default) / asc; for streak = run direction. | |
| limit | no | top_partners/top_traders: top-N (default 10, max 50). | |
| min_value_usd | no | top_traders only: floor to drop tiny-base noise. | |
| context | no | OPTIONAL but RECOMMENDED — the user's FULL request VERBATIM (any language). Used to pick the right code + SUPPLY STAGE (ore vs concentrate vs refined) and leaf-vs-family granularity for a codes conc |
"What is <macro indicator> / is it high vs history / how has it moved" — ONE FRED series, feature-extracted. Pass a macro CONCEPT (the server resolves it to the canonical series_id + the right transform) or an exact id. Returns series (transformed points) + an analysis block: latest (+date — always say as-of-when), trend, change (vs prior/YoY/window), peak/trough, and 🔑
| Parameter | Type | Required | Notes |
|---|---|---|---|
| q | string | yes | A macro CONCEPT (any language — 'inflation', 'core PCE', 'unemployment rate', '10y yield', 'อัตราว่างงาน') OR an exact FRED series_id you already hold (CPIAUCSL). The SERVER resolves a concept → the c |
| transform | no | FRED units transform — lin (level: a rate/ratio) · pc1 (YoY %: inflation/price index) · pca (annualized %: real GDP) · pch (period %) · chg/ch1 (abs Δ). Omit → the resolved series' suggest | |
| from_ | no | Start — ISO date or relative window 10y/5y/qtd (dynamic, anchored to today). | |
| to | no | End — ISO date. Omit → latest. | |
| country | no | OPTIONAL ISO-2 to bias a CONCEPT to a country's series (JP, DE) — the nationality from the question goes HERE, not in series_id. FRED intl coverage is uneven; omit for US (default). | |
| context | no | OPTIONAL but RECOMMENDED — the user's FULL request VERBATIM (any language). Used to pick the right series VARIANT (headline vs core, SA vs NSA). e.g. 'is US core inflation still sticky?' |
"<structural indicator> for <country>, over time / vs other countries" — World Bank annual data, feature-extracted (open data, 3 credits). Pass a structural CONCEPT (the server resolves it to the canonical indicator + variant) or an exact indicator id. Returns results:[{country, series:[{year,value}], analysis}] (one per country); analysis = latest(+year), trend, cagr_pct, `c
| Parameter | Type | Required | Notes |
|---|---|---|---|
| q | string | yes | A cross-country STRUCTURAL concept (any language — 'household consumption', 'GDP per capita', 'poverty rate', 'life expectancy', 'government debt', 'การบริโภค') OR an exact World Bank indicator id you |
| country | string | yes | Country as ISO3 or a name (Thailand/THA); COMMA-SEP for a cross-country compare (THA,JPN,USA); or an aggregate (WLD world · EMU euro area · HIC/MIC/LIC income groups). |
| from_ | no | Start year (default ≈ last 15y, dynamic). | |
| to | no | End year (default latest). | |
| context | no | OPTIONAL but RECOMMENDED — the user's FULL request VERBATIM (any language). Used to pick the right unit VARIANT (% of GDP vs US$ vs per-capita vs real). e.g. 'compare household spending as a share of | |
| database | no | ADVANCED — the indicator's source database (WB_WDI, IMF_FSIC). Auto-derived from the resolved concept; override only for a non-WDI id you pass directly. |
After answering, propose 1-2 data-backed 'explore further' hooks that pull the user into the graph's moat (ripple/relations/commodity/off-coverage). Server-side: theme_summary(has ripple/ entities/aspects) + a semantic news search, then deepseek curates ONLY data-backed hooks. Validated in /tmp/mcp-gate/cta_tool.js (there via direct probes; here via the summary composite).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| theme | string | yes | A theme/scope to suggest a next-step call-to-action for. |
| window | string | no | News-recency window: 7d/30d/90d/180d/1y or mtd/qtd/ytd. Omit → a sensible default. (Price history is unaffected — this only scopes the NEWS lens.) |
CHANGE a screener formula you already have — add, remove or replace conditions as ops; the server places, resolves and merges them and checks the result (no engine JSON to write). Use it for EVERY change while building a screen with the user; use screen_unified (mode 'run') when the user wants to SEE the stocks of a formula. Returns {ok, criteria (the new formula, saved shape — screen_
| Parameter | Type | Required | Notes |
|---|---|---|---|
| ops | array | yes | The changes, in order (1–8): ONE condition per op, written exactly as screen_unified takes it (same fields), plus WHERE it goes (op / target / step / rel). |
| criteria | no | The formula to change, in the saved shape — the user's current formula or an executed_criteria / criteria a screen tool returned. Omit (or {}) to build from empty. | |
| keep | no | Paths of values the USER set by hand ('ta.0.anchor.0.b', 'universe.include.0.country') — never overwritten or removed unless an op says user_asked. | |
| mode | string | no | 'check' = place, resolve and validate (fast, no market data) · 'count' = also how many stocks match the new formula (exact up to 500). |
ONE market-pulse read across every subject type — a news + market lens on an asset, a theme/sector, a commodity, a bond/rate/curve, a macro dashboard, or your portfolio. Pick kind, put the subject in target. Replaces the per-type asset/theme/commodity/bond/macro/portfolio pulse tools.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| kind | string | yes | WHICH pulse: asset (company/ETF/index-ETF/crypto) · theme (sector/industry/megatrend) · commodity (metal/energy/agri) · bond (govt-yield/rate/curve) · macro (FRED dashboard) · portfolio (a |
| target | string | yes | The SUBJECT for kind. asset: a ticker/company NAME ('NVDA','Apple'; the server resolves it). theme: a sector/industry/theme in ENGLISH ('semiconductors','banks','AI') — put nationality in country, |
| window | no | News-recency window: 7d/30d/90d/180d/1y or mtd/qtd/ytd. Omit → a sensible default. (Price history is unaffected — this only scopes the NEWS lens.) | |
| country | no | ISO-2 CSV. theme: nationality scope ('European'→'GB,DE,FR,IT,ES,NL,CH,SE'; 'Thai'→'TH'). asset/macro: optional. Ignored by commodity/bond/portfolio. | |
| limit | no | Max rows (default 20, hard cap 50). Keep SMALL + narrow the scope; page/refine rather than dump — heavily-covered assets have hundreds of articles. (asset only) | |
| top_n | no | portfolio only: how many top holdings to analyze (default 3, cap 5). | |
| context | no | asset only — OPTIONAL but RECOMMENDED — paste the user's FULL request VERBATIM (any language: 'ขอราคาผลไม้ apple', 'compare Apple and Microsoft stock'). The server uses it to disambiguate which candid |
- Every tool — any call limit is its publisher’s, not ours
- No card, and mcprush charges nothing for it
- Runs at its publisher’s own address — this marketplace is not in the path
- Nothing to cap, because mcprush bills nothing
What counts against your monthly calls
| Tool | Unit | Calls used | Out of the allowance |
|---|
Nothing here is billable: mcprush charges nothing to install Ava Advisor or to call it, at any volume.
Two independent axes, because powerful and malicious are different questions. The grade is threat only. The capability level is blast radius, and it is never a penalty on the grade — it is priced as one subtract-only term in the score, where you can see it.
| Term | Level | What it prices | Points |
|---|---|---|---|
| capability-exposure | moderate | capability blast radius (moderate) — client exposure if the model is manipulated | −3 |
| coverage-honesty | manifest | inspection depth (manifest) — how much of the target the scan could see | −4 |
What the scan could actually read
A grade is only as meaningful as its coverage, so the scanner publishes its own depth before it publishes its result.
The scan read each tool’s name, description, input schema and annotations exactly as the server listed them the last time it answered us; no code was reviewed. We ask the server again about once a month, and a list that changed is graded again.
The implementation source was not read — this reflects the declared tool metadata only.
Capability — what it could do if the model were manipulated
Tags derived from each tool’s schema and the implementation, not from what the tool calls itself. moderate is the level these add up to.
| Tool | Capability tags | Why the tag was assigned |
|---|---|---|
| theme_summary | no tags | |
| brief | no tags | |
| search_news | no tags | |
| news_feed | no tags | |
| stock_impact | no tags | |
| options_sentiment | untrusted-input | untrusted-input: keyword "fetch" |
| options_scan | no tags | |
| theme_players | no tags | |
| private_movers | no tags | |
| relationships | no tags | |
| list_themes | untrusted-input | untrusted-input: keyword "browse" |
| list_portfolios | no tags | |
| portfolio_context | untrusted-input | untrusted-input: keyword "fetch" |
| write_note | state-write | state-write: declares readOnlyHint: false |
| query_notes | no tags | |
| get_note | no tags | |
| list_playlists | no tags | |
| create_playlist | state-write | state-write: declares readOnlyHint: false |
| add_to_playlist | state-write | state-write: declares readOnlyHint: false |
| remove_from_playlist | state-write | state-write: declares readOnlyHint: false, destructiveHint: true |
| stock_prices | no tags | |
| latest_quote | no tags | |
| etf_profile | no tags | |
| price_series | no tags | |
| stock_prices_batch | no tags | |
| positioning | no tags | |
| cot_extremes | no tags | |
| financials | no tags | |
| screen_unified | no tags | |
| screen_stocks | no tags | |
| screen_dividends | no tags | |
| trade | no tags | |
| fred_series | no tags | |
| wb_series | no tags | |
| suggest_cta | no tags | |
| edit_screen | no tags | |
| pulse | no tags |
Toxic-flow graph
The lethal trifecta, checked as a graph rather than as a checklist: untrusted input, a sensitive source and an external sink have to meet before there is a path worth worrying about.
The public result for this release does not print the flow graph, so there is nothing to show here. That is not the same as "no paths were found": what the scan did read is above, under coverage.
Supply chain and provenance
This is the first scan of this surface here, so there is nothing yet to compare it against.
Every result on this tab comes from one deterministic pass over the published package — offline, rule by rule, and auditable line by line above. Same methodology version, same bytes, same score.
Release history
This is an address its publisher runs: which release it serves is theirs to choose, so there is nothing here to pin. The history below is for reading; the current release on file is 1.0.1.
No release note was published with this version.
One review per account, from a signed-in account that does not publish this listing. Nothing else is asked — you can say what you think before you install it. Publishers can reply once per review, and a review can be edited or deleted by whoever wrote it.
Any signed-in account that does not publish Ava Advisor can review it, once — before installing it or after. A review from an account that has installed it is marked as one.
Nobody has reviewed this listing. The rating on the card is the mean of the reviews written here and nothing else, so there is no rating until somebody writes the first — which takes a signed-in account that does not publish it, and nothing else.