Skip to main content
Glama

Server Details

Import a bank CSV, categorise it, summarise it per currency and reconcile it against your expenses.

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
47.9% over 39 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
theluckystrike/mcp-servers
GitHub Stars
0
ChatGPT
–
Claude
–

TDQS

A3.7/5.0

Scored across 15 tools

Disambiguation4/5

Most tools map to clearly distinct resource+action pairs (import, export, summary, search, reconcile, license). The main overlap is between transactions_list with its category/uncategorised filters, transactions_search, and statement_summary's grouped totals, which could cause misselection for a query like 'show August spending'. Descriptions mitigate this by explaining the rule-vs-one-off and list-vs-search distinctions.

Naming Consistency3/5

The dominant pattern is noun_verb (accounts_list, statement_import, transactions_search), but several tools break it: noun-only names (bank_files, category_rules, license_status) and verb-first names (reconcile_expenses, recurring_detect). There is also singular/plural drift (transaction_categorize vs transactions_list), so the convention is readable but not predictable.

Tool Count5/5

The 15 tools map cleanly onto the workflow stages: staging uploads (bank_upload/bank_files/bank_delete_upload), import, accounts, transactions, summary, export, categorisation rules, recurring detection, reconciliation, and licence checks. Each tool has a distinct role and the count stays at the upper end of a healthy range rather than sprawling.

Completeness4/5

The import-to-analyse-to-export lifecycle is well covered, including hosted upload staging (necessary without a filesystem) and licence gating. Gaps remain around data correction and cleanup: there is no way to delete or edit individual transactions or an account, and bank_delete_upload keeps imported transactions, so a bad import has no removal path.

Available Tools

15 tools
accounts_listList accountsA
Read-onlyIdempotent
Inspect

List the imported accounts: bank, currencies, transaction count, first and last date, and the closing balance when the file carried one. Start here for the account names transactions_list and statement_export take.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safe read-only profile is covered. The description adds behavioral value beyond annotations by specifying the output contents and the conditional nature of the closing balance ('when the file carried one'), which is useful context an agent cannot infer from structured data.

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

Conciseness5/5

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

Two sentences, zero waste. The first sentence front-loads the action and output fields; the second provides routing guidance. Every clause earns its place, including the conditional closing-balance caveat.

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?

For a zero-parameter, read-only list tool with full annotation coverage and no output schema, the description carries the necessary burden: it documents the return contents, notes the conditional field, and tells the agent where to start in the workflow. Nothing needed for correct invocation is missing.

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 0 parameters, so the baseline is 4 per the rubric. The description adds no parameter semantics (none exist) but does add scope context by clarifying it lists 'imported' accounts rather than all possible accounts.

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 ('List') and resource ('imported accounts'), then enumerates the exact fields returned: bank, currencies, transaction count, first/last date, and closing balance. It also differentiates from siblings by positioning itself as the source of account names for transactions_list and statement_export.

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 closing sentence gives explicit usage context: 'Start here for the account names transactions_list and statement_export take.' This tells an agent when to use this tool relative to two named alternatives, but it does not state exclusions or cover the other 12 siblings.

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

bank_delete_uploadDelete an uploaded statementA
Destructive
Inspect

Delete one statement file stored for your token. The transactions already imported from it are kept; transactions_list and the summary still see them.

NameRequiredDescriptionDefault
nameYes

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already flag destructiveHint=true, and the description adds the genuinely useful consequence: only the file goes away, while transactions_list and the summary still see the imported transactions. It stops short of stating irreversibility or what happens if the name doesn't match.

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 tight sentences, zero filler, with the destructive scope stated first and the data-retention caveat immediately after.

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?

For a destructive, non-idempotent mutation with no output schema, the description covers the main blast-radius question but omits how to identify the target file and what an unknown name returns, leaving the agent to guess at invocation details.

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?

The single required parameter `name` has 0% schema description coverage, and the description never clarifies whether it is a filename, an ID, or where to obtain it (maxLength 70 hints at a filename but the schema says nothing). With one undocumented required param, the description should compensate and does not.

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: "Delete one statement file stored for your token." That is unambiguous and separates it from bank_upload and bank_files by action, though it never names those siblings explicitly.

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

Usage Guidelines3/5

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

The note that imported transactions survive gives an implicit condition for using it (cleanup without data loss), but there is no explicit when-to-use/when-not guidance and no pointer to bank_files for discovering the file name.

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

bank_filesList uploaded statementsA
Read-onlyIdempotent
Inspect

