The River
Server Details
Tokenized US stocks onchain: listings, holdings, US prices, pre-filled trade links. Read-only.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
TDQS
Scored across 5 tools
Each tool serves a clearly distinct purpose: listing stocks, fetching prices, generating trade or strategy links, and checking wallet holdings. There is no overlap in functionality, so an agent can easily select the right tool.
All names use snake_case, but the convention is mixed: only list_stocks follows a verb_noun pattern, while others are noun phrases (strategy_link, trade_link, wallet_holdings) or adjective_noun (fair_value). Still readable, but not consistent.
With 5 tools, the set is well-scoped and each tool earns its place, covering the essential operations for interacting with The River platform.
The tools cover discovery, pricing, trade and strategy link generation, and portfolio viewing. Minor gaps exist, such as no direct tool for checking trade history or strategy performance, but core workflows are supported.
Available Tools
7 toolscompare_issuersCompare tokenized stock prices across issuersRead-onlyInspect
Where a tokenized stock is cheapest: each issuer's token (ST0x, Coinbase, Robinhood) priced per share for a $100 buy, against the stock's own price (US, or the home exchange's in dollars), with the gap in % and the lowest issuer. From quotes taken every 5 minutes (biggest stocks) or hourly; the time is in the answer. Not a live quote: for an executable best-price buy use trade_link with usd. Up to 12 tickers.
| Name | Required | Description | Default |
|---|---|---|---|
| tickers | Yes |
fair_valueUS fair valueBRead-onlyInspect
Last US market price and market status of listed stocks (what the tokens track). Up to 12 tickers.
| Name | Required | Description | Default |
|---|---|---|---|
| tickers | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds useful domain context that these are token-underlying stock quotes and the batch ceiling, but says nothing about refresh behavior, staleness, or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, with the primary purpose front-loaded and the limit trailing. The parenthetical earns its place by tying the data back to the tokens, though the phrasing is slightly indirect.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, read-only lookup with a closed-world annotation and no output schema, the description covers what is fetched and the batch cap. Only ticker format and freshness behavior remain unspecified, which is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter has 0% schema description coverage, so the description must carry the load. It restates the schema's maxItems=12 as 'Up to 12 tickers' but gives no ticker format or identity hints (e.g., symbol vs. name), leaving a real gap for the one input.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the concrete resource (listed stocks and the tokens they track) and what is returned (last US market price plus market status), so an agent can tell what it fetches. It does not, however, distinguish itself from the sibling list_stocks, and the 'fair_value' name/title sits awkwardly against the plain 'last market price' content.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only guidance is the batch limit ('Up to 12 tickers'). There is no statement of when to use this versus list_stocks or the other siblings, and no prerequisites or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_stocksList stocksARead-onlyInspect
Tokenized stocks listed on The River, with ticker, token symbol, issuer, chain and trade link. Filter by chain and/or a search query (ticker, symbol or name).
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | ||
| query | No | e.g. NVDA or nvidia |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds the shape of the returned records, but says nothing about pagination, result caps, or rate limits, so it adds only modest context on top of the structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the resource and its identifying fields front-loaded, followed by the filtering capability. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully describes the return fields (ticker, token symbol, issuer, chain, trade link) and how filtering works for a simple two-parameter read tool. Pagination behavior for a potentially long listing is the only notable omission.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 50%: 'query' is documented but 'chain' has an enum with no description. The description compensates by explaining what 'query' actually matches against (ticker, symbol or name) and that both filters can be combined ('and/or'), which is meaning beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Tokenized stocks listed on The River') and enumerates the fields returned, so the agent immediately knows this is a catalog listing rather than a valuation or holdings tool. It stops short of explicitly naming the sibling it differs from, but the resource is distinctive enough to separate it from fair_value, strategy_link, trade_link and wallet_holdings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Filter by chain and/or a search query' implies the intended usage and that the two filters are combinable, but there is no explicit when-to-use statement, no exclusion criteria, and no mention of what to do when no filters are supplied (all 0 params are optional). Adequate but thin.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
strategy_linkStrategy linkRead-onlyInspect
A pre-filled River strategy card link (Base, ST0x stocks). Cards and fields: dip (budget, start, step, rungs); peg (amount, discount, max); recurring (budget, days, hours, max); cycle (budget, buy, step, levels, repeat, top, sell); take-profit (amount, target); sell-ladder (amount, first, last, parts); stop (amount, trigger, floor); breakout (amount, trigger, max); spread (amount, spread, weekend); portfolio (amount, preset, stocks). Missing fields are left for the user. See https://theriver.markets/llms.txt for what each card does. The user reviews this on The River and signs in their own wallet; nothing happens until they do.
| Name | Required | Description | Default |
|---|---|---|---|
| card | Yes | ||
| fields | No | Card fields as plain decimals, e.g. {"amount":"100","discount":"0.3"} | |
| symbol | No | Ticker or token symbol, e.g. NVDA or wtNVDA (not for portfolio) |
trade_linkTrade linkARead-onlyInspect
A pre-filled River trade link. A buy by ticker with usd (no address or chain) returns a best-price link that opens the cheapest issuer for the user. Give exactly one of usd (buy only, settlement stablecoin, up to 6 decimals) or qty (tokens, up to 18 decimals). The user reviews this on The River and signs in their own wallet; nothing happens until they do.
| Name | Required | Description | Default |
|---|---|---|---|
| qty | No | Plain decimal, e.g. 50 or 0.25 | |
| usd | No | Plain decimal, e.g. 50 or 0.25 | |
| side | Yes | ||
| chain | No | When a ticker is listed on more than one chain | |
| ticker | No | e.g. NVDA | |
| address | No | Token address (instead of ticker) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true and openWorldHint=false, and the description reinforces this by stating the user reviews on The River, signs in their own wallet, and 'nothing happens until they do' — valuable non-execution context beyond the annotations. It also adds validation constraints (usd buy-only, 6 vs 18 decimals) that the annotations do not cover.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with what the tool produces, then the parameter rule, then the user-consent behavior. Dense but each sentence carries information; only the opening fragment 'A pre-filled River trade link.' is slightly terse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description adequately conveys the return (a best-price link opening the cheapest issuer). It explains buy semantics well but leaves sell-mode behavior (e.g., whether usd is allowed on sell) unstated for a tool whose side enum includes 'sell'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 83% and the schema only says 'Plain decimal' for usd/qty, but the description adds real meaning: usd is buy-only settlement-stablecoin with max 6 decimals, qty is tokens with max 18 decimals, and exactly one must be supplied. That mutual-exclusion rule appears nowhere in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the specific resource (a pre-filled River trade link) and the operation that produces it, so an agent knows this tool generates a shareable order link rather than executing a trade. It stops short of distinguishing itself from strategy_link, the other link-generating sibling, leaving that comparison to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives concrete selection rules: exactly one of usd or qty, and 'a buy by ticker with usd (no address or chain)' as the path that yields a best-price link. It does not explicitly say when to prefer this over strategy_link or list_stocks, so it is clear context without exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wallet_holdingsWallet holdingsBRead-onlyInspect
Any wallet's stock-token and cash balances on every chain The River serves (public onchain data), plus its read-only River profile link.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | 0x... wallet address |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds genuine context by labeling the data 'public onchain data' and the profile link 'read-only', but says nothing about rate limits, error cases, or which chains are included.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single information-dense sentence with the primary payload (balances) front-loaded and the secondary payload (profile link) trailing. It is slightly awkward as a verbless noun phrase, but no sentence is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description correctly enumerates what is returned (balances plus a profile link). Annotations cover safety and the schema covers the sole parameter; only the set of supported chains and pagination/response shape remain unstated, which is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With a single parameter and 100% schema description coverage ('0x... wallet address'), the schema already carries the semantics. The description's 'any wallet's' adds no format or constraint detail beyond what the schema provides, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource precisely (stock-token and cash balances per wallet) and adds scope ('every chain The River serves') plus a secondary return ('read-only River profile link'). It lacks an explicit verb and does not distinguish itself from siblings like fair_value, but the resource is unambiguous enough for an agent to select it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool versus alternatives such as fair_value or list_stocks, and no prerequisites or exclusions. Usage is only implied by the resource name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wallet_pnlWallet P&LRead-onlyInspect
Any wallet's profit and loss on Base, from public chain data. Wallet: its stock tokens since 1 Oct 2026, average cost from the wallet's own USDC trades on any venue (DEX or orderbook), realised and unrealised per token; transfers are never priced. Strategies: one row per strategy (live and cancelled orders it placed, incl. its RiverAccount): fills, USDC spent and received, tokens bought and sold, and P&L at today's prices (value now minus what was put in). Robinhood Chain is not counted yet (stated in notes).
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | 0x... wallet address |
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
- Added
compare_issuers
1 tool update
- Added
wallet_pnl
1 tool update
- Changed
strategy_link1 field changed- changed
Input schema / properties / card / enumPrevious value: -[ - "dip", - "peg", - "recurring", - "cycle", - "take-profit", - "stop", - "breakout", - "spread", - "portfolio" -]New value: +[ + "dip", + "peg", + "recurring", + "cycle", + "take-profit", + "sell-ladder", + "stop", + "breakout", + "spread", + "portfolio" +]
5 tool updates
- First observed
fair_value - First observed
list_stocks - First observed
strategy_link - First observed
trade_link - First observed
wallet_holdings
Related MCP Connectors
Read-only tokenized stock data: issuers, chains, contract addresses and corporate actions.
Browse, backtest and write rule-based portfolios of tokenized US stocks.
Live market data & technical analysis for US stocks, ETFs and crypto. Read-only, no signup.
Read-only crypto and traditional portfolio: holdings, PNL, FIFO tax figures and market data.
Related MCP Servers
- AlicenseAqualityAmaintenanceMCP gateway for AI agents to Robinhood Chain (Arcus DEX) tokenized US equities: quotes, multipliers, corporate actions, sectors. Read-only, keyless.1351 PyPI1MIT

traivo-mcpofficial
AlicenseNot gradedqualityBmaintenanceGives MCP clients read-only Ethereum mainnet tools for tokenized stock prices versus listed share prices, live Uniswap V3 swap quotes against USDC, public wallet portfolios, Hyperliquid accounts, the Traivo AI scorecard, gas data, and position sizing. It never signs or sends transactions, instead returning a prefilled trade link for the user to review and sign in their own wallet.MIT
STOX Research MCPofficial
AlicenseAqualityCmaintenanceEnables live market data lookup and search for tokenized stocks, ETFs, commodities, bonds, and real estate on Robinhood Chain, plus broader DEX token discovery, including price queries, market ranking, and movers.5MIT
longbridgeofficial
AlicenseBqualityAmaintenanceUS/HK markets — 110 tools: real-time quotes, options, orders, fundamentals, alerts, DCA & portfolio16513Apache 2.0
Glama MCP Gateway
Add one secure layer between your agents and this server.