Onvexia: Crypto Fundamentals, Sentiment & Onchain Tracking
by onvexia.com · remote · no sign-in to list tools · v1.0.9 · published by com.onvexia
Crypto fundamentals, sentiment, whale tracking and influencer call accuracy for traders and agents.
66 tools: 4 change things and 62 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone0Claude Code: ask
- Changes things4Claude Code: ask: see these tools
- Only reads62Claude Code: allow: see these tools
2 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http onvexia https://onvexia.com/mcpFindings
Matches of fixed checks, with the text they matched.
- Warnrun_sql
The server marks "run_sql" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "run_sql" says "run": a word for a change.
The server marks "get_similar_posts" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "get_similar_posts" says "get": a word for reading.
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
66 tools
Changes things 4Claude Code: ask
get_similar_postsPosts nearest a given post in embedding space.Reads text others write1 finding
Why it is in this group
- The name "get_similar_posts" says "get": a word for reading.
- The description's first verb is "post": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- untrusted-inputThe name "get_similar_posts" says "get" and "post": it reads posts, which other people can write.
- untrusted-inputThe description's first sentence says "post" and "post": it reads posts, which other people can write.
Findings
- Warn
The server marks "get_similar_posts" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "get_similar_posts" says "get": a word for reading.
Description, as the server wrote it Posts nearest a given post in embedding space. Read the returned BAND, never the raw cosine — 43% of this corpus sits at 0.80-0.90 by default.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: Social · Similar posts
run_sqlRun a read-only SELECT against the platform's data.Reads text others write1 finding
Why it is in this group
- The name "run_sql" says "run": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Findings
- Warn
The server marks "run_sql" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "run_sql" says "run": a word for a change.
Description, as the server wrote it Run a read-only SELECT against the platform's data. One statement, 15s timeout, 10,000-row cap; truncation is always reported. Call get_sql_schema first for the queryable relations.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: SQL · Run read-only query
screen_assetsFilter the whole asset universe server-side and return the matches.Reads text others writeNo 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.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Filter the whole asset universe server-side and return the matches. `filter` is comma-separated `field:op:value` terms, e.g. "market_cap:gt:1000000000,funding_rate:lt:0" — assets over $1B whose funding rate is negative. Ops: gt, gte, lt, lte, eq, ne. Call screener_fields() first to see what fields exist and their ranges; guessing a field name gets the whole query rejected.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: Screener · Run screen
screener_fieldsEvery field the screener accepts, with type and description.Reads text others writeNo 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.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Every field the screener accepts, with type and description. Call this before building a filter rather than guessing field names.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: Screener · Available fields
Only reads 62Claude Code: allow
analyze_sentimentScore any text for crypto sentiment, tuned for crypto slang and tickers.Reads text others writeNo findings
Why it is in this group
- The name "analyze_sentiment" says "analyze": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Score any text for crypto sentiment, tuned for crypto slang and tickers. Takes arbitrary text you supply — it does not look anything up. General sentiment models read "this is going to zero" and "wagmi" badly; this one is fitted to the register. Returns polarity plus the terms that drove it, so a score can be checked rather than trusted.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: Sentiment · Score arbitrary text
get_address_coverageWhat we index per chain for watched addresses: what we see, what we miss, and what an empty feed actually means.Reads text others writeNo findings
Why it is in this group
- The name "get_address_coverage" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it What we index per chain for watched addresses: what we see, what we miss, and what an empty feed actually means.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: Coverage · Addresses
get_address_eventsEvents on watched addresses.Reads text others writeNo findings
Why it is in this group
- The name "get_address_events" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Events on watched addresses. Check get_address_coverage before reading an empty result as silence — below the observed USD floor, movement is invisible to us.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: On-chain · Address events
get_agent_findingsWhat this platform's own monitoring agents are currently complaining about — dead collectors, stale data streams, coverage drops.Reads text others writeNo findings
Why it is in this group
- The name "get_agent_findings" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it What this platform's own monitoring agents are currently complaining about — dead collectors, stale data streams, coverage drops. Worth checking before relying on a number: a stream flagged stale here is still being served, it is just old.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: Agents · Findings
get_ai_substanceDoes an AI-sector project actually ship code, against how much attention it gets.Reads text others writeNo findings
Why it is in this group
- The name "get_ai_substance" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Does an AI-sector project actually ship code, against how much attention it gets. Four states, and the fourth is not a verdict: ships public repo with development activity in 30 days silent public repo, no activity in 30 days no_public_repo no repository is published for this asset unmapped WE have not checked. This is a gap in OUR coverage and must NEVER be reported as the project failing to ship. RENDER sat in this state with 447 posts while publishing code the whole time. `dev_events_30d` is null rather than 0 for the last two states: there is no repository to have produced a zero. `attention_without_substance` is only ever set where the state was actually measured.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: Signal integrity · AI substance
get_aspect_sentimentSplit an asset's sentiment by what people are actually talking about: technology, price, team and community.Reads text others writeNo findings
Why it is in this group
- The name "get_aspect_sentiment" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Split an asset's sentiment by what people are actually talking about: technology, price, team and community. The aggregate can be flat while the parts disagree sharply — bullish on technology, bearish on team is a different situation from uniformly neutral, and only this tool can tell them apart.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: Sentiment · By aspect
get_assetAn asset's core profile by symbol: name, category and cross-system identifiers (CoinGecko id, contract addresses, chains).Reads text others writeNo findings
Why it is in this group
- The name "get_asset" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it An asset's core profile by symbol: name, category and cross-system identifiers (CoinGecko id, contract addresses, chains). Start here when you have a ticker and need to be sure which asset it refers to. Tickers collide across chains — if the symbol is ambiguous, resolve_ticker is the tool that says so instead of guessing.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: Assets · Profile
get_asset_fundamentalsGet the full fundamental brief for an asset: market snapshot, supply and valuation, project, TVL, revenue, treasury, security, governance, unlock schedule, derivatives positioning,…Reads text others writeNo findings
Why it is in this group
- The name "get_asset_fundamentals" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Get the full fundamental brief for an asset: market snapshot, supply and valuation, project, TVL, revenue, treasury, security, governance, unlock schedule, derivatives positioning, competitive rank, valuation ratios and a graded scorecard — in one call. READ THE SECTION STATES, NOT ONLY THE VALUES. Each section is `measured`, `not_held` or `failed`, and sections the asset class cannot have are returned separately in `not_applicable`. "This chain has no DAO treasury" and "we could not read it" are different facts and this response keeps them apart. Revenue is split: `S06` is the entity's own fees, `S06b` is the total earned by protocols deployed on a chain. The two can differ by two orders of magnitude and only the first accrues to the token.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: Fundamentals · Full brief
get_asset_platformsEvery chain an asset is deployed on, with its contract address and token decimals.Reads text others writeNo findings
Why it is in this group
- The name "get_asset_platforms" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Every chain an asset is deployed on, with its contract address and token decimals.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: Assets · Contract addresses
get_asset_revisionsMetrics for this asset that CHANGED after they were first published, with the old value, the new one and why.Reads text others writeNo findings
Why it is in this group
- The name "get_asset_revisions" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Metrics for this asset that CHANGED after they were first published, with the old value, the new one and why. An agent that quoted an earlier number can find out here that it moved.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: Assets · Revision history
get_asset_scoresAn asset's Galaxy Score and AltRank, with the components behind each.Reads text others writeNo findings
Why it is in this group
- The name "get_asset_scores" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it An asset's Galaxy Score and AltRank, with the components behind each. Galaxy Score is a composite of social and market health on a 0-100 scale; AltRank is relative standing against the rest of the universe, where 1 is best. READ THE COMPONENT BREAKDOWN — a score moved by sentiment and one moved by volume mean different things, and the composite alone cannot tell you which happened.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: Scores · Asset breakdown
get_asset_social_signalPer-asset social signal over time.Reads text others writeNo findings
Why it is in this group
- The name "get_asset_social_signal" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Per-asset social signal over time. The `available` field states plainly whether we hold it.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: Social · Asset signal
get_asset_technicalsGet support and resistance merged across 1w/1d/4h/1h, per-timeframe indicators, and derived spot/long/short setups for an asset.Reads text others writeNo findings
Why it is in this group
- The name "get_asset_technicals" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Get support and resistance merged across 1w/1d/4h/1h, per-timeframe indicators, and derived spot/long/short setups for an asset. Each level carries the timeframes that confirmed it and the method on each — a level agreed by four charts is a different claim from one seen on the hourly. `measured_against` names the exchange and pair every distance was computed from, and `price_age_minutes` says how old that price is. Setups are GEOMETRY, not forecasts: an entry is a level cluster, a stop is that level offset by a measured multiple of daily range, and `rr_ratio` is computed from those prices. `status` is derived per request — pending, in_zone or passed.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: Fundamentals · Technical levels
get_bot_detectionsAccounts flagged as automated or coordinated, with the behavioural evidence.Reads text others writeNo findings
Why it is in this group
- The name "get_bot_detections" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Accounts flagged as automated or coordinated, with the behavioural evidence. Volume from these should not be read as organic attention. READ `coverage` AND `note` BEFORE YOU READ THE LIST. No scorer is currently running, so `bot_probability` is NULL for every account and this list comes back EMPTY. An empty list here says nothing whatsoever about how clean the corpus is — it means nobody has been scored yet, and the response says so explicitly in `note`. `coverage.accounts_scored` vs `accounts_total` is the honest number: while the first is 0, treat this tool as reporting our coverage, not the market's cleanliness.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: Signal integrity · Bot detections
get_chain_coveragePer-chain coverage — tokens mapped, labelled addresses, whale transactions seen, and how many were attributed to a named entity.Reads text others writeNo findings
Why it is in this group
- The name "get_chain_coverage" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Per-chain coverage — tokens mapped, labelled addresses, whale transactions seen, and how many were attributed to a named entity. Attribution is Etherscan-derived, so it is strong on Ethereum and sparse on other chains.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: Coverage · Chains
get_constellationAsset co-mention graph — which assets are discussed together, with what was filtered out.Reads text others writeNo findings
Why it is in this group
- The name "get_constellation" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- untrusted-inputThe description's first sentence says "mention": it reads comments, which other people can write.
Description, as the server wrote it Asset co-mention graph — which assets are discussed together, with what was filtered out.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: On-chain · Entity graph
get_coordinated_campaignsDetected coordinated posting campaigns — the same message pushed by multiple accounts.Reads private dataReads text others writeNo findings
Why it is in this group
- The name "get_coordinated_campaigns" says "get": a word for reading.
What it can reach
- private-dataThe description's first sentence says "message": it reads messages.
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- untrusted-inputThe description's first sentence says "message": it reads messages, which other people can write.
Description, as the server wrote it Detected coordinated posting campaigns — the same message pushed by multiple accounts. Matching is exact-text, so this catches copypasta and misses the same campaign reworded.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: Signal integrity · Coordinated campaigns
get_correlationHow closely an asset's social activity tracks its price, with the lead/lag.Reads text others writeNo findings
Why it is in this group
- The name "get_correlation" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it How closely an asset's social activity tracks its price, with the lead/lag. Correlation is not causation and this endpoint does not claim it is. A high coefficient says the two series moved together over the window — it does not say which one moved first. Use get_leading_indicators for that question.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: Analytics · Social-price correlation
get_creator_rankingsRank social creators across the whole corpus by measured influence.Reads text others writeNo findings
Why it is in this group
- The name "get_creator_rankings" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Rank social creators across the whole corpus by measured influence. Corpus-wide, unlike get_influencers which is scoped to one asset. Influence is computed from engagement our collectors actually observed, so a creator we do not ingest is absent rather than ranked low — an absence here is a coverage fact, not a judgement.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: Scores · Creator rankings
get_data_coverageWhat data this platform actually holds right now: asset count, how many are priced, chains covered, labelled addresses, social corpus size, and freshness timestamps.Reads text others writeNo findings
Why it is in this group
- The name "get_data_coverage" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it What data this platform actually holds right now: asset count, how many are priced, chains covered, labelled addresses, social corpus size, and freshness timestamps. Call this to check whether an answer is supportable before asserting it.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: Coverage · Data
get_disclosuresPublic-record documents about issuers we track: SEC filings and federal court dockets.Reads private dataReads text others writeNo findings
Why it is in this group
- The name "get_disclosures" says "get": a word for reading.
What it can reach
- private-dataThe description's first sentence says "document": it reads documents.
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Public-record documents about issuers we track: SEC filings and federal court dockets. Exists because both RWA failures of 2026 were disclosed in public text before the price moved -- RealT's tax delinquency sat in court filings for a year, Goldfinch's borrower defaults were in governance forums before the vote. TWO THINGS YOU MUST NOT MISREPORT: A null `severity` means the document was FOUND and NOT ASSESSED. It is unjudged, not benign, and must never be summarised as "nothing concerning". `match_confidence: name_unverified` means the document was matched on a NAME and may concern a different company entirely -- searching for 'RealT' returns 'Broadway White Realty'. Do not attribute an unverified filing to an issuer without checking it. An empty result means nothing has been found, which for a subject never searched is not a statement about them at all.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: Fundamentals · Public disclosures
get_emerging_dex_pairsNewly created DEX pairs above a USD liquidity floor.Reads text others writeNo findings
Why it is in this group
- The name "get_emerging_dex_pairs" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Newly created DEX pairs above a USD liquidity floor. THE FLOOR IS RETURNED IN THE RESPONSE, and it is load-bearing: this is the long tail where most pairs are rugs or noise, and the floor is the only thing separating a signal from a list of scams. Raising it shrinks the result set and raises its quality.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: Market · Emerging DEX pairs
get_entitiesNamed entities extracted from social documents about an asset — people, organisations, products and other tickers mentioned alongside it.Reads private dataReads text others writeNo findings
Why it is in this group
- The name "get_entities" says "get": a word for reading.
What it can reach
- private-dataThe description's first sentence says "document": it reads documents.
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Named entities extracted from social documents about an asset — people, organisations, products and other tickers mentioned alongside it. Use it to find what a narrative is actually about.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: Assets · Entities
get_entity_flowsWhale flow per labelled entity over the window.Reads text others writeNo findings
Why it is in this group
- The name "get_entity_flows" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Whale flow per labelled entity over the window. Inflow to an exchange is distribution pressure; outflow is accumulation.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: On-chain · Entity flows
get_exchange_flowsNet movement of an asset into and out of exchange wallets.Reads text others writeNo findings
Why it is in this group
- The name "get_exchange_flows" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Net movement of an asset into and out of exchange wallets. Inflows are supply arriving somewhere it can be sold; outflows are supply leaving to self-custody. The conventional reading is distribution vs accumulation, but a single large transfer can be an exchange rebalancing its own wallets — check get_entity_flows before attributing intent.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: On-chain · Exchange flows
get_exchange_listingsRecent exchange listing announcements — an asset being added to a venue.Reads text others writeNo findings
Why it is in this group
- The name "get_exchange_listings" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Recent exchange listing announcements — an asset being added to a venue. A listing is an ATTENTION event, not a fundamental one: it changes who can buy, not what the project is worth. Use it to explain a volume or social spike, not as a valuation input.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: Market · Exchange listings
get_exchange_netflowPer-token flow onto and off exchanges.Reads text others writeNo findings
Why it is in this group
- The name "get_exchange_netflow" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Per-token flow onto and off exchanges. Inflow is distribution pressure, outflow is accumulation. net_usd where the token can be priced.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: On-chain · Exchange netflow
get_hodl_wavesBitcoin supply split by coin age over time — which cohorts are holding and which are moving.Reads text others writeNo findings
Why it is in this group
- The name "get_hodl_waves" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Bitcoin supply split by coin age over time — which cohorts are holding and which are moving.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: On-chain · HODL waves
get_influencer_leaderboardThe influencer leaderboard, ranked by what people actually got RIGHT rather than by how loud they are.Reads text others writeNo findings
Why it is in this group
- The name "get_influencer_leaderboard" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it The influencer leaderboard, ranked by what people actually got RIGHT rather than by how loud they are. rank_by="accountability" (default): scored Predictor vs Reactor — did the call come before the move, or after it. rank_by="accuracy": ranked by how often their price calls came true, by the Wilson lower bound of the hit rate (>= 20 resolved calls to rank), over `window_days` (30/90/180) judged at `horizon_hours` (24/168/720). Reach and accuracy are different axes, and most rankings only publish the first.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: Influencer ledger · Leaderboard
get_influencer_ledgerGet an influencer's track record.Reads text others writeNo findings
Why it is in this group
- The name "get_influencer_ledger" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Get an influencer's track record. `view` picks one of three records: accountability (default) — did their calls precede the move (Predictor) or react to it (Reactor)? Hit rate and track record. accuracy — did their price calls come true? Hit rate over 30/90/180 days at 24h, 7d and 30d, with the Wilson lower bound and excess over BTC. calls — the receipts: each call's post excerpt and link, entry price, and what happened after 24h/7d/30d. `horizon_hours` (24, 168, 720) picks which outcome the list is sorted and filtered on. One request per call. `influencer_id` is a creator id or username.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: Influencer ledger · Track record
get_influencersThe accounts driving conversation about one asset, by reach and engagement.Reads private dataReads text others writeNo findings
Why it is in this group
- The name "get_influencers" says "get": a word for reading.
What it can reach
- private-dataThe description's first sentence says "conversation": it reads messages.
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- untrusted-inputThe description's first sentence says "conversation": it reads messages, which other people can write.
Description, as the server wrote it The accounts driving conversation about one asset, by reach and engagement. Ranked by measured activity in our corpus, NOT by follower count, and NOT by whether they were right — see get_influencer_ledger for track record. A large account posting noise ranks here; that is the point of keeping the two tools separate.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: Social · Influencers by asset
get_leading_indicatorsWhich social and on-chain signals have historically MOVED FIRST for an asset.Reads text others writeNo findings
Why it is in this group
- The name "get_leading_indicators" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Which social and on-chain signals have historically MOVED FIRST for an asset. This is the lead/lag question that get_correlation deliberately does not answer. A lead measured over a past window is not a forecast and the response does not present it as one — it is the observed ordering of two series, and it can break.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: Analytics · Leading indicators
get_metric_metadataDescribe one metric before you use it: parity, category, minimum interval and any caveat attached to it.Reads text others writeNo findings
Why it is in this group
- The name "get_metric_metadata" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Describe one metric before you use it: parity, category, minimum interval and any caveat attached to it. CALL THIS BEFORE get_metric_timeseries if the metric is unfamiliar. The minimum interval tells you the finest resolution that is real rather than interpolated, and the caveat is where an approximate metric admits what it approximates.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: Metrics · Metadata
get_metric_revisionsRestatements of published numbers — what changed, over which period, and why.Reads text others writeNo findings
Why it is in this group
- The name "get_metric_revisions" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Restatements of published numbers — what changed, over which period, and why. A correction is not a market move.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: Metrics · Revisions
get_metric_timeseriesTimeseries for any available metric on any asset.Reads text others writeNo findings
Why it is in this group
- The name "get_metric_timeseries" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Timeseries for any available metric on any asset. Accepts Santiment-style relative dates ("utc_now-7d") as well as ISO timestamps. If the metric is not available this returns an error naming it rather than an empty series — an empty result here always means "no data in that range", never "we do not have this metric".
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: Metrics · Timeseries
get_metric_timeseries_multiTimeseries for ONE metric across MANY assets in a single call.Reads text others writeNo findings
Why it is in this group
- The name "get_metric_timeseries_multi" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Timeseries for ONE metric across MANY assets in a single call. `assets` is comma-separated (e.g. "BTC,ETH,SOL"). Prefer this over looping get_metric_timeseries — it is one round trip instead of N, and the values are guaranteed to come from the same read.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: Metrics · Timeseries (multi-asset)
get_metrics_batchLatest value of MANY metrics for ONE asset in a single call.Reads text others writeNo findings
Why it is in this group
- The name "get_metrics_batch" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Latest value of MANY metrics for ONE asset in a single call. `metrics` is comma-separated. The mirror of get_metric_timeseries_multi.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: Metrics · Batch
get_narrative_clustersThe raw clusters behind the stories, without the prose — for a model doing its own summarisation.Reads text others writeNo findings
Why it is in this group
- The name "get_narrative_clusters" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it The raw clusters behind the stories, without the prose — for a model doing its own summarisation. Every cluster has >= 2 distinct authors; near-identical posts from one account are copypasta and excluded.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: Narrative · Clusters
get_narrative_rotationWhich crypto narrative is GAINING or LOSING attention share, with a liquidity confirmation leg.Reads text others writeNo findings
Why it is in this group
- The name "get_narrative_rotation" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Which crypto narrative is GAINING or LOSING attention share, with a liquidity confirmation leg. Compares the last `days` against the equally long window immediately before. Covers the 2026 narrative set — RWA, tokenized equities and treasuries, stablecoins, DePIN, perp DEXs, prediction markets, AI agents — as well as DeFi, NFT, Gaming and the L1/L2 split. READ `vocabulary_stale` BEFORE QUOTING ANY DELTA. When true, the corpus spans two keyword vocabularies and a narrative whose keywords were just added will appear to be rising purely because only recent posts were ever tested against them. That is a rotation signal manufactured by a deploy, not by the market. A narrative with `unconfirmed: true` has measured attention and NO liquidity confirmation — the confirmation is absent, not zero, and the row states why.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: Narrative · Rotation
get_ohlcvDaily candles (open/high/low/close/volume) for an asset, with the venue they came from.Reads text others writeNo findings
Why it is in this group
- The name "get_ohlcv" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Daily candles (open/high/low/close/volume) for an asset, with the venue they came from. Coverage is bounded by which assets have a USDT pair on Binance or Bybit — an asset absent here has no candle source we collect, which is not the same as having no price.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: Market · OHLCV
get_research_reportOne asset's generated report.Reads text others writeNo findings
Why it is in this group
- The name "get_research_report" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it One asset's generated report. The `unavailable` field lists metrics the report could NOT use — read it, because a report that silently omits funding rate reads as a report about an asset with unremarkable funding.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: Research · Report
get_sentiment_trendsSentiment over time for an asset, with sample size and confidence interval.Reads text others writeNo findings
Why it is in this group
- The name "get_sentiment_trends" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Sentiment over time for an asset, with sample size and confidence interval. IMPORTANT: sentiment measured on few documents is unreliable — our own bootstrap put the direction wrong 35.6% of the time at n=1 and 9.5% at n=20. Read n before quoting a direction.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: Sentiment · Trends
get_signal_integrityGet the Signal Integrity score (0-100) — is the move real or exit liquidity?Reads text others writeNo findings
Why it is in this group
- The name "get_signal_integrity" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Get the Signal Integrity score (0-100) — is the move real or exit liquidity? Fuses social authenticity + on-chain reality + fundamental backing, with an Exit Liquidity Radar flag.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: Signal integrity · Real-vs-fake score
get_social_coverageHow many assets actually clear the document floor that makes each social metric computable.Reads private dataReads text others writeNo findings
Why it is in this group
- The name "get_social_coverage" says "get": a word for reading.
What it can reach
- private-dataThe description's first sentence says "document": it reads documents.
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it How many assets actually clear the document floor that makes each social metric computable. Call this BEFORE quoting sentiment for an asset. A large corpus total does not mean sentiment works everywhere: attention is a power law and the documents pile onto BTC, so most assets stay uncomputable.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: Coverage · Social
get_social_dominanceEach asset's SHARE of total social attention over a window, with the posts, distinct authors, engagement and sentiment behind the share.Reads text others writeNo findings
Why it is in this group
- The name "get_social_dominance" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- untrusted-inputThe description's first sentence says "post": it reads posts, which other people can write.
Description, as the server wrote it Each asset's SHARE of total social attention over a window, with the posts, distinct authors, engagement and sentiment behind the share. Share is relative and sums across the universe, so an asset's dominance can fall while its absolute volume rises — that is the market getting louder, not the asset getting quieter. Distinct authors is the column that separates a real conversation from one account posting 400 times.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: Social · Share of conversation
get_social_postsCollected social posts, optionally filtered by platform (bluesky, farcaster, reddit, 4chan, bitcointalk, rss).Reads text others writeNo findings
Why it is in this group
- The name "get_social_posts" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- untrusted-inputThe name "get_social_posts" says "get" and "post": it reads posts, which other people can write.
- untrusted-inputThe description's first sentence says "post": it reads posts, which other people can write.
Description, as the server wrote it Collected social posts, optionally filtered by platform (bluesky, farcaster, reddit, 4chan, bitcointalk, rss).
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: Social · Posts
get_sql_schemaList every relation and column queryable via run_sql, plus the rules and what is deliberately not exposed.Reads private dataReads text others writeNo findings
Why it is in this group
- The name "get_sql_schema" says "get": a word for reading.
What it can reach
- private-dataThe name "get_sql_schema" says "get" and "sql": it reads databases.
- private-dataThe description's first sentence says "list" and "sql": it reads databases.
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it List every relation and column queryable via run_sql, plus the rules and what is deliberately not exposed.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: SQL · Schema
get_story_postsThe individual posts a story was assembled from — the receipts.Reads text others writeNo findings
Why it is in this group
- The name "get_story_posts" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- untrusted-inputThe name "get_story_posts" says "get" and "post": it reads posts, which other people can write.
- untrusted-inputThe description's first sentence says "post": it reads posts, which other people can write.
Description, as the server wrote it The individual posts a story was assembled from — the receipts. Call this whenever a story matters enough to check. A generated story is a summary over these posts; this is how you verify it says what the sources say rather than taking the summary on trust.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: Narrative · Story sources
get_top_altranksThe assets ranked best by AltRank right now — relative standing, not absolute.Reads text others writeNo findings
Why it is in this group
- The name "get_top_altranks" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it The assets ranked best by AltRank right now — relative standing, not absolute. AltRank is a RANK: 1 is the strongest in the universe. A rising AltRank in a falling market means outperforming the fall, not going up. Pair with get_asset_scores when the distinction matters.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: Scores · Top by AltRank
get_top_galaxy_scoresThe assets with the strongest Galaxy Score right now.Reads text others writeNo findings
Why it is in this group
- The name "get_top_galaxy_scores" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it The assets with the strongest Galaxy Score right now. Galaxy Score is 0-100 and composite: social volume, engagement, sentiment and market health folded together. A high score is a statement about ATTENTION AND HEALTH, not about valuation — it does not mean an asset is cheap. Call get_asset_scores for the breakdown.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: Scores · Top by Galaxy Score
get_topic_rankRank what the market is TALKING ABOUT — themes and narratives, not assets.Reads text others writeNo findings
Why it is in this group
- The name "get_topic_rank" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Rank what the market is TALKING ABOUT — themes and narratives, not assets. Ranked by mentions weighted by engagement over the window, so a topic posted about loudly by few accounts does not outrank one discussed widely. Use get_trending_assets for tickers; this is the layer above, where "restaking" and "AI agents" live.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: Social · Topic rank
get_trending_assetsAssets trending now by social activity, with the hype score that separates a real move from a burst of noise.Reads text others writeNo findings
Why it is in this group
- The name "get_trending_assets" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Assets trending now by social activity, with the hype score that separates a real move from a burst of noise.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: Social · Trending assets
get_trending_storiesCurrent narratives, each an LLM summary of a CLUSTER of posts rather than a single document.Reads text others writeNo findings
Why it is in this group
- The name "get_trending_stories" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- untrusted-inputThe description's first sentence says "post": it reads posts, which other people can write.
Description, as the server wrote it Current narratives, each an LLM summary of a CLUSTER of posts rather than a single document. Read author_count before quoting one: a high post_count with a low author_count is one person repeating themselves, not a narrative. These are machine summaries, not edited articles.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: Narrative · Trending stories
get_whale_transactionsRecent large on-chain transfers, optionally filtered to one asset.Reads text others writeNo findings
Why it is in this group
- The name "get_whale_transactions" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Recent large on-chain transfers, optionally filtered to one asset. "Whale" is a SIZE threshold, not an identity. A large transfer is very often an exchange moving its own funds between wallets, which is not a market action at all — counterparty labels are included where we hold them, and a null label means WE HAVE NO LABEL, never that the counterparty is unknown or safe.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: On-chain · Whale transactions
get_wrapper_basisCross-wrapper spread for tokenized equities: one real company, every issuer that tokenizes it, and how far apart they trade.Reads text others writeNo findings
Why it is in this group
- The name "get_wrapper_basis" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Cross-wrapper spread for tokenized equities: one real company, every issuer that tokenizes it, and how far apart they trade. SpaceX trades under five wrappers and they do not agree. Spreads run roughly 0.1-0.9 percent between programs referencing the same share. This is a CROSS-WRAPPER comparison, deliberately not a comparison against the underlying stock — that needs a licensed equity feed and no free commercially-usable one exists. A spread is NOT free money. Each issuer carries its own credit, redemption terms and transfer restrictions, and the cheapest wrapper is often cheapest for a reason. Do not present it as an arbitrage.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: Market · Wrapper basis
list_labelled_addressesBrowse labelled addresses, filtered by chain, entity (e.g.Reads text others writeNo findings
Why it is in this group
- The name "list_labelled_addresses" says "list": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- untrusted-inputThe description's first sentence says "browse": it reads web pages, which anyone can write.
Description, as the server wrote it Browse labelled addresses, filtered by chain, entity (e.g. Binance) or category (exchange | bridge | dex | mev | staking | mining | sanctioned).
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: On-chain · Labelled addresses
list_metricsList every metric Onvexia knows, with its parity and caveats.Reads text others writeNo findings
Why it is in this group
- The name "list_metrics" says "list": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it List every metric Onvexia knows, with its parity and caveats. parity=exact means we compute it the way Santiment does; approximate means same concept but different coverage or method (read the caveat before relying on the number); unavailable means we do NOT serve it yet. Unavailable metrics are listed on purpose — check here before asserting that Onvexia can answer a question.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: Metrics · Catalogue
list_nl_screensPreviously compiled natural-language screens: the English somebody wrote and the filter it compiled to, INCLUDING refusals.Reads text others writeNo findings
Why it is in this group
- The name "list_nl_screens" says "list": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Previously compiled natural-language screens: the English somebody wrote and the filter it compiled to, INCLUDING refusals. Useful as worked examples of the screener's filter grammar before you write one.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: Screener · Saved natural-language screens
list_research_reportsList the assets that currently have a generated research report available.Reads text others writeNo findings
Why it is in this group
- The name "list_research_reports" says "list": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it List the assets that currently have a generated research report available. Returns the index, not the reports — call get_research_report with a symbol for the body. An asset missing from this list has not been written up; that is a statement about our coverage, not about the asset.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: Research · Available reports
lookup_addressIdentify a blockchain address — exchange, bridge, DEX, MEV bot, mining pool, or OFAC-sanctioned — with the source and confidence of each label.Reads text others writeNo findings
Why it is in this group
- The name "lookup_address" says "lookup": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Identify a blockchain address — exchange, bridge, DEX, MEV bot, mining pool, or OFAC-sanctioned — with the source and confidence of each label. IMPORTANT: `known: false` means no label is held. It does NOT mean the address is clean or unflagged.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: On-chain · Address lookup
resolve_tickerDoes a bare ticker actually mean the crypto asset?Reads text others writeNo findings
Why it is in this group
- The name "resolve_ticker" says "resolve": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Does a bare ticker actually mean the crypto asset? verdict 'crypto' means mentions are about the asset; 'equity'/'other' means the bare word is dominated by something else (TIA is Spanish 'tia'; GRT collides with 'graph'). A 404 is NOT a clean bill of health — it means nobody has adjudicated that ticker yet.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: Assets · Resolve ambiguous ticker
search_assetsSearch the whole asset universe (~1,900 assets) by symbol or name.Reads text others writeNo findings
Why it is in this group
- The name "search_assets" says "search": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Search the whole asset universe (~1,900 assets) by symbol or name. Use this to resolve a user's loose reference into a real symbol before calling the other tools.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: Assets · 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.
Exfil surface
Which tools read private data, which read text someone else can write, and which can send data out. One of each is a path a prompt injection can use.
No private-data, untrusted-input, outbound path in this server alone: no tool is tagged outbound.
- Reads private data6
- Reads files, mail, messages, databases, secrets, calendars or repositories.
- Reads text others write66
- Brings in text someone else can write: web pages, inbound email, messages, issues and comments.
- Can send data out0
- Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL.
Other servers in the same agent add their own tools to these paths. Audit your whole setup to see them together.
Remote posture
What anyone on the internet sees at the remote endpoint: an anonymous initialize and tools/list, and the public OAuth metadata.
Looked at Oct 22, 2026, 14:37 UTC, unchanged since Oct 22, 2026. No credentials were sent and no tool was called. What is looked at.
- Reachable
- yes
- HTTP status of an anonymous initialize
- 200
- tools/list served without credentials
- yes
- Tools that change things, listed without credentials
- 4
- Protocol version
- 2025-06-18
- WWW-Authenticate on 401
- not observed
- resource_metadata in WWW-Authenticate
- none
- RFC 9728 protected resource metadata
- none
- Authorization servers
- none
- Legacy HTTP+SSE transport
- no
- Dynamic client registration
- not observed
- Client ID metadata documents
- not observed
- WarnThe whole server
The endpoint served tools/list without credentials, and the list has 4 tools that change things (4 write). Whether a call also works without credentials was not tested: tools are never called.
What this check looks forMatched text
https://onvexia.com/mcp: tools/list returned 66 tools to an anonymous client, including screen_assets (write), screener_fields (write), run_sql (write), get_similar_posts (write)
Install
Pinned to version 1.0.9. Values in angle brackets are yours to fill in.
claude mcp add --transport http onvexia https://onvexia.com/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change or a way out, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__onvexia__get_asset",
"mcp__onvexia__get_asset_scores",
"mcp__onvexia__get_asset_fundamentals",
"mcp__onvexia__get_asset_technicals",
"mcp__onvexia__get_top_galaxy_scores",
"mcp__onvexia__get_top_altranks",
"mcp__onvexia__get_correlation",
"mcp__onvexia__get_leading_indicators",
"mcp__onvexia__get_social_dominance",
"mcp__onvexia__get_topic_rank",
"mcp__onvexia__get_whale_transactions",
"mcp__onvexia__get_exchange_flows",
"mcp__onvexia__get_aspect_sentiment",
"mcp__onvexia__analyze_sentiment",
"mcp__onvexia__get_influencers",
"mcp__onvexia__get_signal_integrity",
"mcp__onvexia__get_influencer_ledger",
"mcp__onvexia__get_influencer_leaderboard",
"mcp__onvexia__search_assets",
"mcp__onvexia__get_data_coverage",
"mcp__onvexia__get_chain_coverage",
"mcp__onvexia__get_asset_platforms",
"mcp__onvexia__lookup_address",
"mcp__onvexia__list_labelled_addresses",
"mcp__onvexia__list_metrics",
"mcp__onvexia__get_metric_metadata",
"mcp__onvexia__get_metric_timeseries",
"mcp__onvexia__get_entity_flows",
"mcp__onvexia__get_metric_timeseries_multi",
"mcp__onvexia__get_metrics_batch",
"mcp__onvexia__get_ohlcv",
"mcp__onvexia__get_trending_assets",
"mcp__onvexia__get_entities",
"mcp__onvexia__get_sentiment_trends",
"mcp__onvexia__get_bot_detections",
"mcp__onvexia__get_coordinated_campaigns",
"mcp__onvexia__get_creator_rankings",
"mcp__onvexia__get_asset_revisions",
"mcp__onvexia__get_trending_stories",
"mcp__onvexia__get_narrative_clusters",
"mcp__onvexia__list_research_reports",
"mcp__onvexia__get_research_report",
"mcp__onvexia__resolve_ticker",
"mcp__onvexia__get_social_coverage",
"mcp__onvexia__list_nl_screens",
"mcp__onvexia__get_agent_findings",
"mcp__onvexia__get_sql_schema",
"mcp__onvexia__get_hodl_waves",
"mcp__onvexia__get_exchange_netflow",
"mcp__onvexia__get_constellation",
"mcp__onvexia__get_social_posts",
"mcp__onvexia__get_asset_social_signal",
"mcp__onvexia__get_metric_revisions",
"mcp__onvexia__get_emerging_dex_pairs",
"mcp__onvexia__get_exchange_listings",
"mcp__onvexia__get_address_coverage",
"mcp__onvexia__get_address_events",
"mcp__onvexia__get_story_posts",
"mcp__onvexia__get_narrative_rotation",
"mcp__onvexia__get_ai_substance",
"mcp__onvexia__get_wrapper_basis",
"mcp__onvexia__get_disclosures"
],
"ask": [
"mcp__onvexia__screen_assets",
"mcp__onvexia__screener_fields",
"mcp__onvexia__run_sql",
"mcp__onvexia__get_similar_posts"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. A read that can send data out (it takes a URL, say) asks first too. It assumes the server is installed as onvexia. Review it before you use it.
Capability tags behind 66 rules
- mcp__onvexia__get_asset untrusted-input
- mcp__onvexia__get_asset_scores untrusted-input
- mcp__onvexia__get_asset_fundamentals untrusted-input
- mcp__onvexia__get_asset_technicals untrusted-input
- mcp__onvexia__get_top_galaxy_scores untrusted-input
- mcp__onvexia__get_top_altranks untrusted-input
- mcp__onvexia__get_correlation untrusted-input
- mcp__onvexia__get_leading_indicators untrusted-input
- mcp__onvexia__get_social_dominance untrusted-input
- mcp__onvexia__get_topic_rank untrusted-input
- mcp__onvexia__get_whale_transactions untrusted-input
- mcp__onvexia__get_exchange_flows untrusted-input
- mcp__onvexia__get_aspect_sentiment untrusted-input
- mcp__onvexia__analyze_sentiment untrusted-input
- mcp__onvexia__get_influencers private-data, untrusted-input
- mcp__onvexia__get_signal_integrity untrusted-input
- mcp__onvexia__get_influencer_ledger untrusted-input
- mcp__onvexia__get_influencer_leaderboard untrusted-input
- mcp__onvexia__search_assets untrusted-input
- mcp__onvexia__get_data_coverage untrusted-input
- mcp__onvexia__get_chain_coverage untrusted-input
- mcp__onvexia__get_asset_platforms untrusted-input
- mcp__onvexia__lookup_address untrusted-input
- mcp__onvexia__list_labelled_addresses untrusted-input
- mcp__onvexia__list_metrics untrusted-input
- mcp__onvexia__get_metric_metadata untrusted-input
- mcp__onvexia__get_metric_timeseries untrusted-input
- mcp__onvexia__get_entity_flows untrusted-input
- mcp__onvexia__get_metric_timeseries_multi untrusted-input
- mcp__onvexia__get_metrics_batch untrusted-input
- mcp__onvexia__screen_assets untrusted-input
- mcp__onvexia__screener_fields untrusted-input
- mcp__onvexia__get_ohlcv untrusted-input
- mcp__onvexia__get_trending_assets untrusted-input
- mcp__onvexia__get_entities private-data, untrusted-input
- mcp__onvexia__get_sentiment_trends untrusted-input
- mcp__onvexia__get_bot_detections untrusted-input
- mcp__onvexia__get_coordinated_campaigns private-data, untrusted-input
- mcp__onvexia__get_creator_rankings untrusted-input
- mcp__onvexia__get_asset_revisions untrusted-input
- mcp__onvexia__get_trending_stories untrusted-input
- mcp__onvexia__get_narrative_clusters untrusted-input
- mcp__onvexia__list_research_reports untrusted-input
- mcp__onvexia__get_research_report untrusted-input
- mcp__onvexia__resolve_ticker untrusted-input
- mcp__onvexia__get_social_coverage private-data, untrusted-input
- mcp__onvexia__list_nl_screens untrusted-input
- mcp__onvexia__get_agent_findings untrusted-input
- mcp__onvexia__run_sql untrusted-input
- mcp__onvexia__get_sql_schema private-data, untrusted-input
- mcp__onvexia__get_hodl_waves untrusted-input
- mcp__onvexia__get_exchange_netflow untrusted-input
- mcp__onvexia__get_constellation untrusted-input
- mcp__onvexia__get_social_posts untrusted-input
- mcp__onvexia__get_similar_posts untrusted-input
- mcp__onvexia__get_asset_social_signal untrusted-input
- mcp__onvexia__get_metric_revisions untrusted-input
- mcp__onvexia__get_emerging_dex_pairs untrusted-input
- mcp__onvexia__get_exchange_listings untrusted-input
- mcp__onvexia__get_address_coverage untrusted-input
- mcp__onvexia__get_address_events untrusted-input
- mcp__onvexia__get_story_posts untrusted-input
- mcp__onvexia__get_narrative_rotation untrusted-input
- mcp__onvexia__get_ai_substance untrusted-input
- mcp__onvexia__get_wrapper_basis untrusted-input
- mcp__onvexia__get_disclosures private-data, untrusted-input