Skip to main content
Glama

PocketLedger MCP

Server Details

AI Expense Tracker MCP for logging expenses, searching transactions, and generating budget reports from chat.

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.

MCP client
Glama
MCP server

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.

100% free. Your data is private.
Tool DescriptionsB

Average 3.8/5 across 13 of 13 tools scored. Lowest: 2.7/5.

Server CoherenceA
Disambiguation4/5

Tools are mostly distinct with clear purposes. Potential confusion between get_report and get_summary or log_transaction and record_expense is mitigated by detailed descriptions explaining their specific use cases.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern in snake_case (e.g., delete_transaction, get_report, parse_expense_text), making the set predictable and easy to navigate.

Tool Count5/5

With 13 tools covering CRUD operations, account management, and utility functions, the count is well-scoped for a personal expense tracking server without being excessive.

Completeness4/5

The tool surface covers essential expense lifecycle operations (create, read, update, delete, restore) and account settings, though a direct get_transaction by ID or bulk operations are missing but not critical.

Available Tools

13 tools
delete_transactionDelete transactionA
DestructiveIdempotent
Inspect

Soft-delete an existing transaction by ID so it no longer appears in normal spending summaries.

ParametersJSON Schema
NameRequiredDescriptionDefault
deleted_reasonNo
transaction_idYes
client_request_idNoOptional idempotency key. Omit for normal one-off calls.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

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

Annotations already declare destructiveHint=true and idempotentHint=true. The description adds the key behavioral detail that it is a 'soft-delete' and clarifies the effect (removal from summaries), which goes beyond annotations. However, it could describe recovery options or 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.

Conciseness5/5

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

Single sentence, front-loaded with verb and resource. No wasted words. Clearly communicates the core function.

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 delete tool with 3 parameters and an output schema (not shown), the description covers the essential effect and mechanism. It could mention the output or success conditions, but the output schema likely handles that. Overall, sufficient for most use cases.

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?

Input schema has 3 parameters with only 33% description coverage (client_request_id described). The description only mentions 'by ID' for transaction_id, ignoring deleted_reason and client_request_id. Given low schema coverage, the description should provide more parameter context but does not, leaving agent with limited guidance.

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 verb 'soft-delete', the resource 'transaction', and the effect 'no longer appears in normal spending summaries'. It distinguishes this from siblings like 'restore_transaction' and 'undo_last_transaction' by specifying it removes from summaries, not a permanent delete.

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 transaction should be hidden from summaries, but it does not explicitly state when to use this tool versus alternatives like 'undo_last_transaction' or 'restore_transaction'. No when-not-to-use or prerequisites are given.

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

get_connected_accountGet connected accountA
Read-onlyIdempotent
Inspect

Return the PocketLedger account linked to this chat session, including profile details and connected AI apps. Call when the user asks who they are logged in as, which account is connected, or which apps have access.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

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

The description adds value beyond annotations by specifying the return contents (profile details and connected AI apps). Annotations already indicate readOnly/intent, and description reinforces safe operation.

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 front-load the primary action, then specify usage triggers. No wasted words.

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

Completeness5/5

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

Tool is simple (zero params, output schema exists). Description covers purpose, usage, and return content, making it complete for the given complexity.

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?

No parameters required, schema coverage 100%, and description states 'No input required.' Baseline 4 is appropriate as no additional param info needed.

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 the PocketLedger account for the chat session, including profile details and connected AI apps, and distinguishes from siblings which are transaction-focused.

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

Usage Guidelines5/5

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

Explicit scenarios are given for when to call: user asks who they are logged in as, which account is connected, or which apps have access. This provides clear guidance.

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

get_reportGet spending reportA
Read-onlyIdempotent
Inspect

Return a grouped expense spending report by category, merchant, day, week, month, or currency, with chart-ready structured data. Do not use the natural-language query as a keyword filter.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNoOptional natural-language report intent for display/context only.
periodNoPreset reporting period. Use 'custom' only together with date_from and date_to.
date_toNo
categoryNoExpense category name selected from list_categories when possible.
currencyNoISO 4217 currency code, e.g. USD, EUR, GBP.
group_byNo
merchantNoMerchant or payee name in plain text, preferably in English when the user asks to save in English.
timezoneNoIANA timezone used to interpret dates and relative words like today or yesterday, e.g. 'UTC'.
date_fromNo
chart_typeNo
keyword_filterNoExplicit keyword filters requested by the user. Do not derive this from the general query text.
reporting_currencyNoISO 4217 currency code, e.g. USD, EUR, GBP.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, covering safety. The description adds minimal behavioral context (chart-ready data) beyond what annotations provide.

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

