opula
Server Details
Not another dashboard. A wealth analyst for every asset a bank can't sync, inside Claude.
- 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.6/5 across 40 of 40 tools scored. Lowest: 3.7/5.
Most tools have distinct purposes, but some overlap exists: add_balance/add_flow/add_monthly all handle entry upserts, and get_market_brief/get_wealth_brief both provide comprehensive overviews. However, detailed descriptions and complementary use cases help reduce ambiguity.
All tools follow a consistent verb_noun pattern in snake_case (e.g., add_balance, delete_txn, show_portfolio). There are no deviations or mixed conventions, making the set predictable for an agent.
40 tools is high, but each serves a specialized purpose in a comprehensive wealth management system. Some redundancy exists (e.g., get_market_brief vs multiple show_* tools), but the scope justifies the count, though a slight reduction could improve coherence.
The tool surface is very thorough, covering ledger entry, transaction logging, portfolio analytics, macro data, projections, and profile management. Minor gaps exist (e.g., no explicit watchlist management tool), but core workflows are fully supported.
Available Tools
40 toolsadd_balanceAInspect
Upsert one or more balance sheet entries (also edits, same composite key overwrites). entries is an array: pass one entry to record a single balance item, many to import a net-worth spreadsheet (rows = months, columns = categories) in one call. Prefer add_monthly for full month-end settlement. VALID BALANCE CATEGORIES (each entry is category (한국어, sub_type=x)), assets: cash (현금·입출금 예금, sub_type=cash), savings (적금·예금, sub_type=cash), usd_cash (달러 현금, sub_type=cash), deposit (증권사 예수금, sub_type=cash), housing_sub (주택청약저축, sub_type=cash), cash_other (기타 현금성 자산, sub_type=cash), domestic_stock (국내주식, sub_type=investment), overseas_stock (해외주식, sub_type=investment), pension (연금(퇴직·개인), sub_type=investment), real_estate (부동산(거주·투자), sub_type=other), jeonse_deposit (전월세보증금(임차), sub_type=other), vehicle (차량, sub_type=other), asset_other (기타 자산, sub_type=other). Liabilities: credit_card (카드 대금, sub_type=short_term), short_term_other (기타 단기 부채, sub_type=short_term), loan (대출, sub_type=long_term), long_term_other (기타 장기 부채, sub_type=long_term). Use ONLY these category/sub_type pairs, do NOT invent your own (show_categories returns this catalog). STOCKS BELONG HERE. wealth net worth is BOOK-based (the recorded month-end ledger), so at settlement record your holdings value under domestic_stock / overseas_stock like any other asset, a month with no recorded stock value simply has no stock in its net worth. This is SEPARATE from the live market view (get_market_brief values the portfolio intraday from the transaction log): the two surfaces are independent and can legitimately differ (month-end book vs live), and recording stock in the balance does NOT double-count because wealth never fuses the live value. The balance covers the whole net-worth ledger: bank cash, savings, usd_cash, deposits, stocks (domestic_stock / overseas_stock), other trading assets (asset_other), real estate, vehicle, pension, physical assets. For non-USD users: pass currency as the native currency (e.g. "KRW") and amount in that currency, converted to USD via historical FX at date. Use category="usd_cash" (currency="USD") for USD-denominated CASH held alongside home-currency cash (it should be sub_type="cash" so it counts as liquid).
A single-entry call returns the upserted entry; a multi-entry call returns counts grouped by period.
| Name | Required | Description | Default |
|---|---|---|---|
| entries | Yes | One or more balance entries to upsert |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (no readOnly/destructive hints) are supplemented with detailed behavioral context: upsert semantics (overwrites same composite key), return values for single vs multi-entry, book vs live market distinction, no double-counting, and currency conversion.
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?
Well-structured with front-loaded main action, but the category list is duplicated from the schema, making it slightly verbose. Could be more concise without losing critical clarification.
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?
Thorough coverage despite no output schema: explains return values for single and multi-entry, handles edge cases (non-USD, multiple entries), disambiguates from siblings, and provides conceptual model (book vs live). Essential for a complex 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?
Despite 100% schema coverage, the description adds substantial meaning: explains entries array usage, provides the full category list with sub_type pairs, emphasizes stocks belong here, clarifies book vs live separation, and details non-USD handling. This exceeds baseline 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 upserts balance sheet entries (verb 'Upsert', resource 'balance sheet entries'). It distinguishes from sibling 'add_monthly' by indicating preference for month-end settlement, and references 'show_categories' for the catalog.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance to prefer add_monthly for full month-end settlement, explains when to use single vs multi-entry, and covers non-USD currency handling. Lacks explicit 'do not use when' but guidance is clear and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_flowAInspect
Upsert one or more cash flow entries (also edits, same composite key overwrites). entries is an array: pass one entry to record a single flow item, many to import an income/expense spreadsheet (rows = months, columns = categories) in one call. Prefer add_monthly for full month-end settlement. CASH BASIS: an expense is the cash that actually left the account this period (last month's card bill paid this month = this month's expense), NOT a card swipe that has not settled. An unpaid card charge is a balance-sheet liability (credit_card), never a cash deduction here. The balance sheet stays accrual (unpaid card = credit_card liability); the two axes use different bases by design. VALID FLOW CATEGORIES (each entry is category (한국어, sub_type=x)), income: salary (급여, sub_type=employment), business (사업 소득, sub_type=employment), dividends (배당, sub_type=investment), interest (이자, sub_type=investment), income_other (기타 수입, sub_type=other). Expense: personal (생활비·소비, sub_type=consumption), insurance (보험, sub_type=fixed), phone (통신, sub_type=fixed), utilities (공과금, sub_type=fixed), rent (월세·주거비, sub_type=housing), maintenance (관리비, sub_type=housing), loan_repayment (대출 상환, sub_type=debt), expense_other (기타 지출, sub_type=other). Use ONLY these category/sub_type pairs, do NOT invent your own (show_categories returns this catalog).
A single-entry call returns the upserted entry; a multi-entry call returns counts grouped by period.
| Name | Required | Description | Default |
|---|---|---|---|
| entries | Yes | One or more flow entries to upsert |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses upsert behavior, cash basis accounting, and return behavior (single vs multi-entry). No contradiction with annotations (readOnlyHint=false, destructiveHint=false).
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?
Front-loaded with main verb and structured paragraphs, but somewhat lengthy due to detailed explanations of cash basis and categories. For a complex tool, this is acceptable.
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 all aspects: usage, parameters, categories, accounting basis, return behavior. No output schema needed as return is described.
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 detailed field descriptions. Description adds context on array usage, composite key, and currency conversion, but the schema already provides comprehensive 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 the tool upserts cash flow entries, including editing via composite key. It distinguishes from siblings like add_monthly and references show_categories for catalog.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises preferring add_monthly for full month-end settlement and warns against inventing categories, directing to show_categories. Also explains cash basis versus accrual accounting.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_monthlyAInspect
Batch upsert balance and flow entries for a single period in one call. Primary tool for month-end settlement. When the user says "month-end closing" or "record this month", do NOT just display data. Instead: (1) present the full category checklist (call show_categories) and ask for each balance category and each cash flow category; (2) confirm the numbers; (3) call this tool once with the full arrays. VALID BALANCE CATEGORIES: assets: cash (현금·입출금 예금, sub_type=cash), savings (적금·예금, sub_type=cash), usd_cash (달러 현금, sub_type=cash), deposit (증권사 예수금, sub_type=cash), housing_sub (주택청약저축, sub_type=cash), cash_other (기타 현금성 자산, sub_type=cash), domestic_stock (국내주식, sub_type=investment), overseas_stock (해외주식, sub_type=investment), pension (연금(퇴직·개인), sub_type=investment), real_estate (부동산(거주·투자), sub_type=other), jeonse_deposit (전월세보증금(임차), sub_type=other), vehicle (차량, sub_type=other), asset_other (기타 자산, sub_type=other). Liabilities: credit_card (카드 대금, sub_type=short_term), short_term_other (기타 단기 부채, sub_type=short_term), loan (대출, sub_type=long_term), long_term_other (기타 장기 부채, sub_type=long_term). VALID FLOW CATEGORIES: income: salary (급여, sub_type=employment), business (사업 소득, sub_type=employment), dividends (배당, sub_type=investment), interest (이자, sub_type=investment), income_other (기타 수입, sub_type=other). Expense: personal (생활비·소비, sub_type=consumption), insurance (보험, sub_type=fixed), phone (통신, sub_type=fixed), utilities (공과금, sub_type=fixed), rent (월세·주거비, sub_type=housing), maintenance (관리비, sub_type=housing), loan_repayment (대출 상환, sub_type=debt), expense_other (기타 지출, sub_type=other). Use ONLY these category/sub_type pairs, do NOT invent your own. RECORD STOCKS at settlement too. wealth net worth is BOOK-based: at month-end record your holdings value under domestic_stock / overseas_stock alongside cash, savings, usd_cash, deposits, real estate, vehicle, pension, and physical assets, the WHOLE ledger, so past months carry an accurate month-end net worth. This is the structural/defense book and is SEPARATE from the live intraday portfolio value in get_market_brief (from the transaction log); the two can legitimately differ and recording stock here does NOT double-count (wealth never fuses the live value). (usd_cash should be sub_type="cash" so it counts as liquid.) After recording, call get_wealth_brief to show the confirmed summary.
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | YYYY-MM-DD (typically month-end) | |
| flow | No | ||
| period | Yes | YYYY-MM | |
| balance | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations readOnlyHint=false and destructiveHint=false are consistent with the described upsert operation. The description goes beyond by explaining the data source (book-based net worth), the separation from live portfolio via get_market_brief, and the treatment of stocks at settlement. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but well-structured: it opens with the primary purpose, then usage guidelines, then category lists, and finally behavioral notes. While verbose, every sentence adds value. The front-loading is effective.
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 complexity (4 parameters, nested arrays, no output schema), the description fully covers the tool's role, workflow, category constraints, and relationships to other tools (get_market_brief, get_wealth_brief). It addresses potential confusion like double-counting of stocks.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50%, but the description substantially compensates by listing all valid categories and sub_types with examples, explaining the purpose of sub_type, and providing additional context (e.g., usd_cash should use sub_type=cash). This adds significant meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Batch upsert balance and flow entries for a single period in one call' and labels it as the 'Primary tool for month-end settlement.' It effectively distinguishes from sibling tools like add_balance and add_flow by emphasizing batch and period-specific use.
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 explicit when-to-use guidance: 'When the user says "month-end closing" or "record this month"…' and outlines a step-by-step procedure including calling show_categories, confirming numbers, and post-call use of get_wealth_brief. It also warns against inventing categories and clarifies when not to just display data.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_priceAInspect
Set the current price of ONE non-stock asset (crypto / commodity / real_estate / other). These assets have no market data provider, so their market value is entered manually — stocks are auto-priced on read and return an error here. name is matched case-insensitively against the user's non-stock holdings (the free-form ticker used on their transactions, e.g. "Bitcoin", "KRX gold"). value is the price PER SHARE/UNIT in currency (default USD), converted to USD at today's date before storing. The new price flows into get_market_brief / show_portfolio / simulate_scenario automatically on the next read. Call it again whenever the user reports a new valuation; each call is dated today and the latest date wins.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The non-stock asset name as entered on its transactions (e.g. "Bitcoin", "Seoul apartment"). Matched case-insensitively against current holdings. | |
| value | Yes | Current price per share/unit of the asset, a positive number in `currency`. | |
| currency | No | Currency of `value` (USD/KRW/JPY/EUR/CNY/GBP/HKD/INR/TWD). Non-USD values are converted to USD via the rate at today's date. | USD |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint=false (write operation) and destructiveHint=false (non-destructive). The description adds critical behavior: currency conversion to USD, date stamping (latest wins), and impact on downstream tools like get_market_brief and show_portfolio. No contradictions.
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 (5 sentences) and well-structured. It front-loads the core purpose ('Set the current price of ONE non-stock asset') and then elaborates logically on scope, matching, value semantics, and usage. No unnecessary 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 has 3 parameters, no output schema, and no nested objects, the description covers everything needed: purpose, applicable assets, matching rules, price meaning, currency handling, effect on other tools, and repetition policy. It is fully self-contained.
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% but the description adds significant extra meaning beyond the schema: name is case-insensitively matched to holdings, value is per share/unit, currency default and conversion explanation, and mention of 'free-form ticker'. This enriches the schema 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 states the tool sets the current price for one non-stock asset, listing supported types (crypto, commodity, real_estate, other) and explicitly distinguishes it from stocks, which are auto-priced. The verb 'Set' and resource 'price of a non-stock asset' are specific, and it differentiates from siblings like add_balance or show_portfolio.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states when to use this tool: for non-stock assets manually valued, and when not to use it: for stocks, which will return an error. It also advises calling it again on new valuation. This provides clear context and exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_txnAInspect
Insert one or more transactions in a single call. transactions is an array, pass one entry for a single trade, many for a CSV / brokerage export / paste import. Rows are sorted by date ascending before insertion (average cost depends on insertion order). For bulk imports: first show the user your detected column mapping and total row count, wait for their confirmation, then call this once with all rows. Types: buy/sell move shares; deposit adds shares (set price=0 for grants/transfers, or actual cost basis); dividend/tax record cash events (price = total amount, shares = 1).
Reason capture (critical for thesis tracking): For NEW buy/sell trades, not historical bulk imports, the reason field is the single highest-leverage input you can capture for the user's long-term self-feedback loop (powers show_thesis_track later). When the user logs a NEW single buy/sell without supplying a reason, ALWAYS ask before calling: "What's your reason for this trade? Even one short sentence, 'earnings beat thesis', 'rebalancing toward defensive', 'avg-down on dip', is enough." Then include their answer in reason. Skip the ask only when (a) the user is explicitly migrating historical data, or (b) the trade type is deposit/dividend/tax (no investment decision).
Each row carries its own asset_type (default 'stock'), which splits two flows:
stock:
priceis in the market's native currency (US→USD, KRX/KOSDAQ→KRW, JP→JPY, HK→HKD, LSE→GBP, XETRA→EUR, NSE→INR, TW→TWD),marketdetermines it, thecurrencyparam is ignored. Non-US holdings must setmarketto the listing exchange;tickerstays the bare local code (e.g. market: "KRX", ticker: "005930").crypto / commodity / real_estate / other: there is no market or price provider, these are priced manually (keep the current value fresh with add_price).
marketis ignored and stored null,tickeris a free-form name (e.g. "Bitcoin", "Seoul apartment"), andpriceis in thecurrencyparam (default USD).
In both cases price is converted to USD at the transaction date before storing, every stored price is USD.
A single-entry call returns the inserted transaction; a multi-entry call returns a per-ticker / per-type summary.
| Name | Required | Description | Default |
|---|---|---|---|
| transactions | Yes | One or more transactions to insert |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only indicate read/write nature. The description adds rich behavioral details: rows sorted by date, USD conversion at transaction date, per-type behavior (buy/sell vs deposit/dividend/tax), and market vs non-stock asset handling. No contradictions 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?
The description is long but well-structured with clear context on bulk imports and reason capture. While every sentence serves a purpose, it could be slightly more concise. The front-loading is good but not perfect.
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 complexity (nested array, multiple transaction types, asset classes, currency handling) and no output schema, the description is remarkably complete. It covers all edge cases, workflows, and constraints, leaving little ambiguity for an AI agent.
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%, but the description adds significant context beyond schema: explains the reason field's importance, how asset_type splits flows, currency usage for non-stock, and market enumeration semantics. This adds substantial value beyond the basic schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool inserts transactions in a single call ('Insert one or more transactions in a single call'). The verb 'insert' and resource 'transactions' are specific. However, it does not explicitly differentiate from sibling tools like add_balance or add_price, though the context of transactions is distinct enough.
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 extensive usage guidance: bulk import workflow (show column mapping, wait for confirmation), single trade reason capture (with explicit when to ask/skip), sorting behavior, and asset type-specific instructions. It covers when to use this tool vs. not, making it highly actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_balanceADestructiveInspect
Delete balance entries for a period. If category is provided, only that single entry is removed; otherwise all entries for the period are deleted.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Required when category is provided | |
| period | Yes | YYYY-MM | |
| category | No | Specific category: if omitted, deletes all entries for the period | |
| sub_type | No | Required when category is provided |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already confirm destructiveness; description adds period-scoped deletion detail but no further behavioral disclosure (e.g., irreversibility, cascade effects).
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 efficient sentences, front-loaded purpose, zero 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?
Adequate for a simple deletion tool with annotations covering destructiveness; could mention return status but not critical.
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%, baseline 3; description adds value by explaining conditional behavior (category controls single vs. bulk deletion).
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?
Clear verb+resource ('Delete balance entries') and distinguishes behavior with/without category, unlike sibling delete_flow or delete_txn.
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 context for two usage modes (with/without category) but no explicit when-not-to-use or alternatives like delete_flow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_flowADestructiveInspect
Delete flow entries for a period. If category is provided, only that single entry is removed; otherwise all entries for the period are deleted.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Required when category is provided | |
| period | Yes | YYYY-MM | |
| category | No | Specific category: if omitted, deletes all entries for the period | |
| sub_type | No | Required when category is provided |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true and readOnlyHint=false. The description adds crucial context about the period-bound deletion and the conditional behavior of category, which is important for understanding the destructive scope. 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, each adding essential information without redundancy. Efficient and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive tool with annotations, the description fully covers the delete behavior, conditional modes, and period constraint. No output schema is needed for a delete operation. Complete within the context.
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 has 100% coverage, so description is not required to repeat parameter details. However, it adds value by explaining the interaction between period and category, and implicitly clarifies that type and sub_type are required when category is provided.
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 ('delete flow entries') and resource ('flow entries for a period'), with explicit conditional behavior based on category. It distinguishes from sibling delete tools like delete_balance and delete_txn by specifying 'flow entries'.
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 guidance on when to provide category (to delete a single entry) and when to omit it (to delete all entries for the period). It doesn't explicitly compare with alternative tools, but the conditional logic is well explained.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_txnADestructiveInspect
Delete a single transaction by its id. The user must confirm, never call this without explicit instruction (e.g. "delete transaction #42"). Removing a transaction recalculates all subsequent positions/avg cost since holdings are derived from the log.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The descriptions adds value beyond the destructiveHint annotation by explaining the downstream effects: recalculating positions and average cost. It also emphasizes user confirmation. This fully informs the agent of behavioral 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?
Two sentences: the first states the primary action, the second adds critical usage constraint and behavioral context. No wasted words, 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?
Given the simple schema (one required param) and annotations (destructiveHint=true), the description covers the necessary context: deletion, user confirmation requirement, and impact on derived data. No missing information.
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 (id) is not described in the schema (0% coverage). However, the description mentions 'by its id' which identifies the parameter's role. For a single, simple integer parameter, this is sufficient marginal value.
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 ('Delete a single transaction by its id') and specifies the scope ('single transaction'). It distinguishes from sibling tools like delete_balance and delete_flow by focusing on transactions and mentioning recalculation of positions and average cost.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states the user must confirm and never call without explicit instruction, with an example ('delete transaction #42'). This provides clear guidance on when to use. No alternative tools are mentioned, but the instruction is strong for a destructive action.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edit_balanceAInspect
Partial update of a single balance entry, identified by composite key (period + type + sub_type + category). Use this, not add_balance, when changing one field on an existing entry (e.g. fix a typo in memo without touching amount). Pass only the fields you want to change. amount and currency must be supplied together (Opula re-converts via historical FX at the entry's date, or the new date if provided); if you omit them, the stored USD amount is preserved exactly. memo accepts a string to set, or null to clear. Returns the updated entry; errors if no row matches the key.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | New YYYY-MM-DD for the entry. When supplied together with amount/currency, drives the historical FX rate used for reconversion. | |
| memo | No | Set memo (string) or clear it (null). Omit to leave existing memo unchanged. | |
| type | Yes | Composite key part | |
| amount | No | New amount in `currency`. Required together with `currency` to change the value; omit both to leave the stored USD amount untouched. | |
| period | Yes | YYYY-MM, composite key part | |
| category | Yes | Composite key part | |
| currency | No | Currency of the new `amount`. Required together with `amount`. Non-USD reconverted via historical FX at the (new or existing) `date`. | |
| sub_type | Yes | Composite key part |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only indicate mutation and non-destructiveness. Description adds key behavioral details: partial update semantics, parameter coupling for amount/currency, memo clearing via null, historical FX reconversion, and error on missing key.
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 paragraph with logical flow (purpose, usage, parameter rules, behavior). Each sentence adds value, though it could be slightly more structured with bullet points for complex parameter rules.
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 8 parameters, no output schema, and many sibling tools, the description covers all necessary aspects: purpose, usage, parameter coupling, behavior on success/failure, and return value (updated entry). It is complete for an agent to invoke 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?
Despite 100% schema description coverage, the description adds valuable context beyond schema: e.g., date's role in FX reconversion, amount/currency coupling conditions, memo explicit set vs clear behavior.
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 'Partial update of a single balance entry' and identifies the composite key. It explicitly distinguishes from sibling 'add_balance' by stating when to use it instead.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use ('when changing one field on an existing entry'), when-not-to-use (use add_balance for new entries), and gives an example (fixing a typo in memo). Also explains parameter coupling rules.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edit_flowAInspect
Partial update of a single flow entry, identified by composite key (period + type + sub_type + category). Use this, not add_flow, when changing one field on an existing entry (e.g. fix a typo in memo without touching amount). Pass only the fields you want to change. amount and currency must be supplied together (Opula re-converts via historical FX at the entry's date, or the new date if provided); if you omit them, the stored USD amount is preserved exactly. memo accepts a string to set, or null to clear. Returns the updated entry; errors if no row matches the key.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | New YYYY-MM-DD for the entry. When supplied together with amount/currency, drives the historical FX rate used for reconversion. | |
| memo | No | Set memo (string) or clear it (null). Omit to leave existing memo unchanged. | |
| type | Yes | Composite key part | |
| amount | No | New amount in `currency`. Required together with `currency` to change the value; omit both to leave the stored USD amount untouched. | |
| period | Yes | YYYY-MM, composite key part | |
| category | Yes | Composite key part | |
| currency | No | Currency of the new `amount`. Required together with `amount`. Non-USD reconverted via historical FX at the (new or existing) `date`. | |
| sub_type | Yes | Composite key part |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses all behavioral traits: partial update, parameter constraints (amount+currency must be together, omitting preserves USD), memo clearing via null, FX reconversion behavior. No contradiction with annotations (readOnlyHint=false, destructiveHint=false). Annotations are consistent with update 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?
The description is a single focused paragraph with no wasted words. It front-loads the purpose and key constraint, then details parameter behaviors. Every sentence provides necessary 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?
Given the tool's complexity (8 parameters, composite key, dependent fields, FX behavior) and no output schema, the description covers all aspects: what it does, when to use, parameter rules, and return behavior. Complete enough for an agent to use 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% but description adds significant meaning beyond schema descriptions: explains composite key identification, dependency between amount and currency, effect of omitting them, and memo clearing. This helps agent correctly invoke the tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it's a partial update of a single flow entry identified by a composite key. It uses a specific verb ('partial update') and resource ('flow entry'), and explicitly distinguishes from sibling tool add_flow by stating when to use each.
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 when to use this tool ('changing one field on an existing entry') and when not ('not add_flow'). It also provides detailed guidance on parameter dependencies (amount+currency together, memo null to clear) and error condition ('errors if no row matches the key').
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edit_txnAInspect
Update fields of an existing transaction by id. Only provided fields are changed.
When price is supplied it is converted to USD at the transaction date before storing. The native currency it is interpreted in depends on the (effective) asset type: for a stock it is the market's native currency (the new market if passed, else the existing one); for a non-stock asset it is the currency param (default USD).
Changing asset_type mirrors add_txn's fork: switching TO a non-stock type (crypto/commodity/real_estate/other) clears market to null (any market arg is ignored); switching TO 'stock' uses the supplied market (or keeps the existing one, defaulting to US).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| date | No | YYYY-MM-DD | |
| type | No | ||
| price | No | Price per share, native to the market (stock) or to `currency` (non-stock); stored converted to USD. | |
| market | No | Stock market (listing exchange) | |
| reason | No | Why this trade? (free-form) | |
| shares | No | ||
| ticker | No | ||
| currency | No | Currency of `price` for a NON-stock asset (default USD). Ignored for stocks. | |
| asset_type | No | Asset class: stock or crypto/commodity/real_estate/other. Switching to non-stock clears market. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint=false, destructiveHint=false) are consistent. The description discloses side effects like price conversion to USD, clearing market for asset type changes, and interaction between currency and market, going well 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 concise (~120 words), front-loaded with the core purpose, and uses two focused paragraphs for special behaviors without 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 complexity (10 params, 4 enums, no output schema), the description covers essential behavioral details but could be improved by mentioning the response format or confirming that updates are persisted.
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 60% schema coverage, the description adds meaning by explaining the conversion date for price, the logic for market clearing, and the hierarchy of currency/market/asset_type, which are not evident from 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 states 'Update fields of an existing transaction by id' with a specific verb and resource, distinguishing it from siblings like add_txn (create) and delete_txn (delete).
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 modifying a transaction but does not explicitly specify when not to use it or provide alternatives beyond referencing add_txn's fork behavior.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_market_briefARead-onlyInspect
Diagnostic: ALL-IN-ONE composite read of current market & portfolio state, today's positioning, regime, and recommendations. Call this for market, portfolio, regime, or 'what should I do about my positions right now' questions. For net-worth trajectory, savings, cash flow, runway, leverage, whole-wealth allocation, or retirement-goal questions, call get_wealth_brief instead, the structural/long-term sibling. Returns deterministic, rule-derived facts only, no forward-looking probability distributions, no caller-supplied assumptions. All monetary values come back in display_currency (default USD). Bundles: portfolio + holdings (with per-stock fundamentals), concentration (HHI + effective_n + 90d correlations), diversification_insight + diversification_gaps, movers, earnings_upcoming + dividend_calendar + economic_calendar, macro + signals (regime, stress, next_week_scenarios), global_macro + disasters, commodities, snapshot_comparison + week_performance, contribution (per-holding return-contribution attribution across 1주/1달/YTD windows: how many %p each holding added/subtracted, price-driven only), risk_summary, stance, recommendations (action/conviction/horizon/size_hint), rebalance_chain, watchlist, meta. show_* tools are drill-downs. For why a position moved, use your own web search to attribute the cause; Opula does not return news. Self-refreshing: held-stock quotes are refreshed once a day on read (the daily price cache); manual sync is not required.
| Name | Required | Description | Default |
|---|---|---|---|
| refresh | No | Force regenerate, bypassing today's cached brief. | |
| display_currency | No | Display currency (USD/KRW/EUR/JPY/CNY/GBP/HKD/INR/TWD). Defaults to USD. | USD |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds beyond readOnlyHint: notes deterministic rule-derived facts, no forward-looking probabilities, no caller assumptions. Discloses self-refreshing daily cache, manual sync not required. No contradictions 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?
Long but necessary due to comprehensive output. Lists many components in a semi-structured bullet-like format. Could be more concise, but efficient for the complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, but description thoroughly enumerates return bundles (portfolio, concentration, diversification, movers, etc.) and includes meta. Covers all needed context for an agent to understand what is returned.
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 100%, but description adds context: display_currency default USD, refresh bypasses cached brief. While schema already defines, description reinforces meaning and usage.
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?
Clearly states it is a diagnostic composite read for current market and portfolio state. Distinguishes from sibling 'get_wealth_brief' by contrasting with net-worth, savings, etc. Uses specific verb 'call' and resource 'market & portfolio state'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says when to call (market, portfolio, regime, 'what should I do' questions) and when to use alternative ('get_wealth_brief'). Also mentions 'show_*' tools are drill-downs, providing clear context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_wealth_briefARead-onlyInspect
All-in-one structural read of the user's whole-wealth picture: the manual ledger (balance + flow entries) ONLY, wealth is book-only: trades and live portfolio value are never fused in. To include the stock portfolio in net worth, record its value as a monthly balance entry (the /month-end prompt walks through this); the live portfolio lives in get_market_brief. Bundles: net_worth (total assets − liabilities, + monthly trend and agency-vs-market attribution), cash_flow (income, expenses, net flow, savings_rate, savings_efficiency, monthly trend), income_concentration (income-TYPE concentration: per-category TTM share, largest, effective_n = 1/HHI; effective_n ≈ 1 flags single-income-type dependence, NOT employer diversification, opula can't see employers), liquidity (emergency runway + liquid/illiquid split), leverage (debt_to_asset PLUS debt-service ratio: monthly_debt_service = median-of-last-3-months debt expense, dsr_total_pct over all income, dsr_earned_pct over employment income only, each null when its income denominator is zero), allocation (whole-wealth asset-class breakdown from balance entries, the stock portfolio appears as whatever balance was recorded for it), structural_concentration (largest slice), goal (retirement tracking: target vs current net worth, years remaining, cagr_needed), and consistency (the wealth-tending habit signal: settlement streak, ledger tenure, thesis coverage, check-in days). Deterministic rule-derived facts only. Money fields come back in display_currency (default USD); a non-USD field is null when no FX rate is cached. cagr_actual is the realized net-worth CAGR from the ledger trend (savings + market combined, first → last period); it is null until the ledger spans 12 months.
| Name | Required | Description | Default |
|---|---|---|---|
| display_currency | No | Display currency (USD/KRW/EUR/JPY/CNY/GBP/HKD/INR/TWD). Defaults to USD. | USD |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the `readOnlyHint` annotation, the description discloses that returns are 'deterministic rule-derived facts only', money fields use `display_currency` (default USD) and are null when no FX rate is cached, and that `cagr_actual` is null until the ledger spans 12 months. This adds significant behavioral 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 lengthy but well-structured, with clear bullet-like definitions for each bundle. It effectively front-loads the core purpose in the first sentence, though some details could be streamlined for easier skimming.
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 (multiple bundles like net_worth, cash_flow, etc.) and no output schema, the description comprehensively explains what each bundle contains, ensuring an agent has sufficient context to 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?
With full schema description coverage (100%), the parameter `display_currency` is already well-documented. The description adds the default value explicitly, which aligns with the schema but doesn't provide further semantic enrichment beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool provides an 'All-in-one structural read of the user's whole-wealth picture' focused on the manual ledger, distinguishing it from siblings like `get_market_brief`. The verb 'get' and resource 'wealth brief' are specific and 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 explicitly guides when to use this tool vs. alternatives: it notes that the live portfolio lives in `get_market_brief` and explains how to include stock portfolio value via balance entries. This provides clear context for selecting the appropriate tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
project_net_worthARead-onlyInspect
Thought experiment: forward-looking Monte Carlo projection of net worth under caller-supplied assumptions, multi-scenario. Runs monthly GBM under one or more (return, vol) pairs in parallel, adds a fixed monthly contribution, applies one-time life events, and returns P10 / P25 / P50 / P75 / P90 trajectories per scenario. horizon_months accepts any length from 1 (next month) to 720 (60 years), same tool answers short-horizon outlooks and long-horizon FIRE planning. target_value is optional: when supplied, the response includes probability of reaching it and median months to reach; when omitted, just the distribution at the horizon. All monetary inputs/outputs are in the requested currency (default USD). YOU MUST set scenarios[].expected_annual_return and scenarios[].annual_volatility explicitly and disclose them verbatim to the user, Opula does NOT bake in defaults. For reference, brief.risk_summary carries the user's realized 90d annualized_return_pct and annualized_vol_pct, those make a natural 'historical' scenario you can contrast with bear/bull overlays. Pass seed when comparing scenarios: with a seed, all scenarios share the same shock sequence so cross-scenario differences reflect (return, vol), not random noise; without one, each run draws fresh random shocks. For current portfolio state, use get_market_brief, that is the diagnostic tool; this is the thought-experiment tool.
| Name | Required | Description | Default |
|---|---|---|---|
| seed | No | Optional integer seed for reproducible runs. | |
| currency | No | Currency for every monetary input and output (USD/KRW/EUR/JPY/CNY/GBP/HKD/INR/TWD). Default USD. The projection is unit-agnostic; this value is metadata for the response. | USD |
| scenarios | Yes | One or more scenarios to run side-by-side. Each carries its own label, expected_annual_return, and annual_volatility. For single-scenario calls just pass an array of length 1. | |
| iterations | No | Monte Carlo iterations per scenario. Default 1000 (P-band ±1.5%, ~500ms per scenario). Raise toward 10000 for smoother fan-chart curves at the cost of latency; lower to 100 for a quick sanity check. | |
| life_events | No | Optional one-time cash flows along the horizon. | |
| target_value | No | Optional net-worth target in `currency`. When provided, the response includes probability_of_reaching_target + median_months_to_target per scenario. Omit for pure distribution output. | |
| include_paths | No | Include the percentile trajectories per scenario (needed for fan-chart visualization). Set false for a lighter response (finals + probability + reach-month only). | |
| initial_value | Yes | Starting net worth in `currency`. | |
| horizon_months | Yes | Projection horizon in months. 1 = next month outlook; 60 = 5-year planning; 360 = 30-year FIRE. Same tool for short and long horizons. | |
| path_resolution | No | Path sample frequency when include_paths=true. 'yearly' samples every 12 months (≈10× smaller payload, sufficient for trajectory curves); 'monthly' returns every month (needed only for month-precise visualization). All monetary values are rounded to the nearest currency unit in the response, full precision stays in the projection engine. | yearly |
| monthly_contribution | Yes | Net monthly contribution in `currency` (income − expenses). Can be negative. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explains the Monte Carlo process, seed behavior, target_value effects, and path_resolution trade-offs. It aligns with readOnlyHint as a thought experiment; no contradictions. It adds 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 dense and well-structured but somewhat long. It front-loads the core purpose, and each sentence adds value. Minor redundancy (horizon_months range repeated). Overall efficient for the tool's complexity.
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 11 parameters, no output schema, and minimal annotations, the description covers all essential aspects: usage context, parameter interactions, output details, and sibling differentiation. No gaps in information.
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%, but the description adds significant extra meaning: explaining how seed ensures reproducibility, how target_value modifies output (probability and median months), and how path_resolution affects payload. It enriches 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 it is a forward-looking Monte Carlo projection tool for net worth, specifying the verb (project), resource (net worth), and method (Monte Carlo, GBM, multi-scenario). It distinguishes itself from siblings like get_market_brief (current state) and simulate_scenario (different approach).
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 tells when to use this tool versus alternatives: 'For *current* portfolio state, use `get_market_brief`' and suggests using brief.risk_summary for historical scenarios. It provides clear context and exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redeem_codeARead-onlyInspect
Redeem a one-time coupon code to unlock Opula Pro on this account. If the user has a coupon (e.g. from a crowdfunding reward), paste it here. Returns the outcome: redeemed (Pro granted), already used, invalid, or not signed in.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | The coupon code to redeem |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotation declares readOnlyHint=true, implying no state modification, but the description describes redeeming a code and granting Pro, a clear mutation. This contradiction misleads the agent about the tool's side effects.
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 that deliver the purpose, usage scenario, and expected outcomes without any filler. Front-loaded with the core action.
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?
While the description explains return outcomes, it omits important behavioral context such as whether the operation is reversible or if authentication is required. The contradiction with annotations further undermines completeness.
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% coverage with a description for 'code'. The tool description adds context that the code is a one-time coupon from a crowdfunding reward, enhancing understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool redeems a one-time coupon code to unlock Opula Pro, with specific context about usage. It is distinct from sibling tools which focus on showing data or adding other resources.
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 tells when to use: when the user has a coupon. It also outlines return outcomes. However, it lacks explicit guidance on when not to use or alternatives, but the context is adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_profileAInspect
Update the user's profile. Partial updates, only provided fields are changed. All optional; capture only what the user volunteers. Birth year and retirement target year are 4-digit years; target_net_worth is in the supplied currency (default USD), stored internally as USD; risk tolerance is conservative/moderate/aggressive; notes is free-form.
| Name | Required | Description | Default |
|---|---|---|---|
| notes | No | ||
| country | No | Country of residence as an ISO-3166 alpha-2 code (e.g. KR, US, JP, GB). Sets the user's local timezone so daily snapshots and "today" land on their calendar day, not the server's UTC day. | |
| currency | No | Currency of `target_net_worth`. Defaults to USD. | USD |
| birth_year | No | ||
| risk_tolerance | No | ||
| display_currency | No | Display currency for money fields in reads (USD/KRW/EUR/JPY/CNY/GBP/HKD/INR/TWD). | |
| target_net_worth | No | Target net worth in `currency`. | |
| retirement_target_year | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses partial update behavior, storage details (target_net_worth stored as USD), field constraints (4-digit years), and enumeration values (risk_tolerance). No contradiction with annotations (readOnlyHint=false, destructiveHint=false).
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?
Concise 4-sentence description, front-loaded with purpose. Every sentence adds value without 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?
Covers partial updates, field constraints, and storage behavior. Minor gap: does not describe return value (e.g., updated profile object), but no output schema exists to compensate.
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?
Adds significant meaning beyond schema: clarifies 4-digit year format, default currency, and free-form notes. All 8 parameters are described; schema coverage is 50% but description compensates fully.
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?
Description starts with 'Update the user's profile,' which is a specific verb+resource. It clearly distinguishes from siblings like show_profile (read) and other mutation 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?
States 'Partial updates, only provided fields are changed. All optional; capture only what the user volunteers.' Provides clear context for when to use, but does not explicitly mention alternatives or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
setup_statusARead-onlyInspect
One-shot setup diagnostic. Call this at the start of a conversation, any time you are unsure what ledger data exists, or when the user asks about their plan, billing, or how to cancel a subscription. Returns data counts (transactions / balance / flow / FX), the plan + billing guidance (plan.billing says how this account got Pro and where cancellation lives), the profile, and next_steps for onboarding.
| 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 readOnlyHint=true. The description adds value by listing returned data (counts, plan, profile, next_steps) and reinforcing it's a diagnostic with no side effects. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with clear, front-loaded purpose. Each sentence provides distinct value: purpose, usage, returns. No waste.
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 parameters and a read-only annotation, the description sufficiently covers what the tool returns (data counts, plan, profile, next_steps) for a diagnostic tool. No output schema exists, but the description is adequate for an agent.
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?
No parameters exist, so no param info is needed. Baseline for 0 parameters is 4. The description doesn't need to add meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly defines it as a 'One-shot setup diagnostic' and specifies exact scenarios: at conversation start, when unsure about ledger data, or when user asks about plan/billing/cancel. It distinguishes from sibling tools like show_balance or show_profile by being a broad diagnostic.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to call: start of conversation, when unsure, or on plan/billing queries. Implies not to use for single-item queries, and 'One-shot' suggests it's only needed once.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
show_anti_portfolioARead-onlyInspect
Track the post-exit performance of positions the user has fully sold, the data brokerage apps deliberately don't show. For each ticker once held but no longer held, returns last sell date/price, current price, days since exit, post-sell change %, and a label: missed_rebound (+20%+ since sell, premature), good_call (-20%+, sell saved losses), neutral_exit, or too_recent (<14d). Current price comes from the cached price series; a ticker with no cached price shows no_price_data. Use when contemplating a sell or reviewing past decisions; pair with show_thesis_track.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max sold positions to return (most recently sold first). | |
| display_currency | No | Display currency (USD/KRW/EUR/JPY/CNY/GBP/HKD/INR/TWD). Defaults to USD. | USD |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, which the description does not contradict. The description adds valuable behavioral details: data source (cached price series), labeling logic (missed_rebound, good_call, etc.), and handling of missing prices (no_price_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?
The description packs substantial information into two sentences without redundancy. It is well-structured but slightly dense, which could be improved for quicker 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?
Despite the absence of an output schema, the description fully explains the return format, including field names and label logic. Parameter coverage is complete, and the description provides sufficient context for the AI agent to use 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?
The input schema already provides full descriptions for both parameters (limit and display_currency). The description does not add additional semantic value beyond the schema, 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 identifies the tool as tracking post-exit performance of fully sold positions, specifying the returned data fields and classification labels. It distinguishes itself from sibling tools like show_thesis_track.
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 states when to use (contemplating a sell or reviewing past decisions) and suggests pairing with show_thesis_track. It does not explicitly state when not to use, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
show_balanceARead-onlyInspect
Stored balance sheet entries (assets + liabilities) by period. Each entry has type (asset|liability), sub_type (cash|investment|other|short_term|long_term), category, amount in display_currency (default USD), and the entry date. Without period, returns ALL periods, use this for trends; with period (YYYY-MM), returns one month's snapshot.
| Name | Required | Description | Default |
|---|---|---|---|
| period | No | Period filter e.g. "2025-03" | |
| display_currency | No | Display currency (USD/KRW/EUR/JPY/CNY/GBP/HKD/INR/TWD). Defaults to USD. | USD |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true. Description adds detail on response structure (type, sub_type, category, amount, date) and behavior with/without period, providing context 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?
Two concise sentences front-load the purpose and provide essential details without any 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?
Without an output schema, the description adequately describes the response fields and period behavior. Could mention if results are returned as a list or any ordering, but overall 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%, so baseline is 3. Description adds value by explaining the effect of period and listing possible display_currency values, reinforcing meaning beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly indicates the tool shows balance sheet entries, distinguishing it from CRUD siblings like add_balance and delete_balance. However, it lacks an active verb like 'Returns' or 'Lists', and could more explicitly contrast with other show_* 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?
Provides useful guidance on using the tool with or without the 'period' parameter for trends vs. snapshots. Does not explicitly address when to use this tool over other show_* tools or state that it is read-only, though annotation helps.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
show_benchmarkARead-onlyInspect
Compare portfolio return against benchmark indices (default: SPY and QQQ). Uses daily snapshot history for an accurate time-series comparison when ≥2 snapshots exist; otherwise falls back to cost-basis vs current value. Returns per-benchmark return and alpha. Benchmark candles come from keyless Yahoo data, no API key required.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date YYYY-MM-DD (default: today) | |
| from | No | Start date YYYY-MM-DD (default: earliest snapshot/txn) | |
| benchmarks | No | Tickers to compare against (default: ["SPY", "QQQ"]) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true; description adds valuable behavioral details: uses daily snapshot history when ≥2 snapshots exist, else fallback to cost-basis vs current value, and mentions keyless Yahoo data. No contradictions.
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 main action, no wasted words. Efficient and easy to parse.
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 3 optional parameters and no output schema, the description covers fallback behavior, data source, and return information (per-benchmark return and alpha). Complete enough for an agent.
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% (all three parameters described). Description adds default benchmark tickers and context on date defaults, but does not enhance parameter semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verb-resource ('Compare portfolio return against benchmark indices') with default values (SPY, QQQ) and differentiates from sibling tools which are mostly about other aspects of portfolio (e.g., show_portfolio, show_risk).
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?
Clearly states the tool's purpose but does not explicitly mention when not to use it or suggest alternative tools for comparing other metrics. However, the purpose is self-evident and distinct from siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
show_categoriesARead-onlyInspect
The canonical ledger category catalog, every valid (type, sub_type, category) combination for add_balance / add_flow / add_monthly, with Korean labels. Call this BEFORE asking the user for balances or cash flow and present the checklist grouped in plain Korean, so they are prompted for asset classes and flow kinds they would otherwise forget (연금, 주택청약, 예수금, 달러 현금, 차량, 배당·이자, 보험·통신·주거비 등). Also the reference when unsure which category/sub_type a value belongs to, use ONLY these pairs, never invent new ones.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds context beyond the readOnlyHint annotation by explaining the Korean labels, checklist grouping, and strictness about using only these pairs.
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 clear front-loaded purpose, though the enumeration of examples could be slightly trimmed without losing 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?
Fully explains what the tool returns, how to present it, and when to use it; no output schema needed given the simplicity of a static catalog.
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 description adds value by explaining the tool's output and use case, meeting the baseline of 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 states that the tool provides the canonical ledger category catalog with every valid combination for add_balance, add_flow, and add_monthly, distinguishing it from sibling tools which perform mutations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs to call this before asking for balances or cash flow, and to use it as a reference to avoid inventing new category pairs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
show_concentrationARead-onlyInspect
Portfolio concentration by Herfindahl-Hirschman Index (HHI) across ticker, sector, and country, with top contributors per dimension, plus the effective-N (correlation-adjusted holdings count) and the pairwise 90-day correlation matrix. HHI >2500 is high, >5000 very high; two holdings at 0.9 correlation count as roughly one for diversification. effective_n / correlation matrix are null/empty until sync populates the correlation cache. Also returns concentration.look_through (null when no held ETF could be decomposed): effective single-name exposure after expanding held ETFs into their constituents, so a single broad ETF reads as diversified (not a false 100% ticker), and a name held both directly and inside funds (e.g. AAPL via VOO + QQQ + direct) surfaces as its true combined weight. Surface look_through.caveat verbatim (top-10 approximation). This is current exposure only, risk/forward over it is Pro. Same block get_market_brief returns; use this drill-down when only concentration is asked for.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explains many behavioral details beyond the readOnlyHint annotation: nullability of fields based on sync, the look_through feature expanding ETFs, its caveat (top-10 approximation), and the Pro restriction on risk/forward data. No contradictions 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?
The description is dense but front-loaded with the main output. Some redundancy exists (e.g., mentioning get_market_brief twice), but it remains efficient given the complexity of the output.
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, the description thoroughly explains what the tool returns, including edge cases (null correlation fields, look_through expansion, caveat). It covers all necessary information for an agent to understand the tool's output.
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 no parameters and schema coverage is 100%, so the description does not need to add parameter semantics. Baseline 4 applies as there is nothing to improve.
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 computes portfolio concentration using HHI across ticker, sector, and country, with additional metrics like effective-N and correlation matrix. It distinguishes itself from get_market_brief by specifying that this is the drill-down when only concentration is asked for.
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 usage context: it explains effective_n/correlation matrix are null until sync populates cache, and directs to use this tool when only concentration is requested. It references get_market_brief as an alternative for broader market data, but does not explicitly list other exclusions or when-not-to-use scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
show_dividendARead-onlyInspect
Estimated annual dividend income across all holdings. Returns per-ticker yield, annual dividend-per-share, and estimated income in display_currency (default USD). Only includes tickers with dividend data in the price cache.
| Name | Required | Description | Default |
|---|---|---|---|
| display_currency | No | Display currency (USD/KRW/EUR/JPY/CNY/GBP/HKD/INR/TWD). Defaults to USD. | USD |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the description adds value by disclosing that the data is estimated, based on a price cache, and only includes tickers with dividend data. No contradictions 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?
The description is extremely concise, consisting of two sentences that pack essential information without any unnecessary words. It is front-loaded with the core purpose.
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 simplicity (one optional parameter, read-only, no output schema), the description adequately covers what the tool does and its limitations. It could mention the return format for completeness, but still meets the needs for a straightforward dividend display 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% for the single parameter 'display_currency', which has a clear description and default. The description mentions the currency and default, but does not add significant new meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns estimated annual dividend income, including per-ticker yield, annual dividend-per-share, and estimated income in a specified currency. It specifies that only tickers with dividend data are included, distinguishing it from other 'show_*' tools like 'show_earnings' or 'show_financials'.
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 indicates when to use it (to view dividend income), but does not explicitly mention when not to use it or provide alternatives. Context from sibling tools helps but is not explicitly tied to this tool's description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
show_earningsARead-onlyInspect
Earnings calendar. Without a ticker, returns upcoming earnings for all held tickers. With a ticker, returns history + upcoming.
| Name | Required | Description | Default |
|---|---|---|---|
| weeks | No | Look-ahead weeks (default: 4) | |
| ticker | No | Ticker symbol. Omit to get upcoming earnings for all holdings. | |
| history | No | Include past quarters (only when ticker is provided) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description states the read-only behavior (consistent with annotations' readOnlyHint) and the conditional output based on ticker presence. However, it does not disclose details like data sources, update frequency, or potential limitations (e.g., only for US markets), which would add 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 optimally concise: two sentences that front-load the core purpose and immediately follow with operational details. Every sentence contributes essential information without 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's moderate complexity (three optional parameters, no output schema), the description reasonably covers the two main usage modes. It omits output format details, but since there is no output schema, this is acceptable. A minor gap is not mentioning any caveats like exchange coverage or data freshness.
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 have schema descriptions, so schema coverage is 100%. The description adds value by explaining the behavioral implications: omitting ticker returns all holdings, providing ticker enables history. This goes beyond the schema's parameter-level 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 an earnings calendar, explaining that without a ticker it returns upcoming earnings for all held tickers, and with a ticker it returns history plus upcoming. This distinguishes it from many sibling 'show_*' tools like show_dividend or show_financials.
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 explicit guidance on when to use the tool with or without a ticker parameter, and mentions the history flag for past quarters. It does not explicitly mention alternatives or when not to use it, but the context is clear enough for typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
show_financialsARead-onlyInspect
Financials for a ticker: key income statement, cash flow, and balance sheet metrics per period. Quarterly figures are discrete single-quarter values. Covers US and non-US listings.
| Name | Required | Description | Default |
|---|---|---|---|
| freq | No | quarterly | |
| limit | No | Number of periods (default: 4) | |
| ticker | Yes | Stock ticker symbol (e.g. AAPL) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=true, and description adds behavioral context: quarterly figures are discrete single-quarter values, covers US and non-US listings. No contradictions. Could mention that data is point-in-time or sourced from filing dates.
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. First sentence defines purpose and scope, second clarifies quarterly data handling and geographic coverage. No 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?
Given three parameters and no output schema, description adequately covers what metrics are provided and data granularity. Could elaborate on limit's effect or default behavior, but overall complete 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?
The description mentions ticker and 'per period' linking to freq and limit, but does not explain the freq enum values or limit's full meaning beyond schema. With 67% schema coverage, description partially compensates but leaves gaps.
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 shows financials (income statement, cash flow, balance sheet) for a ticker per period. This distinguishes it from sibling tools like show_balance (balance only) or show_flow (cash flow only), 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 for retrieving financial metrics but does not explicitly state when to use this tool over alternatives like show_macro or show_valuation. It lacks when-not guidance or prerequisite conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
show_flowARead-onlyInspect
Stored monthly cash flow entries (income + expenses) by period. Each entry has type (income|expense), sub_type, category, amount in display_currency (default USD), date. Without period returns all periods; with period (YYYY-MM) returns one month. For trend analysis use get_wealth_brief, whose cash_flow.trend aggregates monthly income/expenses and adds savings rate.
| Name | Required | Description | Default |
|---|---|---|---|
| period | No | Period filter e.g. "2025-03" | |
| display_currency | No | Display currency (USD/KRW/EUR/JPY/CNY/GBP/HKD/INR/TWD). Defaults to USD. | USD |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and description adds details on data structure, period filtering, and currency, providing context beyond annotations without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences: data description, period behavior, alternative tool. No fluff, well-structured and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers return fields and period usage adequately. Lacks mentions of pagination or ordering, but acceptable for a simple read-only tool with no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but description adds usage context (behavior with/without period) that clarifies parameter semantics beyond schema 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?
Description clearly states it shows monthly cash flow entries with specific fields (type, sub_type, category, amount, date) and distinguishes from sibling get_wealth_brief for trend analysis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly describes behavior with/without period and suggests alternative for trend analysis. However, does not compare to other list tools like show_txns, but the main alternative is covered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
show_fxARead-onlyInspect
Inspect the FX rate cache (foreign per 1 USD). Without currency, returns per-currency coverage (count + first/last date). With currency + date, returns the point-in-time rate, falling back to the most recent within lookback_days. With currency + from/to, returns the cached series for that range. With currency alone, returns the limit most-recent rows. USD has no rows (it's the base, always 1.0).
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date YYYY-MM-DD | |
| date | No | YYYY-MM-DD, point-in-time lookup for `currency` | |
| from | No | Start date YYYY-MM-DD | |
| limit | No | Max rows when no date range (default 60) | |
| currency | No | Currency code (KRW/JPY/EUR/CNY/GBP/HKD/INR/TWD). Omit for coverage summary. | |
| lookback_days | No | Days to look back for a point lookup if exact date not cached |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses fallback behavior with lookback_days, the base currency special case, and the read-only nature aligns with readOnlyHint annotation. Adds significant context 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?
Every sentence is necessary and structured in a logical flow: general purpose, then bullet-like breakdown of parameter combinations. No 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?
Thoroughly covers all parameter combinations and edge cases (USD base currency) despite no output schema. The tool's behavior is fully predictable from the description.
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?
While schema covers all parameters (100% coverage), the description adds crucial context on how parameters interact—e.g., what happens when each combination is used—going beyond the schema's individual field 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 states 'Inspect the FX rate cache' and details multiple modes, distinguishing it from sibling tools that deal with other financial data like balances and flows.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly explains when to use each parameter combination: without currency for coverage, with currency and date for point-in-time lookup, with currency and from/to for series, with currency alone for recent rows. Also clarifies that USD has no rows.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
show_macroARead-onlyInspect
Curated macro snapshot in one view: 8 indicators (VIX, 10Y Treasury, yield curve, USD index, HY credit spread, breakeven inflation, Fed funds, plus FX vs the requested display currency, each with current value, 30d/90d delta, and 5y average), the Economic Stress Index (0–100 from 5 FRED series with per-component breakdown), the macro regime bias (Risk-on / Mixed / Risk-off), and next-week IF-THEN scenarios for upcoming high-impact events. This is the same macro + signals block get_market_brief returns, call this drill-down when only the macro picture is asked for.
| Name | Required | Description | Default |
|---|---|---|---|
| display_currency | No | Display currency for the FX line (USD/KRW/EUR/JPY/CNY/GBP/HKD/INR/TWD). Defaults to USD. | USD |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare `readOnlyHint=true`, and the description reinforces this by calling it a 'snapshot' and 'drill-down', implying no side effects. The description adds value by detailing each return component (indicators, stress index, regime, scenarios), beyond what annotations provide. No contradictions, but lacks mention of performance or rate limits, keeping it at a 4.
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, well-structured sentence that efficiently delivers all necessary information: the 8 indicators with sub-details, the index, regime, and scenarios. Every phrase adds value, with no wasted words, achieving high information density while remaining 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?
Given the tool has only one parameter with complete schema, no output schema, and is a simple read operation, the description fully explains the return structure and references the sibling tool for context. No gaps exist for the agent to 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%, and the schema already describes the parameter with allowed values. The description adds meaning by contextually integrating the parameter ('FX vs the requested display currency') and listing it among the 8 indicators, providing functional significance beyond the schema 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 explicitly states it returns a 'curated macro snapshot' listing 8 specific indicators, Economic Stress Index, regime bias, and scenarios. It distinguishes itself from `get_market_brief` by noting it is 'the same macro + signals block' but a drill-down for when only the macro picture is asked for, providing clear purpose and differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description directly tells when to use this tool: 'call this drill-down when only the macro picture is asked for.' It contrasts with `get_market_brief`, which returns a broader market brief, giving explicit guidance on context of use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
show_portfolioARead-onlyInspect
Current holdings derived from the user's transaction log: ticker, shares, market value, weight, today's and total P&L (absolute and %), sector/country, plus portfolio totals and a risk summary (Sharpe, volatility, drawdown) from snapshot history. All monetary values come back in display_currency (default USD). This is a drill-down: for any check-in or 'what should I do' question call get_market_brief first, it includes this plus news, earnings, macro, and recommendations. Use show_portfolio when the holdings table itself is the only thing asked for. Numbers match get_market_brief exactly (same underlying brief).
| Name | Required | Description | Default |
|---|---|---|---|
| display_currency | No | Display currency (USD/KRW/EUR/JPY/CNY/GBP/HKD/INR/TWD). Defaults to USD. | USD |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description adds context that monetary values come in display_currency and that numbers match get_market_brief exactly. No contradiction and adds useful behavioral context 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?
Two clear sentences, no wasted words. First sentence describes what the tool returns, second explains usage context with sibling differentiation. Well 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?
Given no output schema, the description adequately describes return contents (holdings table, risk summary) and ties to sibling tool. All necessary context for a single-parameter read-only tool is provided.
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?
Only one parameter display_currency with 100% schema coverage. The description explains its role (monetary values in that currency) and lists allowed currencies, adding value beyond the schema's default and 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 clearly states it shows 'Current holdings derived from the user's transaction log' and lists specific data fields (ticker, shares, market value, etc.). It distinguishes from sibling get_market_brief by stating it is a drill-down for when only the holdings table is asked for.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'for any check-in or what should I do question call get_market_brief first' and 'Use show_portfolio when the holdings table itself is the only thing asked for'. This provides clear when-to-use and when-not-to-use guidance with a named alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
show_profileARead-onlyInspect
Read the user's stored profile (birth year, retirement target year, target net worth, risk tolerance, free-form notes). Target net worth is returned in display_currency (default USD). Returns null if no profile is set.
| Name | Required | Description | Default |
|---|---|---|---|
| display_currency | No | Display currency for target_net_worth. Defaults to USD. | USD |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true, indicating safe read. The description adds valuable context beyond annotations: it lists the exact fields returned (birth year, retirement target year, etc.), specifies that target net worth is in display_currency, and describes the null return when no profile exists. This goes beyond annotation signals.
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 with two sentences, no redundant information. The key actions and behaviors are front-loaded, and every word provides value. No filler or unnecessary 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?
Despite having no output schema, the description comprehensively explains what the tool returns (list of fields and their context, null behavior). For a simple read tool with one optional parameter, this is fully complete. No gaps remain.
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 describes the 'display_currency' parameter with a default and description. The description adds meaning by explaining how the parameter affects the output ('target net worth is returned in display_currency'), which is not explicitly stated in the schema field 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 specific verbs ('Read') and identifies the resource ('user's stored profile') with clear enumeration of fields. It inherently distinguishes from sibling tools like 'set_profile' (write) and other 'show_*' tools that access different data (e.g., show_balance, show_portfolio).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly states the tool's context ('Read the user's stored profile') and explains the null return behavior. While it doesn't explicitly exclude use cases or list when not to use it, the read-only nature is implicit, and no alternative tool is mentioned (though 'set_profile' is a sibling). This is adequate for a straightforward read operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
show_riskARead-onlyInspect
Portfolio risk metrics from snapshot history: annualized return/volatility, daily 1σ, max drawdown (with peak/trough dates), Sharpe, Sortino, win rate, and beta vs a benchmark (benchmark candles come from keyless Yahoo, so beta needs no API key; the Fed funds risk-free rate uses a FRED key if present, else defaults to 5%). Requires at least 10 daily snapshots. Same metrics get_market_brief summarizes in risk_summary, use this drill-down for the full breakdown or a custom date range / benchmark.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date YYYY-MM-DD (default: today) | |
| from | No | Start date YYYY-MM-DD | |
| benchmark | No | Ticker for beta calculation (default: SPY) | |
| risk_free_rate | No | Annual risk-free rate % for Sharpe/Sortino (default: Fed funds, else 5.0) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses data sources (Yahoo for benchmark, FRED key for risk-free rate with fallback), default behavior, and the requirement for at least 10 snapshots. Complements the readOnlyHint annotation with additional 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?
Single paragraph packed with essential information: metrics list, dependencies, defaults, and sibling differentiation. No fluff; every sentence serves a purpose.
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 no output schema, the description enumerates all returned metrics. Covers preconditions (10 snapshots), default behavior, and data sources. Leaves no critical information gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% coverage with descriptions, but the description adds value by clarifying defaults (e.g., benchmark default SPY, risk_free_rate default Fed funds or 5%) and purpose of each parameter. Does not repeat schema verbatim.
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?
Clearly states it provides portfolio risk metrics from snapshot history, listing specific metrics (annualized return/volatility, etc.). Distinguishes from sibling 'get_market_brief' by noting it is a drill-down for full breakdown or custom date range.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly contrasts with get_market_brief, indicating when to use this tool vs that sibling. Also states a prerequisite (at least 10 daily snapshots). Provides clear context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
show_snapshotARead-onlyInspect
Query portfolio snapshot history. Without ticker, returns daily total market value over time in display_currency (default USD). With ticker, returns that holding's per-day time series (shares, avg/current price). IMPORTANT: for any projection or "when will I reach X" question this alone is insufficient, pair it with get_market_brief (regime/stress/signals) and project_net_worth; linear extrapolation from past snapshots is a category error.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date (YYYY-MM-DD, inclusive) | |
| from | No | Start date (YYYY-MM-DD, inclusive) | |
| ticker | No | Filter by ticker symbol | |
| display_currency | No | Display currency (USD/KRW/EUR/JPY/CNY/GBP/HKD/INR/TWD). Defaults to USD. | USD |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark readOnlyHint=true. The description adds behavioral context: dual behavior based on ticker presence, default currency, and a strong warning against misuse for projections. This adds value beyond the annotation.
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 plus a critical note, no wasted words. Information is front-loaded with the main purpose first, then mode details, then a crucial caveat.
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 4 optional parameters and no output schema, the description explains the two output modes and warns about limitations. It lacks detail on exact response format but is sufficient for a snapshot-history 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% so baseline is 3. The description explains how ticker absence/presence changes output, and notes display_currency defaults to USD, adding context beyond schema 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 states the tool queries portfolio snapshot history and distinguishes two modes: without ticker returns daily total market value, with ticker returns per-day time series. This specificity differentiates it from sibling tools like show_balance or show_portfolio.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use (historical snapshots) and when not to (projections), advising pairing with get_market_brief and project_net_worth. Calls linear extrapolation a 'category error', providing clear exclusionary guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
show_streakARead-onlyInspect
How consistently the user is tending their money, the wealth-management habit signal. Returns settlement_streak (consecutive months with a month-end record; status alive | at_risk = this month not yet settled but last month was | broken = a month was skipped), ledger_tenure_months (how long they've kept records, never decreases), thesis (buy/sell trades with a recorded reason, the judgment-discipline proxy), and check_in (days they showed up, last 30 + total). Currency-neutral (counts/dates only). Use it to celebrate a streak or milestone, to nudge a settlement when status is at_risk near month-end, or whenever the user asks how consistent they've been.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark readOnlyHint=true. Description adds further behavior details: status meanings (alive/at_risk/broken), immutable ledger_tenure_months, and currency-neutral output. No contradictions.
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 detailed but every sentence adds value. Could be slightly shorter, but it's well-structured and informative without 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?
Despite no output schema, the description fully explains all returned fields and their meanings. It's complete for an agent to understand what the tool provides and how to interpret 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?
No parameters exist, so schema coverage is 100%. Description adds no parameter info but doesn't need to; baseline 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool tracks how consistently the user tends their money, with specific metrics. It distinguishes from siblings like show_balance or show_snapshot by focusing on behavioral habits and streak 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?
Explicit usage guidance: celebrate milestones, nudge settlement when 'at_risk', or answer consistency questions. Also notes currency-neutral nature, helping avoid misuse for monetary queries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
show_technicalARead-onlyInspect
Chart-indicator snapshot for a ticker: RSI(14), Bollinger Bands(20,2σ), MACD(12,26,9), ATR(14), MA50/200, 52-week position, plus composite buy/sell setup_quality scores (0–100) with strong/moderate/weak/very-weak labels. EXECUTION-ONLY tool: measures short-term market positioning and volatility, NOT intrinsic value. Never use the composite scores alone to answer 'should I buy/sell X?', those belong to fundamentals (show_valuation, show_financials, get_market_brief.holdings[].fundamentals). Use show_technical AFTER a buy/sell decision is formed on fundamentals, to size entries, set stop losses, or time exits. Uses Yahoo data (no key required).
| Name | Required | Description | Default |
|---|---|---|---|
| market | No | Market code (default: US). Determines the Yahoo Finance symbol suffix. | US |
| ticker | Yes | Stock ticker symbol (e.g. AAPL, 005930) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and description reinforces by stating it measures 'short-term market positioning and volatility, NOT intrinsic value'. It adds that it uses Yahoo data (no key required), which is helpful for understanding availability. 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 sentences: first lists key indicators, second clarifies intent, third provides usage rules. All information is essential and front-loaded. No filler or redundant 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?
With only 2 parameters and no output schema, the description compensates by detailing the output (indicators, composite scores with labels). It covers data source and use cases, leaving no significant gaps for an AI agent to understand invocation context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters (ticker, market) are clearly documented in the schema. The description does not add further parameter details beyond what the schema provides. 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 starts with a clear verb+resource: 'Chart-indicator snapshot for a ticker'. It enumerates specific indicators (RSI, Bollinger Bands, MACD, etc.) and composite scores, making it distinguishable from sibling tools like show_valuation and show_financials that focus on fundamentals.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states it is an 'EXECUTION-ONLY tool' and warns 'Never use the composite scores alone to answer should I buy/sell X?'. Provides clear when-to-use instruction: 'AFTER a buy/sell decision is formed on fundamentals, to size entries, set stop losses, or time exits'. Also mentions data source (Yahoo) and no key required.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
show_thesis_trackARead-onlyInspect
Review past trades that have a recorded reason (the thesis) and check whether it played out. Returns each thesis trade with buy price, current price, days held, price change %, whether still held, and a descriptive outcome label (validated_holding / underwater_holding / cut_loss / etc, labels, not judgments). Use for 'did my last trade work', 'track record of my AAPL theses', 'review my decisions', or when reasoning about a new buy in a name traded before. coverage_pct shows what fraction of trades have a recorded reason, if low, encourage adding reason when logging future trades.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max thesis entries to return (most recent first). | |
| ticker | No | Filter to a single ticker (case-insensitive). Omit for portfolio-wide review. | |
| display_currency | No | Display currency (USD/KRW/EUR/JPY/CNY/GBP/HKD/INR/TWD). Defaults to USD. | USD |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only provide readOnlyHint, but the description adds significant detail: it lists returned fields (buy price, current price, days held, price change %, held status, outcome label) and mentions coverage_pct. No contradictions.
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 well-structured: purpose first, then output fields, use cases, and a practical note about coverage_pct. 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?
With optional parameters, no output schema, and annotations present, the description covers key output fields and usage context. Missing explicit pagination/ordering details, but 'most recent first' is implied in limit parameter description.
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 baseline is 3. The description does not add new meaning to parameters beyond what's in the schema, so remains at 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 reviews past trades with a recorded reason (thesis) and checks if it played out. It lists specific output fields, distinguishing it from sibling tools like show_portfolio or show_txns.
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?
Explicit use cases are provided (e.g., 'did my last trade work', 'track record of my AAPL theses'), and guidance on coverage_pct encourages adding reasons. Lacks explicit when-not-to-use, but context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
show_txnsARead-onlyInspect
Full transaction log (buys, sells, deposits, dividends, taxes) ordered by date ascending. Pass ticker to filter to one symbol, useful for "show me all my AAPL trades". Works for non-stock asset names too (e.g. "Bitcoin"); the match is case-insensitive. price is returned in display_currency (default USD).
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | No | Filter by ticker or asset name (e.g. AAPL, Bitcoin) | |
| display_currency | No | Display currency (USD/KRW/EUR/JPY/CNY/GBP/HKD/INR/TWD). Defaults to USD. | USD |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds behavioral details beyond readOnlyHint: ordering by date, filtering logic, price currency. No contradictions.
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 sentences: purpose, filtering, currency. Front-loaded and no 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?
Covers what is returned, ordering, filtering, and currency. No output schema, but description is sufficient for a read-only log query.
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% but description adds meaning: ticker can be asset name (case-insensitive), display_currency default and role in price.
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?
Clearly states it provides a full transaction log including buys, sells, deposits, dividends, taxes, ordered by date. Distinguishes from sibling 'show_' tools by being the general log.
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 example usage with ticker filter, mentions case-insensitive matching and price currency. Does not explicitly state when not to use but context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
show_valuationARead-onlyInspect
Valuation deep-dive for a single ticker: PEG ratio, Price/Sales, FCF yield, and (with a FRED key) equity risk premium (earnings yield vs the 10y treasury) and real FCF yield (vs breakeven inflation). Use for 'is X overvalued / cheap?', 'what's the PEG?'. Ratios and trailing-twelve-month revenue, EPS, and free cash flow come from market fundamentals; the macro-adjusted spreads (ERP, real FCF yield) layer FRED series on top.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes | Stock ticker symbol (e.g. AAPL) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, and the description adds valuable context: it explains the dependency on a FRED key for some metrics, the data sources (market fundamentals and FRED series), and the two layers of analysis. This goes beyond the annotation.
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, front-loading the main purpose, then listing metrics, usage examples, and data sources. Every sentence adds value without 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 one parameter, no output schema, and readOnly annotation, the description fully covers expected outputs, data sources, and a key condition (FRED key). It provides a complete mental model for the agent.
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 sole parameter 'ticker' is described in the schema with a clear example ('AAPL'). Schema coverage is 100%, so the description adds no additional parameter semantics. 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 performs a valuation deep-dive for a single ticker, listing specific metrics like PEG ratio, Price/Sales, FCF yield, and macro-adjusted spreads. This distinguishes it from sibling show tools by focusing on valuation metrics.
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 'Use for "is X overvalued / cheap?", "what's the PEG?"', providing clear usage guidance. It does not explicitly mention alternatives or when not to use, but 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.
simulate_scenarioARead-onlyInspect
Call this for any short-horizon outlook question (1 day to 1 week). Trigger phrases: "tomorrow", "next week", "this Tuesday", "this Wednesday", "this Thursday", "how might X day look", "what if [macro event] happens", "FOMC impact", "earnings impact", "how will my portfolio do". DO NOT answer these from the brief alone, the brief is diagnostic only. This tool turns the brief's measured data into a quant answer. Thought experiment: deterministic conditional analysis. Given hypothetical market shocks, returns per-holding and portfolio P&L impact based on beta. Unlike project_net_worth (stochastic forward distribution over months/years), this is a point estimate per scenario for the immediate future, "if S&P moves −2% and your TSLA beta is 1.6, your TSLA P&L is impact_usd". Workflow: (1) call get_market_brief, (2) read holdings[].fundamentals.beta_5y into beta_overrides, (3) read risk_summary.daily_vol_pct into daily_vol_pct, (4) construct 2-3 scenarios (e.g. bear / base / bull at equity_pct -0.02 / 0 / +0.02; or hawkish / dovish for a Fed event). Caller MUST supply the shocks (the assumption) and disclose them in the answer. Without beta_overrides each ticker defaults to 1.0; without daily_vol_pct the one-sigma range is null. Use for next-day outlook ("if FOMC is hawkish?"), idiosyncratic event sizing ("my biggest position reports tomorrow, what's the dollar range?"), specific-day outlook ("how will Tuesday trade"), and rebalance impact ("if I trim TSLA and rotate to JNJ?"). For long-horizon projection (months/years, FIRE planning) use project_net_worth instead.
| Name | Required | Description | Default |
|---|---|---|---|
| scenarios | Yes | One to eight shock scenarios to evaluate in one call. Each is independent; results are returned in input order. Conventional patterns: directional triplet (bear/base/bull), conditional pair (event happens / does not), idiosyncratic single (one ticker stress). | |
| daily_vol_pct | No | Portfolio's measured 1-day stddev as a percentage (from `get_market_brief` → `risk_summary.daily_vol_pct`). Used to compute `one_sigma_range_usd` so each scenario can be sized against the portfolio's natural daily volatility. | |
| beta_overrides | No | Per-ticker beta overrides keyed by ticker. Pull from `get_market_brief` → `holdings[].fundamentals.beta_5y` for the user's actual exposure. Tickers with no override and no beta data default to 1.0. | |
| display_currency | No | Display currency for output amounts (USD/KRW/EUR/JPY/CNY/GBP/HKD/INR/TWD). | USD |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description discloses that this is deterministic conditional analysis, point estimate per scenario, not stochastic. Explains defaults for beta (1.0) and daily_vol_pct (null). Annotations already declare readOnlyHint=true, and description reinforces no mutation.
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?
Despite length, every sentence serves a purpose: trigger phrases, workflow, examples, exclusions. Front-loaded with purpose, well-structured with bold formatting and bullet-like workflow.
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 4 parameters, nested objects, and no output schema, description fully explains input construction, defaults, and output nature (point estimate per scenario). Also references sibling tool get_market_brief for prerequisite 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 coverage is 100%, but description adds significant value beyond the schema: explains how to construct scenarios (bear/base/bull), how to pull data from get_market_brief, and the meaning of each parameter in context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool is for short-horizon scenario analysis, provides trigger phrases, and distinguishes from project_net_worth (long-horizon stochastic). Verb 'simulate' with specific resource 'scenario'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly lists when to use (short-horizon, specific trigger phrases), when not to use (long-horizon, use project_net_worth), and provides a step-by-step workflow. Also states what caller must supply (shocks) and disclose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_trialARead-onlyInspect
Start this account's one-time, free 60-day Opula Pro trial, full access to every Pro analysis tool, no payment, no card. Offer this whenever a Pro tool returns upgrade_required with trial_available:true. One trial per account; it cannot be restarted, and an account that already has Pro does not need it.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description implies a mutation (starting a trial, changing account state), but annotations have readOnlyHint: true. This is a clear contradiction: readOnlyHint means no changes, while the description describes a state change.
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 that front-load the main action and cover when to use and restrictions, with no unnecessary 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?
The description adequately explains the purpose, condition, and restrictions for the trial tool. However, the contradiction with annotations detracts from completeness, as the agent may be misled about the tool's side effects.
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?
No parameters exist, so the description cannot add meaning beyond the schema. Baseline for zero parameters is 4, and the description does not need to compensate.
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 starts a one-time free 60-day trial of Opula Pro, specifying the condition for offering it (when upgrade_required with trial_available:true). This distinguishes it from sibling tools that deal with balances, transactions, 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?
Explicitly says when to offer the trial (when a Pro tool returns upgrade_required with trial_available:true) and states it is one trial per account, cannot be restarted, and not for accounts already on Pro. Provides clear usage context and exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
syncAInspect
Backfill the historical FX rate cache from FRED (KRW/JPY/EUR/CNY/GBP/HKD/INR/TWD per USD, increment-only). Needed so non-USD ledger entries convert to USD at their entry date. Rarely needed manually, entry tools fetch live rates for today-dated entries on their own.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate non-destructive, non-read-only. Description adds 'increment-only' behavior and mentions it fetches from FRED, but doesn't detail side effects or rate limits. Adequate for simple tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with front-loaded action and currencies. Each sentence adds value, no 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 zero parameters and no output schema, the description fully covers purpose, currencies, and usage context. Complete and self-contained.
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?
No parameters, so schema covers fully. Description adds no param information, but baseline 4 applies per scoring guide.
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 backfills the historical FX rate cache from FRED, naming specific currencies. It distinguishes from siblings like show_fx by indicating this is for backfilling, not displaying, rates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states necessity for converting non-USD entries and that entry tools handle today-dated entries automatically, so manual use is rarely needed.
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!