toolkit_info
Returns the current toolkit state: installed MCPs, their connection status, the accounts connected to each one, and how many catalog tools each exposes.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Returns the current toolkit state: installed MCPs, their connection status, the accounts connected to each one, and how many catalog tools each exposes.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, establishing a safe read-only operation. The description adds value by detailing exactly what the returned state contains, going beyond the annotation labels without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that immediately states the action and resource, then efficiently lists all included content. Every word contributes meaning; no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only informational tool with strong annotations, the description is complete. It specifies the return content (installed MCPs, statuses, accounts, catalog counts) and needs no further context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With zero parameters and an empty input schema, the baseline is 4. The description correctly focuses on output semantics rather than parameters, which is appropriate here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Returns') and a clearly defined resource ('current toolkit state') followed by precise enumerations: installed MCPs, connection status, connected accounts, and catalog tool counts. This distinguishes it from sibling tools like show_version or connect.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the tool's purpose evident: use it when you need an overview of the current toolkit state, including connections and accounts. It does not explicitly mention alternatives or exclusions, but the unique informational scope and zero parameters provide clear context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Add one secure layer between your agents and this server.
Most openfinance_ tools target distinct resources (accounts, transactions, bills, loans, investments, connections, categories), so the core surface is clearly separated. However, several pairs could be confused at first glance: list_transactions vs list_transactions_by_item (both return transactions but at different scopes), get_credit_card_bill vs list_credit_card_bills (bill detail vs list of bills), and get_account_balance vs get_accounts_detail (balance snapshot vs full account object). The detailed descriptions help, but the overlap is nontrivial.
The openfinance_* tools follow a consistent pattern (list_, get_, update_, search_, force_sync, provider_status, disconnect_bank), all using snake_case with a clear domain prefix. However, the general platform tools (authenticate, connect, marketplace, report_bug, show_version, toolkit_info) have no such prefix or consistent verb_noun pattern, mixing the convention. The finance subset is strong, but the overall set isn't uniform.
At 25 tools, this is at the upper boundary of acceptable for a broad financial domain covering connections, accounts, transactions, credit cards, loans, investments, categories, and provider health. Each tool adds real capability, so it doesn't feel bloated, but it's heavier than typical and pushes the borderline between well-scoped and too many.
The surface covers the Open Finance lifecycle thoroughly: connection management (list, reconnect, force sync, disconnect, provider status), account/balance reads, transaction listing (with filters, pagination, rich detail), credit card bills (closed and open/debt), loans, investments, category management, and a connector search. Obvious gaps like a tool for creating connections are handled via widget URLs rather than an API call, so the coverage feels adequate. Minor gaps exist (e.g., no explicit tool for updating a connection's credentials beyond reconnect URLs), but nothing that would block core workflows.