Conciseness5/5

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

Two sentences with no wasted words, front-loaded with the core purpose. Highly concise and well-structured.

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?

Despite annotations and output schema, the description omits details on parameter interactions (e.g., custom period, dual currency fields) and chart_type behavior. More depth is needed for a complex 12-parameter tool.

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?

Schema description coverage is 67%, so the description adds some value by clarifying query parameter misuse. However, it does not explain the distinction between currency and reporting_currency, nor how custom period works with date_from/date_to.

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 a grouped spending report by multiple dimensions (category, merchant, etc.) with chart-ready data, distinguishing it from sibling tools like get_summary or search_transactions.

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 warns not to use the natural-language query as a keyword filter, providing actionable guidance. However, it does not specify when to prefer this tool over alternatives like get_summary.

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

get_summaryGet spending summaryA
Read-onlyIdempotent
Inspect

Return a spending summary for expenses in today, yesterday, this week, this month, this year, or a custom date range. Do not create income, transfers, or financial advice.

ParametersJSON Schema
NameRequiredDescriptionDefault
periodYesPreset reporting period. Use 'custom' only together with date_from and date_to.
date_toNo
timezoneNoIANA timezone used to interpret dates and relative words like today or yesterday, e.g. 'UTC'.
date_fromNo
reporting_currencyNoISO 4217 currency code, e.g. USD, EUR, GBP.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is clear. Description reinforces this by stating 'Return a spending summary' and prohibiting write actions, adding clarity 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.

Conciseness5/5

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

Two concise sentences. First sentence states the core purpose. Second sentence adds critical negative guidance. No unnecessary words or repetition.

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 an output schema present, the description does not need to detail return values. It covers the input period options and hints for custom use. Could mention timezone handling or currency conversion briefly, but overall adequate for a read-only summary tool.

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?

Schema descriptions cover 60% of parameters, including period, timezone, and reporting_currency. The description only adds the list of preset periods and the custom option, which is already in the schema enum. No extra meaning for date_from/date_to or timezone/currency beyond the 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?

Description clearly states the tool returns a spending summary for specific periods (today, yesterday, this week, etc.) and explicitly forbids creating income, transfers, or financial advice. This verb-resource combination is distinct from siblings like get_report or search_transactions.

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?

Description provides clear when-to-use (retrieve spending summary) and explicit when-not-to-use (do not create income, transfers, or financial advice). It could be strengthened by mentioning alternative tools for related tasks, but the negative guidance is helpful.

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

list_categoriesList categoriesB
Read-onlyIdempotent
Inspect

List expense categories available for classifying transactions. This only lists categories and must not be used for investment advice, income creation, or bank credential storage.

ParametersJSON Schema
NameRequiredDescriptionDefault
include_customNo
include_inactiveNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false; the description merely restates the read-only nature and adds prohibitions but no new behavioral traits 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.

Conciseness4/5

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

Two sentences, front-loaded with purpose, concise; could be slightly more efficient by removing redundant prohibition phrasing.

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?

Despite having an output schema, the description lacks parameter explanations (0% coverage) and does not mention that it lists only active standard categories, leaving gaps for a two-parameter tool.

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

Parameters1/5

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

Description does not explain the two boolean parameters (include_custom, include_inactive); with 0% schema description coverage, the parameter semantics are entirely absent.

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 verb ('list') and resource ('expense categories'), and explicitly distinguishes what it is not for, making it highly 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.

Usage Guidelines4/5

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

Provides explicit prohibitions (no investment advice, income creation, bank credential storage) but does not compare to other tools like get_summary or search_transactions for when to use alternatives.

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

log_transactionLog transactionA
Idempotent
Inspect

Create one personal expense transaction from explicit structured fields. Expense-only: do not use for income, salary deposits, account transfers, bank credential storage, budgets, investment advice, or calendar tasks.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateYes
noteNoOptional short note to store with the transaction.
amountYesPositive decimal amount encoded as a string. Must not include currency symbols or thousands separators.
sourceNo
categoryYesExpense category name selected from list_categories when possible.
currencyYesISO 4217 currency code, e.g. USD, EUR, GBP.
merchantNoMerchant or payee name in plain text, preferably in English when the user asks to save in English.
timezoneYesIANA timezone used to interpret dates and relative words like today or yesterday, e.g. 'UTC'.
subcategoryNo
category_colorNo
client_request_idNoOptional idempotency key. Omit for normal one-off calls.
duplicate_confirmationNoConfirmation payload used only after a duplicate transaction warning.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

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