List the statement files stored for your token, with their sizes.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds useful context by stating that files are scoped to the caller's token and that sizes are returned. However, it does not describe ordering, pagination, or any return-shape details beyond file sizes.

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, efficient sentence with zero waste. The core operation and useful detail, file sizes and token scoping, are front-loaded and easy to scan.

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 zero-parameter, read-only listing tool with annotations covering safety, the description is largely complete. It states what is listed and that sizes are included. The main omission is return-shape detail such as ordering or pagination, but given the low complexity and full annotation coverage, this is a minor 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, so parameter semantics are inherently simple. The schema is empty and schema description coverage is 100%, so there are no undocumented parameters for the description to compensate for. A baseline of 4 is appropriate for a zero-parameter tool.

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 uses a specific verb and resource: 'List the statement files stored for your token, with their sizes.' This clearly identifies the tool as a read operation over uploaded statement files. It does not explicitly distinguish itself from sibling tools such as bank_upload, bank_delete_upload, or statement_summary, so it falls short of a 5.

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

Usage Guidelines2/5

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

The description gives no guidance on when to use this tool versus alternatives. It does not mention when to prefer bank_files over statement_summary, statement_import, or bank_upload, nor does it state exclusions or prerequisites. At best, the purpose implies a simple listing use case, but no explicit usage guidance is provided.

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

bank_uploadUpload a bank statement fileA
DestructiveIdempotent
Inspect

