welcome
Server Details
The Balanced Investor Club, the thinking companion for the markets. Educational, not advice.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.2/5 across 57 of 57 tools scored.
With 57 tools, most have distinct purposes (market data, journaling, watchlists). A few related tools (get_price_alignment vs get_crypto_price_alignment, get_market_pulse vs get_market_movers) could cause miselection, but descriptions clarify asset types and scope.
Tools predominantly use get_/list_/create_/update_/delete_ verbs with clear noun suffixes. Minor deviations like start_here, whoami, add_to_watchlist, and remove_from_watchlist break the pure verb_noun pattern, but the style is consistent and readable.
At 57 tools, the server is far beyond the well-scoped range. While the domain is broad, this many tools will overwhelm an agent's capability to select accurately, and many could be consolidated (e.g., separate financial statements).
The server covers watchlist CRUD, trading journaling, market data (fundamentals, statements, news, transcripts), analysis tools, and community features. No obvious dead ends; lifecycle coverage is thorough for the described domain.
Available Tools
57 toolsabout_usARead-onlyIdempotentInspect
Who we are. Philosophy, framework, what we are — and what we are NOT. The thinking companion for the markets.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, and non-destructive behavior. The description adds content context (philosophy, what it is/not) but does not disclose additional behavioral aspects like output format or static nature. No contradiction with annotations.
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, front-loaded with 'Who we are.' Every clause adds value and there is no redundancy or fluff.
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, parameterless informational tool with clear read-only annotations, the description sufficiently explains the tool's purpose. It could mention what output to expect, but given its simplicity, it is adequately 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?
With zero parameters, the schema fully covers the input requirements. The description does not need to explain parameter meanings, and the baseline for no-parameter tools is 4.
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 conveys that this tool provides background information about the Balanced Investor Club, including philosophy and identity. It distinguishes itself from sibling tools, which are all market-data or trading-oriented, by being the only tool about the platform itself.
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 the tool is used to understand who the club is and what it stands for, which is unique among the sibling tools. However, it offers no explicit 'use this when...' guidance or exclusions. The context is clear enough that a user would know when to invoke it, but guidance is not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_to_watchlistAInspect
Add an instrument to one of your Stock Trackers. Stocks, ETFs, and crypto pairs are supported. Pre-checks for duplicates so you don't end up with the same ticker twice.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes | Ticker symbol (e.g. AAPL, SPY, BTC-USD). | |
| ma_type | No | Moving Average Type. Defaults to EMA (Exponential). | |
| watchlist | Yes | Name of one of your Stock Trackers (e.g. 'My Tech Picks') or its id. | |
| asset_type | Yes | Asset type. Required by the underlying endpoint. | |
| added_price | No | Optional: the price when added, for entry-price tracking. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a mutating operation (readOnlyHint=false). The description adds useful behavioral context beyond annotations: it pre-checks for duplicates to avoid duplicate tickers. However, it does not disclose what happens on duplicate detection or if the watchlist does not exist, but the added value is meaningful.
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 two sentences, front-loaded with the primary action, and every word adds value. No redundancy or unnecessary detail.
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 the simple tool with full schema coverage and no output schema, the description covers the core purpose, supported asset types, and duplicate behavior. It lacks details on return values or failure modes, but these are not critical for a straightforward add operation. Overall, it is complete enough for an agent to select and invoke the 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 coverage is 100%, so all parameters are already described. The description does not add new meaning beyond the schema; it only reinforces asset type support, which is already in the asset_type enum. Baseline 3 is appropriate since the schema carries the parameter documentation burden.
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 adds an instrument to a Stock Tracker, with a specific verb and resource. It distinguishes from siblings like remove_from_watchlist and create_watchlist by focusing on the add action and supported asset types.
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 when to use this tool (adding stocks, ETFs, or crypto pairs to an existing tracker) but does not explicitly mention alternatives or exclusions. The context is clear but lacks direct guidance on when NOT to use it or prerequisites like creating a watchlist first.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_ticker_in_my_watchlistsARead-onlyIdempotentInspect
Quickly check whether a specific ticker is already in any watchlist you own or follow. Useful before adding it again.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes | Ticker symbol (e.g. AAPL, BTC-USD) | |
| asset_type | Yes | Asset type for the ticker |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the tool is known to be safe. The description adds 'any watchlist you own or follow,' which clarifies scope but does not disclose additional behavioral traits like auth requirements or rate limits. It meets the baseline with annotations but adds little extra.
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 two sentences, front-loaded with the core purpose and a usage note. No wasted words or repetition of schema details.
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 read-only tool with two well-documented parameters and annotations covering safety, the description provides enough context in both purpose and usage. No output schema exists, but the intent is clear enough for an agent to invoke correctly without needing additional 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 coverage is 100%, with both ticker and asset_type fully described. The description does not add any extra semantics beyond the schema, so it aligns with the baseline of 3 when the schema does the heavy lifting.
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 action ('check'), the resource ('watchlists'), and the scope ('specific ticker... you own or follow'). This distinguishes it from sibling tools like get_my_watchlists or add_to_watchlist by focusing on existence checking.
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 explicitly says 'Useful before adding it again,' which gives a clear context for when to use the tool. It does not explicitly name alternatives or exclusion criteria, but the purpose makes it obvious that it complements add_to_watchlist rather than replacing it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
close_tradeAInspect
Close an open trade in your Trading Journal with an exit reflection — exit price, date, and optionally how you felt and what you learned. Identify the trade by id, or by ticker if you have a single open position for it.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | No | Alternative to trade_id: the ticker of your single open trade. | |
| trade_id | No | The trade id (from list_my_trades). Preferred when known. | |
| exit_date | Yes | Exit date — ISO date (YYYY-MM-DD) or datetime. | |
| exit_price | Yes | Exit price per share/unit. | |
| exit_reason | No | Optional: why you exited. | |
| lesson_learned | No | Optional: a post-trade reflection — what you learned. | |
| emotional_state | No | Optional emotional state on a -4 to +4 scale: -4 Panic, -3 Fearful, -2 Anxious, -1 Uneasy, 0 Neutral, 1 Calm, 2 Confident, 3 Very Confident, 4 Euphoric. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are minimal (readOnlyHint=false, destructiveHint=false) and do not describe side effects. The description adds that the tool records an exit reflection (price, date, feelings, lessons), and implies a state change from open to closed. However, it does not disclose what happens after closing (e.g., whether the trade moves to a close history, affects journal stats, or is irreversible). Given the mutation nature and lack of annotation support, more behavioral detail would be beneficial, but the provided info is adequate.
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 two sentences, front-loaded with the core action and followed by necessary identification guidance. No filler words or repetition of schema details. Every sentence adds value.
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 7-parameter mutation tool with no output schema, the description covers the main purpose, identification options, and optional reflection fields. However, it does not explicitly state that one of trade_id/ticker is required (schema doesn't require either), nor describe the post-close behavior or return value. These gaps make it not fully complete, but it is functional for common usage.
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. The description adds meaningful semantics by explaining the trade_id vs ticker alternative: 'Identify the trade by id, or by ticker if you have a single open position for it.' It also maps 'how you felt and what you learned' to optional reflection parameters, which adds context beyond field names. This elevates the score above 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 opens with a specific verb and resource: 'Close an open trade in your Trading Journal with an exit reflection.' This clearly states what the tool does, including the key differentiator (exit reflection) that separates it from delete_trade or update_trade. The mention of closing an open trade is unambiguous and aligns with the tool name.
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 clear context for when to use the tool (to close an open trade) and includes a conditional identification rule: use ticker only if you have a single open position. However, it does not explicitly compare against alternatives like delete_trade or update_trade, nor state when not to use it. Still, the context is clear enough for correct selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_tickersARead-onlyIdempotentInspect
Side-by-side log-returns for up to 5 tickers — stocks, ETFs, crypto. Volatility, total return, max and min. Date-aligned.
| Name | Required | Description | Default |
|---|---|---|---|
| period | No | Default 1Y | |
| tickers | Yes | List of 2-5 tickers, e.g. ['AAPL', 'MSFT', 'NVDA'] |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds value by disclosing the log-return methodology, date-aligned processing, and asset class scope. It does not detail return format, but annotations lower the burden for safety-related traits.
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 exceptionally concise—three short fragments that front-load the core action and key output metrics. No redundant words; every clause contributes meaningful information.
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 naming the output metrics (volatility, total return, max/min) and highlighting date-alignment. The schema covers the period default, so this is reasonably complete for a read-only comparison tool, though it could mention handling of missing data.
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%: tickers and period are fully documented in the schema including min/max items and enum values. The description adds no new parameter-specific meaning beyond what the schema provides, so the baseline of 3 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 clearly states the tool's function: side-by-side log-returns for up to 5 tickers across stocks, ETFs, and crypto. It lists specific computed metrics (volatility, total return, max/min), making it distinguishable from sibling tools like get_close_history or get_price_alignment.
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 usage when comparing multiple tickers and specifies the 2-5 ticker constraint. However, it does not explicitly mention when to prefer this tool over alternatives or any exclusions, leaving the agent to infer based on purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_watchlistAInspect
Create a new Stock Tracker — a place for the instruments you want to keep an eye on. Names are unique per user.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name of the Stock Tracker, e.g. 'My Tech Picks' or 'Dividend Champions'. 1–100 characters. | |
| is_public | No | If true, others can discover and follow this Stock Tracker. Defaults to false (only visible to you). | |
| description | No | Optional. What's the focus of this list? Up to 500 characters. | |
| alert_frequency | No | Alert frequency for changes. Defaults to none. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a non-read-only operation. The description adds the useful constraint that names are unique per user, which implies a potential conflict on duplicate names. However, it does not disclose response behavior, error handling, or side effects beyond that constraint, so transparency is adequate but not rich.
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 concise and front-loaded, with two short sentences that convey the essential purpose and a key constraint. There is no redundancy or filler; every word contributes to understanding.
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 the tool's moderate complexity (4 parameters, no output schema), the description combined with the rich schema and annotations is fairly complete. It explains the tool's purpose and the uniqueness constraint, but could optionally clarify what the response contains or how errors are surfaced. However, the schema covers parameter semantics, making the overall information sufficient for typical use.
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 provides 100% coverage of all four parameters with detailed descriptions, so the baseline is 3. The description adds value only by reinforcing the uniqueness of the name parameter but does not add further meaning to the other parameters 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?
The description clearly states the action ('Create a new Stock Tracker') and the resource, with a helpful definition of what a Stock Tracker is ('a place for instruments you want to keep an eye on'). This effectively distinguishes the tool from siblings such as add_to_watchlist or update_watchlist, which operate on existing trackers.
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 usage by the verb 'create' and the resource context, but it does not explicitly state when to use this tool versus alternatives (e.g., update_watchlist) or mention any prerequisites or exclusions. The uniqueness constraint ('Names are unique per user') hints at a requirement but offers no direct comparison to sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_tradeADestructiveInspect
Take a trade out of your Trading Journal stats — for a mis-entry, a duplicate, or a practice trade you logged by mistake. The trade stops counting towards your win rate, P&L and emotion breakdown. The row itself is kept (the journal has no hard delete, by design), so the record of what you actually did stays honest.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | Yes | Must be true. Confirms the user asked for this trade to stop counting. | |
| trade_id | Yes | The trade id to remove from your stats (from list_my_trades). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint and readOnlyHint false. The description adds meaningful behavioral context: the trade stops counting, but the row is kept because there is no hard delete by design. This clarifies the actual destructive scope beyond the annotation flags, though it does not address irreversibility or permissions.
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 two sentences, front-loaded with the core purpose and use cases, then adds essential nuance about row retention. Every clause adds value, and it is concise without sacrificing clarity.
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 destructive tool with no output schema and two well-documented parameters, the description is complete enough: it explains what happens to the trade's stats, the use cases, and the no-hard-delete design. It does not describe return values, but that is not essential for this operation and 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%, with both parameters (trade_id and confirm) already documented in the input schema. The description does not add new parameter-level meaning beyond the schema, so the baseline of 3 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 clearly states the tool's function: removing a trade from Trading Journal stats so it stops counting toward win rate, P&L, and emotion breakdown. It uses a specific verb with a clear resource and distinguishes the semantic from related tools like close_trade or update_trade by emphasizing statistical exclusion while keeping the row.
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 provides clear use cases: mis-entry, duplicate, or practice trade logged by mistake. It implies when this tool is appropriate but does not explicitly mention when not to use it or contrast it with alternatives like close_trade or update_trade, so it falls just short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_watchlistADestructiveInspect
Delete one of your Stock Trackers permanently, along with every instrument in it. If it was public, its followers lose it too. This cannot be undone.
| Name | Required | Description | Default |
|---|---|---|---|
| watchlist | Yes | Name, slug or id of the Stock Tracker to delete. | |
| confirm_name | Yes | The exact name of the Stock Tracker, typed back, to confirm the deletion. Ask the user for it — do not fill this in on their behalf. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark destructiveHint=true, but the description adds critical layers: cascading deletion of all instruments, followers losing access if public, and irreversibility ('This cannot be undone'). This goes well beyond the annotations and fully explains the behavioral impact.
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 with no fluff: the first states the primary action and consequence, the second adds follower impact and permanence. Every word 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 destructive tool with no output schema, the description covers all critical context: what gets deleted, cascade effects, follower consequences, and irreversibility. It is sufficient for an agent to decide whether to invoke and what to communicate to the user.
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 both parameters clearly described (watchlist identity, confirm_name with explicit user-confirmation instructions). The description adds no direct parameter-level meaning beyond the schema, so it sits at the baseline of 3.
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 deletes a Stock Tracker permanently, along with every instrument in it, which is a specific verb+resource+scope. It distinguishes from siblings like remove_from_watchlist (removes an instrument) and unfollow_watchlist (changes follower 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?
The usage context is clear: use this for permanently deleting a whole watchlist, not for removing individual instruments (which would be remove_from_watchlist). It implies the destructive scope but does not explicitly name alternatives or exclusions, so it misses a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discover_community_watchlistsARead-onlyIdempotentInspect
Browse public watchlists curated by our research team at The Balanced Investor Club. Filter by asset type or sort by what's popular.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| sort_by | No | Default: popular | |
| asset_type | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, and non-destructive behavior. The description adds context about the curator and filter/sort options but does not disclose return format, pagination, or limits, leaving some behavioral gaps.
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 concise sentences, front-loaded with the core purpose, and no unnecessary words. Every phrase adds value.
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 three optional parameters, the description should explain expected return contents and limit behavior. It does not, but the operation is simple and annotations cover safety, so the gaps are moderate.
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 33%, and the description partially compensates by explaining asset_type and sort_by ('filter by asset type or sort by what's popular'). However, it omits the 'limit' parameter entirely and does not elaborate on enum options, so the compensation is incomplete.
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 it browses public watchlists curated by the research team, with filtering and sorting capabilities. This distinguishes it from personal watchlist tools like get_my_watchlists and specific lookups like get_watchlist_by_slug.
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 provides clear context: use it to browse public curated watchlists. However, it does not explicitly mention alternatives or when not to use it, though the context is fairly distinctive among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
follow_watchlistAInspect
Follow a public Stock Tracker so it shows up on your stock tracker page. Get updates when instruments are added or removed.
| Name | Required | Description | Default |
|---|---|---|---|
| watchlist_slug | Yes | Slug of the public Stock Tracker to follow (e.g. 'ai-tech-infrastructure'). Find slugs via discover_community_watchlists. | |
| alert_frequency | No | How often to receive alerts. Defaults to none. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate non-read-only and non-destructive behavior. The description adds that following shows up on the tracker page and enables updates, which is useful context. It does not discuss idempotence or side effects of repeated follows, but the annotation hints cover some of this.
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 concise, front-loaded sentences that clearly state the action and its result. No filler or redundant information.
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 tool with a complete input schema and no output schema, the description covers the purpose and effect sufficiently. The sibling list provides additional context for selection, and no critical information 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?
Schema description coverage is 100%, with each parameter fully described (including an example slug and enum for alert frequency). The description itself adds no additional parameter semantics, so the baseline score of 3 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 states 'Follow a public Stock Tracker' with a specific verb and resource, and clearly explains the effect ('shows up on your stock tracker page', 'Get updates'). This differentiates it from sibling tools like add_to_watchlist, which likely adds instruments to a watchlist rather than following a public tracker.
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 context is clear: use this to follow public trackers. It also directs users to discover_community_watchlists for finding slugs. However, it does not explicitly contrast with alternatives like add_to_watchlist or unfollow_watchlist, so it stops short of a full usage guideline.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_balance_sheetARead-onlyIdempotentInspect
Balance sheet for a stock — assets, liabilities and equity at each period end. Mirrors what the Market Hub shows. Stocks only.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes | Stock ticker (e.g. AAPL). Financial statements are for stocks only — not ETFs or crypto. | |
| periods | No | How many periods to include. Defaults to 5; up to 20. If fewer exist, all available periods are returned. | |
| frequency | No | Reporting frequency. Defaults to quarterly. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, covering safety. The description adds that data is at period end and mirrors Market Hub, which are helpful behavioral details beyond the schema. The 'Stocks only' note is redundant with the ticker parameter description.
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 that conveys purpose, content, and constraints without wasted words. The most important information is 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?
This is a simple read-only data fetch with all parameters documented and safety annotations provided. The description sufficiently covers what the tool does, including data scope and UI mirroring, so no further context is needed.
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?
All three parameters (ticker, periods, frequency) have detailed descriptions in the schema (100% coverage), so the description does not need to elaborate. It adds no additional parameter-level meaning 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?
The description clearly states the tool returns a balance sheet (assets, liabilities, equity) for a stock at period-end. This distinguishes it from sibling tools like get_income_statement and get_cash_flow, and the 'Stocks only' constraint is explicit.
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 when to use this tool (for stock balance sheet data) and notes it mirrors Market Hub, providing useful context. It does not explicitly name alternative tools, but the 'Stocks only' exclusion is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cash_flowARead-onlyIdempotentInspect
Cash flow statement for a stock — cash generated and used across operating, investing and financing. Mirrors what the Market Hub shows. Stocks only.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes | Stock ticker (e.g. AAPL). Financial statements are for stocks only — not ETFs or crypto. | |
| periods | No | How many periods to include. Defaults to 5; up to 20. If fewer exist, all available periods are returned. | |
| frequency | No | Reporting frequency. Defaults to quarterly. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so the description adds value by mentioning 'Mirrors what the Market Hub shows' and the stocks-only restriction. It does not contradict annotations and provides useful behavioral context beyond the structured hints.
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 main purpose, and no redundant words. Each phrase ('cash generated and used across operating, investing and financing', 'Mirrors what the Market Hub shows', 'Stocks only') 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 simple read-only financial data tool, the description covers purpose, scope, and a point of reference (Market Hub). The schema provides parameter detail and annotations cover safety; no critical information is missing for an agent to invoke it appropriately.
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 all three parameters (ticker, periods, frequency) fully documented. The description adds little beyond reiterating 'Stocks only,' which is already in the ticker parameter, so it does not significantly enhance 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 clearly states the tool's function: 'Cash flow statement for a stock' and specifies the three components (operating, investing, financing). It distinguishes from sibling tools like get_balance_sheet and get_income_statement by name and scope, and adds 'Stocks only' to exclude ETFs/crypto.
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 clear context: use for stock cash flow data, and explicitly excludes non-stocks with 'Stocks only.' It does not name alternative tools, but the context is sufficient for an agent to decide when to call it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_close_historyARead-onlyIdempotentInspect
Daily close-price history for a stock, ETF, or crypto pair over a selected range. Summary stats by default (start, end, high close, low close, percent change). Optionally returns the most recent N daily closes.
| Name | Required | Description | Default |
|---|---|---|---|
| range | No | Time range. Defaults to 1Y. | |
| ticker | Yes | Ticker (e.g. AAPL, SPY) or crypto pair (e.g. BTC-USD, ETH-USD). | |
| interval | No | Sampling interval for the returned closes (last close of each week/month). Defaults to daily. Combine with range='ALL' and include_recent=60 for up to 5 years of monthly closes. | |
| asset_type | No | Asset type. Defaults to 'stock'. Use 'crypto' for pairs like BTC-USD. | |
| include_recent | No | Optional: also return the most recent N closes at the chosen interval (max 60). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, and non-destructive. The description adds concrete behavioral details: output defaults to summary statistics (start, end, high/low close, percent change) and optionally recent closes. This goes beyond the schema and annotations.
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 core function. Every word earns its place, and the structure is clear and scannable.
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 adequately covers the main return behavior and options, especially since there is no output schema. It could mention interval options, but the schema covers those details, making the description complete enough for a read-only 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 thorough parameter descriptions. The tool description adds no unique parameter semantics beyond what the schema already provides, so a baseline score of 3 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 clearly states the tool retrieves daily close-price history for stocks, ETFs, or crypto pairs over a selected range. It also specifies default summary stats and optional recent closes, distinguishing it from siblings like get_price_alignment.
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 implies use when historical close prices are needed for a ticker over a range. It does not explicitly name alternatives or state when-not-to-use, but the context is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_crypto_price_alignmentARead-onlyIdempotentInspect
How a crypto pair's price aligns with its short, medium, and long-term moving averages — and the resulting Market Mood. Educational, never predictive.
| Name | Required | Description | Default |
|---|---|---|---|
| pair | Yes | Crypto pair in ASSET-MARKET format, e.g. BTC-USD, ETH-USD, SOL-USD | |
| ma_type | No | Moving-average type for the live default-MA read used when no official snapshot exists (default SMA). Ignored when a tuned snapshot is available. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a read-only, idempotent, non-destructive operation. The description adds value by clarifying that the tool is 'Educational, never predictive,' which sets expectations about the output's nature. It also explains the output concept (Market Mood) and the moving-average basis, providing context beyond the safety annotations.
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 two concise sentences, front-loaded with the core purpose and a caveat. Every sentence earns its place with no fluff 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 relatively simple read-only tool with two well-described parameters and clear annotations, the description covers the purpose and output concept adequately. It lacks explicit alternative differentiators and output structure detail, but these are not critical given the schema and name. It is complete enough for its complexity.
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 both 'pair' and 'ma_type' fully described in the input schema. The tool description adds no parameter-specific information, so it relies on the schema. Baseline 3 applies because the schema already does the heavy lifting.
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 what the tool does: it evaluates a crypto pair's price alignment with short, medium, and long-term moving averages and outputs the resulting Market Mood. The verb 'aligns' and resource 'crypto pair's price' make the purpose specific, and naming 'crypto' distinguishes it from the sibling get_price_alignment.
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 provides no guidance on when to use this tool versus alternatives. It does not mention that this is the crypto-specific variant of get_price_alignment or any other context for usage. The name and description imply crypto pairs, but there is no explicit 'when to use' or 'instead of' guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_curated_listsARead-onlyIdempotentInspect
Backtested cross-MA strategies tuned for a specific ticker by The Balanced Investor Club — short/medium/long moving-average periods plus 1-year return, 3-year Sharpe, and trade count. Educational read on what historically lined up; never advice.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes | Ticker symbol |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool as safe, read-only, idempotent, and non-destructive. The description adds meaningful context beyond that by explaining this is a historical backtest, educational in nature, and not financial advice. This provides transparent behavioral information without contradicting the annotations.
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, information-dense sentence that front-loads the main subject and includes only essential details. Every word contributes value, with no redundancy or 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 simple one-parameter tool with no output schema, the description sufficiently outlines the data content (MA periods, return, Sharpe, trade count) and its educational purpose. It could be slightly more explicit about the output structure, but it is adequate for the tool's simplicity.
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 only parameter, 'ticker', is fully described in the schema as 'Ticker symbol' (100% coverage). The description does not add additional parameter semantics, but the baseline of 3 applies because the schema already provides sufficient detail for the single 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 description clearly identifies the resource as backtested cross-MA strategies for a specific ticker, listing specific metrics (MA periods, 1-year return, 3-year Sharpe, trade count). This distinguishes it from sibling get_* tools that focus on other types of financial data, though it lacks an explicit verb like 'returns'.
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 usage for educational review and explicitly states 'never advice', which gives some contextual guidance. However, it does not mention any alternative tools or specify when not to use this tool, leaving the comparison to siblings implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dividendsARead-onlyIdempotentInspect
Dividend history for a stock or distributing ETF — ex-dividend date, payment date, and amount per share. Mirrors what the Market Hub shows. Not applicable to crypto.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many recent dividends to include. Defaults to 12. | |
| ticker | Yes | Ticker symbol (e.g. AAPL, VTI). Stocks and distributing ETFs only — not crypto. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only and idempotent behavior. The description adds the data source (Market Hub) and the security scope (stocks/distributing ETFs), which is useful context. It does not contradict annotations.
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 primary purpose, followed by the key caveat. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple data-fetch tool, the description covers the purpose, data fields, and applicability. The schema covers parameters. With good annotations and no output schema, it is reasonably complete, though it doesn't mention response ordering or pagination.
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% because both 'ticker' and 'limit' have descriptive text. The description reinforces the ticker scope ('Stocks and distributing ETFs only — not crypto') which is consistent with the schema but adds no new parameter semantics.
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 provides dividend history for stocks or distributing ETFs, listing specific data fields (ex-dividend date, payment date, amount per share). It differentiates from siblings by the explicit 'Not applicable to crypto' caveat.
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 when to use it (when dividend history is needed) and explicitly excludes crypto, giving a clear exclusion. It does not name alternative tools, but the scope is well-defined relative to sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_earnings_estimatesARead-onlyIdempotentInspect
Analyst earnings estimates for upcoming quarters AND fiscal years — EPS consensus, revenue, and analyst counts per horizon. Mirrors what the Market Hub shows. Estimates, not forecasts — they shift as each date nears.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many periods to include. Defaults to 12 (everything available). | |
| ticker | Yes | Stock ticker (e.g. AAPL). Earnings estimates are for individual stocks only — not ETFs or crypto. | |
| horizon | No | Optional filter by reporting horizon. Defaults to ALL horizons (quarters and fiscal years). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so safety is covered. The description adds meaningful behavioral context: estimates shift as dates near and the data mirrors the Market Hub display. No contradiction with annotations.
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 concise, front-loaded sentences. The first sentence delivers the core definition, the second contextualizes the data source, and the third clarifies the dynamic nature. Every word 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?
Covers what data is returned (EPS, revenue, analyst counts), horizon types (quarterly/annual), and the caveat about estimates shifting. No output schema exists, but the description gives sufficient understanding for an agent. Exact return format is not specified, but that's acceptable given the concise scope.
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 descriptions cover 100% of parameters, setting a baseline of 3. The description reinforces 'per horizon' and overviews data fields, but it doesn't add syntax or parameter-specific meaning 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 clearly it provides analyst earnings estimates for upcoming quarters and fiscal years, listing specific data components (EPS consensus, revenue, analyst counts). 'Estimates, not forecasts' distinguishes it from prediction tools. While it doesn't explicitly differentiate from siblings like get_earnings_transcript, the resource type 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?
Provides usage context such as covering both quarters and fiscal years, and a caution that estimates are not forecasts. However, it lacks explicit when-to-use guidance or mention of alternative tools. The intended use is implied but not stated as a rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_earnings_transcriptARead-onlyIdempotentInspect
Full earnings call transcript for a company and fiscal quarter — management remarks and the analyst Q&A, speaker by speaker. The primary source for guidance, segment color, and management tone. Long: use offset/limit to page through big calls.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Speaker turns to return. Defaults to all. | |
| offset | No | Skip the first N speaker turns. Defaults to 0. | |
| ticker | Yes | Stock ticker (e.g. AAPL). Transcripts cover individual companies only. | |
| quarter | Yes | Fiscal quarter of the call, e.g. '2026Q1'. ⚠️ FISCAL, not calendar — and for a company whose fiscal year is offset they are different years. NVDA's quarter ending 2026-04-30 is 2027Q1, not 2026Q1; asking for 2026Q1 returns a call from May 2025 with no error. Do not derive this label from a calendar date. If unsure, try the label and check the speakers' own dates in the transcript before using anything from it. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only and idempotent behavior. The description adds useful context about the length ('Long') and pagination via offset/limit, as well as the speaker-by-speaker structure, which goes beyond the annotations.
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 core purpose and followed by a practical usage hint. 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?
Given the tool's complexity (no output schema) and good annotations, the description covers the content, structure, and pagination. It could benefit from stating what happens when no transcript exists, but the overall definition is complete enough.
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 schema has 100% description coverage, so the baseline is 3. The tool description adds a paging hint ('use offset/limit to page through big calls') but doesn't expand on the parameters themselves; the rich quarter warning lives in the schema, not the description.
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 uses a specific verb and resource ('Full earnings call transcript for a company and fiscal quarter') and clarifies the content (management remarks, analyst Q&A, speaker by speaker). This clearly differentiates it from sibling tools like get_earnings_estimates.
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 the tool is 'the primary source for guidance, segment color, and management tone,' providing context on when to use it. However, it doesn't explicitly name alternatives or say when not to use it, so it misses the full guidance mark.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_etf_profileARead-onlyIdempotentInspect
Profile of an ETF — net assets, expense ratio, dividend yield, top holdings, and sector breakdown. Mirrors what the website shows in /analysis for ETFs.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes | ETF ticker (e.g. SPY, QQQ, VTI) | |
| holdings_limit | No | Top holdings to show; default 10 |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering safety. The description adds behavioral context by specifying exactly what data is returned and noting that it mirrors the website's /analysis view, which implies a standard, non-custom response. This goes beyond the structured annotations.
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 two concise sentences. The first sentence front-loads the core purpose with a dash-separated list of output fields. The second adds useful website context without redundancy. Every word 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 simple 2-parameter tool with strong annotations and full schema coverage, the description adequately conveys the data content and source. It does not describe the return format, but no output schema exists and the profile concept is implied. Given the low complexity, the description is nearly 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 coverage is 100% with clear descriptions for both parameters: ticker includes examples, holdings_limit includes min/max/default. The description mentions 'top holdings' which loosely connects to holdings_limit, but it does not add new parameter-level meaning beyond the schema. Baseline 3 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 clearly states the tool returns a profile of an ETF with specific fields: net assets, expense ratio, dividend yield, top holdings, and sector breakdown. It also differentiates from sibling tools by explicitly targeting ETFs and referencing the website's /analysis page for ETFs, making its purpose 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?
The description gives clear context by saying it mirrors the website's /analysis for ETFs, implying this is the ETF-specific profile tool. It does not explicitly name alternative tools or state when not to use it, but the ETF focus and field list make the usage context evident.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_fundamentalsARead-onlyIdempotentInspect
Company fundamentals for a stock — market cap, P/E, EPS, dividend yield, 52-week range, and up to 20 quarters of EPS history vs analyst consensus. Mirrors what the website shows in /analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes | Stock ticker (e.g. AAPL). Not applicable to ETFs or crypto. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds meaningful context beyond this by enumerating the exact data fields returned and the source ('Mirrors what the website shows in /analysis'), giving the agent a clear expectation of the output without contradicting the annotations.
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 two succinct sentences. The first sentence front-loads the core purpose and key data fields, and the second sentence provides a contextual reference. No filler or redundancy, every word 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 one simple parameter and no output schema, the description sufficiently covers the tool's behavior by listing the return contents (market cap, P/E, EPS, dividend yield, 52-week range, EPS history vs consensus) and referencing the website's /analysis page. It could add more detail on timeframes (e.g., trailing vs forward P/E), but overall it's complete for tool selection and 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 coverage is 100% with only one parameter 'ticker', already described as 'Stock ticker (e.g. AAPL). Not applicable to ETFs or crypto.' The description adds no additional parameter semantics beyond what the schema provides, so the baseline of 3 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 clearly states the tool's purpose: 'Company fundamentals for a stock' and lists specific data points (market cap, P/E, EPS, dividend yield, 52-week range, EPS history vs consensus). It distinguishes from sibling financial statement tools (income statement, balance sheet, cash flow) by presenting a comprehensive fundamentals snapshot.
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 provides clear context on when to use it: for a stock's fundamental snapshot. It implies this is the go-to comparison tool via 'Mirrors what the website shows in /analysis', but does not explicitly exclude alternatives like get_income_statement or specify when a sibling would be preferred. The schema adds 'Not applicable to ETFs or crypto', which is a useful exclusion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_income_statementARead-onlyIdempotentInspect
Income statement for a stock — revenue, costs, profit — the P&L, period by period. Mirrors what the Market Hub shows. Stocks only (not ETFs or crypto).
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes | Stock ticker (e.g. AAPL). Financial statements are for stocks only — not ETFs or crypto. | |
| periods | No | How many periods to include. Defaults to 5; up to 20. If fewer exist, all available periods are returned. | |
| frequency | No | Reporting frequency. Defaults to quarterly. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds useful context: the data 'Mirrors what the Market Hub shows' and is restricted to stocks only. It does not disclose response format or pagination, but the annotation coverage lowers the burden, and the added scope/source context is valuable.
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 two sentences, front-loads the definition ('Income statement for a stock — revenue, costs, profit — the P&L'), and every clause adds value. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with three well-documented parameters and no output schema, this description covers the essential context: what it returns (P&L fields), scope (stocks only), and source alignment with Market Hub. It does not list exact return fields, but the intuitive nature of an income statement and the strong annotations make this adequate.
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?
Input schema coverage is 100%, with ticker, periods, and frequency all having descriptive text including defaults, bounds, and enum values. The description adds no additional parameter information beyond repeating the stocks-only constraint already present in 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?
The description clearly identifies the tool as the income statement (P&L) for a stock, listing revenue, costs, and profit. It distinguishes from siblings like get_balance_sheet and get_cash_flow by naming the specific statement type, and adds a scope constraint: 'Stocks only (not ETFs or crypto).'
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 clear context that this is the tool for income statement data and explicitly excludes ETFs and crypto with 'Stocks only (not ETFs or crypto).' It does not name alternative tools or explicitly say 'use this instead of X,' but the sibling names and the specificity of 'revenue, costs, profit — the P&L' make the intended usage clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_industry_returnsARead-onlyIdempotentInspect
Same idea as the sector view, narrower scope — average return for a single industry over the last year.
| Name | Required | Description | Default |
|---|---|---|---|
| industry | Yes | Industry name, e.g. 'Software - Application', 'Banks - Diversified' |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, covering the safety profile. The description adds the time window (last year) and scope (single industry) but does not disclose return format or pagination. This is acceptable given the annotations but not exceptionally 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 concise sentence with no redundancy. It front-loads the reference to the sector view and immediately states the tool's purpose, making it efficient and well-structured.
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 the simple tool with one fully documented parameter and annotations that cover safety, the description supplies the essential scope and time window. It does not describe the return format, but for a straightforward read-only metric, this is a minor gap, resulting in a solid score.
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 fully describes the 'industry' parameter with examples, so schema coverage is 100%. The description does not add new meaning to the parameter beyond what the schema already provides, so the baseline of 3 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 states a clear, specific function: 'average return for a single industry over the last year.' The phrase 'narrower scope' distinguishes it from the sector view (get_sector_returns), making the tool's purpose 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?
The description implies usage context by referencing 'the sector view' and 'narrower scope,' but it does not explicitly name alternatives, provide when-to-use guidance, or describe when not to use this tool. The usage guidance is inferred 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_insider_transactionsARead-onlyIdempotentInspect
Recent insider transactions for a company — who bought or sold, role, shares, and price. Insider activity is context, not a signal: executives sell for many reasons.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Transactions to include, newest first. Defaults to 20. | |
| ticker | Yes | Stock ticker (e.g. AAPL). Individual companies only. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose read-only and idempotent behavior. The description adds context about the data returned (recent, fields like buyer/seller role, shares, price) and an interpretative warning, which goes beyond the annotations without contradicting them.
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 exceptionally concise: two sentences that convey purpose, contents, and a usage caveat without any fluff or repetition of schema details.
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 tool with one required parameter and no output schema, the description is reasonably complete. It specifies the returned data categories and advises on interpretation. It could mention sorting or the effect of the limit parameter, but these are already covered in 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 coverage is 100% with both 'ticker' and 'limit' described in the input schema. The description adds no additional parameter-level information, so a baseline of 3 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 clearly states the purpose: retrieving recent insider transactions for a company, including who bought/sold, role, shares, and price. It uses a specific verb-resource combination and distinguishes this from other financial data tools (e.g., institutional holdings).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool, specifically as background information rather than a trading signal, with the caveat that executives sell for many reasons. No explicit exclusions or alternative tools are named, but the guidance is reasonable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_institutional_holdingsARead-onlyIdempotentInspect
Institutional ownership of a company — total holders, ownership percentage, how many increased vs decreased positions, and the largest holders. Quarterly 13F data: always at least one quarter behind.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Top holders to include. Defaults to 10. | |
| ticker | Yes | Stock ticker (e.g. AAPL). Individual companies only. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations already indicating readOnly, idempotent, and non-destructive behavior, the description adds valuable context by disclosing the data's quarterly nature and latency ('always at least one quarter behind'). It also details the specific output fields (total holders, ownership percentage, etc.), which is especially important given the lack of an output schema.
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, information-dense sentence that front-loads the key concept ('Institutional ownership of a company') and efficiently lists the output contents and data freshness. No unnecessary words 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 simple read-only tool with two parameters and no output schema, the description is quite complete: it names the main output fields, specifies the data source (13F) and its delay, and works with the schema to cover the 'ticker' constraint. It misses minor details like geographic limitations, but those are not critical for typical use.
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 provides 100% coverage, with clear descriptions for both 'ticker' and 'limit' (including default and range). The description does not add any parameter-specific meaning beyond what the schema already offers, so the baseline of 3 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 clearly states the tool's function: it returns institutional ownership data including total holders, ownership percentage, position changes, and largest holders. This specific listing of output content distinguishes it from sibling tools like get_insider_transactions or get_fundamentals, making the purpose 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?
The description implies usage by specifying the data type (institutional ownership) and adds the note 'Quarterly 13F data: always at least one quarter behind,' which suggests it is not for real-time data. However, it does not explicitly name alternatives or provide when-to-use vs. when-not-to-use guidance, so usage context is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_instrument_overviewARead-onlyIdempotentInspect
Everything we offer about a single instrument in one shot — identification, current Market Mood + price alignment, fundamentals (stocks) or holdings (ETFs), and recent news. Equivalent of opening the /analysis page on the website. Mood and price-alignment snapshots refresh on a daily cycle and can lag the latest close by one session.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes | Stock, ETF, or crypto ticker (e.g. AAPL, SPY, BTC-USD) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds meaningful behavioral context beyond the annotations: data freshness ('refresh on a daily cycle and can lag the latest close by one session') and the distinction between stocks (fundamentals) and ETFs (holdings). This provides useful operational insight for the agent, and there is no contradiction with the readOnly/idempotent hints.
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 two sentences that efficiently convey the tool's scope, components, and a key caveat about data freshness. The website analogy adds clarity without redundancy, and there is zero 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 composite tool with no output schema, the description covers the main content categories and a crucial timing caveat. It lacks explicit detail about the exact response structure or any potential limitations, but given the breadth of what it returns, it is reasonably complete. A score of 4 reflects that it could mention pagination or volume but is sufficient for an agent to 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?
The schema covers 100% of the single parameter 'ticker' with a clear description including examples. The tool description does not add new parameter-specific semantics beyond restating that it's a single instrument, so the baseline of 3 applies because the schema already does the heavy lifting.
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 provides a comprehensive overview of a single instrument, listing specific components (identification, Market Mood, price alignment, fundamentals/holdings, news). It also distinguishes from sibling tools by framing it as the 'equivalent of opening the /analysis page on the website', which contrasts with the narrow single-aspect sibling tools like get_mood_for_ticker or get_price_alignment.
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 when to use the tool ('Everything we offer about a single instrument in one shot') but does not explicitly state exclusions or name alternatives. It hints that for a full snapshot this is the go-to tool, but it doesn't say 'if you only need mood, use get_mood_for_ticker'. Thus usage guidance is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_instrument_popularityARead-onlyIdempotentInspect
How many community watchlists include a given ticker — a simple read on what the club is tracking.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes | Ticker symbol |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds the key behavioral detail that the count is specifically about community watchlists, not all watchlists, and frames it as a simple read. No contradictions or hidden side effects; the description complements the annotation with domain-specific context.
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 that is front-loaded with the core question and provides immediate clarity. Every word earns its place without fluff or redundancy. It is appropriately sized for the tool's simplicity.
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 tool is simple (one parameter, no output schema, rich annotations). The description clearly states what the tool does, and the return value (a count) is strongly implied by 'How many'. While it does not explicitly describe the response format, the ambiguity is minimal given the tool's purpose. This is complete enough for the complexity level.
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?
Input schema coverage is 100% for the single 'ticker' parameter, described as 'Ticker symbol'. The description does not add extra format, constraints, or examples beyond the schema. Per the baseline for high schema coverage, the description adds no additional semantic value, so a 3 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 explicitly states the tool's function: counting how many community watchlists include a given ticker. This is a specific verb+resource combination that clearly distinguishes it from sibling tools like 'check_ticker_in_my_watchlists' (personal watchlists) and 'discover_community_watchlists' (listing watchlists). The phrase 'a simple read' reinforces its purpose as a quick popularity metric.
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 provides clear context: 'a simple read on what the club is tracking' implies when to use this tool for a quick gauge of community interest. It does not explicitly name alternatives, but the contrast with sibling tools is evident from the tool name and description. No exclusion criteria are given, but the contextual guidance is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_macro_indicatorsARead-onlyIdempotentInspect
US economic indicators — rates, jobs, growth, energy, metals, agriculture, and markets. Latest reading per indicator plus the change from the prior period. Context behind the market, not a signal about any one stock.
| Name | Required | Description | Default |
|---|---|---|---|
| history | No | Readings of history per indicator when include_keys is set. Defaults to 24; if fewer exist, all available readings are returned. | |
| include_keys | No | Optional filter — return only these indicator keys (e.g. ['fedfunds', 'treasury10y']). Call without a filter first to see every available key; unknown keys are reported back with the valid list. When a filter is set, each matched indicator also returns its reading history (see `history`). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered. The description adds that the tool returns the latest reading plus change from the prior period, which is content rather than behavioral. No rate limits, authentication requirements, or error behaviors are disclosed, but given the annotations, a 3 is appropriate.
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 two sentences, front-loaded with the resource categories and then the return value. Every sentence adds value, with no redundant phrasing. It is concise and well-structured.
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 tool has only 2 optional parameters and no output schema, and the description provides a high-level overview of what is returned (latest reading and change). It also conveys the scope of indicators, which is sufficient for an agent to know when to call it. The lack of an explicit response structure is acceptable given the discoverability via filter, and the overall complexity is low.
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 describes both parameters with 100% coverage, including the 'history' number with min/max and 'include_keys' array with filtering semantics. The description adds no parameter-specific details, but the baseline of 3 applies because the schema fully covers parameter meaning.
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 explicitly states the tool returns US economic indicators across multiple categories (rates, jobs, growth, energy, metals, agriculture, and markets) with the latest reading and prior-period change. It clearly distinguishes itself from stock-specific tools by stating it provides market context, not a single-stock signal, which satisfies specific verb+resource+scope.
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 when to use the tool by positioning it as providing macro market context rather than single-stock analysis. It explicitly excludes a use case ('not a signal about any one stock'), but does not name alternative tools or provide explicit when/when-not criteria. This gives clear context with an exclusion, scoring a 4.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_market_calendarARead-onlyIdempotentInspect
Upcoming earnings and IPOs across the market, next three months. Filter to specific tickers and/or a date range to reach your coverage. Earnings carry analyst-estimate EPS when reported. IPOs carry exchange and price range when available.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | Only events on or before this date (YYYY-MM-DD). | |
| from | No | Only events on or after this date (YYYY-MM-DD). | |
| limit | No | Max events to return per section. Defaults to 25. | |
| filter | No | Filter the calendar by event type. Defaults to all. | |
| tickers | No | Only events for these symbols (e.g. ['AAPL','MSFT','NVDA']). Without it the whole market is returned — use this to reach a coverage list. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as safe/read-only/idempotent, and the description adds value by noting default time window (next three months) and additional output details (earnings carry EPS, IPOs carry exchange and price range). This goes beyond simple safety hints without being exhaustive.
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 three short sentences, front-loaded with the core purpose, and every sentence contributes meaningful detail. No waste or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only calendar tool with fully described parameters, the description adequately covers what the tool returns (event types, default window, filtering options, and some output fields). It lacks details like pagination or default limit, but those are in the schema, and the tool's simplicity makes this 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%, so the baseline is 3. The description reinforces filter usage but adds little new parameter semantics beyond what the schema already documents. The mention of EPS/price range relates to output rather than parameters.
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 lists upcoming earnings and IPOs across the market, specifying a time horizon (next three months). This distinguishes it from sibling tools like get_market_movers or get_market_pulse by focusing on a calendar of specific event types.
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 provides clear usage context: filter by tickers and/or date range to tailor coverage. No explicit exclusions or alternatives are mentioned, but the intended use cases are evident, especially with the note about using tickers to reach a coverage list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_market_moversARead-onlyIdempotentInspect
Top gainers, losers and most actively traded US tickers from the last completed session. Small illiquid names can dominate the gainers list — the volume column is there so you can judge. Movement is not merit.
| Name | Required | Description | Default |
|---|---|---|---|
| list | No | Which list to return. Defaults to all three. | |
| limit | No | Rows per list. Defaults to 10. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint true, so the safety profile is covered. The description adds behavioral context that small illiquid names can dominate gainers and that movement is not merit, which is non-obvious and helps the agent interpret results correctly. It does not contradict annotations.
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 two sentences, with the first sentence front-loading the tool's purpose and the second adding a valuable caveat. Every word earns its place; no filler or redundant information.
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 read-only tool with two optional parameters and no output schema, the description is complete: it specifies the data source (US tickers, last session), the types of lists (gainers, losers, most active), and includes an important interpretive caveat about volume and movement. The annotations cover safety, making this fully 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?
With 100% schema description coverage, both parameters (list and limit) are already well-documented in the schema. The description does not add additional parameter-level detail beyond what the schema provides, so the baseline of 3 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 explicitly states the tool returns 'Top gainers, losers and most actively traded US tickers from the last completed session,' which clearly identifies the verb (get), resource (market movers), and scope (US, last session). This distinguishes it from sibling tools like get_industry_returns or get_sector_returns, which focus on sector/industry performance.
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 provides clear context: it is for the last completed session, and it warns that small illiquid names can dominate gainers, advising the volume column for judgment. While it doesn't name alternatives or explicitly state when not to use, the temporal scope and caveat offer practical usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_market_pulseARead-onlyIdempotentInspect
A snapshot of where the market sits right now — random sample of strongly bullish vs strongly bearish names, plus aggregate counts. Great as an opener to ask 'what stands out today?'
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes beyond annotations by revealing that the tool returns a 'random sample,' implying results may vary between calls. It also mentions 'aggregate counts' but doesn't specify exactly what they represent. No contradiction with the readOnly and idempotent hints.
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, 33 words. The first sentence is front-loaded with the core functionality, and the second adds a usage tip. Every word earns its place, making it concise and well-structured.
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 provides a solid summary of the return (random sample and aggregate counts) and a usage hint. It could be more precise about the output structure, but for a simple no-parameter snapshot tool, it is sufficiently 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?
The tool has zero parameters and the input schema is empty, so there are no parameter semantics to clarify. With 0 params, the baseline is 4, and the description adds no irrelevant parameter info.
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 what the tool does: provides a snapshot of market sentiment with a random sample of strongly bullish vs. bearish names and aggregate counts. This distinguishes it from siblings like get_market_movers, which focus on price movers rather than sentiment.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Great as an opener to ask what stands out today?' gives clear context for when to use this tool (as a conversation starter). However, it does not explicitly mention alternatives or when not to use it, so it lacks exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_mood_for_tickerARead-onlyIdempotentInspect
Pull the current Market Mood for a single ticker — its history, how often the mood has shifted, and any patterns we've spotted. Educational only. Mood snapshots refresh on a daily cycle and can lag the latest close by one session; use get_close_history for the freshest price.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes | Ticker symbol (e.g. AAPL, TSLA, BTC-USD) | |
| history_limit | No | History points to include, default 60 |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only/idempotent safety, and the description adds valuable context beyond that: 'Educational only,' the daily refresh cycle, and the potential one-session lag versus the latest close. This discloses important behavioral nuances the agent would not otherwise know.
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 two sentences, front-loads the core purpose, and every clause adds meaningful information: scope, content, educational nature, freshness caveat, and an alternative. 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?
For a tool with rich annotations, full schema coverage, and no output schema, the description provides enough context to understand what to expect: current mood, historical view, shift frequency, and spotted patterns. It also sets expectations about data freshness and limitations, making it complete for safe selection and 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 coverage is 100%, with both ticker and history_limit described in the input schema. The description adds no additional parameter-level detail beyond the schema, so the baseline of 3 applies without needing compensation.
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 'Pull the current Market Mood for a single ticker,' which states a specific verb, resource, and scope. It also lists the returned content (history, mood shifts, patterns), clearly distinguishing it from siblings like list_market_moods or get_today_mood_changes.
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 explicitly notes the daily refresh lag and directs users to get_close_history for fresher price data, giving a clear exclusion for price needs. However, it does not name alternative mood-focused tools or explicitly state when to choose this over list_market_moods/get_today_mood_changes, though 'single ticker' implies the scope.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_my_briefingARead-onlyIdempotentInspect
Your daily briefing at The Balanced Investor Club — a read on your own activity: morning brief, journal counts, the instruments you follow, mood highlights, activity, and your learning journey. A mirror, never advice.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnly, idempotent, and non-destructive behavior. The description adds meaningful context by detailing the content scope (journal counts, followed instruments, mood highlights) and the nature of the output as a 'mirror' rather than advice. It does not disclose any other behavioral traits, but none are needed for a safe read-only operation.
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, each earning its place: the first front-loads the purpose and contents, the second clarifies the non-advice nature. No filler or redundancy; concise and well-structured.
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?
Understanding this tool requires knowing that it provides a personalized, aggregated daily briefing. The description covers the key output categories and the tone ('mirror, never advice'). With no output schema, this description gives enough context for an agent to invoke it appropriately and 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 tool takes zero parameters, so schema coverage is complete and no parameter documentation is required. The description adds value by explaining what the returned briefing contains, which fulfills the parameter-semantics baseline for parameterless tools.
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 provides a daily briefing on the user's own activity, enumerating specific sections (morning brief, journal counts, instruments followed, mood highlights, activity, learning journey). This distinguishes it from sibling tools like get_my_journal_stats or get_my_watchlists, which focus on single data types. The phrase 'A mirror, never advice' further clarifies its informational nature.
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 establishes clear context: this is a daily, personal briefing aggregating various aspects of the user's activity. It implies usage when an overview is needed rather than a specific data point, though it does not explicitly name alternatives. The 'mirror, never advice' wording provides a light constraint, but there is no explicit when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_my_cocreator_statusARead-onlyIdempotentInspect
Your Co-Creator status at The Balanced Investor Club — tier, days until renewal, monthly progress on the 2 feedback + 2 invite obligations, lifetime totals.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool as read-only, idempotent, and non-destructive. The description adds value by detailing what information is returned (tier, renewal, progress, totals), giving the agent a clearer expectation of the output beyond the basic safety profile.
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, concise sentence that front-loads the main subject ('Your Co-Creator status') and efficiently lists the key data points. No unnecessary words or redundancy; it 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 simple, zero-parameter read tool with no output schema, the description is complete. It tells the agent exactly what content to expect (tier, renewal countdown, monthly progress, lifetime totals), which is sufficient to inform invocation and interpretation of the result.
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 the baseline is 4. There is no parameter information needed, and the description focuses entirely on the returned data, which is sufficient for this parameterless operation.
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 specifies that the tool returns the user's Co-Creator status at The Balanced Investor Club, listing the exact details (tier, days until renewal, monthly progress on feedback/invite obligations, lifetime totals). This distinguishes it from other 'get_my_*' tools, which address different aspects of user data.
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 provides clear context for when to use the tool: any time the agent needs the user's Co-Creator status or related progress details. It doesn't explicitly mention alternatives or exclusions, but the tool's specific scope makes its intended usage unambiguous given the lack of overlapping sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_my_journal_statsARead-onlyIdempotentInspect
Pre-aggregated stats from your Trading Journal — counts, win rate, P&L, profit factor, and emotion analytics. A calm mirror, no judgement.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds value by disclosing that stats are pre-aggregated (not computed on demand) and personally scoped to 'your' journal. The 'calm mirror, no judgement' phrase is stylistic but reinforces a non-reactive, read-only experience.
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, front-loaded sentence listing the core content, followed by a short, memorable UX phrase. Every part earns its place: it captures what the tool does, what data is returned, and the tone of the tool.
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 adequately covers what the user gets: counts, win rate, P&L, profit factor, and emotion analytics. It could be more precise about the exact data shapes or update frequency, but for a simple stats endpoint it is reasonably 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?
This tool has zero parameters, so there is no parameter semantics burden on the description. The schema description coverage is 100% vacuously, and the tool requires no input. The description appropriately focuses on output content 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 as returning pre-aggregated stats from the user's Trading Journal and enumerates the key metrics included (counts, win rate, P&L, profit factor, emotion analytics). It is specific about the resource and content, though it does not explicitly distinguish it from siblings like get_my_briefing.
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 usage: when you need your Trading Journal stats. It does not explicitly state when to use this tool over alternatives or provide exclusion criteria, but the phrase 'Pre-aggregated stats from your Trading Journal' gives a clear context among the many sibling data tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_my_trust_scoreARead-onlyIdempotentInspect
Your Trust Score and what built it — discipline, sizing, journaling, drawdown control. A read on your own behaviour, not a verdict.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description doesn't need to restate those. It adds valuable context by explaining that the score reflects discipline, sizing, journaling, drawdown control, and explicitly states it is 'not a verdict,' which clarifies the tool's interpretive nature beyond what annotations 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 two short sentences, front-loaded with the main purpose. Every word adds meaning, with no fluff or repetition of schema/annotation data.
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, read-only tool with rich annotations, the description is complete. It covers what the tool does, what contributes to the score, and the tone of the result. The absence of an output schema is acceptable given the tool's simplicity and the description's clarity.
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 to document. The baseline for 0 params is 4, and the description appropriately focuses on the output and purpose rather than parameter syntax.
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 function: providing the user's Trust Score and the factors that comprise it. It uses a specific resource ('Trust Score') and clarifies it's a read of behavior, not a verdict, distinguishing it from other get_my_* 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 when to use this tool (when you want insight into your Trust Score and its components), but it does not explicitly state when to use it over alternatives like get_my_journal_stats or get_my_briefing. No exclusions or alternative tool names are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_my_watchlistsARead-onlyIdempotentInspect
Read your private and followed watchlists at The Balanced Investor Club. Returns names, item counts, and how many people are following you on each.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max watchlists per section; default 20 |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds value by specifying the exact return content (names, item counts, follower counts) and the scope (private and followed), going beyond the annotations without contradicting them.
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, front-loaded with the action and resource, and provides the key return details without any extraneous words. Every word 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?
Despite having no output schema, the description explicitly lists what is returned, which covers the main need. The single optional parameter is fully documented in the schema, and annotations handle safety. The tool is simple enough that no further context is required.
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% for the single optional parameter 'limit', with its description, min, max, and default. The tool description does not add anything about the parameter, but the schema fully explains it, 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?
The description clearly states the verb 'read' and the resource 'your private and followed watchlists', and specifies the returned data (names, item counts, follower counts). This distinguishes it from sibling tools like get_watchlist_by_slug or discover_community_watchlists.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'your private and followed watchlists' provides clear context for when to use this tool (when accessing your own watchlists), and the sibling names imply alternatives. However, it does not explicitly state when not to use it or mention alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_newsARead-onlyIdempotentInspect
Recent news mentioning a ticker, with article-level sentiment. Mirrors what the website shows in /analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Up to 20 articles; default 10 | |
| ticker | Yes | Stock, ETF, or crypto ticker (e.g. AAPL, SPY, BTC-USD) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, covering safety expectations. The description adds the article-level sentiment detail and the 'mirrors /analysis' context, which provides some behavioral insight beyond annotations but does not disclose return format, pagination, 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?
The description is two sentences, front-loaded with the core purpose, and includes a useful website-mirroring note. Every word earns its place; no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with two parameters, clear annotations, and no output schema, the description provides sufficient context about the data source and sentiment feature. It does not explain return structure, but the 'mirrors /analysis' hint partially compensates for the lack of an output schema, making it reasonably complete though not exhaustive.
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 both 'ticker' and 'limit' fully described in the schema. The description mentions ticker and sentiment but adds no new parameter semantics beyond what the schema already provides, so the baseline of 3 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 clearly states the tool retrieves recent news for a ticker with article-level sentiment, which is specific and distinguishes it from financial data or watchlist tools. The mention of mirroring the website's /analysis page adds clarity about the source and scope.
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 use for news lookup but does not explicitly state when to prefer it over alternatives like get_mood_for_ticker or get_market_pulse. The mirror note provides some context but no exclusions or alternative tool names, so usage guidance is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_price_alignmentARead-onlyIdempotentInspect
How a stock or ETF's price aligns with its short, medium, and long-term moving averages — and the resulting Market Mood. Educational, never predictive. Snapshots refresh on a daily cycle and can lag the latest close by one session; use get_close_history for the freshest price.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes | Stock or ETF ticker (e.g. AAPL, SPY) | |
| ma_type | No | Moving-average type for the live default-MA read used when no official snapshot exists (default SMA). Ignored when a tuned snapshot is available. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnly and idempotent. The description adds valuable behavioral context: 'Educational, never predictive' and 'Snapshots refresh on a daily cycle and can lag the latest close by one session.' No contradiction with annotations.
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 purpose, then a key caveat. No redundant wording; every clause carries meaning.
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 read-only tool with only 2 parameters and no output schema, the description covers purpose, usage caveat, and an alternative tool. It doesn't describe output format or Market Mood values, but that is not essential given the annotations and simplicity.
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%, including detailed descriptions for both ticker and ma_type (with default and when ignored). The description itself adds no parameter-specific information, so baseline 3 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 clearly states it measures how a stock or ETF's price aligns with moving averages and produces a Market Mood. It distinguishes from sibling get_close_history by explicitly recommending it for fresher prices, and 'stock or ETF' implicitly separates it from get_crypto_price_alignment.
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 a clear alternative: 'use get_close_history for the freshest price.' It implies the tool is for alignment/mood analysis and not for real-time prices. However, it does not explicitly name get_crypto_price_alignment for crypto instruments, though the 'stock or ETF' wording makes this evident.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pricingARead-onlyIdempotentInspect
Pricing tiers at The Balanced Investor Club — what each one unlocks. No sales pitch.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, idempotentHint, and destructiveHint, covering the safety profile. The description adds the behavioral note 'No sales pitch,' which is a tone/approach disclosure. It does not detail return format or pagination, but given the simplicity and the annotations, a score of 3 is appropriate.
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, immediately states the subject and value, and ends with a clear behavioral qualifier. Every word earns its place, with no redundancy or 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?
Given no output schema and no parameters, the description is the sole source of information about what the tool returns. It adequately explains the content ('pricing tiers' and what they 'unlock') but lacks explicit details about the format (e.g., list, object) or granularity. However, for a simple informational tool, this is nearly 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?
The tool has zero parameters, so the description does not need to explain parameter semantics. Per the rubric, a baseline of 4 is given for 0 params, and the description does not add anything misleading or unnecessary.
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 provides 'Pricing tiers at The Balanced Investor Club — what each one unlocks.' The verb is implied by the name and the description is specific about the resource (pricing tiers) and purpose, distinguishing it from all sibling tools which focus on market data, watchlists, trades, etc.
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?
While there are no explicit exclusions or named alternatives, the description provides clear context: this is the tool to learn about pricing tiers and their benefits. The phrase 'No sales pitch' implies this is an informational resource, not a promotional one, subtly guiding when to use it. Since no sibling tool covers pricing, the context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sector_returnsARead-onlyIdempotentInspect
Market-cap-weighted average return for a sector over the last year. Pre-computed daily from public market data. GICS names like 'Consumer Discretionary' or 'Information Technology' are accepted.
| Name | Required | Description | Default |
|---|---|---|---|
| sector | Yes | Sector name. GICS or common labels both work, e.g. 'Technology', 'Healthcare', 'Consumer Discretionary', 'Financials'. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (read-only, idempotent, non-destructive), the description adds that the metric is pre-computed daily from public market data and uses market-cap weighting. This sets expectations about data freshness and methodology, which is valuable context.
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 two sentences with no filler. The first sentence front-loads the core definition, and the second provides useful input guidance. Every sentence 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 simple one-parameter tool without an output schema, the description covers the metric, method, time period, and input flexibility. It does not explicitly state the return value's format (e.g., percentage vs decimal), but the tool's simplicity and annotations make this acceptable.
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 fully documents the 'sector' parameter, including examples, achieving 100% coverage. The description adds a few GICS examples but the schema already covers 'GICS or common labels', so the added value is marginal; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool provides a market-cap-weighted average return for a sector over the last year, specifying the computation method and time period. It doesn't explicitly differentiate from sibling get_industry_returns, but the term 'sector' is distinct enough to imply scope.
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 context about the data being pre-computed daily and mentions that GICS names are accepted, which implies when to use. However, it does not explicitly state when to prefer this over alternatives or provide any exclusions, so usage guidance is only implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ticker_metadataARead-onlyIdempotentInspect
Quick identity check on a ticker — name, sector, industry, exchange, asset type. Useful before going deeper.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes | Ticker symbol (e.g. AAPL) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, covering the safety profile. The description adds behavioral context by enumerating the returned metadata fields (name, sector, industry, etc.) and framing the operation as quick, which informs the agent about expected output scope and lightweight nature.
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 consists of two concise sentences: the first states the core function and output fields, the second offers a usage tip. Every word earns its place with no redundancy, making it optimally front-loaded and readable.
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 one-parameter read-only tool, the description covers the essentials: what it does, what fields it returns, and when it is useful. The lack of an output schema is partially mitigated by the listed fields, though the exact response shape remains unstated. The tool's simple nature and clear annotations make this acceptable.
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% since the only parameter 'ticker' has a description ('Ticker symbol (e.g. AAPL)'). The tool description adds no additional meaning or format details beyond the schema, so the baseline score 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?
The description clearly states that the tool performs a 'quick identity check' on a ticker, returning name, sector, industry, exchange, and asset type. This is a specific verb+resource pairing. However, it does not explicitly distinguish from sibling tools like get_instrument_overview, instead only implying a 'quick' and shallow scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Useful before going deeper' gives clear context for when to use this tool: as a preliminary lightweight lookup before more detailed analysis. It does not explicitly name alternatives or exclusion criteria, but the guidance is unambiguous and practical.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_today_mood_changesARead-onlyIdempotentInspect
Mood TRANSITIONS today — instruments whose Market Mood label flipped in the last 24h (e.g. Bullish → Neutral). This is NOT price movers; mood changes only. If today is quiet, an empty result is normal — try list_market_moods with only_with_changes for the latest cycle of transitions across recent days.
| Name | Required | Description | Default |
|---|---|---|---|
| mood | No | Only show changes that landed on this mood | |
| limit | No | ||
| asset_type | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds value beyond these by noting that 'an empty result is normal' on quiet days and clarifying the scope as 'last 24h'. It doesn't contradict annotations, and the added behavioral context is useful, though it doesn't detail output shape or pagination.
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 two sentences and every phrase earns its place: first states the core behavior, then explicitly excludes price movers and provides an alternative workflow. It is front-loaded with the key definition and contains no redundant or filler 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?
Given the tool's moderate complexity, the description covers the main purpose, the time scope, the 'not price movers' nuance, and the empty-result expectation. However, with no output schema and incomplete parameter descriptions, the agent must infer some behaviors (e.g., how `limit` and `asset_type` affect results) from names alone. The description is strong 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 only 33% — only the `mood` parameter has a description. The tool description does not mention `mood`, `limit`, or `asset_type` at all, so it fails to compensate for the missing schema descriptions. While parameter names are somewhat self-explanatory, an agent still lacks explicit semantics for `limit` and `asset_type`.
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's function: 'Mood TRANSITIONS today — instruments whose Market Mood label flipped in the last 24h (e.g. Bullish → Neutral).' It uses a specific verb ('get' implied by name, 'flipped') and resource ('Market Mood label'), and differentiates from the sibling `list_market_moods` by scoping to today and explicitly saying 'This is NOT price movers; mood changes only.'
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 explicit when-to-use guidance: 'Mood TRANSITIONS today' and provides an alternative when the result is empty: 'try `list_market_moods` with `only_with_changes` for the latest cycle of transitions across recent days.' It also explicitly excludes price movers, helping an agent avoid invoking the wrong tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_valuation_inputsARead-onlyIdempotentInspect
DCF building blocks for a stock in one call — current price, shares outstanding, beta, net debt, trailing FCF, 4-year FCF history and CAGR, revenue growth, and the 10-year Treasury as risk-free rate. The same pre-computed inputs the site's Valuation Lab uses; saves stitching five separate calls.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes | Stock ticker (e.g. AAPL). Stocks only — a DCF isn't meaningful for ETFs or crypto. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is known. The description adds context about the consolidated nature of the call and that it returns pre-computed inputs similar to the Valuation Lab. It also specifies the stock-only scope, adding value beyond annotations.
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 a list of data points, but it's efficient and front-loaded with the purpose. It could be slightly better structured by breaking into two sentences, but it's far from wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read-only tool with strong annotations, the description lists all the expected data points and explains the use case. It doesn't mention error handling or return format, but that's less critical given the rich list. Not a full 5 because it lacks any caveats about data availability or format.
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 for ticker is 100% with a description saying 'Stocks only — a DCF isn't meaningful for ETFs or crypto.' The description doesn't add much beyond that, so baseline 3 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 clearly states what the tool does: provides DCF building blocks for a stock in one call, listing specific data points. It distinguishes itself from sibling tools by noting it saves stitching five separate calls and is the same pre-computed inputs as the site's Valuation Lab.
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 provides clear context for when to use this tool: when needing DCF inputs for a stock. It implies that this replaces multiple separate calls ('saves stitching five separate calls'), but it doesn't explicitly name those alternatives or state when not to use it, so not a perfect 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_watchlist_by_slugARead-onlyIdempotentInspect
Open a community watchlist by its slug — see the full list of constituents (tickers, sector, industry, asset type) plus follower count. Use the slug returned by discover_community_watchlists.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Watchlist slug, e.g. 'ai-and-tech-infrastructure' |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds useful behavioral context by detailing the return contents (constituents with tickers, sector, industry, asset type and follower count), which is not visible in the annotations or schema. This is valuable beyond the structured data.
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 with no filler. The purpose is front-loaded in the first sentence, and the second sentence adds a targeted usage hint. Every word 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 only one parameter and no output schema, the description provides adequate context: what the tool does, what it returns, and how to obtain the input. It could mention potential limitations (e.g., no pagination or lack of access to private watchlists), but for a simple retrieval tool with strong annotations, the description is sufficiently 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 coverage is 100% and the slug parameter already has a type and example. The description adds meaning by explaining where to obtain the slug ('returned by discover_community_watchlists'), which gives the agent practical guidance on parameter provenance, going beyond the schema's basic definition.
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 uses a specific verb ('Open') and resource ('community watchlist by its slug'), and explicitly states what will be seen ('full list of constituents... plus follower count'). It distinguishes itself from sibling tools like discover_community_watchlists (which is for browsing) and get_my_watchlists (which is for personal watchlists) by emphasizing 'community watchlist'.
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 a clear when-to-use directive: 'Use the slug returned by discover_community_watchlists.' This not only tells the user the prerequisite but also points to the correct preceding tool, making it obvious how this fits into a workflow and differentiating it from alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
import_tradesAInspect
Import a batch of trades into your Trading Journal from a CSV export — Tradervue, TraderSync, Interactive Brokers, Degiro, or a generic CSV. Paste the CSV contents (including the header row). Columns are matched flexibly, so 'symbol'/'ticker', 'shares'/'quantity' and similar all work. Rows that can't be read are reported back rather than silently dropped.
| Name | Required | Description | Default |
|---|---|---|---|
| source | No | Which platform the export came from. Defaults to generic, which matches columns by name. | |
| csv_data | Yes | The CSV contents, header row included. Needs at least ticker, entry date, entry price and quantity columns. | |
| skip_header | No | Whether the first row is a header. Defaults to true. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses useful behavioral details beyond the sparse annotations: flexible column matching and error reporting for unreadable rows ('reported back rather than silently dropped'). This adds transparency about how errors are surfaced, though it does not specify the exact response format or idempotency 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 compact and efficient: three sentences, each serving a purpose. It front-loads the primary action, then provides instructions and error-handling behavior, with no redundant 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?
The description covers the core usage, supported formats, and error reporting, which is substantial for a tool with no output schema. It could be more explicit about the exact return structure (e.g., counts of imported/failed rows), but it is arguably sufficient for an agent to select and invoke the 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 coverage is 100%, so parameters are already well-documented. The description adds value with concrete examples of column aliases (symbol/ticker, shares/quantity) and clarifies that csv_data must include the header row, enhancing understanding beyond the schema alone.
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 function: importing a batch of trades from CSV into the Trading Journal. It names specific source platforms (Tradervue, TraderSync, Interactive Brokers, Degiro, generic), distinguishing it from sibling tools like log_trade (single trade entry) and update_trade.
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 provides concrete usage context: paste CSV contents including header, with flexible column matching. It implies this is for batch imports from exports, contrasting with single-trade tools, though it does not explicitly state when not to use it or mention alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_market_moodsARead-onlyIdempotentInspect
Browse Market Mood across instruments — The Balanced Investor Club's behavioural read on how short and long-term moving averages align. Educational, never predictive. Filter by sector, asset type, or mood label.
| Name | Required | Description | Default |
|---|---|---|---|
| mood | No | ||
| limit | No | Default 20, max 50 for anonymous tier | |
| sector | No | Filter by sector name (e.g. 'Technology') | |
| industry | No | Filter by industry name | |
| asset_type | No | ||
| only_with_changes | No | Only items where mood changed recently |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only and idempotent behavior, so the bar is lower. The description adds useful context with 'Educational, never predictive' and clarifies the aggregation method ('moving averages align'). It does not describe pagination or rate limits, but with annotations covering safety, this is adequate.
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 every sentence provides value. The description is concise and well-structured.
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 browse tool with rich annotations and detailed schema descriptions for most parameters, the description is sufficiently complete. It could mention limit defaults or pagination, but the current description covers the core functionality and use case.
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 67%, so baseline is 3. The description mentions filtering by sector, asset type, or mood label, which maps to the parameters but does not add syntax or format details beyond what the schema already provides. No additional parameter meaning is explained.
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's purpose: 'Browse Market Mood across instruments' with a specific verb and resource. It distinguishes from sibling tools like get_mood_for_ticker (specific ticker) and get_today_mood_changes (changes) by focusing on browsing across instruments.
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 provides clear context: it is for browsing overall market mood with filters by sector, asset type, or mood label. It does not explicitly mention when to avoid using it or name alternatives, but the scope is evident and sufficient for a browsing tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_my_tradesARead-onlyIdempotentInspect
Your trades from the Trading Journal at The Balanced Investor Club. Optionally filter by status or ticker. Set include_notes to read back the thesis and lesson you wrote on each trade. Your data, your patterns — never advice.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Trades to return; default 20 | |
| status | No | Filter by trade status | |
| ticker | No | Filter to a specific ticker | |
| include_notes | No | Include the thesis, exit reason, lesson and notes written on each trade. Off by default because they are long — turn it on when looking at a handful of trades, not a whole book. | |
| include_paper | No | Include paper/practice trades, which are excluded from your stats. Off by default, matching the journal on the site. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds the note that include_notes is off by default because notes are long, which is useful behavioral context, but does not disclose side effects or auth requirements beyond what annotations imply.
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 three sentences, front-loaded with the resource, and gets directly to filters and notes without 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?
For a read-only list tool, the description covers its purpose, filters, and the special note option, which is sufficient for basic use. It lacks explicit mention of pagination or output structure, but those are not expected with no output schema and are partially handled by the parameter descriptions.
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 all five parameters already have descriptions. The description repeats filter options and explains the purpose of include_notes, but does not add meaning beyond the schema's detailed parameter descriptions.
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 as listing the user's trades from the Trading Journal, with optional filters by status or ticker. It distinguishes itself from siblings by referencing 'your trades' and 'read back the thesis and lesson,' which is specific to this journal tool, not other instrument or watchlist 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 usage for viewing one's trades and provides guidance on optional filters and include_notes. However, it does not explicitly name alternatives or when not to use this tool, though the context is clear enough given the sibling set.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_securities_byARead-onlyIdempotentInspect
List every security inside a sector or industry — a way to map the surface before drilling. Returns ticker, name, sector, industry, and optionally market cap. Use this when the user asks 'what's in Technology?', 'show me the Banks industry', or to build a peer set by size for a comps analysis (sort='market_cap').
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | Sort order. 'market_cap' adds a market-cap column (largest first) — ideal for picking comps peers by size. Caps come from our fundamentals cache, so rarely-viewed small names may show '—'. Defaults to 'name'. | |
| field | Yes | Filter dimension | |
| limit | No | Default 30, max 100 | |
| value | Yes | Filter value, e.g. 'Technology', 'Banks - Diversified' |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds value beyond that by disclosing the return fields (ticker, name, sector, industry, optionally market cap) and the nuance that market cap data comes from a cache, with rarely-viewed names showing '—'. This is useful behavioral context not present in annotations.
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 concise (two sentences) and front-loads the core purpose. The metaphor 'map the surface before drilling' is slightly unnecessary but does not harm. It earns a high score for efficient structure, though not perfect due to the slight verbosity.
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, the description compensates by listing the return fields. It also covers typical use cases and the special behavior of sort='market_cap'. Combined with the detailed schema, the tool is well-specified for an agent to select and invoke it 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?
The input schema has 100% description coverage for all 4 parameters, including clear descriptions for sort, field, limit, and value. The description adds some extra context (e.g., the purpose of sort='market_cap' and example values), but this is marginal since the schema already documents the parameters effectively. Baseline 3 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 uses a specific verb 'List' and identifies the resource 'securities inside a sector or industry'. It is distinct from sibling tools like search_instruments by explicitly scoping to sector/industry filtering, and provides concrete example queries. The phrase 'map the surface before drilling' adds conceptual clarity.
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 when-to-use scenarios: "Use this when the user asks 'what's in Technology?', 'show me the Banks industry', or to build a peer set by size for a comps analysis (sort='market_cap')." This provides clear context for use, though it does not mention when not to use or name alternative tools explicitly, missing the highest bar.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
log_tradeAInspect
Log a trade you've already made into your Trading Journal — ticker, direction, entry date, price, and quantity, plus an optional thesis and how you felt. This records a past decision; it never executes anything. Stocks, ETFs, and crypto only.
| Name | Required | Description | Default |
|---|---|---|---|
| notes | No | Optional: anything else to remember. | |
| thesis | No | Optional: why this trade? What's your conviction? | |
| ticker | Yes | Ticker or crypto pair (e.g. AAPL, SPY, BTC-USD). | |
| quantity | Yes | Quantity / position size. | |
| direction | Yes | Trade direction. | |
| entry_date | Yes | Entry date — ISO date (YYYY-MM-DD) or datetime. | |
| entry_price | Yes | Entry price per share/unit. | |
| is_test_trade | No | Mark this as a paper/practice trade. Paper trades are kept out of your real performance stats — win rate, P&L, and the emotion breakdown. Defaults to false (a real trade). Use true when trying something out, so you don't pollute your own record. | |
| emotional_state | No | Optional emotional state on a -4 to +4 scale: -4 Panic, -3 Fearful, -2 Anxious, -1 Uneasy, 0 Neutral, 1 Calm, 2 Confident, 3 Very Confident, 4 Euphoric. | |
| confirm_duplicate | No | Set true to log even if a matching trade (same ticker, date, direction) already exists. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and destructiveHint=false, but the description adds valuable context: it records a past decision and never executes anything. It also implies state changes without detailing duplicate handling or return values, but those are partially addressed in schema descriptions, so the bar is met.
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 essential action, and zero filler. Every word earns its place, and the structure cleanly follows action, purpose, and constraints.
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 fully explains the tool's primary purpose and boundaries for a 10-parameter tool with no output schema. It doesn't mention return details or duplicate confirmation behavior, but the schema's parameter descriptions cover the latter, so the setup is sufficiently 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%, so the input schema already provides thorough meaning for all 10 parameters. The description restates some fields but adds little beyond mapping 'how you felt' to emotional_state. Baseline 3 is appropriate because the schema carries the load.
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 uses a specific verb ('Log') and resource ('Trading Journal'), enumerates the key fields (ticker, direction, entry date, price, quantity), and disambiguates from siblings by stating it records past decisions. This clearly differentiates it from update_trade, close_trade, delete_trade, and import_trades.
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 provides clear context for when to use the tool ('a trade you've already made', 'never executes anything') and restricts scope to 'Stocks, ETFs, and crypto only.' It does not explicitly name alternative tools for different actions, but the context is sufficient to guide selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_from_watchlistADestructiveInspect
Remove an instrument from one of your Stock Trackers. This will remove the instrument from your stock tracker. This action cannot be undone.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes | Ticker symbol to remove (e.g. AAPL). | |
| watchlist | Yes | Name of the Stock Tracker the ticker is in, or its id. | |
| asset_type | No | Optional: helps disambiguate if the same ticker exists in multiple asset types. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, but the description adds that the action 'cannot be undone,' which provides concrete irreversibility context. It also clarifies the scope ('one of your Stock Trackers'), adding ownership/authorization context beyond the annotations.
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 brief but contains redundancy: 'This will remove the instrument from your stock tracker' simply restates the first sentence. The last sentence about irreversibility is valuable. A more concise version would drop the redundant middle sentence.
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 removal operation with high schema coverage and destructive annotations, the description is mostly complete. It states the action, irreversibility, and ownership scope. The only minor gap is no mention of what happens if the instrument is not found, but this is not essential for a basic removal 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 description coverage is 100%, so the schema already documents all parameters clearly. The description does not add additional parameter-specific detail beyond what the schema provides, so the baseline score of 3 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 clearly states the action: removing an instrument from a Stock Tracker. The verb 'remove' plus the resource 'instrument from one of your Stock Trackers' is specific and distinguishes this from sibling tools like add_to_watchlist or delete_watchlist.
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 usage: to remove an instrument from a watchlist. However, it does not explicitly mention alternatives or exclusions, such as using delete_watchlist for removing entire trackers or noting this only affects user-created trackers. There is no when-not-to-use guidance beyond the ownership implication.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_instrumentsARead-onlyIdempotentInspect
Search The Balanced Investor Club's coverage universe across stocks, ETFs, and crypto. Type a ticker, company name, or coin name — same as the search box on the website.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Up to 15 results; default 10 | |
| query | Yes | Ticker, name, or coin (e.g. AAPL, Apple, BTC, Tesla) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds minimal behavioral context beyond the 'same as the search box on the website' analogy, but does not disclose specifics like result format or pagination. With annotations present, this is adequate but not rich.
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. The first sentence immediately explains what the tool does, and the second reinforces usage with a familiar analogy. Every word 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 simple search tool with two well-documented parameters and read-only annotations, the description covers the essential purpose and usage context. It does not explain the return format, but absence of an output schema makes that less critical. The 'same as the search box' analogy partially compensates by implying a list of 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 schema covers both parameters fully: query has examples (AAPL, Apple, BTC, Tesla) and limit has min/max and default. The description does not add any parameter details, but the baseline of 3 is appropriate given the high schema coverage.
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 a specific verb ('Search') and resource ('The Balanced Investor Club's coverage universe'), and explicitly lists the asset types (stocks, ETFs, crypto). It distinguishes itself from sibling tools like search_my_watchlists by scoping to the coverage universe rather than user watchlists.
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 provides clear context for when to use this tool: when you need to find an instrument by ticker, name, or coin. The analogy to the website search box gives a strong hint, but it does not explicitly mention alternatives or exclusion criteria (e.g., when to use search_my_watchlists instead).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_my_watchlistsARead-onlyIdempotentInspect
Search across your own watchlists, the curated/official ones, and shared community lists by name. Returns up to 5 matches per bucket.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query (2-100 chars) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only and idempotent behavior. The description adds value by disclosing the search scope across three buckets and the result cap of 5 per bucket, which is behavioral context beyond annotations. It does not mention ordering or bucket semantics in detail, but for a simple search tool this is sufficient given the 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?
The description is two sentences, front-loaded with the core purpose and followed by a single output constraint. Every word earns its place; there is no fluff or repetition of the tool name. Structure is ideal for quick comprehension.
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, so the description must convey return behavior. It does so with 'Returns up to 5 matches per bucket', which is sufficient for a simple search. The term 'bucket' is not explicitly defined but is inferable from the three list categories. It lacks details about ordering or match structure, but for a single-parameter read-only search this is not a critical 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 coverage is 100%, so the baseline is 3. The description adds meaning beyond the schema by specifying that the query matches 'by name' — the schema only labels it as a 'Search query (2-100 chars)'. This clarifies the semantic target of the parameter, elevating the score to 4.
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 uses a specific verb ('Search') and resource ('watchlists'), then enumerates the exact scope: 'your own watchlists, the curated/official ones, and shared community lists.' The detail 'by name' further distinguishes it from instrument search or list retrieval tools. It also mentions a concrete output constraint ('Returns up to 5 matches per bucket'), making the purpose 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?
The description clearly implies use when you want to find watchlists by name across personal, official, and community sources. It doesn't explicitly name alternative tools (e.g., 'for searching instruments use search_instruments'), but the scope and field ('by name') provide clear context that separates it from sibling watchlist tools. There is no explicit exclusion, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_hereARead-onlyIdempotentInspect
Start exploring The Balanced Investor Club. A calm orientation — what we are, what the community is watching right now, and what to try next. Recommended as your first call.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safe read-only nature is covered. The description adds a little content context ('what the community is watching right now') but does not expose response format, pagination, or any other behavioral traits beyond what annotations convey. No contradiction exists.
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, purposeful sentences front-load the primary action and then provide content and usage guidance. No wasted words or repetition of structured annotation data.
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 orientation tool with strong annotations and no output schema, the description sufficiently covers purpose, expected content, and usage. It lacks explicit return-format details, but the simple and non-risky nature makes this a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the empty schema is effectively 100% covered. With no parameters, the baseline of 4 applies; the description adds no confusing parameter information, which 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 uses 'Start exploring' and 'a calm orientation' with a clear verb and resource, explicitly stating what the tool does and what it surfaces (community watching, next steps). It is clearly positioned as the entry point, distinguishing itself from the data-focused and mutation-focused sibling 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 explicitly states 'Recommended as your first call,' which is a direct when-to-use instruction. No sibling provides an orientation role, so not mentioning alternatives is acceptable and the guidance is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unfollow_watchlistADestructiveInspect
Stop following a public Stock Tracker. It disappears from your stock tracker page and you stop receiving its updates. Your own Stock Trackers are unaffected.
| Name | Required | Description | Default |
|---|---|---|---|
| watchlist_slug | Yes | Slug or name of the Stock Tracker you're following. get_my_watchlists lists them. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as destructive and not read-only. The description adds valuable context: the tracker 'disappears from your stock tracker page' and you 'stop receiving its updates,' plus the safety note that your own trackers are unaffected. This goes beyond the annotation flags.
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 two clear sentences, front-loaded with the main verb and resource. Each sentence adds relevant information without any fluff.
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 destructive tool with no output schema, the description is complete: it states the action, the consequence, and the boundary (own trackers unaffected). It does not need to explain return values.
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 schema already fully describes the single parameter `watchlist_slug` and even tells the user where to find it. The description adds no additional parameter-specific meaning beyond reinforcing that it refers to a public tracker.
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 action with a specific verb and resource: 'Stop following a public Stock Tracker.' It also distinguishes from sibling tools by clarifying that it affects only followed public trackers, not the user's own trackers.
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 implies when to use this tool: when you want to stop following a public tracker. It provides a clear boundary with 'Your own Stock Trackers are unaffected,' but it does not explicitly name alternative tools for handling your own trackers.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_tradeAInspect
Update fields on an existing trade in your Trading Journal — entry price, quantity, thesis, notes, how you felt at entry, or the lesson you took from it. Identify the trade by id.
| Name | Required | Description | Default |
|---|---|---|---|
| notes | No | Updated notes. | |
| thesis | No | Updated thesis — why this trade. | |
| quantity | No | New quantity. | |
| trade_id | Yes | The trade id (from list_my_trades). | |
| entry_price | No | New entry price. | |
| is_test_trade | No | Reclassify the trade: true makes it a paper trade (excluded from your stats), false makes it a real one. Use delete_trade if what you want is to take a mistaken entry out of your record. | |
| lesson_learned | No | What you took away from this trade. Can be written long after the exit — the lesson usually arrives later than the P&L. | |
| emotional_state | No | Optional emotional state on a -4 to +4 scale: -4 Panic, -3 Fearful, -2 Anxious, -1 Uneasy, 0 Neutral, 1 Calm, 2 Confident, 3 Very Confident, 4 Euphoric. (entry) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already communicate that this is a mutation (readOnlyHint=false) and not destructive (destructiveHint=false). The description aligns by saying 'Update' and specifying field changes, adding context about which attributes can be changed. It does not disclose response format or side effects, but with annotations present, the behavioral profile is well covered.
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 that immediately uses the verb 'Update' and a specific resource. It lists examples concisely and ends with the required identification, avoiding any 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 straightforward update tool with 8 parameters (1 required), a clear purpose, and adequate schema coverage, the description covers the essential usage. It omits return value specs, but no output schema exists, and the behavior is simple enough that the description suffices.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the input schema fully documents all 8 parameters, including types and constraints. The description adds only a human-readable summary of some fields (entry price, quantity, thesis) without additional semantic nuances, so it stays at 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 begins with 'Update fields on an existing trade' which clearly states a specific verb and resource. It lists concrete fields (entry price, quantity, thesis, notes, emotional state, lesson) and explicitly says to identify the trade by id, distinguishing it from close_trade, delete_trade, and log_trade.
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 clear context: it is for modifying an existing trade, not creating, closing, or deleting one. It does not explicitly name alternative tools, but the phrase 'existing trade' and requirement to identify by id imply appropriate usage. The schema's is_test_trade parameter description mentions delete_trade for removing mistaken entries, but the main description alone lacks explicit alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_watchlistAInspect
Update one of your Stock Trackers — rename it, change the description, make it public or private, or change how often it alerts you. Only the fields you pass are changed.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | New name. 1–100 characters. | |
| is_public | No | True makes it discoverable and followable by others. False makes it visible only to you. | |
| watchlist | Yes | Name, slug or id of the Stock Tracker to update. | |
| description | No | New description. Up to 500 characters. | |
| show_anonymous | No | When public, hide your identity as the author. | |
| alert_frequency | No | How often this Stock Tracker alerts you to changes. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark readOnlyHint=false and destructiveHint=false, so the description correctly implies a write operation. It adds valuable behavioral context with 'Only the fields you pass are changed,' clarifying that unspecified fields retain their current values—a key nuance not present in annotations. It does not mention ownership requirements or failure behavior, but that is not expected given the annotations.
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 two short sentences, front-loaded with the core purpose, and lists the updatable fields without redundancy. Every phrase earns its place; the partial-update caveat is concise and useful.
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 six well-documented parameters, one required, no output schema, and clear annotations, the description covers the essential operational context: what updates are possible and the partial-update behavior. It does not discuss return values or error scenarios, but such details are either unnecessary (no output schema) or implied. Minor gap: no mention of permissions or whether the tracker must be owned, but 'your' implies ownership.
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 each parameter is well-documented. The description adds a global semantic note ('Only the fields you pass are changed') that goes beyond individual parameter descriptions and is critical for correctly using the partial-update pattern. It also maps high-level user goals (rename, description, visibility, alert frequency) to relevant parameters, aiding comprehension.
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 uses the specific verb 'Update' with resource 'Stock Tracker' and lists concrete actions: rename, change description, make public/private, change alert frequency. This clearly distinguishes it from siblings like create_watchlist or delete_watchlist by focusing on modifying an existing tracker's metadata.
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 clear context: use when you want to modify specific settings of an existing Stock Tracker you own. It implies partial updates via 'Only the fields you pass are changed,' but does not explicitly reference alternatives like add_to_watchlist or remove_from_watchlist, nor does it state exclusions. Still, the intended use is evident.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
whoamiARead-onlyIdempotentInspect
A quick hello — your name, plan, how long you've been with The Balanced Investor Club, and today's date from our servers. Call this before stamping a date on any deliverable: the date here is authoritative, and a date you recall is not.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so no safety disclosure is needed. The description adds valuable behavioral context beyond annotations: it reveals that the tool returns the server's authoritative date and implies a trust hierarchy (server date over recalled date). No contradictions 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?
Two tightly written sentences: the first states the purpose (what it returns), the second gives a direct usage directive. Every word earns its place, no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters and no output schema, the description sufficiently covers what the agent needs to know: the returned fields (name, plan, tenure, date) and the critical behavioral note about date authority. There are no obvious gaps about when or how to invoke it.
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 per rubric baseline is 4. The description focuses entirely on outputs and usage; no parameter explanation is needed or provided, which 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 clearly states what the tool returns: the user's name, plan, tenure with The Balanced Investor Club, and the server's current date. The 'authoritative date' phrasing differentiates it from sibling tools that might provide user or market data. This is a specific and unambiguous 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 explicitly instructs to call this tool before stamping a date on any deliverable, and explains why (the server date is authoritative, not a recalled date). While it does not mention alternatives or when-not-to-use, the 'when to use' guidance is clear and actionable, placing it above a mere implied context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Servers
- AlicenseAqualityAmaintenanceInvestment decision tools for AI agents: portfolio status, isolated multi-agent committee analysis, auditable verdict history, and lookahead-protected backtests. Advisory only, no auto-trading; negative research results published.2179MIT
- AlicenseAqualityAmaintenancePre-computed financial market intelligence for AI agents. Stocks, crypto, and ETFs.92303MIT
- Alicense-qualityCmaintenanceProvides educational US market analysis by combining exchange rates, stock snapshots, and five famous investor perspectives (Buffett, Graham, Lynch, Dalio, Wood) to generate watchlist ideas, reasoning, risks, and follow-up checks.MIT
- Flicense-qualityBmaintenanceRead-only MCP server for short-term stock and ETF market research, providing tools for futures, premarket movers, market breadth, earnings, watchlist signals, and daily briefings.