Description adds context about duplicate detection via the duplicate_confirmation parameter, which complements the idempotentHint annotation. It does not contradict annotations and makes the creation behavior clearer.

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 concise sentences, front-loaded with core purpose and then usage restrictions. No redundant information.

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?

Despite complexity (12 parameters, nested objects, output schema), the description omits details on duplicate handling flow, idempotency key usage, and return structure. More context is needed.

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?

With 67% schema description coverage, the function description adds no extra meaning for parameters like subcategory, category_color, or source. These undocumented parameters remain unclear without schema descriptions.

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 'Create one personal expense transaction from explicit structured fields' and explicitly lists what not to use it for. This distinguishes it from sibling tools like record_expense and parse_expense_text.

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 explicit when-not-to-use guidance by listing expense types (income, transfers, etc.). However, it does not mention specific alternative tools for those cases, leaving some ambiguity.

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

parse_expense_textParse expense textA
Read-onlyIdempotent
Inspect

Parse natural-language expense text without saving it, returning candidate amount, currency, merchant, category, date, and missing fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYes
localeNo
timezoneNoIANA timezone used to interpret dates and relative words like today or yesterday, e.g. 'UTC'.
date_contextNo
default_currencyNoISO 4217 currency code, e.g. USD, EUR, GBP.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description reinforces these by stating 'without saving it', and adds detail on return fields. It does not contradict annotations. The description adds value beyond annotations by specifying the output candiate fields, though it omits error behavior or limitations.

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 front-loads the key purpose and outputs. Every phrase earns its place, with no redundancy or filler.

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

Completeness4/5

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

Given the tool has an output schema (the return types are likely defined there), the description covers the essential inputs, output fields, and non-saving behavior. It lacks usage examples or error handling, but the combination of schema and description is largely sufficient for an extraction tool.

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?

Schema description coverage is 40% (only 2 of 5 parameters have descriptions). The main description hints at parameter usage (e.g., default_currency for currency, timezone for date interpretation) but does not explicitly explain all parameters like locale or date_context. It provides partial compensation, but not enough to fully cover the gap.

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 verb (parse), resource (expense text), and key distinction: 'without saving it'. It also lists the specific fields returned (amount, currency, merchant, category, date, missing fields), fully differentiating from sibling tools like log_transaction or record_expense that save 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 description explicitly notes the tool is for parsing without saving, implying it should be used for extraction before committing to a record. However, it does not explicitly state when to use versus alternatives or provide exclusions. The sibling list includes save-oriented tools, making the distinction clear but not directly spelled out.

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

record_expenseRecord expenseA
Idempotent
Inspect

Record one personal expense from natural-language text. Expense-only: do not use for income, salary deposits, account transfers, bank credential storage, budgets, investment advice, or calendar tasks.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYes
localeNoBCP 47 locale hint for parsing user text.
timezoneNoIANA timezone used to interpret dates and relative words like today or yesterday, e.g. 'UTC'.
date_contextNoReference date in YYYY-MM-DD used to resolve relative dates.
category_colorNo
default_currencyNoISO 4217 currency code, e.g. USD, EUR, GBP.
client_request_idNoOptional idempotency key. Omit for normal one-off calls.
duplicate_confirmationNoConfirmation payload used only after a duplicate transaction warning.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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

Annotations already indicate this is not read-only (readOnlyHint=false) and not destructive (destructiveHint=false). The description adds that it is expense-only but does not disclose details like idempotency behavior or side effects. This is adequate but not exceptional.

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 extremely concise: one sentence for the core purpose and a succinct list of exclusions. Every part adds value, 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?

The tool has 8 parameters including a complex nested object for duplicate confirmation, and an output schema exists. The description does not explain the confirmation workflow or describe the return format. This gap in behavioral context reduces completeness for the tool's full complexity.

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?

