Skip to main content
Glama

Server Details

Your accounting ledger as typed tools: net worth, holdings, history, tax estimates, trade logging.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
99.9% over 69 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A3.7/5.0

Scored across 12 tools

Disambiguation4/5

Most tools target clearly distinct resources/actions (read dashboard vs. history vs. prices; list vs. sync connections). The read/write pairs (get_prices vs. refresh_prices, list_connections vs. sync_connections) are distinguishable by verb but require a moment's attention. Overall quite clear with only minor overlap.

Naming Consistency5/5

Consistent verb_noun snake_case throughout (get_*, list_*, log_trade, record_balance_adjustment, refresh_prices, sync_connections). Verbs are used predictably: get/list for reads, log/record for writes, refresh/sync for maintenance actions.

Tool Count5/5

12 tools is well within the sweet spot for a personal-finance ledger server and each tool maps to a concrete operation. No redundant or filler tools; the surface feels deliberately scoped.

Completeness4/5

Strong coverage of reads (dashboard, history, prices, tax, reference data, connections, transactions) plus writes (log_trade, record_balance_adjustment) and maintenance (refresh_prices, sync_connections). Gaps exist: no way to edit/delete a logged transaction or add/manage accounts or connections, but core workflows are well served.

Available Tools

12 tools
get_dashboardAInspect

Net worth, balance sheet and current holdings, in the ledger's base currency.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It only lists what is returned, but does not disclose behavioral traits such as whether the operation is read-only, requires specific permissions, is computationally expensive, or is idempotent. The mention of 'base currency' adds minimal transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that is front-loaded with the key outputs (Net worth, balance sheet, current holdings). It contains no redundant information and is highly efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that there are no parameters and no output schema, the description covers the essential information: what the tool returns. It does not specify the format or structure of the output, but for a simple dashboard snapshot, the description is reasonably complete. A higher score would require mention of whether the balance sheet includes all accounts or just a subset.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has no parameters, so the description does not need to explain parameter meanings. Schema description coverage is 100% trivially, and the description adequately describes what the tool does without parameter context. Baseline of 3 is exceeded because no parameters need compensation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool returns net worth, balance sheet, and current holdings in the ledger's base currency. This distinguishes it from siblings like get_net_worth_history (historical data) and get_tax_report (tax-specific). The verb 'get' plus specific resources (net worth, balance sheet, holdings) makes purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for a current financial snapshot but does not explicitly state when to use this versus alternatives like get_net_worth_history for historical trends or list_transactions for transaction-level details. No exclusions or prerequisites are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_net_worth_historyAInspect

Historical net-worth snapshots (one point per day where recorded).

NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses that data is returned as daily snapshots only for days with records, which is key behavioral context. However, it does not mention authorization, safety, or performance characteristics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence with no filler. Every word adds value, making it maximally concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and no parameters, the description provides a basic idea but lacks details on the return format (e.g., fields like date, value). For a simple historical data tool, this may be sufficient but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and 100% schema coverage in the input schema. Per guidelines, the baseline for no parameters is 4, and the description adds no redundant parameter info.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves historical net-worth snapshots, with the specific detail of one point per day where recorded. It effectively distinguishes from siblings like get_dashboard or list_transactions which serve different purposes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for viewing historical net worth trends but lacks explicit guidance on when to use this tool versus alternatives like get_dashboard. No exclusions or prerequisites are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_pricesAInspect

Current price per ticker with its source, quote currency and recent change, plus any manual overrides.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are given, so the description is the sole source. It indicates a read-only operation (get) and outlines the data returned, but does not mention permissions, rate limits, or any side effects. As a getter, this is largely transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that conveys all key aspects of the tool without unnecessary detail. It is concise and to the point.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of an output schema, the description adequately lists the data fields (source, quote currency, recent change, manual overrides). It does not specify the exact output format (e.g., list vs. dictionary), but this is a minor omission.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has no parameters, so no parameter explanation is needed. The description appropriately focuses on the output, making this dimension trivially satisfied.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns current price per ticker, including source, quote currency, recent change, and manual overrides. This is specific and distinguishes it from other data-retrieval tools like get_dashboard or get_net_worth.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for retrieving price data but does not explicitly state when to prefer this over sibling tools. No guidance on context or alternatives is provided, though the purpose is clear from the name and description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_projection_configAInspect

The forecast/FIRE plan's assumptions (salary, expenses, inflation, retirement dates, tax mode). The projection itself is computed client-side.

NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided. Description adds context about what is not included (the projection itself) but lacks details on read-only nature, authorization needs, or rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with zero waste. Front-loads the purpose and provides concrete examples efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequate for a parameterless tool with no output schema. Describes the return content adequately. Could mention output format (e.g., JSON) but not essential.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has no parameters (100% coverage trivially). Description adds semantic value by listing the included assumption categories, giving the agent meaningful expectations.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it retrieves forecast/FIRE plan assumptions, listing specific examples (salary, expenses, etc.), and distinguishes itself from the client-side projection computation. This differentiates it from sibling tools like get_dashboard or get_net_worth_history.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implied usage for obtaining assumptions, but no explicit when-to-use or when-not-to guidance. No mention of alternatives or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_reference_dataAInspect

Valid accounts, providers, tickers, asset classes and categories. Read this before writing: trades and adjustments must use these values unless allow_new_values is set.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden of explaining behavior. It does not explicitly state that the tool is read-only or safe, but the content (reference data) and guidance ('read before writing') strongly imply a non-destructive, informational purpose. A more explicit disclosure would improve this score.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short, actionable sentences with no wasted words. The first sentence lists the data types, the second provides critical usage guidance. Optimal conciseness for the content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has no parameters and no output schema, so the description needs only to explain what it returns and when to use it. It does both adequately. However, it could mention if the output is paginated or if there is a default format, but given the simplicity, this is sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters, so the schema coverage is trivially 100%. The description adds value by explaining the purpose of the returned data (valid values for writing operations), which goes beyond the empty schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns valid accounts, providers, tickers, asset classes, and categories. It distinguishes itself from sibling writing tools (log_trade, record_balance_adjustment) by explicitly positioning it as a prerequisite reference read.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly advises 'Read this before writing' and notes that trades and adjustments must use these values unless allow_new_values is set. This provides clear context on when to use the tool, though it does not name an alternative tool for the 'allow_new_values' case.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_tax_reportAInspect

Capital-gains / income tax estimate for a year: gains, losses, exemption (including any carried-forward amount), taxable base and estimated tax.

NameRequiredDescriptionDefault
yearNoDefaults to the current year
accountNoOne portfolio; absent sums every configured one

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears full responsibility. It describes the tool as providing an 'estimate' and mentions carried-forward amounts, but does not explicitly declare it as read-only, disclose authentication requirements, or describe 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that efficiently lists key output components. While dense, it contains no redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description compensates by listing report contents. It covers the main purpose and parameter usage (year default, account summing). Missing is a mention of data format (e.g., object with fields).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage with defaults. The description adds value by enumerating what the report includes (gains, losses, exemption, etc.), giving the agent context beyond parameter names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool provides a capital-gains/income tax estimate for a year, listing specific output components (gains, losses, exemption, taxable base, estimated tax). It distinguishes itself from siblings like get_dashboard or get_net_worth_history.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use or when-not-to-use guidance is given. The description implies it is for tax estimates, but does not compare to alternatives like get_dashboard or list_transactions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_connectionsBInspect

Linked exchange, bank and wallet connections, each with its sync mode (balance updates, or transactions staged for review) and when it last synced.

NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of disclosure, but it says nothing about side effects, read-only guarantees, or whether external systems are contacted. It only describes the content of the connections, not the behavior of the operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and packs relevant details into a single sentence. However, it begins with 'Linked' as a dangling modifier, which slightly hampers readability, and front-loads the action less effectively than starting with 'Lists' or 'Returns'.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list operation with no parameters and no output schema, the description covers the essential aspects: the type of connections returned and the included attributes (sync mode, last sync). While details like ordering or pagination are absent, nothing critical is missing for invoking this tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so no parameter explanation is needed. The description correctly avoids adding parameter details, matching the baseline of 4 for parametric simplicity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the resource (exchange, bank, wallet connections) and key attributes (sync mode, last sync), which makes the tool's purpose fairly clear. However, the absence of an explicit verb like 'list' or 'returns' makes it a fragment, and it relies on the tool name to anchor the action.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus siblings like 'sync_connections' or 'list_transactions'. There is no mention of alternatives, exclusions, or context in which this tool should be preferred.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_transactionsAInspect

Transaction history as a human-friendly list, newest first.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It only states the output is human-friendly and sorted, but does not disclose potential limitations like pagination, date range, or whether it includes all transactions. For a list tool, more behavioral context is needed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that clearly conveys the tool's purpose and ordering. It is efficient with no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no parameters and no output schema, the description provides the essentials (list, human-friendly, newest first). However, it lacks details about what fields are included, any limits, or whether it reflects the latest data. It is minimally adequate but not comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters and the schema coverage is 100% (empty). The description adds no parameter info, but none is needed. Baseline for no parameters is 4, and the description satisfies this.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool returns a human-friendly list of transaction history sorted newest first. It is a specific verb+resource combination and distinguishes from sibling tools like get_dashboard or get_net_worth_history, which serve different purposes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when a user wants transaction history in a readable list, but provides no explicit when-to-use, when-not-to-use, or alternative tool guidance. It does not mention siblings or constraints.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