Send a bank export to this hosted endpoint. There is no filesystem here, so instead of a path you upload the file once with bank_upload and then pass its name as path to statement_import. Give exactly one of content (the export as text, header row included - this is the normal case for a CSV), content_base64 (the file's bytes, which keeps a UTF-16 export from Excel readable) or url. url: fetch a public file instead of pasting base64 (recommended above about 10 KB): the url is fetched here with a 10 second timeout, at most 3 redirects, public http(s) hosts only, and a 1 MB cap; the fetched file has to be delimited text, so a PDF statement is refused rather than stored. Uploads are kept for your token between calls; bank_files lists them and bank_delete_upload removes one. The request body cap is 256 KB, so a large export pasted as text has to be split by month.

NameRequiredDescriptionDefault
urlNourl: fetch a public file instead of pasting base64 (recommended above about 10 KB). Public http(s) only; private, link-local and this endpoint's own zone are refused
nameYesName to refer to this statement by: 1-64 characters of letters, digits, underscore or dash, e.g. "september"
contentNoThe export as text, including the header row
content_base64NoThe file's bytes, base64-encoded, instead of text

TDQS

A4.3/5.0
Behavior4/5

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

Far beyond the annotations: 10 second fetch timeout, max 3 redirects, public http(s) only, 1 MB fetch cap, delimited-text-only validation (PDFs refused), 256 KB request body cap, and per-token persistence between calls. The gap is the destructiveHint=true annotation — the description never says what an upload with an existing name does to the prior file, nor does it explain the idempotency the annotations claim.

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 critical constraint — upload once, pass `name` as `path` downstream — is front-loaded, and the three-way content choice follows immediately. It is dense and sentence-heavy, but nearly every clause carries a limit or exception an agent would otherwise get wrong.

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?

Complete on inputs and on the downstream workflow, including the caps that force chunking a large export by month, which is exactly the trap an agent would hit. With no output schema, however, the description never says what comes back (a confirmation? the stored name? a file listing?), which is the one thing an agent must guess.

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 100%, so the schema already documents all four parameters, which sets the baseline at 3. The description does add real value on top (mutual exclusivity, header row required, why base64 exists), but it stops short of adding anything the schema descriptions don't already imply.

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?

Specific verb and resource ('Send a bank export to this hosted endpoint') with the crucial reframing that there is no filesystem, so the file is uploaded once and referenced by name in statement_import. This cleanly separates it from statement_import, bank_files and statement_export without opening their schemas.

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?

States the selection rule explicitly — 'exactly one of content, content_base64 or url' — and gives the conditions that pick each: plain text/CSV is the normal case, base64 for UTF-16 Excel exports, url recommended above ~10 KB instead of pasting base64. It also routes lifecycle questions to the siblings bank_files and bank_delete_upload.

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

category_rulesSet or list category rulesBInspect

Read the category rules, or pass rules to REPLACE the whole list. A plain match is a substring; a regex compiles only if it cannot backtrack exponentially. An empty match is refused. Free: 5 rules.

NameRequiredDescriptionDefault
rulesNoThe complete rule list; it replaces the stored one. Omit to list the current rules
reapply_allNoAlso overwrite categories set by an earlier rule or by hand. Default false: only uncategorised transactions are touched

TDQS

B3/5.0
Behavior1/5

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

The description transparently states that passing rules REPLACES the whole stored list, but the annotations declare destructiveHint=false. Replacing an entire stored list is an overwriting/destructive operation, so the description contradicts the annotations, which is a serious inconsistency.

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 compact and front-loaded, with every sentence carrying useful operational information. The replacement semantics, matching behavior, safety constraint, and rule limit are all stated without filler or repetition.

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 description covers the key behavioral details and the schema fully documents parameters, but the 'Free: 5 rules' phrase is ambiguous about what happens when more than five rules are supplied. The destructive nature of replacement is also contradicted by the annotations, which undermines the completeness of the context.

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 coverage is 100%, so the baseline is 3, and the description adds meaningful semantics beyond the schema: plain matches are substrings, regexes that can backtrack exponentially are refused, empty matches are rejected, and there is a 5-rule limit. This helps the agent understand validation behavior not captured in the schema.

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 identifies the resource (category rules) and the two operations supported: reading the current rules or replacing the whole list. It does not explicitly distinguish itself from siblings, but the resource and operation semantics are specific enough that the agent can tell it apart from the listed tools.

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 explains what a caller can do but gives no guidance on when to choose this tool over alternatives, such as transaction_categorize, nor any when-not-to-use conditions. There are no exclusions or routing hints to other siblings.

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

license_activateActivate licenseAInspect

Turn Pro on for this connection with key, an MCPL1.. issued at checkout for this server or the bundle. Data under your token stays; a wrong or expired key changes nothing. license_status confirms it.

NameRequiredDescriptionDefault
keyYesLicense key from checkout, MCPL1.<payload>.<signature>

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already indicate this is not read-only and not destructive, and the description adds useful behavioral detail: existing data under the token stays, and a wrong or expired key changes nothing. This goes beyond the annotation hints by explaining failure semantics and safety 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.

Conciseness5/5

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

The description is two sentences with no filler. It front-loads the core action, then gives the key format and safety guarantees, and closes with the verification tool. Every sentence contributes essential information.

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?

For a single-parameter activation tool with annotations covering the safety profile, the description is complete: it states what the tool does, what input is needed, what happens on failure, and how to confirm success. There is no missing critical information for an agent to call it correctly.

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 schema already documents the key parameter and its format with 100% coverage. The description adds meaning by specifying that the key must be issued at checkout for this server or the bundle, which clarifies validity requirements not present in 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?

The description uses a specific verb and resource: it 'turns Pro on' for the connection using a license key. It also distinguishes itself from the sibling license_status tool by saying license_status confirms the activation. This leaves no ambiguity about what the tool accomplishes.

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 context for use: the key must be an MCPL1.<payload>.<signature> issued at checkout for this server or the bundle. It does not explicitly list exclusions or alternative tools, but it does reference license_status as the confirmation path, giving the agent a sense of the workflow.

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

license_statusLicense statusA
Read-onlyIdempotent
Inspect

Report this endpoint's licence state for your token as JSON: the product, the tier free or pro, why it is not Pro, and the checkout URL. Call it to explain a free-tier refusal. No arguments, nothing changes.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds useful context beyond annotations by specifying the JSON response contents and stating 'nothing changes,' reinforcing the read-only nature of the call.

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 dense sentences cover output, purpose, usage context, and side-effect guarantee. Every sentence earns its place and the most important information is front-loaded.

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

Completeness5/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 sufficiently describes the return value. With no parameters, annotations covering safety, and a clear use case, nothing essential is missing for an agent to invoke this tool correctly.

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 already fully documents that fact. The description explicitly says 'No arguments,' which is accurate and reinforces the schema without needing further elaboration.

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 begins with a specific verb ('Report') and a precise resource ('this endpoint's licence state for your token'), and enumerates the exact output fields: product, tier, reason, and checkout URL. This clearly distinguishes it from sibling tools like license_activate.

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 when to call it: 'Call it to explain a free-tier refusal.' This is clear contextual guidance, though it does not name alternatives or explicitly state when not to use it.

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

reconcile_expensesReconcile against the expense ledgerAInspect

Match bank debits against mcp-expense-tracker entries: same currency and amount, date within a few days. Reports matches, unmatched bank lines, expenses never hitting the bank. Read-only. Free: 31 days; Pro: any range.

NameRequiredDescriptionDefault
toYesISO date, inclusive
fromYesISO date, inclusive
accountNoLimit to one bank account
window_daysNoAllowed gap between the expense date and the bank date, default 3. A card payment usually settles a day or two after the receipt

TDQS

A3.5/5.0
Behavior1/5

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

The description states 'Read-only,' but the annotations set readOnlyHint=false, which is a direct contradiction. No other behavioral details are disclosed beyond the report categories and plan 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?

The description is compact and front-loaded: matching rule, outputs, read-only claim, and plan limitation are all in a few sentences. There is no filler or redundant restating of the tool name.

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 description covers output categories and plan constraints, and the schema covers the parameters. However, with no output schema and the contradictory read-only claim, the actual behavioral profile is unclear, and the Free-tier limit behavior is underspecified.

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 parameters are already documented. The description adds matching semantics like 'same currency and amount, date within a few days,' but it does not meaningfully clarify the individual parameters 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 names a clear operation: match bank debits against mcp-expense-tracker entries using currency, amount, and date proximity. It also lists the report outputs, which distinguishes it from sibling list/import/export tools.

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?

It gives a clear context for when to use the tool: reconciling bank debits with ledger entries and seeing unmatched items. It does not explicitly name sibling alternatives or exclusion conditions, but the intended niche is easy to infer.

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

recurring_detectSubscriptions and recurring charges in the bank dataBInspect

Find charges that come back: debits grouped by counterparty and currency with a steady amount and interval, with cadence, typical amount, next due date and annual cost. Free: 3 months, 5 charges.

NameRequiredDescriptionDefault
monthsNoHow far back to look, default 3. Two occurrences are enough to see a cadence, three make it certain
accountNoLimit to one account
min_occurrencesNoOccurrences required before a charge counts as recurring, default 2

TDQS

B3.2/5.0
Behavior3/5

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

The annotations are all present but largely negative, so the description still carries the burden of behavioral disclosure. The description does add useful context by describing the result composition and the free-tier limit, but it does not state whether the tool has side effects, consumes quota, or requires licensing. No contradiction with the annotations is present.

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 compact and front-loaded with the primary action ('Find charges that come back') followed by the useful output dimensions. The wording is slightly dense with several comma-separated output attributes, but there is no filler and every sentence earns its place.

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 moderate-complexity tool with three well-documented parameters and no output schema, the description provides enough context: it names the grouping logic, output fields, and the free-tier limit. It does not spell out output formatting or edge cases, but the key invocation-relevant behavior is covered.

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%, and each parameter already has a meaningful description, so the description is not required to repeat parameter details. The description adds no per-parameter semantics beyond what the schema provides; the free-tier note is a service limitation rather than parameter meaning.

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 uses a specific verb and resource: it 'find[s] charges that come back' and identifies subscriptions/recurring debits grouped by counterparty and currency. It clearly conveys the tool's purpose without naming sibling tools, so it is clear but does not explicitly differentiate itself from siblings like transactions_search or statement_summary.

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 guidance about when to use this tool versus alternatives such as transactions_list, transactions_search, or statement_summary. The 'Free: 3 months, 5 charges' line is a limitation/constraint rather than a usage guideline, and no explicit when/when-not conditions are provided.

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

statement_exportExport bank transactions to a fileA
Read-onlyIdempotent
Inspect

Export the BANK transactions of a date range (a month, a quarter, a year) as .csv or .json and return a download link valid for one hour. This is the tool for "export September" once a statement has been imported. Nothing partial is ever written.

NameRequiredDescriptionDefault
toYesISO date, inclusive
fromYesISO date, inclusive
pathYesName for the downloaded file, e.g. september. It comes back as a download link valid for one hour
formatYescsv for a spreadsheet, json for a program
accountNoLimit to one account
categoryNoLimit to one category

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, but the description adds non-redundant behavioral specifics: 'return a download link valid for one hour' and 'Nothing partial is ever written.' These go beyond the annotations, offering an atomicity guarantee and output lifetime that an agent would otherwise not know.

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-loaded with the core action and key details, followed by a usage statement. No filler. The description is compact and every clause earns its place.

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?

No output schema exists, but the description explicitly explains the return value (a download link valid for one hour) and the file formats. It also covers the intended use case. Given the tool's simplicity and full schema coverage, nothing an agent needs to call it correctly is missing.

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% and the descriptions for from, to, format, path, account, and category are already clear. The description does not add meaning beyond what the schema provides – it only restates the date range and formats. With full schema coverage, the 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 action (export), the resource (bank transactions), the date range scope, and the file formats (.csv/.json). It also explicitly positions the tool as the one for 'export September' once a statement has been imported, distinguishing it from sibling tools like statement_import or transactions_list.

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?

Provides explicit context for when to use: 'once a statement has been imported.' This gives a clear precondition and implies the alternative (statement_import) without naming it. The format guidance ('csv for a spreadsheet, json for a program') further clarifies usage decisions.

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

statement_importImport a bank CSVAInspect

Call this tool to read a bank CSV into the local ledger. Columns detected from headers (date, description, amount, currency, balance); amounts use the file's locale; stored lines skipped. Returns detected/stored/skipped.

NameRequiredDescriptionDefault
bankNoBank profile. Default "auto": the headers decide. "generic" skips profile detection and uses the header heuristics alone
pathYesName of a statement uploaded with bank_upload
accountNoName for this account, e.g. "business EUR". Default: the file name without its extension. Later imports of the same account are deduplicated against it
currencyNoCurrency for rows where the file names none. Defaults to the shared business profile's default_currency, else EUR; the response says which it used
overwriteNoDelete every transaction already stored for this account before importing, instead of merging. Use it when the bank reissued a corrected export

TDQS

A4.4/5.0
Behavior5/5

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

The description goes beyond the all-false annotations by disclosing line-level deduplication ('stored lines skipped'), locale-sensitive amount parsing, and the detected/stored/skipped return summary. It does not contradict the annotations: idempotentHint=false is not incompatible with this line-level dedupe claim.

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 deliver the purpose first, then parsing/dedupe behavior and return value. Every sentence adds useful information, and there is no repetition of schema 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?

With no output schema, the description appropriately summarizes the return as detected/stored/skipped and covers key runtime behaviors. It does not mention the bank_upload prerequisite in prose, though the schema's path parameter does; this is a minor gap given full schema coverage.

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?

All five parameters already have rich descriptions in the schema, so the baseline is 3. The description adds file-format context such as header detection and locale behavior, but does not add per-parameter meaning beyond what the schema already provides.

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

Purpose5/5

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

The description states a specific action: 'read a bank CSV into the local ledger' and names the key outcome counts. This clearly distinguishes importing from sibling operations like bank_upload or statement_export, even without naming them.

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 opening phrase 'Call this tool to read a bank CSV into the local ledger' provides a direct trigger condition. It does not explicitly compare with alternatives or list when-not-to-use cases, but the intended context is clear.

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

statement_summaryWhat I spent, from the bank accountA
Read-onlyIdempotent
Inspect

What was spent/received in a date range per the BANK ACCOUNT, grouped by category, month, account or counterparty. For "what did I spend in August" once imported. Totals are per currency, never summed or converted.

NameRequiredDescriptionDefault
toNoISO date, inclusive. Default: today
topNoGroups returned per currency, largest net first. Default 25
fromNoISO date, inclusive. Default: the start of the current month
accountNoLimit the summary to one account
group_byNoDefault category

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already cover read-only and non-destructive behavior. The description adds useful behavioral detail beyond annotations: totals are per currency, never summed or converted, and the source is the bank account. This helps the agent understand output semantics without contradicting the annotations.

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

Conciseness5/5

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

The description is three short sentences: function, use case, and a key caveat. Every sentence earns its place and the essential purpose is front-loaded. No redundant or filler 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?

Given the rich schema and annotations, the description covers the core behavior, grouping, currency handling, and an example use case. There is no output schema, so a bit more detail about the exact return shape could help, but the description already conveys that results are grouped totals per currency.

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 parameters like from, to, top, account, and group_by are already fully documented. The description adds no parameter-level detail beyond the schema, which matches the baseline of 3 for complete schema 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 tool summarizes spent/received amounts over a date range for the bank account, with explicit grouping options (category, month, account, counterparty). This distinguishes it from transaction-level siblings like transactions_list and transactions_search by emphasizing aggregation and grouping.

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 gives a concrete use case ('what did I spend in August') and notes the prerequisite that data must be imported. It provides clear context for when this tool is appropriate, though it does not explicitly name alternatives or state when not to use it.

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

transaction_categorizeCategorise transactions by idAInspect

Set or clear the category on transactions by id, for a one-off no rule is worth writing for. Every id is checked first, so one unknown id refuses the whole call. category_rules matches by text instead.

NameRequiredDescriptionDefault
idsYesTransaction ids, as returned by transactions_list or transactions_search
categoryYesCategory to set. Pass an empty string to clear it

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=false, openWorldHint=false. The description adds valuable behavioral context: 'Every id is checked first, so one unknown id refuses the whole call.' This discloses an all-or-nothing validation behavior that is not visible in the schema or annotations. It doesn't mention side effects or permissions, but the annotations cover the safety profile, so a 4 is appropriate.

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

Conciseness5/5

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

Three sentences with zero waste. The core action is front-loaded, the all-or-nothing behavior is stated, and the sibling distinction is given. Every sentence earns its place.

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 two-parameter tool with 100% schema coverage and annotations covering the safety profile, the description is nearly complete. It explains the one-off use case, the validation behavior, and the alternative. It doesn't describe the return value, but there is no output schema and the tool is a simple mutation, so this is a minor gap.

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 both parameters. The description adds the semantic that 'category' can be cleared by passing an empty string, which is already in the schema ('Pass an empty string to clear it'). The description doesn't add much beyond the schema, so baseline 3 is correct.

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 states a specific verb ('Set or clear'), a specific resource ('category on transactions by id'), and explicitly contrasts itself with category_rules ('matches by text instead'). This clearly distinguishes it from the sibling tool category_rules, which is the main alternative for categorization.

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?

The description explicitly says when to use this tool: 'for a one-off no rule is worth writing for.' It also names the alternative (category_rules) and the condition that selects it ('matches by text instead'). This gives an agent clear routing guidance.

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

transactions_listList transactionsA
Read-onlyIdempotent
Inspect

List stored transactions in a date range, optionally for one account or category, or only the ones no rule has categorised yet. Totals are reported per currency and never added across currencies.

NameRequiredDescriptionDefault
toNoISO date YYYY-MM-DD, inclusive. Default: today
fromNoISO date YYYY-MM-DD, inclusive. Default: the start of the current month
limitNoRows returned, default 200. Totals always cover the whole range
accountNoLimit to one account, as named at import
categoryNoOnly transactions in this category
uncategorizedNoOnly transactions with no category yet

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, covering the safety profile. The description adds the behavior that totals are per currency and never summed across currencies, which is useful. It does not describe pagination or sorting, but these are not essential given the schema's limit parameter and the tool's straightforward nature.

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 zero waste. It front-loads the core purpose (listing transactions in a date range) and immediately provides the key behavioral caveat about currency totals. No redundant phrases.

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 absence of an output schema, the description could be expected to explain the return format, but as a list tool the return is self-evident. It covers the main functionality, optional filters, and the currency behavior. It does not mention pagination, but the limit parameter in the schema addresses row counts.

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 descriptions cover all six parameters with clear explanations (e.g., ISO dates, default values, limit behavior). The tool description does not add meaning beyond the schema, so it meets the baseline of 3 for high schema coverage.

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 it lists stored transactions in a date range with optional filters for account, category, or uncategorized. The verb 'list' distinguishes it from the sibling 'transactions_search', though the description does not explicitly call out this differentiation.

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 listing transactions in a range with optional filters, but it does not explicitly state when to prefer this tool over alternatives like transactions_search or statement_summary. There is no mention of exclusions or when not to use it.

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. 15 tool updates
    • First observedaccounts_list
    • First observedbank_delete_upload
    • First observedbank_files
    • First observedbank_upload
    • First observedcategory_rules
    • First observedlicense_activate
    • First observedlicense_status
    • First observedreconcile_expenses
    • First observedrecurring_detect
    • First observedstatement_export
    • First observedstatement_import
    • First observedstatement_summary
    • First observedtransaction_categorize
    • First observedtransactions_list
    • First observedtransactions_search

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
    A
    quality
    B
    maintenance
    Enables parsing and filtering of mBank CSV operation exports locally. Supports data aggregation and querying through natural language, running entirely offline with no network calls.
    3
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Deterministic bank-statement parsing for AI agents: messy CSV/OFX exports to clean, categorized ledger rows. In-memory only, no storage, no external calls, no LLM in the loop.
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables users and AI agents to reconcile CSV bank statements against invoices or bills by matching amounts and references, then sorting each line into matched, likely, review, or unmatched groups with reasons. It exposes read-only tools for matching files and inspecting detected CSV columns and row counts.
    569 npm
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.