Schema coverage is high (75%) and the description does not add significant per-parameter details beyond the schema. The description contributes overall context about natural-language parsing, which is helpful but baseline for such coverage.

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 verb 'Record' and the resource 'personal expense from natural-language text'. It explicitly lists what not to use it for, distinguishing it from other tools like those for income, transfers, etc.

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 explicit 'do not use' guidance for multiple categories (income, salary, etc.), which helps prevent misuse. However, it does not name specific sibling tools as alternatives, which would improve clarity further.

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

restore_transactionRestore transactionA
Idempotent
Inspect

Restore a previously deleted transaction by ID so it appears in spending summaries again.

ParametersJSON Schema
NameRequiredDescriptionDefault
transaction_idYes
client_request_idNoOptional idempotency key. Omit for normal one-off calls.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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

Annotations provide idempotentHint=true and destructiveHint=false, which the description does not contradict. The description adds that the transaction 'appears in spending summaries again', but does not disclose additional behavioral traits like error handling, auth needs, or rate limits. Beyond annotations, minimal extra context.

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 of 18 words, front-loaded with the core action and outcome. No unnecessary words or redundancy. Perfectly concise for the tool's simplicity.

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 tool with two parameters, one required, and an output schema, the description covers the main purpose and effect. It lacks details on edge cases (e.g., invalid ID, already restored transaction), but given the presence of an output schema and annotations, it is reasonably complete.

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?

Schema description coverage is 50%, with only client_request_id having a description. The tool description adds 'by ID' for transaction_id but does not elaborate on its format or semantics beyond the schema. Overall, the description provides minimal added meaning for the parameters.

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 verb 'restore' and the resource 'previously deleted transaction by ID', with a specific outcome 'appears in spending summaries again'. This distinguishes it from sibling tools like delete_transaction and undo_last_transaction.

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 restoring a deleted transaction by ID, but does not explicitly state when to use or not use this tool versus alternatives like undo_last_transaction. No guidance on prerequisites or exclusion criteria.

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

search_transactionsSearch transactionsA
Read-onlyIdempotent
Inspect

Search a user's saved expense transactions by date range, category, merchant, keyword, currency, deleted status, and limit. Do not use for investment advice, income creation, bank credential storage, or calendar tasks.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
cursorNo
periodNoPreset reporting period. Use 'custom' only together with date_from and date_to.
date_toNo
keywordNo
categoryNoExpense category name selected from list_categories when possible.
currencyNoISO 4217 currency code, e.g. USD, EUR, GBP.
merchantNoMerchant or payee name in plain text, preferably in English when the user asks to save in English.
timezoneNoIANA timezone used to interpret dates and relative words like today or yesterday, e.g. 'UTC'.
date_fromNo
include_deletedNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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

Annotations already indicate readOnlyHint=true and idempotentHint=true. The description adds no additional behavioral context beyond the obvious search nature. 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.

Conciseness5/5

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

Two concise sentences with no wasted words. Front-loaded with the core purpose.

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?

Output schema exists, so return values are covered. However, the description omits details about pagination (cursor parameter), optionality of parameters, and timezone interpretation. Adequate but not thorough.

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 low (45%). The description merely lists filter categories without explaining parameter semantics or compensating for missing schema descriptions (e.g., cursor, timezone handling).

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 searches transactions with specific filters, distinguishing it from siblings like delete_transaction or log_transaction.

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 includes a negative list of what not to use it for, but lacks positive guidance on when to use this tool vs alternatives. No explicit when-to-use or when-not-to-use beyond avoiding non-related tasks.

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

undo_last_transactionUndo last transaction actionC
Destructive
Inspect

Undo the most recent supported transaction action, such as create, update, delete, or restore, within the undo window.

ParametersJSON Schema
NameRequiredDescriptionDefault
operationNo
transaction_idNo
client_request_idNoOptional idempotency key. Omit for normal one-off calls.
confirmation_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

Annotations already indicate destructiveHint=true. The description adds minimal behavioral context: it mentions 'undo window' but does not explain what that entails, or that confirmation may be required (implied by confirmation_token parameter). No details on auth, rate limits, or side effects beyond the destructive nature.

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 concise sentence that front-loades the purpose. It is efficient, though a bit more structure (e.g., listing key behavior) could improve clarity.

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?

