ChainFolioAI
Server Details
Read-only crypto and traditional portfolio: holdings, PNL, FIFO tax figures and market data.
The last two health checks of this connector failed. If this server requires authentication, missing or expired test credentials may be the cause. A test profile lets Glama authenticate for health checks and discover tools; it is separate from your personal connections.
If you are the author, claim ownership, then add or update a test profile under Admin → Test Profile.
- Status
- Unhealthy
- Uptime
- 35.9% over 40 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 23 tools
Most tools target clearly distinct data: get_asset vs get_market vs get_price_on (single/top/historical), and get_portfolio vs get_pnl vs get_metrics vs get_portfolio_score are related but separated by descriptions. A few portfolio-oriented getters could still be momentarily confused, but each has a specific output defined.
Every tool follows a consistent snake_case verb_noun or verb_noun pattern (get_, list_, ask_), with prefixes used predictably: get_ for reads, list_ for enumerations, ask_ for the AI. No camelCase or mixed verb styles.
At 23 tools the set is on the heavy side, but the server spans genuinely broad domains (market data, portfolio analytics, tax, DeFi, NFTs, whales, news), so most tools earn their place rather than overlapping. Slightly over ideal but defensible for the scope.
Coverage is broad across portfolio valuation, performance, realized gains, tax estimation, DeFi positions, NFTs, wallets, whale tracking and market data, with read paths for nearly everything. Gaps are minor: no tool to record/add trades or manual assets, and no export/settings operations.
Available Tools
23 toolsask_aiBInspect
Ask the AI assistant, in natural language, about your real portfolio (analysis, context, risks). It never gives buy or sell orders. Daily limit per account.
| Name | Required | Description | Default |
|---|---|---|---|
| question | Yes | The question about the portfolio or the market (max. 1000 characters). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does add real value: it discloses the no-buy/sell-orders constraint and a daily per-account limit. However, it omits what happens when the limit is hit, latency, or response format, so coverage is partial.
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 short, front-loaded clauses with no filler; the core purpose leads and the constraint follows. Efficient, though the parenthetical could be tightened.
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-param tool with no annotations and no output schema, the description covers purpose and two behavioral constraints but leaves the return shape and alternative-tool relationship unaddressed, so an agent must infer how the response looks.
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% and the single 'question' parameter is fully documented in the schema, so baseline is 3. The description's mention of 'natural language' mildly reinforces the expected input but adds no syntax or format detail beyond 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?
States a specific verb (ask) and resource (AI assistant, natural language, about your portfolio) with a scoped topic list (analysis, context, risks). This clearly distinguishes it from the get_* siblings that return raw data, though it doesn't name any sibling explicitly.
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?
Implies usage through 'in natural language, about your real portfolio (analysis, context, risks),' but never states when to prefer this over direct data tools like get_portfolio or get_pnl. No explicit when-not or alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_assetBInspect
Price, market cap, volume and change (24h/7d) of a crypto asset by symbol (e.g. btc, eth, sol).
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Asset symbol, e.g. btc |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the behavioral burden, and it does partially by disclosing the returned fields and that lookup is by symbol. It says nothing about failure behavior for an unknown symbol, rate limits, or authentication, and there is no output schema to fall back on.
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 front-loaded sentence that leads with the returned data rather than the verb, with the input example placed last. No filler or redundant clauses.
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 simple single-parameter read tool with full schema coverage, the description covers input and the shape of the result (which substitutes for the absent output schema). The remaining gap is the lack of differentiation from overlapping siblings, which an agent might need to choose 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 100% and the single parameter is well documented with a pattern and example ('btc'). The description's own example list (btc, eth, sol) only restates what the schema already provides, adding no new constraint or format detail.
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 (a crypto asset by symbol) and enumerates exactly what data is returned (price, market cap, volume, 24h/7d change), so the agent knows the payload. It does not, however, distinguish itself from near-siblings like get_price_on or get_market, leaving overlap unresolved.
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 indication of when to prefer this tool over alternatives such as get_price_on, get_market, or get_metrics, all of which plausibly overlap. There are no stated conditions, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_btc_blocksBInspect
Recent Bitcoin blocks (height, number of transactions, median fee, pool) and recommended mempool fees.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full behavioral burden, yet it never defines what 'recent' means (how many blocks, what time window), how mempool fee recommendations are derived or denominated, or whether the call is read-only/rate-limited. It discloses return content but not 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?
A single dense sentence with the resource front-loaded and every clause (field list, mempool fees) contributing information. 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-param read tool with no output schema, listing the returned fields is helpful, but the undefined freshness window and unspecified depth of blocks/fee figures leave real gaps an agent cannot resolve from structured fields.
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 takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies. No parameter syntax is needed or missing.
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 clear verb+resource ('get' Bitcoin blocks) and enumerates the returned fields (height, tx count, median fee, pool) plus mempool fees. No sibling tool covers blocks, so differentiation is implicit rather than stated, which keeps it from a 5.
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 guidance on when to use this versus siblings such as get_market, get_metrics, or get_fear_greed, nor any prerequisites or exclusions. Only the word 'Recent' hints at intended scope.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_defi_positionsAInspect
The user's lending positions read from the contracts (Aave V3, Spark, Compound V3, Morpho, EigenLayer) on Ethereum, Arbitrum, Base, Optimism and Polygon: supplied, borrowed and net, with health factor. It queries the blockchain, so it takes a few seconds.
| 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 add real behavioral context: it is a live blockchain read ('It queries the blockchain') with an explicit latency warning ('takes a few seconds'), and it discloses the shape of the returned values. It does not state auth/wallet-connection prerequisites or any error/caching behavior, which is the remaining gap.
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 sentences, fully front-loaded: what it returns first, the latency caveat second. No filler, no repetition of the tool name.
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 or annotations exist, so the description must cover returns — and it does, naming supplied/borrowed/net/health factor plus the protocol and chain coverage. What is missing is how the user's wallet is selected (no params, no auth note) and any failure mode, leaving a small but real gap for a zero-config read 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 tool takes zero parameters, so per the rubric the baseline is 4. The description usefully clarifies that the wallet is implicit ('The user's lending positions') rather than supplied as an argument, which is the only semantic question a param-less schema raises.
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?
Names a specific verb+resource ('lending positions'), enumerates the exact protocols (Aave V3, Spark, Compound V3, Morpho, EigenLayer) and chains covered, and lists the returned fields (supplied, borrowed, net, health factor). An agent can distinguish this from get_portfolio or get_pnl without opening any schema.
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 DeFi/lending scoping implies when to reach for this over a generic portfolio call, but no explicit when-to-use statement or sibling alternative is named (e.g. get_portfolio for CEX balances). Usage is inferable rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_derivativesAInspect
Derivatives data for a symbol on OKX: open interest, long/short ratio, funding, CVD, taker volume, 1 h candles, put/call and a composite sentiment score (0–100).
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | No | Symbol, e.g. BTC (default) or ETH. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does disclose the data source (OKX) and the exact metrics returned. However, it says nothing about freshness/caching, rate limits, or that the call is read-only, and does not note the default-symbol behavior that the schema mentions.
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 front-loaded sentence that leads with the resource and source, then lists the payload. The enumeration is long but every item is informative, so nothing meaningfully wasteful is present.
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 is the only source of return-value information, and it delivers that by naming all the metric families returned. What remains missing for a zero-annotation tool is minor behavioral context (freshness, read-only confirmation), so it is nearly but 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 100% and the single symbol parameter is already documented with an example and default (BTC). The description adds no parameter syntax or format detail beyond the schema, so the baseline of 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?
States a clear resource (derivatives data for a symbol on OKX) and enumerates the exact payload (open interest, long/short ratio, funding, CVD, taker volume, 1h candles, put/call, sentiment score), which is far more specific than the sibling names like get_market or get_metrics. It does not explicitly contrast itself with those siblings, so an agent must infer the boundary.
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?
Usage is only implied by the content list: an agent can infer this is the tool for derivatives/positioning metrics. There is no when-to-use statement, no mention of alternatives such as get_market or get_metrics, and no prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_fear_greedAInspect
Crypto market Fear & Greed index (current value 0–100, classification and recent history).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It usefully discloses the shape of the returned data (0–100 value, classification, recent history), but says nothing about freshness/lag, rate limits, or data source cadence that an agent might care about.
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?
One compact sentence with the resource front-loaded and the return payload parenthetically appended. 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?
With no output schema, the description sensibly sketches the return values (value, classification, history), and no parameters need documenting. It is nearly complete; only a note on update cadence or history window length 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 takes zero parameters, which is the documented baseline for a 4. Nothing further is required of the description here.
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?
Names a specific resource (Crypto market Fear & Greed index) and scopes the payload: current 0–100 value, classification, and recent history. It is unmistakable among the get_* siblings, though it states what the tool returns rather than explicitly what it does.
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 explicit when-to-use or when-not-to-use guidance. For a zero-parameter sentiment gauge shared by no sibling, the intended use is strongly implied, so this lands at minimum viable rather than absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_fireBInspect
Calculates the years to financial independence (4% rule) from expenses, savings, return and age.
| Name | Required | Description | Default |
|---|---|---|---|
| inflation | No | Annual inflation in % (default 3) | |
| currentAge | No | Current age (default 30) | |
| annualReturn | No | Expected annual return in % (default 7) | |
| monthlyExpenses | Yes | Monthly expenses | |
| currentPortfolio | No | Current net worth (default 0) | |
| monthlyInvestment | Yes | Monthly savings/investment |
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. It does disclose meaningful methodology ('4% rule') and that the calculation is driven by expenses, savings, return and age, implying a pure read-only computation, but it never states that it has no side effects, that it is stateless, or how assumptions like inflation interact with the 4% rule.
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 front-loaded sentence with no filler; the outcome ('years to financial independence') and the method ('4% rule') come first. It is slightly loose in implying a fixed 4% withdrawal rule while exposing an adjustable annualReturn parameter, but it wastes no words.
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 six-parameter calculator with full schema coverage but no output schema, the description should say what is returned (a year count? a projection series?) and clarify how inflation and current portfolio feed the result. It covers the inputs adequately but leaves the output shape unspecified.
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%, with defaults, ranges and units (percent, monthly) already documented per parameter. The description restates the input categories but adds no format, unit, or interaction detail beyond the schema, so the baseline of 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?
States a precise verb ('Calculates') and a precise resource ('years to financial independence'), and names the methodology (4% rule) plus the input basis. It is clearly distinguishable from the market/portfolio siblings such as get_portfolio or get_metrics, though it does not explicitly contrast itself with a sibling.
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 guidance on when to use this tool versus alternatives. A user with a portfolio could plausibly reach for get_portfolio_score or get_metrics instead, but the description gives no criteria, prerequisites, or exclusions to disambiguate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_global_marketAInspect
Global crypto market state: total market cap, 24 h change and Bitcoin and Ethereum dominance.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
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. It discloses the payload shape (a global aggregate snapshot rather than a per-asset query), which is meaningful behavioral context, but it never states that this is a read-only operation, whether it is cached/rate-limited, or how broad the snapshot is.
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 front-loaded sentence that names the resource first and then the specific values returned, with no filler or repetition. 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?
For a zero-parameter, no-output-schema read tool, the description supplies the return contents an agent needs to judge usefulness. It falls short only on the missing route away from the sibling get_market, which is more a usage-guideline gap than an incompleteness of the tool's own contract.
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 takes zero parameters, so there is nothing for the description to disambiguate and the baseline is 4. The enumerated return fields do not add parameter meaning, but no parameter gaps exist.
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 (global crypto market state) and enumerates exactly what is returned: total market cap, 24-hour change, and BTC/ETH dominance. That is far more useful than a tautology, but it makes no attempt to distinguish itself from the sibling tool get_market, leaving the agent to guess which one to call.
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 when-to-use guidance, no when-not-to-use, and no mention of alternatives such as get_market or get_metrics, despite those siblings covering overlapping ground. The agent gets no criteria for selecting this tool over them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_marketBInspect
Returns the top crypto assets by market cap (price, market cap, volume, 24h and 7d change).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many assets to return (1–250, default 50). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses the returned fields (price, market cap, volume, 24h/7d change) and implicitly that this is a plain read, but says nothing about sorting, refresh cadence, rate limits, or data source.
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 dense sentence with the resource and returned fields front-loaded; every clause earns its place, and there is 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?
With no output schema, the description usefully enumerates the return fields, which is exactly what the agent needs. It omits the default count and ranking order (implied 'by market cap') and any pagination behavior, but for a one-parameter read tool this is close to sufficient.
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% and the single 'limit' parameter is fully documented in the schema (range 1-250, default 50). The description adds no additional meaning about the parameter, so the baseline of 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?
States a specific verb and resource ('Returns the top crypto assets by market cap') plus the fields returned, so the agent can tell it apart from single-asset tools like get_asset. It does not explicitly differentiate from the similarly named sibling get_global_market, which is the main ambiguity an agent would face.
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 when-to-use, when-not-to-use, or alternative routing. The natural-language purpose implies 'use this to list top coins,' but nothing tells the agent whether to prefer get_global_market, get_asset, or get_metrics for related questions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_metricsBInspect
Advanced portfolio metrics from the saved history: ROI, CAGR, Sharpe, Sortino, Calmar, volatility, maximum and current drawdown, win rate and 95% VaR.
| 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 behavioral burden and does not meet it. It implies a read-only derivation from saved history but says nothing about what happens when no history exists, whether an account/wallet context is required, or how results are shaped.
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 front-loaded sentence with zero filler; the metric list is dense but informative. The colon-separated enumeration is slightly unwieldy but every item earns its place as the actual return contents.
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 tool with no output schema and no annotations, the enumeration of metrics partially substitutes for a return contract. However, it says nothing about the result shape (per-metric object? single values?) or the implied dependency on portfolio history being populated.
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 takes zero parameters, so the baseline is 4. There is nothing for the description to disambiguate, and it correctly does not invent parameter guidance.
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 resource (advanced portfolio metrics) and enumerates exactly which metrics are returned, so an agent can see it differs from get_portfolio, get_pnl and get_portfolio_score. It does not, however, explicitly contrast itself with those siblings in words.
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 when-to-use guidance, no prerequisites and no named alternative. The phrase 'from the saved history' hints that history must exist, but the description never routes the agent between this and the many other portfolio/metric tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_newsAInspect
Latest crypto news (CoinDesk, CoinTelegraph): title, source, link and date.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many news items (default 15) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does disclose the source providers and the shape of each item, which is meaningful, but says nothing about freshness/refresh cadence, caching, rate limits, or whether results are ever empty. Adequate but thin for a tool with zero annotation coverage.
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 compact sentence that front-loads the resource and immediately specifies the returned fields and sources. No filler, nothing redundant.
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-optional-parameter read tool with no output schema, the description usefully compensates by naming the returned fields and providers. Minor gaps remain around result freshness and the existence of a limit control, which the agent must learn from the 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?
Schema description coverage is 100% — the single 'limit' parameter already documents itself as 'How many news items (default 15)' with a 1–30 range. The description adds nothing about it, 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?
Names the resource ('crypto news') and scopes it with 'Latest', then enumerates the returned fields (title, source, link, date) plus the two upstream providers. No sibling tool retrieves news, so it is trivially distinguishable from get_market, get_global_market and the rest.
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?
'Latest' implies a recency-oriented read, so the intended usage is inferable, but there is no explicit statement of when to pick this over ask_ai or the market-data siblings, and no exclusions or prerequisites are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_nftsBInspect
NFTs in the user's EVM wallets on one network. They are not included in the portfolio total (no reliable price).
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Network (default eth). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully discloses that NFT holdings are excluded from portfolio totals because there is no reliable price, which is real cross-tool context, but it says nothing about read-only nature, wallet scope, or result limits.
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 short sentences with no filler, front-loading what the tool returns before the pricing caveat. Efficient, though the terse phrasing reads more like a fragment than a complete statement.
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 list tool with no output schema and no annotations, the description covers what is returned and the pricing caveat. It omits whether wallets are auto-discovered, whether results are paginated, and whether the call is a safe read, leaving moderate gaps.
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 chain enum and its default are already documented. The phrase 'on one network' still adds meaning by telling the agent that only a single chain can be queried per call, which the schema does not state.
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?
Names the resource (NFTs) and constrains scope precisely: the user's EVM wallets on a single network. No explicit verb, but the retrieval intent is unambiguous and the resource is distinctive enough to separate it from siblings like get_asset or get_portfolio.
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?
Gives no when-to-use guidance, no alternatives, and no prerequisites. The only adjacent hint is that NFTs are excluded from the portfolio total, which implicitly routes the agent here after a portfolio call, but that must be inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pnlAInspect
The user's portfolio performance in euros: current total and change over 24 h, 7 days, 30 days and since the start, from the saved snapshots.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It does disclose meaningful behavioral context: the currency (euros), the data source ('saved snapshots', implying cached/stored rather than live), and the exact metrics returned. It does not state freshness/lag, auth requirements, or whether snapshots must pre-exist.
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, front-loaded sentence that names the subject first and enumerates the timeframes compactly. No wasted words.
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 and no parameters, the description must convey the return shape, and it does reasonably well: total plus change across four windows in euros, sourced from snapshots. Missing only data-freshness/lag detail, which is a minor gap for a parameterless read 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?
Zero parameters, so the baseline is 4. There is nothing for the description to disambiguate at the argument level.
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 resource (portfolio performance/PnL) with concrete scope: current total and change over 24h/7d/30d/since start. An agent can tell it apart from get_portfolio (holdings) or get_realized_gains (tax-relevant gains). It lacks an explicit verb but the resource+metric is unambiguous.
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 on when to use this versus siblings like get_portfolio, get_portfolio_score, or get_realized_gains. No prerequisites or exclusions stated; the agent must infer that this is the performance-over-time view.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_portfolioAInspect
Returns the user's latest portfolio snapshot: balances per network (ETH, SOL, BTC, ADA), exchanges (CEX), DeFi and manual assets.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. 'Returns' and 'latest snapshot' imply a read-only, point-in-time operation, which is useful, but there is no mention of auth requirements, whether the portfolio can be empty, or freshness/staleness of the snapshot.
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 front-loaded sentence with a colon-delimited enumeration of contents; every clause earns its place and nothing is padded.
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 must convey return content, and it does enumerate the balance categories. It omits structural details (flat vs nested, per-asset value fields), but for a zero-parameter read tool the coverage is close to sufficient.
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 takes zero parameters, so the baseline is 4. There are no inputs to explain, and the description correctly focuses entirely on the returned content.
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 (Returns) and resource (portfolio snapshot) and enumerates the contents: per-network balances (ETH, SOL, BTC, ADA), CEX, DeFi and manual assets. This clearly separates it from narrower siblings like get_defi_positions or get_wallets, though it never names those siblings explicitly.
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 word 'latest' hints that this is the current-state view rather than a historical one, but there is no explicit when-to-use guidance and no alternatives are named. An agent must infer from the sibling list whether to call this or get_defi_positions/get_wallets/get_pnl.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_portfolio_scoreBInspect
The user's portfolio score (0–100), as shown in the app: diversification, crypto/traditional mix, stablecoin reserve, performance and risk management. A reading aid, not a recommendation to buy or sell.
| 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; it does disclose one real behavioral trait — that the output is advisory/interpretive and not financial advice — which is useful for framing. But it says nothing about permissions, auth, whether the score is cached or computed live, or latency, so it remains partial for a tool with zero annotation coverage.
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 sentences, front-loaded with what the score is and what it contains, followed by the disclaimer. Every clause maps to something the agent needs (scale, components, non-advisory nature); minor redundancy in 'as shown in the app'.
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 steps in and enumerates the score's constituent dimensions (diversification, mix, stablecoin reserve, performance, risk) alongside the 0–100 range, which is enough for an agent to interpret the return. It stops short of describing how the score is computed or what shape the response takes (single number vs per-dimension breakdown), a modest gap for a zero-parameter read 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 tool takes no parameters (0 required, 0 optional), so there is nothing for the description to disambiguate; baseline 4 applies. The schema is trivially empty and the description correctly does not invent 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?
It names the specific resource (the user's portfolio score) and pins down the scale (0–100) plus the five dimensions that compose it, so an agent knows exactly what is returned. It does not, however, distinguish itself from the closely named sibling get_portfolio, leaving the agent to infer the difference.
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 call this instead of get_portfolio or get_metrics, nor any prerequisite or context. The closing sentence is a liability disclaimer ('a reading aid, not a recommendation to buy or sell'), not usage guidance, so the agent gets no routing help.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_price_onAInspect
Closing price in US dollars of a crypto asset on a date (UTC), from OKX daily candles. Useful to value a past buy or sale.
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | Data em AAAA-MM-DD (UTC). | |
| symbol | Yes | Symbol, e.g. BTC. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It does disclose source and granularity ('OKX daily candles', closing price only), which implies intraday quotes are unavailable via this tool, but it says nothing about failure modes such as unsupported symbols, dates before a listing, or missing candles, and nothing about auth or rate limits.
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 sentences, no filler, and the most important fact (what is returned, in what unit, for what date) is front-loaded. The secondary sentence adds the use case without diluting the core statement.
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 simple two-parameter read tool with full schema coverage and no output schema, the description covers what comes back (a USD closing price) and when to use it. It is thin on edge-case behavior (unknown symbol, date outside available history) and on whether there is a single scalar return or a richer payload, which is the remaining 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?
Schema description coverage is 100%, so both parameters are already documented (date pattern AAAA-MM-DD UTC, symbol example BTC) and the baseline is 3. The description only adds that the price is denominated in US dollars and reaffirms the UTC convention, which is marginal value over 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 exact quantity returned (closing price), the unit (US dollars), the resource class (crypto asset), the temporal scope (a single date, UTC) and the data provenance (OKX daily candles). That fully qualifies the operation and separates it from siblings like get_market or get_asset, which are not pinned to a single historical date.
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?
'Useful to value a past buy or sale' gives an explicit, concrete use context for calling this tool. There is no stated exclusion or named alternative, so it stops short of a 5, but the agent knows the intended scenario.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_realized_gainsAInspect
The user's realised capital gains using FIFO, in euros, with fees and gas deducted: total, per asset and per year. Not a tax return.
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | Calendar year of the sales (optional; without it everything is returned). |
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 discloses the accounting method (FIFO), currency, that fees and gas are deducted, and the return shape (total/per asset/per year). It omits any statement about permissions, data freshness, or whether the result is read-only/cached, which keeps it short of 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?
One dense sentence plus a three-word caveat, front-loaded with the resource and method. Every clause (FIFO, euros, fees/gas, aggregation levels) earns its place and nothing is padded.
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 compensates by describing the return structure, and it covers method and deductions. For a single-optional-parameter read tool this is nearly complete; only the absence of any read-only/safety statement and empty-result behavior keeps it from a 5.
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% and the single 'year' parameter is fully documented in the schema, including the optional/return-everything behavior. The description's 'per year' phrasing reinforces the grouping dimension but adds no syntax or format detail beyond the schema, so the 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?
States the exact resource (realised capital gains), the calculation method (FIFO), currency (euros), and deductions (fees and gas), plus the aggregation levels (total, per asset, per year). This is specific enough to separate it from get_pnl and get_tax_estimate, though it never names a sibling explicitly.
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 closing caveat 'Not a tax return' implicitly steers the agent toward get_tax_estimate for filing purposes, which is a useful negative signal. However, there is no positive statement of when to prefer this tool, no prerequisite or scope guidance beyond that one caveat.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tax_estimateAInspect
ESTIMATE of capital-gains tax in a country, in that country's currency: the country's cost method (FIFO, average cost, LIFO, UK pooling, annual sum), each trade converted at the ECB rate of its date, the rules of the year of sale, holding period, annual allowance and, where the law allows, losses carried from previous years. Not a tax return. Each country's options are in list_tax_countries (options field).
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | Tax year of the sales (optional). In the UK and Australia it is the year the tax year starts (2025 = 2025/26). | |
| country | Yes | Two-letter country code (e.g. PT, ES, US). See list_tax_countries. | |
| alternative | No | BR, PT, AR and AT only: the alternative option for where the coins are held (BR foreign exchange; PT broker outside the EU/EEA with no tax treaty; AR sale in pesos; AT Austrian platform). | |
| marginalRate | No | Only where the rate depends on income (DE, GB, US, CA, AU, LU, MX): the person's marginal rate as a fraction (0.35 = 35%). Without it the top rate is used. | |
| marginalRateLong | No | US only: the person's long-term rate as a fraction (0, 0.15 or 0.20, plus 0.038 NIIT if applicable). |
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 discloses the computation model (cost method per country, ECB rate at trade date, year-of-sale rules, holding period, allowance, loss carry-forward) and a key caveat ('Not a tax return'). It omits auth/permission requirements and any rate-limit or performance notes.
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 sentences, front-loaded with the purpose and scope before the mechanics, and the caveat lands early enough to matter. The second sentence is a dense enumeration, but each clause carries distinct information rather than padding.
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 5-parameter, no-annotation, no-output-schema tool, the description covers the estimation model, the currency, the legal-scope caveat, and where to find country options. It leaves the return shape (fields, breakdown per trade/year) unspecified, which is a minor gap given no output schema exists.
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 baseline is 3, but the description adds a genuinely useful pointer ('Each country's options are in list_tax_countries (options field)') that explains where the alternative/country option values come from. It does not add much beyond that for year or marginalRate, which the schema already documents.
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?
Opens with a specific verb+resource ('ESTIMATE of capital-gains tax in a country') and immediately scopes it ('in that country's currency', 'Not a tax return'), which cleanly separates it from siblings like get_realized_gains or get_pnl. An agent can identify the tool's job without opening the schema.
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 routes the agent to list_tax_countries for per-country options and states the estimate's scope, giving clear context for use. It stops short of explicitly naming when to prefer this over get_realized_gains or get_pnl, so no exclusions or alternatives are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tradesAInspect
Transactions recorded by the user (buys, sells and fees), in euros, newest first. Optional filters by asset and year.
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | Calendar year of the transaction. | |
| asset | No | Asset symbol (e.g. BTC). | |
| limit | No | Maximum number of transactions to return (default 100). |
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 disclose useful behavior: results are in euros and sorted newest first, and it lists the record categories returned. It stops short of stating that the operation is a read-only query or saying anything about pagination/volume behavior beyond what the limit param implies.
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 sentences, no waste. The core content (what is returned, in what currency, in what order) is front-loaded, and the optional-filter note follows. 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?
For a read-only, 3-parameter list tool with no output schema, the description covers the essentials: what is returned, ordering, currency, and the filter dimensions. The main residual gap is that it says nothing about return shape or how filters combine, which the absent output schema would otherwise have required the description to carry.
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 all three parameters (year, asset, limit) are already fully documented in the schema, including ranges and defaults. The description's mention of asset and year filtering adds no syntax or format detail beyond what the schema provides, making the baseline 3 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 states a specific resource (user-recorded transactions) and enumerates its kinds (buys, sells, fees), which immediately distinguishes it from aggregate siblings like get_pnl or get_portfolio. It does not, however, explicitly contrast itself with those siblings, so it falls short of a 5.
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?
"Optional filters by asset and year" implies the intended usage context (focused lookups) but never states when to reach for this tool versus get_pnl, get_realized_gains, or get_portfolio. No exclusions, prerequisites, or alternatives are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_walletsBInspect
Returns the wallets of each portfolio, with addresses as pseudonyms (wallet_…), never in clear.
| 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 it does disclose a genuinely useful behavior beyond the schema: wallet addresses are returned as pseudonyms (wallet_…) and never in clear. However, it says nothing about whether this is a safe read-only call, its scope (single portfolio vs all), or any rate/permission constraints.
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 front-loaded sentence that puts the return value first and the privacy caveat second, with no wasted preamble. The clause 'as pseudonyms (wallet_…), never in clear' restates the same idea twice, a minor 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?
There is no output schema and no annotations, so the description is the only specification. It conveys what is returned and the pseudonymization behavior, but leaves the result shape (one address per portfolio? a list?), ordering, and error/empty behavior unspecified.
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 takes zero parameters, so the baseline is 4; the description correctly introduces no parameter discussion. There is no parameter-level meaning left to add or omit.
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 ('Returns') and resource ('the wallets of each portfolio'), so the agent knows exactly what it fetches. It does not name or distinguish itself from the closest sibling, get_portfolio, so differentiation is left 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?
There is no statement of when to use this tool versus get_portfolio, get_pnl, or any other portfolio-scoped sibling, and no prerequisites or exclusions are given. Usage is only implied by the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_whale_activityBInspect
Scans the given addresses and returns recent on-chain movements (large transfers, accumulation). Supports ETH, BTC and SOL.
| Name | Required | Description | Default |
|---|---|---|---|
| watchlist | Yes | Addresses to watch (max. 10). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses supported chains and the general nature of the results (large transfers, accumulation), which implies a read-only scan, but says nothing about auth needs, rate limits, latency, or how 'accumulation' is detected.
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 short sentences, zero filler, with the core action and return content front-loaded. 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?
No output schema and no annotations, so the description is the only source of behavioral detail; it covers input intent and supported chains adequately but omits return structure, time window for 'recent', and result limits, which matters for a scanning 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?
Schema coverage is 100% with a single documented watchlist parameter, so the baseline is 3. The description corroborates the chain enum ('Supports ETH, BTC and SOL') but adds no syntax, labeling, or batching detail beyond what the schema already provides.
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 (scans), the input resource (given addresses), and the output (recent on-chain movements such as large transfers and accumulation), so the agent knows it is a chain-activity lookup rather than a static whale list. It does not, however, distinguish itself from list_known_whales or get_wallets, leaving the sibling boundary implicit.
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 when-to-use guidance, no prerequisites, and no mention of when to prefer list_known_whales or another activity tool instead. The only implied usage is that you must supply addresses, which the schema already enforces.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_known_whalesAInspect
Lists the preloaded known whales (exchanges, funds, public figures, governments) with address and chain. Use the addresses as input to get_whale_activity.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It usefully discloses that the data is 'preloaded' (static, not live-queried), implying no pagination or freshness concerns, but it never states that the call is read-only, whether the list is bounded in size, or when the preloaded set was last updated.
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 short sentences with zero filler. The 'what it returns' statement is front-loaded, followed immediately by the actionable chaining instruction.
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 must sketch return contents, and it does (address and chain per whale). It is nearly sufficient for a zero-param list tool; only the absence of any statement about the list's static nature or size leaves a small 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 tool takes zero parameters, so there are no argument semantics to explain; baseline 4 applies. The description correctly implies a no-argument enumeration rather than suggesting filters that do not exist.
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 (Lists) and resource (known whales), then enumerates the entity categories covered (exchanges, funds, public figures, governments) and the returned fields (address, chain). An agent can distinguish this from get_whale_activity, which it explicitly routes to as a downstream consumer.
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?
Explicitly tells the agent how to use the output: 'Use the addresses as input to get_whale_activity,' which names the alternative/next tool and the condition for calling it. It does not state when this tool should be skipped or what to do if a whale of interest is absent, so it stops short of full when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_tax_countriesAInspect
Crypto tax regimes published by ChainFolioAI: short- and long-term rate, holding period, annual allowance and legal reference, per country.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full behavioral burden. It does disclose the content shape of the response (the per-country fields), which is the most relevant trait for a static reference list, but says nothing about whether the dataset is static or live, how large the country list is, or any auth/rate considerations.
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 sentence with the resource front-loaded and the payload spelled out after the colon. No filler, nothing repeated from structured fields.
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 and no parameters, the description must characterize the return value, and it does so by listing the exact fields per country. It is close to complete for a zero-arg reference lookup; only the static-vs-live nature of the data and its relation to get_tax_estimate are unaddressed.
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 takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies. The enumeration of returned fields is a bonus rather than a parameter explanation.
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 resource — crypto tax regimes per country — and enumerates the fields returned (short/long-term rate, holding period, allowance, legal reference). An agent can tell this is a reference-data lookup, though the description never names the closest sibling, get_tax_estimate, so the boundary between 'look up regimes' and 'estimate my tax' is left implicit.
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 when-to-use guidance and no mention of alternatives such as get_tax_estimate or get_realized_gains. The phrase 'published by ChainFolioAI' hints this is curated reference data, but nothing tells the agent when to reach for this tool versus the estimate tools.
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.
23 tool updates
- First observed
ask_ai - First observed
get_asset - First observed
get_btc_blocks - First observed
get_defi_positions - First observed
get_derivatives - First observed
get_fear_greed - First observed
get_fire - First observed
get_global_market - First observed
get_market - First observed
get_metrics - First observed
get_news - First observed
get_nfts - First observed
get_pnl - First observed
get_portfolio - First observed
get_portfolio_score - First observed
get_price_on - First observed
get_realized_gains - First observed
get_tax_estimate - First observed
get_trades - First observed
get_wallets - First observed
get_whale_activity - First observed
list_known_whales - First observed
list_tax_countries
Related MCP Connectors
Read-only Fillfolio portfolios, holdings, cash, liabilities, activity, spending and budgets.
Read-only access to your bank, investment, and crypto accounts: balances, transactions, holdings.
Read-only access to your own crypto portfolio across 11+ exchanges and 20+ chains: holdings, full history, FIFO cost basis and P&L, fees and income. Ask Claude or ChatGPT about your portfolio; the connector can never trade, move funds or act as a login.
Read-only market charts, OHLC, backtests and a view of your connected broker accounts
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceProvides read-only portfolio management and analytics across Binance, Coinbase, and Kraken exchanges. It enables users to track holdings, analyze risk, and monitor market intelligence through 18 specialized tools.2MIT

Fillfolio MCPofficial
AlicenseNot gradedqualityBmaintenanceEnables read-only access to a Fillfolio account's normalized portfolio data, including net worth, holdings with cost basis, cash and liabilities, activity, and exact asset details, plus optional bank spending summaries, transactions, and budgets for eligible accounts. Clients can query stored data only — they cannot trade, move money, modify holdings, or access credentials.10 npmMIT- AlicenseNot gradedqualityDmaintenanceTracks multi-exchange cryptocurrency portfolio P\&L by storing holdings and providing live price data.MIT
- AlicenseNot gradedqualityBmaintenanceEnables ChatGPT, Claude, Cursor and other MCP clients to read a user's real crypto portfolio data — holdings, movement history, FIFO cost basis and P&L, fees, income, risk metrics and target-allocation drift — across connected exchanges and on-chain wallets via read-only OAuth access. An optional propose-only tool parks changes for human approval in the browser rather than writing anything directly.1MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.