Skip to main content
Glama

openfinance_force_sync

Forces the bank to re-sync one or more connections NOW and WAITS for it to finish (PATCH /items/:id, then polls until the item stops updating, up to ~60s). Use this when a balance or transaction list looks stale: a connection can read UPDATED yet be hours old, and this pulls fresh data WITHOUT disconnecting/reconnecting. Pass items as an array of selectors (item_id, connector_id, connector_name, or the user-set custom_label nickname); OMIT items to sync ALL linked banks. Returns { results, errors }; each result has the final status, executionStatus, lastUpdatedAt (advances when data is refreshed), and synced (true = fresh data is ready). needs_action (e.g. MFA_REINTERACTION / LOGIN_ERROR / WAITING_USER_INPUT) means the user must re-authenticate — those results include a reconnect_url that opens the widget in UPDATE mode for that exact connection (user enters credentials / MFA token, data refreshes in place, no slot consumed, no disconnect needed). timed_out: true means the sync is still running — re-check with openfinance_get_item_status. Set wait: false for fire-and-forget (returns immediately while UPDATING).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
waitNo
itemsNo

TDQS

A4.9/5.0
Behavior5/5

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

Describes wait time (~60s), polling mechanism, returned fields (status, executionStatus, etc.), and special cases like needs_action with reconnect_url and timeout. No contradiction with annotations; the description adds depth beyond the structured fields.

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 detailed and well-structured, front-loading the core action. While slightly lengthy, every sentence adds value (e.g., explaining return formats and edge cases). Minor redundancy in listing selector types could be trimmed.

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 no output schema, the description covers return values (results/errors), error states (needs_action, timeout), and fallback behavior. It addresses all likely agent queries about syncing, making the tool fully understandable without external references.

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

Parameters5/5

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

Input schema has 0% description coverage, so the description fully explains both parameters: 'items' as selectors array with examples, 'wait' as fire-and-forget flag. This compensates completely for the schema's lack of 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 tool forces a bank re-sync and waits for completion. It distinguishes from siblings by emphasizing 'without disconnecting/reconnecting' and includes specific use cases like stale balances. The verb 'forces' and resource 'connections' are precise.

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?

Explicitly states when to use (stale balance/transactions) and alternatives (openfinance_get_item_status for re-check, wait: false for fire-and-forget). Provides clear guidance on omitting items to sync all vs. passing selectors.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4.2/5.0
Disambiguation5/5

Every tool has a clearly distinct purpose: accounts, transactions, credit card bills, loans, investments, connections, sync, categories, provider status, and platform meta-tools are all separable. Even the two transaction tools differ (per-account list vs consolidated analysis) and the two status tools differ (connection vs provider health).

Naming Consistency4/5

The openfinance_* prefix is consistently applied across the financial domain, and most follow a verb_noun pattern (list_accounts, get_balance, update_category). However, there are non-prefixed tools (authenticate, connect, marketplace, toolkit_info) and one outlier like openfinance_provider_status (noun instead of verb) that slightly break the pattern.

Tool Count3/5

25 tools is at the upper boundary of what feels heavy for a single server, even for a comprehensive financial aggregation toolkit. The number is justified by the breadth of domains covered (accounts, credit, loans, investments, connections, platform features), but it requires careful agent selection and might be better split into separate servers.

Completeness5/5

The surface covers the full financial data lifecycle: listing and fetching details for all asset types, updating transaction categories, managing connections (list, sync, disconnect, reauth), checking provider health, and searching connectors. There are no obvious dead ends—every domain has read and appropriate write/update operations.