Despite having annotations and an output schema, the description does not cover essential contextual details like the definition of 'undo window', when confirmation is needed, or the implications of different operation types. The tool's complexity calls for more complete guidance.

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 low (25%). The description does not explain any of the parameters, such as operation, transaction_id, or confirmation_token. It adds no meaning beyond the schema, failing to compensate for the lack of schema descriptions.

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 clearly states the action (undo) and resource (the most recent supported transaction action), and specifies the scope (within undo window). It is specific enough to differentiate from sibling tools like delete_transaction, though the term 'supported transaction action' is slightly vague.

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?

No guidance is provided on when to use this tool versus alternatives. Given the presence of sibling tools like delete_transaction and restore_transaction, explicit comparisons or conditions for use are missing.

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

update_account_settingsUpdate account settingsA
Idempotent
Inspect

Update the authenticated user's PocketLedger defaults for expense currency, reporting currency, timezone, and locale. Use this for account preferences only, not transaction edits, wallet balances, payments, or subscriptions.

ParametersJSON Schema
NameRequiredDescriptionDefault
default_localeNoBCP 47 locale used for account defaults, e.g. 'en-US', 'tr-TR', or 'fa-IR'.
default_currencyNoISO 4217 currency code, e.g. USD, EUR, GBP.
default_timezoneNoIANA timezone used to interpret dates and relative words like today or yesterday, e.g. 'UTC'.
reporting_currencyNoISO 4217 currency code, e.g. USD, EUR, GBP.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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

Annotations already provide idempotentHint=true and destructiveHint=false. The description adds that it updates defaults and is for account preferences only, but does not disclose additional behavioral traits 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.

Conciseness5/5

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

Two sentences: first states purpose and lists fields, second clarifies scope. No unnecessary words.

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

Completeness5/5

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

Given the output schema exists and parameters are fully documented in the schema, the description sufficiently covers the tool's purpose and boundaries. It is complete for an update tool.

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?

Schema description coverage is 100%, so the schema already documents each parameter (locale, currencies, timezone). The description does not add new meaning beyond what the schema provides.

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 verb 'Update' and the resource 'authenticated user's PocketLedger defaults', listing specific fields (expense currency, reporting currency, timezone, locale). It distinguishes from sibling tools by explicitly excluding transaction edits, wallet balances, payments, and subscriptions.

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 states 'Use this for account preferences only' and lists what not to use it for (transaction edits, wallet balances, payments, subscriptions). While it doesn't name specific alternative tools, 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.

update_transactionUpdate transactionB
Destructive
Inspect

Update an existing transaction by ID, changing fields such as amount, currency, merchant, category, date, timezone, or note.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNo
noteNoOptional short note to store with the transaction.
amountNoPositive decimal amount encoded as a string. Must not include currency symbols or thousands separators.
categoryNoExpense category name selected from list_categories when possible.
currencyNoISO 4217 currency code, e.g. USD, EUR, GBP.
merchantNoMerchant or payee name in plain text, preferably in English when the user asks to save in English.
timezoneNoIANA timezone used to interpret dates and relative words like today or yesterday, e.g. 'UTC'.
subcategoryNo
category_colorNo
transaction_idYes
client_request_idNoOptional idempotency key. Omit for normal one-off calls.
expected_updated_atNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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

The description correctly indicates the tool is a mutation (consistent with destructiveHint=true), but adds no extra behavioral context. It does not explain optimistic locking via expected_updated_at, idempotency via client_request_id, or what happens if the transaction_id is invalid. Annotations already provide the safety profile.

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

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 tool's purpose and key details. Every word is necessary and clear, with no extraneous information.

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?

Given the complexity (12 parameters, 1 required, 58% schema coverage), the description is too sparse. It omits important aspects like the requirement of transaction_id, the role of expected_updated_at for concurrency, category selection from list_categories, and the meaning of subcategory. The presence of an output schema does not compensate for these gaps.

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 58%, so the description should add meaning for undocumented parameters. However, it only lists a subset of parameters (amount, currency, etc.) without clarifying subcategory, category_color, expected_updated_at, or client_request_id. It does not compensate for the gaps or enrich the schema descriptions.

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 verb ('Update'), the resource ('existing transaction by ID'), and lists relevant fields (amount, currency, merchant, etc.). It distinguishes this tool from siblings like delete_transaction and log_transaction by focusing on modification of an existing transaction.

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 alternatives (e.g., log_transaction, record_expense). It does not mention any prerequisites, exclusions, or context such as requiring the transaction to exist or not using it for new entries.

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

Discussions

No comments yet. Be the first to start the discussion!

Try in Browser

Your Connectors

Sign in to create a connector for this server.

Resources