fletch-mcp
OfficialProvides access to Robinhood Chain registry data, including verified stock token addresses, live token state (multiplier, pauses, Chainlink price, holders), round history, lookalike tokens, dex pools, bridge activity, corporate actions, chain health, and changelog.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@fletch-mcpshow me the holders for the AAPL token"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
fletch-mcp
Fletch's Robinhood Chain registry as MCP tools: verified Stock Token addresses, live state (multiplier, pauses, Chainlink price, holders), round history, lookalike tokens, the issuer's control plane, chain health and the changelog. A thin client of the public API at https://fletch.now; registry reads need no key.
npx -y github:fletch-now/fletch-mcpRuns straight from this repository; the npm package fletch-mcp follows, and the
command becomes npx -y fletch-mcp when it does.
fletch.now/developers · API reference · Registry · llms.txt
Use
Claude Desktop, Claude Code, Cursor and any other MCP client take a stdio server:
{
"mcpServers": {
"fletch": { "command": "npx", "args": ["-y", "github:fletch-now/fletch-mcp"] }
}
}Claude Code: claude mcp add fletch -- npx -y github:fletch-now/fletch-mcp.
Related MCP server: robinscan-mcp
Environment
FLETCH_API_URL: where the API lives. Defaulthttps://fletch.now.FLETCH_API_KEY: optional. Needed only bywebhooks, which reads one account's own endpoints. The key is sent to/api/v1/webhooksand to no other route, and never over plain http; with anhttp://base thewebhookstool returns an error instead.
Rate limits are the API's: anonymous callers get 120 requests a minute per address, and a key has its own budget of 600 requests an hour. Every tool result is cached by ETag, so repeating a question costs a conditional request that usually answers 304. The cache keeps at most 200 entries for at most ten minutes each.
Tools
Tool | Reads |
| is the registry live: jobs, figures, ages, verdicts |
| every asset with state; |
| one ticker with history, lookalikes and last rounds |
| one row per UTC day of every per-asset number, each row one reading rather than a close; |
| Chainlink rounds for a ticker, |
| how much of a token is in investors' hands: the six shares (float, pools, issuer, bridge, contracts, unchecked, which add to 100), holders with share and address labels, ledger progress. Float is a floor: the probe checks holders above a ten-thousandth of supply |
| daily transfers, volume, DvP, off-hours |
| pools trading one ticker on every DEX read (Uniswap v4 and v3), deepest first: venue, price, |
| which DEXs exist on this chain and what each is worth: pools, dollar-priced pools, dollar depth at a 1% move, swaps and volume, assets priced there, and whether each venue has been read at all |
| L1 escrow vs L2 supply, deposits, withdrawals |
| prospectus, Final Terms per ticker, watched pages |
| tokens borrowing a listed ticker, with verdicts |
| the issuer's registry contract and its events |
| head, block time, batches, status |
| the changelog, filterable, with a cursor |
| dividends and splits in progress |
| your registered alert endpoints (needs |
Resources: llms.txt and the OpenAPI document.
Answers that read live state carry the instant the registry daemon took the reading
(checkedAt, takenAt or stateCheckedAt); events rows carry occurredAt and
observedAt; corporate_actions carries Robinhood's processDate only; webhooks reads
account data rather than daemon output. Amounts in raw units are strings; prices and
multipliers are numbers.
What the server covers
The tools read Robinhood Chain mainnet (chain 4663) only, and they cover the registry
routes plus the webhook list. The API has more than this server exposes: /chains, the
watcher routes, the event stream at /events/stream, and the build and project routes
are reachable over HTTPS as documented at
fletch.now/api/v1/docs but have no tool here.
docs/ holds dated copies of llms.txt and openapi.json as served the day this
version was cut, which was before the package reached npm, so the llms.txt copy still
calls the MCP server unpublished. The live documents at https://fletch.now/llms.txt and
https://fletch.now/api/v1/openapi.json are the ones to trust.
Development
npm ci
npm testThe test starts index.mjs over stdio with the SDK's own client, checks the tool and
resource counts, replays the ETag and bearer rules against local http and https servers,
and calls status against https://fletch.now. CI runs the same test on Node 20, 22 and 24.
The https server uses the self-signed pair under test/fixtures/, which guards nothing
outside that test.
Licence
MIT. Fletch is not affiliated with Robinhood Markets, Inc.
Available Tools
17 toolsactivityDaily activity for one assetC
Transfers as economics per UTC day: transfers, volume (raw units), mints, burns, transfers settled against USDG in the same transaction, transfers outside US market hours.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | ||
| symbol | Yes | Ticker, e.g. TSLA |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It does disclose meaningful behavioral context: data is aggregated 'per UTC day', volume is in 'raw units', and it distinguishes certain transfer classes. However, it never states the return format, whether the operation is read-only, or how the optional 'days' parameter affects results.
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?
The description is a single sentence with a list, so it is compact and free of filler. However, the phrase 'Transfers as economics' is awkward and cryptic, and the sentence packs many metrics into a dense structure that may reduce readability.
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?
There is no output schema and no annotations, so the description must explain what the agent should expect. It lists output metrics but not the response shape, time series organization, or the effect of the 'days' parameter. This leaves an agent uncertain about how to interpret the result or set parameters correctly.
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 description coverage is 50% (symbol documented, days undocumented). The description adds no explanation for the 'days' parameter and does not tie the 'per UTC day' phrase to the parameter semantics. It only reinforces the symbol's meaning via 'one asset', so it fails to compensate for the undocumented parameter.
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 title 'Daily activity for one asset' clearly identifies the resource and scope, and the description enumerates the specific metrics returned (transfers, volume, mints, burns, USDG-settled transfers, non-US-market-hour transfers). This is a specific and informative description, though it does not explicitly differentiate from siblings like 'history' or 'events'.
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 description gives no guidance on when to use this tool versus alternatives. It implies use for retrieving daily asset activity, but there is no mention of exclusions, prerequisites, or how it differs from sibling tools such as 'history' or 'holders'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bridgeToken bridge: escrow, flows, claimable withdrawalsA
Each bridged asset's L1 escrow against its L2 supply (the gap is value in flight), the latest deposits and withdrawals seen on L2, and withdrawals whose seven-day window has passed. symbol narrows the flows.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| symbol | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and it does useful work: it defines what the gap means, labels deposits/withdrawals as 'latest', and specifies the seven-day withdrawal window. It does not explicitly state that the operation is read-only, but the observational language and absence of side effects make that clear.
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?
The description is a single dense sentence with no filler—the main output categories are front-loaded and the useful 'value in flight' explanation earns its place. The grammar is slightly compressed, but it remains readable and efficient.
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?
The description covers the main output domains and gives one parameter hint, which is helpful for a two-parameter tool with no output schema. Still, it does not clarify how limit applies, what the default output shape is, or how the listed categories are structured, so an agent must infer some invocation details.
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 description coverage is 0%, so the description must clarify parameters; it does add meaning to symbol by saying it narrows the flows. However, the limit parameter is never mentioned, and the precise meaning of 'flows' in the filtering context is left somewhat ambiguous. This is partial compensation at best.
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 states the tool reports bridge-specific data: L1 escrow versus L2 supply, recent L2 deposits/withdrawals, and withdrawals past the seven-day claim window. The verb is implicit rather than explicit, but the resource and scope are specific enough to distinguish it from general status or asset-listing siblings.
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 domain context (token bridge escrow and flows) makes it clear when an agent would use this tool, and the mention that 'symbol narrows the flows' provides a filtering hint. However, there is no explicit guidance about when to prefer this over alternatives such as status, activity, or history, nor any when-not-to-use conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chain_healthChain vital signsB
Robinhood Chain's latest reading: head block, block time, base fee, L1 block, batch count, delayed messages, batch-poster balance, status page.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the transparency burden. It implies a read-only snapshot through 'latest reading' and lists the key fields returned. However, it does not disclose staleness, units, caching behavior, whether the status page is a link or a text value, or any failure behavior.
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?
The description is a single, tight sentence that front-loads the resource ('Robinhood Chain's latest reading') and then delivers a concrete metric list. Every part earns its place with no filler.
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 zero-parameter tool with no output schema, the description reasonably lists the fields an agent can expect. However, it omits additional context that would help an agent fully understand the result, such as freshness semantics, units, formatting of 'status page', and when to prefer this over the sibling 'status' tool.
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 input schema has zero parameters, and the baseline for zero-parameter tools is 4. The description does not need to explain parameter semantics; it instead productively lists what the returned reading contains.
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 clearly identifies a specific health-check resource: Robinhood Chain's latest reading, and enumerates the metrics returned (head block, block time, base fee, L1 block, batch count, delayed messages, batch-poster balance, status page). It does not explicitly distinguish itself from the sibling tool 'status', which could overlap, so it loses a point on differentiation.
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?
No guidance is given about when to use this tool versus alternatives such as 'status' or other chain-related tools. The description implies 'check chain health' but provides no exclusionary or alternative-based usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
control_planeThe issuer's registry contractD
The AccessControlsRegistry that is beacon, global pause, blocklist and role registry for every Stock Token: paused, implementation, blocked-address count, and its latest events (Blocked, Unblocked, Paused, Upgraded, roles).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of disclosing behavior. It does not state whether the operation is read-only, whether it has side effects, how pagination works, or what the returned payload looks like. It only lists some registry attributes, which hints at output content but does not reveal operational behavior.
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?
The description is short, but its structure is muddled: 'that is beacon, global pause, blocklist and role registry' is grammatically awkward and mixes abstractions. The colon-separated list is dense and not front-loaded around a clear action, making the sentence harder to parse despite its brevity.
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 annotations and no output schema, the description is the only source of context, and it is insufficient. It fails to state the operation, return format, pagination behavior, or how this tool differs from siblings such as 'events' and 'status'. An agent cannot reliably determine how to invoke this tool correctly.
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 description coverage is 0%, and the description does not explain the meaning or effect of the optional 'limit' parameter. The parameter name is somewhat self-explanatory, but the description adds no semantics about which items are limited, how the limit applies, or what the default behavior is.
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 identifies the resource (AccessControlsRegistry) and lists data categories such as paused, implementation, blocked-address count, and latest events, but it uses no action verb to state what the tool actually does. The title is nearly a restatement of the description, and it is unclear whether the tool returns, monitors, or modifies registry data; it also overlaps with siblings like 'events' and 'status'.
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 explicit guidance on when to use this tool versus alternatives. No sibling tools are referenced, no conditions are given, and an agent must infer from the content that this is likely for access-control or registry inspection. This is implied usage at best.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
corporate_actionsCorporate actions in progressA
Dividends, splits and other corporate actions Robinhood has published for Stock Tokens, each tied to its token.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral disclosure burden. It clarifies that the data is published by Robinhood and associated with Stock Tokens, which implies a read-only listing. Still, it does not state whether the response is a flat list, whether only in-progress actions are included, or what fields the data contains.
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?
The description is a single compact sentence with key domain terms front-loaded and no filler. The relationship 'each tied to its token' adds useful meaning without bloating the text.
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 parameterless endpoint, the description conveys the essential scope: Robinhood-published corporate actions for Stock Tokens. It is not exhaustive about the exact return shape or the 'in progress' aspect from the title, but the low complexity makes the current description largely sufficient for invoking the tool.
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?
There are zero parameters and schema description coverage is 100% vacuously, so the baseline of 4 applies. The description's token-relationship context is useful but not necessary for parameter understanding.
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 identifies a concrete resource: corporate actions such as dividends and splits that Robinhood has published for Stock Tokens. It is specific and scoped, but it lacks an explicit verb like 'lists' or 'returns' and does not explicitly distinguish itself from sibling tools such as events or history.
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 phrasing 'for Stock Tokens' and 'each tied to its token' implies this tool should be used when an agent needs token-specific corporate action data. However, there is no explicit when-to-use guidance, exclusions, or reference to alternative sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dex_venuesWhat each DEX venue contributes chain-wideA
Which DEXs exist on this chain and what each is worth — ask before saying where a Stock Token trades, or when one venue's pool count looks implausibly low. One row per venue read (uniswap_v4, uniswap_v3), whether or not it has a pool on record yet, so venues and discovery name the same set: pools that trade a listed asset, how many carry a dollar price, depthUsd (the dollars it takes to move each priced pool's price 1%, added up), swaps and volume over the current UTC day and the one before it, and how many assets take their premium from a pool there. checkedAt is when the state read last priced a pool on that venue, headAt inside discovery when the chain head there was read. The Pons launchpad creates its pools on the Uniswap v3 factory, so they count as uniswap_v3. discovery carries each venue's scan position against the chain head; while readingHistory is true the counts are a floor, and while scanned is false the venue has not been read at all.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations to rely on, the description carries the full burden and does so exceptionally well. It discloses row-per-venue behavior including venues with no pools yet, the meaning of readingHistory/scan position, the floor semantics of counts, the Pons launchpad mapping onto Uniswap v3, and precise definitions for depthUsd, checkedAt, and headAt.
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?
The description is dense but justified: nearly every clause adds needed semantic detail about fields, timing, and edge cases. It is front-loaded with the purpose and trigger conditions, though the long middle sentence could be broken up for easier scanning.
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?
Given that there is no output schema and no annotations, the description provides a remarkably complete picture of the tool's return content and interpretation. It covers row identity, field definitions, date windows, edge cases for unread venues, and special launchpad behavior, leaving no major ambiguity for an agent deciding to call it or interpret its results.
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 input schema has zero parameters, so there is nothing for the description to clarify. The behavior of an unparameterized tool is fully explained, and the description focuses on the output semantics rather than inputs.
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 clearly identifies the tool's purpose: enumerating DEX venues on a chain and summarizing their aggregate value and pool/volume metrics. It even gives trigger scenarios ('ask before saying where a Stock Token trades', 'pool count looks implausibly low'), but it does not explicitly name or contrast sibling tools such as pools or activity.
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 description state when to use this tool: before claiming where a Stock Token trades, and when a venue's pool count looks suspicious. That is strong context, but it does not provide explicit exclusions or name alternative tools to use instead, so it falls just short of full guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
eventsRegistry changelogA
Authority events: a token paused or halted, an address blocked, a multiplier scheduled or applied, a feed gone stale, a supply residual, a listing, a lookalike, chain status. kind filters exactly or by prefix (registry., token., multiplier., feed., supply., listing., lookalike., chain.); symbol narrows to one token; since returns only newer rows oldest first with nextCursor.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | ||
| limit | No | ||
| since | No | ISO 8601 instant, or the previous nextCursor | |
| symbol | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the behavioral burden. It does disclose non-obvious behavior: kind filtering semantics, symbol narrowing, and that since returns only newer rows oldest first with a nextCursor. It does not explicitly state read-only behavior, response shape, or pagination mechanics beyond the cursor mention, but the 'changelog' framing implies a read-only listing.
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?
The description is one dense, front-loaded sentence with no filler. Every clause adds scope or parameter semantics, and the semicolon-separated structure keeps it readable despite its length.
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 four-parameter tool with no annotations and no output schema, the description covers event scope and parameter behavior well enough for an agent to invoke it correctly. It still omits the output row shape and any explicit guidance for selecting this tool over related siblings, so it is not fully complete.
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 description coverage is only 25%, but the description compensates well: it explains kind filtering with allowed prefixes, symbol narrowing to one token, and since semantics including ordering and nextCursor. Only limit is left to the schema's min/max constraints, which are fairly self-explanatory.
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 opens with 'Authority events' and lists concrete event categories, making it clear this is a changelog/query tool for registry events. It stops short of an explicit verb like 'list' or 'retrieve', and it does not explicitly differentiate from siblings such as activity or history, but the stated scope is specific enough to identify the tool's purpose.
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 description gives strong within-tool usage guidance: kind can filter exactly or by prefix, symbol narrows to one token, and since returns newer rows with a cursor. However, it never says when to choose this tool over sibling tools like activity, history, or chain_health, so cross-tool selection must be inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
feed_roundsChainlink round history for one assetA
The Chainlink feed's rounds for a ticker, newest first: roundId, answer (price × multiplier, USD), startedAt, updatedAt. since narrows to rounds after an ISO instant; limit up to 2000.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| since | No | ISO 8601 instant | |
| symbol | Yes | Ticker, e.g. TSLA |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it states newest-first ordering, the exact output fields, the meaning of 'answer' (price × multiplier in USD), and how 'since' and 'limit' affect results. It does not explicitly declare read-only status, but the query semantics and field listing make that clear enough.
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?
The description is one dense, front-loaded sentence that conveys resource, ordering, output schema, and filter semantics without filler. Every clause earns its place.
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?
Given no output schema and no annotations, the description covers the essential return values, parameter behavior, and ordering. Minor gaps remain around response envelope, error cases, and exclusivity boundaries, but for a simple history-fetching tool the core information is present.
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 description adds meaning beyond the schema: 'since' is described as narrowing to rounds after an ISO instant, and 'limit' is described with a maximum. It fills the gap for 'limit', which lacks a schema description, while 'symbol' is adequately covered by 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 clearly identifies the resource: Chainlink feed rounds for a ticker, and specifies ordering and returned fields. It lacks an explicit verb like 'retrieves' or 'lists', and it does not directly name a sibling for distinction, though the 'Chainlink feed' qualifier helps separate it from generic history tools.
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 description implies its use case: when you need Chainlink round history for a ticker. However, it gives no explicit when-to-use versus alternative guidance and no exclusions, leaving the agent to infer context from the title and field names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_assetGet one asset by tickerA
One asset with everything the registry knows: address, trust, live state, multiplier history, mints and burns, daily supply reconciliation, corporate actions, the issuer's control-plane events touching it, lookalike tokens that borrow its ticker, and the last 30 Chainlink rounds. Use this before writing any address into code. state.dex is the pool the DEX price and premium are read from: venue names the DEX (uniswap_v4 or uniswap_v3), poolId is a 32-byte pool id on v4 and a 20-byte pool address on v3, and depthUsd is how many dollars of the quote move that pool's price 1% — the figure the deepest pool is chosen by, since Uniswap's raw liquidity compares two pools only when they hold the same pair. The pools tool names the venue of every pool, that one included.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Ticker, e.g. TSLA |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It does impressive work, explaining what state.dex contains and how depthUsd semantically differs from raw Uniswap liquidity: 'the figure the deepest pool is chosen by, since Uniswap's raw liquidity compares two pools only when they hold the same pair.' It doesn't state return envelope structure, pagination, or error handling, but given no annotations and the rich existing content, it earns a 4 rather than a 5.
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?
The description is long, but every sentence earns its place: the lead sentence enumerates the data payload, the second gives a use case, and the rest explains a subtle but critical output detail (pool depth vs raw liquidity). The state.dex explanation is slightly dense but still substantive. The description is front-loaded with the tool's purpose before technical nuance.
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 single-parameter registry lookup, the description is nearly complete. The tool has no output schema, so explaining what the asset object contains is essential, and it does. The only gap is that it doesn't describe what happens when a ticker has no match or when multiple lookalikes exist, but the presence of the lookalikes field and sibling tool list covers that partially. Overall, the description gives an agent enough context to invoke the tool correctly and understand its response.
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 100%, so the schema already documents the ticker parameter. The description adds usage intent ('Use this before writing any address into code') and clarifies that the symbol is a ticker with an example. It also adds meaning to the larger data model (state.dex venue/poolId/depthUsd), which indirectly helps an agent understand output semantics. With complete schema coverage and this additive context, 4 is appropriate.
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 opens with a clear, specific statement: 'One asset with everything the registry knows' and then enumerates a comprehensive list of what's included (address, trust, live state, multiplier history, mints/burns, reconciliation, corporate actions, control-plane events, lookalikes, Chainlink rounds). It also explicitly identifies the ticker parameter, so an agent can immediately distinguish this from siblings like list_assets or history.
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 description gives direct usage guidance: 'Use this before writing any address into code.' This tells an agent when to invoke the tool and implies its role as a foundational verification step. It also distinguishes the tool from siblings by explicitly referencing the pools tool: 'The pools tool names the venue of every pool, that one included' — a clear pointer to an alternative for pool-level lookups.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
historyWhat every number for one asset was on a past dayA
A daily snapshot per asset: multiplier, pause and trading-halt flags, Chainlink price and staleness, bid and ask, divergence, DEX price, premium and liquidity, total supply, holders and the lookalike count, one row per UTC day. Use at=YYYY-MM-DD to answer 'what was TSLA's premium on that day'; from/to or days set a window (default the last 90). fields narrows each row. coverage says how many days are on record: history begins the day the daily snapshot first ran and there is nothing before it, and a null is a figure that was not read that day rather than a zero. Each row is a single reading taken at takenAt, not a daily open, close or average: the job runs hourly and rewrites the current day's row, so today's row is a partial day. Compare takenAt across rows before treating the series as evenly spaced. Prices are USD numbers; dexPremiumPct is a percent, how far the deepest pool in dollars of any DEX read sat above (+) or below (-) the Chainlink feed price that day (the pools tool names that pool's venue; dexLiquidity is Uniswap's raw L, comparable only between pools of the same pair); totalSupplyRaw is a string in the token's own decimals (the response carries decimals); day is a UTC day and takenAt the ISO instant the reading was taken. The Chainlink price already includes the ERC-8056 multiplier, the bid and ask do not.
| Name | Required | Description | Default |
|---|---|---|---|
| at | No | One UTC day, YYYY-MM-DD | |
| to | No | Last UTC day, YYYY-MM-DD | |
| days | No | ||
| from | No | First UTC day, YYYY-MM-DD | |
| fields | No | Comma-separated keys, e.g. feedPrice,dexPremiumPct | |
| symbol | Yes | Ticker, e.g. TSLA |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses critical behavioral traits beyond raw schema: each row is a single reading at takenAt, not a daily open/close/average; the job runs hourly and rewrites the current day's row; coverage reports days on record and history starts when the snapshot first ran; null means 'not read that day' rather than zero. It also explains unit semantics for dexPremiumPct and totalSupplyRaw and the ERC-8056 multiplier difference between Chainlink price and bid/ask. There are no annotations to contradict.
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?
The description is dense and information-rich, front-loading the core purpose and then providing necessary caveats and unit semantics. A few sentences are long, but every sentence earns its place given the complexity of the data. It could be slightly tightened, but remains efficient for the volume of behavioral nuance it conveys.
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?
Completeness is strong given the tool's complexity and the absence of an output schema. The description explains the row's meaning, time semantics, coverage, and key unit differences. While it doesn't enumerate every output field in prose, the schema already covers parameter definitions and the example plus field list adequately set expectations.
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 already high (83%), and the description adds semantic detail for the 'at' parameter with an example, explains the window with from/to or days, and clarifies the meaning of 'coverage' and 'fields'. It does not restate the standard string formats, but the example and explicit date-window hints give the agent meaningful extra context.
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 clearly states the tool returns a daily snapshot per asset with an explicit list of fields, and uses a concrete example query ('what was TSLA's premium on that day') to show how to use the at parameter. It distinguishes this from related tools by specifying it is historical daily data, not status or feed rounds.
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?
Provides explicit guidance on when to use the tool: to answer questions about a past day's values per asset, with at=YYYY-MM-DD, from/to or days for a window, and fields to narrow rows. It also clarifies the data's daily nature, coverage caveats, and the distinction between reading takenAt versus a daily open/close/average. It doesn't explicitly name sibling alternatives, but its context is strong enough to route an agent correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
holdersHolders, labels and where the float sits for one assetA
How much of a ticker is in investors' hands and how much is parked elsewhere, plus who holds it, largest first. sits is always one of float, pools, issuer, bridge, contracts, unknown and names the concentration share that address's balance counts towards; unknown means the code probe has not checked the address yet. label and labelKind are null for an address the registry has nothing to say about. rawBalance is in base units; divide by 10^decimals. sharePct is that balance over the live totalSupplyRaw, while the concentration shares are over the balances the ledger held at concentration.asOfBlock, so the two can differ slightly. concentration carries top 1, top 10, Gini and the six shares that say where the supply sits — floatPct (in ordinary wallets), poolsPct, issuerPct, bridgePct, contractsPct, unknownPct — which add to 100. unknownPct is the share held by addresses the probe has not checked — it checks every holder above a ten-thousandth of a token's supply, so a long tail of small holdings stays there and floatPct is always a floor. issuerPct covers wallets labelled issuer, written only for Stock Tokens; issuerAddress is this asset's largest mint recipient whatever the asset type. concentration.day is the UTC day of the reading, takenAt when the job wrote it, and the job runs every 24 h; concentration.holders is the count at that moment while holderCount is read live. concentration is null until the transfer ledger has reached the chain head; progress says whether it has.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| symbol | Yes | Ticker, e.g. TSLA |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and excels: it explains null label behavior, unknown address probing, the difference between live and as-of-block shares, the 24-hour job cadence, chain-head readiness, and the fact that small holders make floatPct a floor. This gives an agent the operational context annotations would otherwise provide.
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?
The description is long but densely informative; every sentence covers a distinct semantic point that matters because there is no output schema. It is front-loaded with the core question, though a bulleted or segmented layout would improve scanability.
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?
It covers nearly all output semantics, including null conditions, base units, share numerators, and timing. The main gap is the undocumented limit parameter and the lack of an explicit top-level shape, which are important for correct invocation without an output schema.
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?
Symbol is documented in the schema and echoed by 'ticker', but the optional limit parameter has no semantic explanation anywhere; the description never says what limit controls. With only 50% schema coverage, the prose should compensate, and it does not.
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 opening sentence states exactly what the tool returns: how much of a ticker is in investor hands, where the rest sits, and who holds it in descending order. It is clearly scoped to one asset and distinct from sibling resource-specific tools, though it never explicitly names an alternative.
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?
No alternative tools or when-not-to-use conditions are mentioned. The description strongly implies its use for holder and float concentration inquiries and gives readiness timing, but doesn't explicitly compare with siblings like pools or bridge.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
issuer_documentsThe issuer's paperworkA
Every document the issuer publishes (base prospectus, supplements, notices, one Final Terms PDF per ticker) with its CDN ETag and Last-Modified and the token it maps to, plus the watched pages (restricted jurisdictions, corporate actions, upgrade notices) and when their text last changed. kind filters: base_prospectus, supplement, notice, final_terms, other.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the full burden and does substantial work: it discloses the returned data (documents, CDN ETag, Last-Modified, token mapping, watched pages, last-change times) and the filtering behavior. It does not explicitly mention pagination, ordering, or read-only semantics, but for a list-style tool this is reasonably transparent.
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 dense sentences convey a large amount of useful detail without filler. The scope, metadata fields, watched pages, and filter values are all presented compactly and front-loaded.
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 tool with one optional enum parameter and no output schema, the description covers the main return contents and filtering options well. It lacks explicit guidance on default behavior without a kind value and does not clarify how the watched-pages portion relates to sibling tools, but overall it provides enough context for correct invocation.
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 description coverage is 0%, but the description compensates by explaining that 'kind' is a filter and by listing all valid values exactly matching the schema enum. It does not state what happens when kind is omitted, but for a single optional parameter this is adequate.
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 clearly identifies the tool's resource: every document the issuer publishes plus watched pages, with metadata and filtering. It lacks an explicit retrieval verb like 'list' or 'get', and it includes corporate-action content that overlaps with a sibling tool name, but the intent is unmistakable.
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?
No guidance is given for when to use issuer_documents instead of siblings such as corporate_actions, history, or events. The kind filter is explained, but there are no exclusions, prerequisites, or references to alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_assetsList registry assetsA
Every verified asset on Robinhood Chain (chain 4663): Stock Tokens, bridged coins, USDG, WETH, each with its contract address, decimals, trust and live state (multiplier, pauses, Chainlink price, holders, second-source agreement). Filter with q (symbol or name substring) or symbols (comma-separated exact tickers). fields adds lookalikes, corporateActions, multiplierHistory, feedRounds or concentration per asset, for up to 50 assets — concentration answers which Stock Tokens have the least float in one request.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Symbol or name substring | |
| fields | No | Comma-separated extras: lookalikes,corporateActions,multiplierHistory,feedRounds,concentration | |
| symbols | No | Comma-separated tickers, e.g. TSLA,AAPL |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden, and it does well: it discloses the scope (verified assets only), per-asset return contents (multiplier, pauses, Chainlink price, holders, second-source agreement), filter semantics, and the 50-asset enrichment cap. It is silent on pagination, default result limits, and result ordering, which keeps it from a 5.
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?
The description is one dense paragraph but is logically ordered: scope → returned data → filtering → enrichment. The core listing purpose is front-loaded and every clause carries information. It borders on long, but there is no padding given the number of behaviors it needs to convey.
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 tool with no output schema and no annotations, the description effectively documents the return payload inline (address, decimals, trust, live state) along with parameter behaviors and a result cap. The main gaps are the unresolved sibling overlap (fields values mirror dedicated sibling tools, with no routing guidance) and the absence of pagination/default-limit behavior.
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 description coverage is 100%, so the schema already documents q, fields, and symbols, giving the baseline of 3. The description adds context for fields (per-asset semantics, the 50-asset cap, and the concentration use case) but largely restates the filter behavior already present in the schema, so it does not meaningfully exceed the baseline.
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 states a specific verb and resource ('Every verified asset on Robinhood Chain (chain 4663)') and enumerates exactly what is included: Stock Tokens, bridged coins, USDG, WETH, with contract address, decimals, trust, and live state. It clearly differentiates from the sibling get_asset by being the plural/list variant and distinguishes itself from lookalikes, corporate_actions, feed_rounds, and holders by offering those as optional fields within the list response.
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 description explains the two filtering modes (q substring vs. symbols exact tickers) and gives an explicit use case for the enrichment path ('concentration answers which Stock Tokens have the least float in one request'). However, it never names sibling tools as alternatives or states when NOT to use this tool — an agent must infer the boundary against the dedicated lookalikes, corporate_actions, feed_rounds, and holders endpoints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lookalikesLookalike tokensA
ERC-20s on Robinhood Chain that borrow a listed ticker or exact name at another address, most held first, each with a verdict: impostor (fails the beacon test), unlisted_stock (issuer-deployed but not listed), or unverified (a bridged coin's ticker, where the Arbitrum gateway is one bridge among several). Filter by symbol.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| symbol | No | Ticker, e.g. TSLA |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It discloses ordering, the three verdict categories, and the impostor criterion ('beacon test'). It does not mention pagination or default limits, but for a read-only listing tool the exposed behavior is reasonably transparent.
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?
The description is a single dense sentence with no filler; each clause contributes meaningful detail about classification, ordering, or filtering. The heavy parenthetical structure keeps it from being maximally scannable, but it is still efficient.
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?
The description explains the domain, verdicts, and ordering, but with no output schema it does not sketch the shape of each returned result beyond the verdict. Limit semantics are also left ambiguous, so an agent may not know exactly what to expect from a call.
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 description coverage is only 50%, and the description adds little beyond the symbol parameter by saying 'Filter by symbol.' The limit parameter has no schema description and no mention in the description, leaving its effect and default behavior unexplained.
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 clearly defines the resource: ERC-20s that borrow a listed ticker or exact name at another address, and it specifies output ordering ('most held first') and a verdict taxonomy. This makes the tool easy to distinguish from sibling tools like list_assets or get_asset.
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 usage guidance is 'Filter by symbol,' which implies the intended call pattern but does not explain when to prefer lookalikes over list_assets or get_asset. It also does not clarify whether the symbol filter is required or optional in practice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
poolsDEX pools for one assetA
The pools that trade a ticker, deepest first in dollars, on every DEX the registry reads: venue (uniswap_v4 or uniswap_v3), price in the quote and in dollars, depthUsd, liquidity, fee, hooks, swaps and volume, plus the pool used for the asset's premium against the Chainlink feed, which is the deepest pool in dollars of any venue. depthUsd is how many dollars of the quote token it takes to move the pool's price by 1% — a ceiling, since a move that leaves the position's range runs out of liquidity first, and not the pool's token balance; liquidity is Uniswap's raw in-range L, not a dollar figure, and compares two pools only when they hold the same pair. swaps24h and volumeUsd24h cover the current UTC day and the one before it, and are null for a pool discovered inside that window, whose earlier swaps the scan never read. A v4 pool is an id inside the one PoolManager and has no address of its own; a v3 pool is a contract and carries poolAddress. discovery says how far each venue's pool scan has read: while readingHistory is true a pool in blocks not yet reached is missing from the list, and while scanned is false that venue has not been read at all.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Ticker, e.g. TSLA |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden, and it delivers substantial transparency. It explains the exact meaning of depthUsd as a ceiling, clarifies that liquidity is raw in-range L and not a dollar figure, notes null swaps/volume for newly discovered pools, explains v4 vs v3 addressing, and defines discovery states. These are non-obvious behaviors essential to interpreting results.
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?
The description is long, but every sentence carries substantive meaning about field semantics, edge cases, or discovery behavior. The main outcome and ordering are front-loaded, followed by caveats. It could be broken into shorter sentences or bullets for readability, but it is not padded with filler.
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 data-rich tool with no output schema, the description is remarkably complete. It specifies the fields returned, the units and semantics of ambiguous metrics, time-window behavior for swaps and volume, v4/v3 structural differences, and discovery-state caveats. The one required parameter is trivially documented, so nothing essential is missing for correct invocation and interpretation.
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 input schema already documents the only parameter, symbol, with a clear example (TSLA), and coverage is 100%. The description adds context that the symbol is a ticker used to find trading pools, but it does not need to add more because the schema is sufficient for this single-parameter tool.
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 a specific resource (DEX pools for a ticker) and a precise shaping (deepest first in dollars, across all venues the registry reads). It enumerates the returned fields and the special pool used for premium, which makes the tool's purpose unmistakable and distinguishes it from asset-level siblings like get_asset or dex_venues.
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 description clearly establishes when to use the tool: to obtain pools trading a given ticker, sorted by dollar depth, across every venue. It does not explicitly enumerate exclusions or alternatives among the sibling tools, but the domain and scope are stated precisely enough that an agent can infer the appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
statusRegistry freshnessA
Freshness of everything Fletch publishes: the daemon's heartbeat, each of the registry's jobs against the cadence it should run at (verdict fresh, late, failing, filling, stalled or never; a figure can also be unread), the scanners still reading chain history with how long they have left, and the age of every figure. Call this before trusting a number whose freshness matters; a 'filling' job means its figures are partial, not wrong, and 'stalled' means a scanner's checkpoint has stopped moving, not that it is slow.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It does this well by explaining the meaning of states like 'filling' and 'stalled' and clarifying that these do not indicate wrong or slow data. It does not explicitly mention side effects or access requirements, but for a status tool this is a reasonable disclosure.
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?
The description is dense but every sentence earns its place: it starts with the core purpose, enumerates exactly what is covered, and then gives practical usage and interpretation guidance. No filler or redundant restatement.
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 parameterless tool with no output schema, the description is complete enough for an agent to know what to expect and when to call it. It explains all major output categories and the critical interpretation caveats, leaving little ambiguity.
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 tool has zero parameters, so there is nothing for the description to add beyond the schema. The baseline of 4 applies because the schema already fully covers the parameter surface.
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 clearly identifies the tool's resource: freshness of everything Fletch publishes, including daemon heartbeat, registry jobs, scanners, and figure ages. It is specific and not a tautology, though it lacks an explicit verb and does not directly differentiate itself from sibling tools such as chain_health.
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 explicit guidance on when to call: before trusting a number whose freshness matters. It also explains how to interpret freshness verdicts, which helps the agent know what the result means, but it does not discuss when not to use this tool or when a sibling would be preferable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
webhooksYour webhook endpoints for watcher alertsA
The HTTPS endpoints this account has registered for watcher alerts, with when each last received a delivery and its last error. Needs FLETCH_API_KEY with the watchers:read scope; without a key this returns 401. The key is sent only to this route, and only when FLETCH_API_URL is https. Creating, rotating and deleting an endpoint is deliberately not exposed here — an endpoint is where alerts leave Fletch, so it is added in the dashboard (Settings → Webhooks) or with an explicit POST /api/v1/webhooks. Each delivery is signed X-Fletch-Signature: t=,v1=<hex hmac-sha256 over ".">. lastError is the most recent failure whenever it happened and is cleared by the next success — it is not evidence the endpoint is down now; compare lastErrorAt with lastDeliveredAt, which counts test pings as well as alerts.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so thoroughly. It discloses the authentication failure mode, key routing constraints, signature format, and the subtle semantics of lastError versus lastDeliveredAt, preventing misinterpretation.
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?
The description is long but every sentence earns its place, moving from what the tool returns, to auth, to exclusions, to signature and error semantics. There is no filler or repetition.
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 no-parameter, no-output-schema tool, this is complete: an agent knows what it will get, how to authenticate, what it should not use it for, and how to interpret ambiguous fields. Nothing needed for correct invocation is missing.
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 tool has zero parameters and the schema covers 100% of them, so there is no parameter semantic gap. Per the 0-param baseline this is a 4; the description also adds relevant context about environment variables that affect invocation.
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 identifies the tool as a read-only representation of the account's registered webhook endpoints for watcher alerts, including per-endpoint delivery and error state. It clearly distinguishes this from sibling tools by domain (webhooks vs assets/chain health/status) and explicitly says creation/rotation/deletion is not exposed here.
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 states auth prerequisites (FLETCH_API_KEY with watchers:read, 401 without key, HTTPS-only delivery) and gives explicit when-not guidance: endpoint lifecycle operations are deliberately not exposed, with the dashboard and POST /api/v1/webhooks named as alternatives. This lets an agent route to the correct operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
17 tool updates
v0.1.0- First observed
activity - First observed
bridge - First observed
chain_health - First observed
control_plane - First observed
corporate_actions - First observed
dex_venues - First observed
events - First observed
feed_rounds - First observed
get_asset - First observed
history - First observed
holders - First observed
issuer_documents - First observed
list_assets - First observed
lookalikes - First observed
pools - First observed
status - First observed
webhooks
TDQS
Most tools target a distinct resource (assets, rounds, holders, pools, bridge, documents, events), and the descriptions are detailed enough to separate them. A few pairs—status vs chain_health, history vs activity—could be confused at a glance, but their purposes are clearly differentiated once read.
The set is mostly readable snake_case noun-resource names, with list_assets and get_asset as the only verb-prefixed tools. This mixed convention is not chaotic, but it is inconsistent: bare resources like holders, pools, and events sit alongside verb-prefixed asset endpoints.
Seventeen tools is at the heavy end for a single MCP server, and the calibration for this range is borderline. That said, each tool does correspond to a distinct data domain rather than redundant operations, so the count is justified even though it feels large.
The read-only surface covers the main data domains well: asset discovery and detail, feed rounds, history, holders, transfers, pools, venues, bridge flows, documents, lookalikes, chain health, events, corporate actions, and webhooks. Minor gaps exist—such as no document-body retrieval and no per-job drilldown beyond the aggregate status—but they are workable.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Read-only tokenized stock data: issuers, chains, contract addresses and corporate actions.
MEOK ABCI Bridge MCP — read-only Tendermint / Cosmos blockchain query for agents. Built-in registry
Read-only MCP server for Robinhood Chain token discovery, research, and due diligence via GMGN.
Read-only MCP over the Mzizi design system registry — nodes, components, ownership.
Related MCP Servers
- AlicenseAqualityBmaintenanceEnables agents to query live Robinhood Chain data including tokens, wallets, Chainlink feeds, heat scores, and tracking error on tokenized equities, all read-only without API keys.412MIT

robinscan-mcpofficial
AlicenseNot gradedqualityBmaintenanceMCP server for querying Robinhood Chain blockchain data, including network stats, transactions, token transfers, and stock prices.MIT- FlicenseNot gradedqualityCmaintenanceRead-only MCP server for Robinhood chain launchpad discovery and token due diligence using GMGN data.-
- FlicenseNot gradedqualityCmaintenanceRead-only MCP server for Rialto, the onchain swap router on Robinhood Chain, offering token listing, quoting, preflight checks, and unsigned transaction building without any signing or submission.-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/fletch-now/fletch-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server