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=false. The description adds valuable context beyond annotations by specifying exactly what the tool reports (installed MCPs, connection status, accounts, catalog tool counts). This enriches the agent's understanding without contradicting any annotations.
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, well-structured sentence that front-loads the key purpose ('Returns the current toolkit state') and enumerates the specific data returned. Every word adds value with no redundancy or filler.
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 tool with no output schema, the description is fully complete. It tells the agent what the tool returns, which is sufficient given the tool's simplicity and the annotated safety characteristics.
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 takes no parameters, and the input schema is an empty object with 100% coverage. Per the rubric, the baseline for 0 parameters is 4. The description doesn't need to explain parameters, and it doesn't, so the score is appropriate.
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 states the tool returns the current toolkit state, listing specific data points (installed MCPs, connection status, connected accounts, catalog tool counts). This makes its purpose explicit and distinct from sibling tools like connect or openfinance_list_accounts, which perform actions or list domain-specific items.
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 use cases: when you need an overview of the toolkit's overall status and health. It doesn't explicitly mention alternatives or when not to use, but the context of sibling tools (connect, authenticate, etc.) makes it clear this is the diagnostic/status tool. The lack of explicit exclusions is a minor gap.
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 tools map clearly to a distinct openfinance resource or action (accounts, transactions, bills, investments, loans, connections, provider health), and the platform utilities are a separate family. The only realistically confusable pairs are openfinance_list_transactions vs openfinance_list_transactions_by_item and openfinance_list_accounts vs openfinance_get_accounts_detail, but the descriptions draw sharp boundaries between them.
The 19 openfinance_* tools follow a strong openfinance_<verb>_<noun> convention, with only minor exceptions like openfinance_provider_status and openfinance_list_transactions_by_item. The six platform tools mix bare verbs (authenticate, connect), nouns (marketplace, toolkit_info), and verb_noun (report_bug, show_version), but they are clearly a separate utility layer.
25 tools sits at the top of the 'feels heavy' band. The number is defensible for a full Open Finance data product plus platform management tools, but an agent is exposed to a lot of surface area, and the same server mixes a banking-data adapter with a marketplace/utility layer.
The openfinance surface covers the full lifecycle: search/connect/reconnect/disconnect banks, force-sync, item status, provider incidents, accounts, balances, transactions per account and per connection, credit-card bills with paid-status derivation, investments and investment transactions, loans, loan detail, and transaction categorization. Platform tools cover auth, connection status, toolkit state, version, bug reporting, and marketplace operations, so there are no obvious dead ends.