log_tradeCInspect

Log a trade (buy / sell / swap), expressed as from-asset to to-asset. Same body and validation as POST /api/transactions.

NameRequiredDescriptionDefault
to_riskNo
tx_dateYesToday or tomorrow at the latest (the user's own calendar day); later dates are rejected
tx_timeNoOptional HH:MM on the user's own clock; orders rows within the same day. Omitted: an edit keeps the stored time, a new row takes the current time
to_assetYes
from_riskNo
to_amountYes
to_tickerYes
from_assetYes
to_accountYes
descriptionNo
from_amountYes
from_tickerYes
to_categoryNo
to_providerYes
from_accountYes
from_categoryNo
from_providerYes
to_descriptionNo
allow_new_valuesNoCreate accounts/providers/tickers not yet in reference-data. Default false.
from_descriptionNo
overall_eur_valueYesThe trade's total value in the ledger's base currency (the field name is historical: EUR was the only base)

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations at all, the description carries the full behavioral burden, and it largely fails to. It signals this is a write with validation ('Same body and validation as POST /api/transactions') but discloses nothing about permissions, whether the trade is reversible/editable, side effects on balances or reference data, or the fact that new accounts/providers require an explicit opt-in flag.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with the core purpose front-loaded and no filler. It loses a point because the second sentence offloads meaning to an external API endpoint the agent may not know, rather than stating the constraint directly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 12-required-parameter write operation with no annotations, no output schema, and 19% schema coverage, this is far too thin. The description should at minimum explain the from/to ledger model, the currency-value field, and the new-reference-data opt-in, none of which it covers.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 19% across 21 parameters, so the description must compensate and it does not. The from-/to- framing hints at how the paired fields relate, but risk, category, description, ticker, account, and provider fields are left entirely unexplained, and there is no indication of which fields must agree or how amounts are validated.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb ('Log') and resource ('trade'), and clarifies the operation's shape by naming the buy/sell/swap variants and the from-asset → to-asset model. It is readily distinguishable from read siblings like list_transactions or record_balance_adjustment, though it does not explicitly name those neighbors.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use/when-not-to-use guidance. The reference to 'POST /api/transactions' is a backend implementation hint rather than a routing rule, and nothing tells the agent how this differs from sibling record_balance_adjustment, which is a plausible confusion point for balance-affecting writes.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

record_balance_adjustmentCInspect

Record a signed quantity change on one holding (a balance update that is not a trade). Same body and validation as POST /api/position-adjustments.

NameRequiredDescriptionDefault
assetYes
tickerYes
accountYes
tx_dateYesToday or tomorrow at the latest (the user's own calendar day); later dates are rejected
tx_timeNoOptional HH:MM on the user's own clock; orders rows within the same day. Omitted: an edit keeps the stored time, a new row takes the current time
providerYes
quantity_deltaYesSigned quantity change (non-zero)
allow_new_valuesNo

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It states this is a mutation but discloses nothing about permissions, reversibility, rate limits, or what happens to existing values; 'Same body and validation as POST /api/position-adjustments' points to an external API rather than disclosing behavior to the agent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with the core purpose front-loaded. The endpoint reference sentence is marginally useful but borders on filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 8-parameter mutation tool with no annotations, no output schema, and incomplete parameter documentation, the description should do substantially more. It leaves behavioral and parameter gaps unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 38%, so the description must compensate and does not. It reinforces the signed/non-zero nature of quantity_delta but leaves asset, ticker, account, provider, and allow_new_values undocumented in both schema and description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Record a signed quantity change on one holding,' and clarifies the domain concept ('a balance update that is not a trade'). It partially distinguishes from log_trade but does not name siblings directly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The parenthetical 'that is not a trade' implies when to use this over log_trade, but there is no explicit when/when-not guidance, no prerequisites, and no named alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

refresh_pricesAInspect

Fetch fresh market prices now. With no ticker this refreshes every priced holding; with one it refreshes just that ticker.

NameRequiredDescriptionDefault
symbolNoProvider symbol when it differs from the ticker
tickerNoOmit to refresh every ticker

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. The description states that the tool fetches fresh prices, implying a network call and potential latency, but it does not disclose side effects (e.g., whether it updates stored data, rate limits, or auth requirements). It also doesn't mention what happens if the symbol is invalid or if the refresh fails. Given the lack of annotations, a score of 3 is appropriate—it adds some behavioral context (refreshing vs. fetching) but leaves significant gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long and front-loaded with the primary purpose. Every word earns its place: it states the action, the scope (all vs. one), and the parameter behavior. No fluff or redundancy. This is a model of conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (2 optional parameters, no output schema, no nested objects), the description is nearly complete. It explains the two modes of operation and the parameter semantics. The only missing context is behavioral details like error handling or side effects, but for a refresh tool with no annotations, the description covers the essential usage. It could be improved by noting that this is a network operation, but the core functionality is well explained.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100%, meaning both parameters (symbol and ticker) are documented in the schema. The description adds the key semantic that omitting ticker refreshes all holdings, which is not fully explicit in the schema (the schema says 'Omit to refresh every ticker' but the description clarifies the behavior). However, the description does not explain the difference between symbol and ticker beyond what the schema says. Since the schema already covers the parameters well, a baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Fetch fresh market prices now.' It specifies the verb (fetch), the resource (market prices), and the action (refresh). It also distinguishes between two modes: refreshing all priced holdings when no ticker is provided, and refreshing a single ticker when one is provided. This differentiates it from sibling tools like get_prices, which likely retrieves cached prices.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear usage context: 'With no ticker this refreshes every priced holding; with one it refreshes just that ticker.' This explains when to use the tool with or without the ticker parameter. However, it does not explicitly state when to use this tool versus alternatives like get_prices, though the purpose of refreshing vs. fetching is implied. No exclusions or alternatives are named, but the context is clear enough for an agent to decide.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sync_connectionsAInspect

Sync every linked connection in one pass: push the latest balance into each linked holding, and stage new transactions into the review queue. Reports what was written, what was staged and any per-provider errors.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full behavioral burden. It discloses key side effects: writing latest balances into linked holdings and staging new transactions into a review queue. It also states that it reports written/staged items and per-provider errors. Minor gaps remain around idempotency, reversibility, and auth requirements, but the main behavior is clearly exposed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no filler: the first sentence front-loads the tool's purpose and primary effects, and the second compactly summarizes the output behavior. Every clause contributes useful information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an empty-schema, no-output-schema tool, this description is largely complete: it covers the action, scope, side effects, and error reporting. A caveat about prerequisites such as requiring existing linked connections or whether the operation is repeatable would round it out, but it is not a major gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and the schema has 100% coverage, so there is no parameter semantics for the description to add. The baseline score for a no-parameter tool is 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource: 'Sync every linked connection in one pass' and clearly enumerates the operations (pushing balances and staging transactions). It distinguishes itself from siblings like refresh_prices by describing a broader sync of holdings and transactions rather than just price data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'every linked connection in one pass' gives clear context for when to use this tool as a bulk sync across all connections. It does not explicitly name alternatives or exclusions, but the scope is well-defined enough to infer the intended use case.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 2 tool updates
    • Changedlog_trade1 field changed
      • addedInput schema / properties / tx_time
        Added value: +{
        +  "description": "Optional HH:MM on the user's own clock; orders rows within the same day. Omitted: an edit keeps the stored time, a new row takes the current time",
        +  "example": "14:30",
        +  "type": "string"
        +}
    • Changedrecord_balance_adjustment1 field changed
      • addedInput schema / properties / tx_time
        Added value: +{
        +  "description": "Optional HH:MM on the user's own clock; orders rows within the same day. Omitted: an edit keeps the stored time, a new row takes the current time",
        +  "example": "14:30",
        +  "type": "string"
        +}

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    C
    maintenance
    Enables local-first personal finance management through deterministic tools for importing, categorizing, and analyzing bank transactions.
    36
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables an AI assistant to read, validate, and maintain a local wealth document, list holdings, record dated valuations, compute net worth by currency, and import spreadsheet data over stdio without network access.
    168 npm
    Apache 2.0
  • A
    license
    A
    quality
    B
    maintenance
    Local-first crypto portfolio aggregation across exchanges (Bybit, Binance), EVM and Solana wallets, and Polymarket. Read-only credentials, runs as a local MCP server. Data aggregation only, not financial advice.
    15
    82 npm
    6
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Talk to your GnuCash books: a one-call financial dashboard (net worth, runway, budgets, what's overdue), and whole bank statements entered and reconciled in a single call from CSV, OFX, PDF, or even a screenshot or photo of the statement. Plus transactions, invoices, reports and multi-currency; local, SQLite/PostgreSQL/MySQL.
    87
    82
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources