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=true, idempotentHint=true, and destructiveHint=false, so safety is covered. The description adds meaningful context beyond annotations by specifying what the state contains (installed MCPs, connection status, accounts, catalog tool count). This helps the agent understand the return value and scope without requiring an output schema. It does not contradict any annotation.
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, concise sentence that front-loads the core action ('Returns the current toolkit state') and then lists the key dimensions of that state. Every word adds value, with no repetition, filler, or redundant detail. It is maximally efficient for the information it conveys.
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, the description is fully complete. It tells the agent exactly what will be returned: installed MCPs, connection status, accounts, and catalog tool count. There is no output schema, but the description covers the return content sufficiently. No additional exclusions, prerequisites, or error conditions are relevant for such a straightforward status tool.
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?
The tool has zero parameters, and the schema's coverage is 100% (empty properties). With no parameters to explain, the baseline is 4. The description does not need to add parameter semantics, and it correctly avoids inventing any nonexistent inputs.
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 clearly specifies the tool's function with a specific verb ('Returns') and a distinct resource ('current toolkit state'), then enumerates exactly what that includes (installed MCPs, connection status, accounts, catalog tool count). This distinguishes it from sibling tools like openfinance_list_accounts or connect, which focus on specific operations rather than an overall status overview.
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 implies usage as a status/overview tool, but it does not explicitly state when to use it versus alternatives or when not to use it. It neither names alternatives nor provides context like 'check this before connecting.' The intended use is inferable from the name and description, but no explicit guidance is given.
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.
The openfinance_* tools are mostly distinct list/get/update/sync operations, and the non-openfinance tools are clearly separate platform utilities. A few pairs could be confused, such as openfinance_list_accounts vs openfinance_get_accounts_detail, or openfinance_get_item_status vs openfinance_list_connections, but the descriptions generally make the intended use clear.
The domain tools follow a consistent openfinance_verb_noun pattern, making the bulk of the API predictable. The deviation comes from the six non-prefixed platform tools, and one or two names like openfinance_provider_status are noun-led rather than verb-led, but overall the convention is coherent.
25 tools is at the heavy end of the range, and the server would feel tighter if some get/list pairs were consolidated. However, the breadth is somewhat justified by the number of Open Finance resource types covered: accounts, transactions, bills, investments, loans, connections, categories, and sync/status operations plus platform utilities.
The Open Finance surface is thorough: connection lifecycle, account data, balances, transactions, credit card bills, investments, loans, categories, sync, and provider health are all covered. There are no significant dead ends, and the additional platform tools handle authentication, marketplace discovery, and system information.