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 the safety profile is well covered. The description adds valuable context by detailing exactly what information is returned (MCPs, connection status, accounts, catalog tool counts), which goes beyond the bare annotations. No contradictions found.
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 entire description is a single, front-loaded sentence that immediately names the action ('Returns the current toolkit state') and then enumerates the contents with a clear colon-separated list. There is no wasted wording or redundancy, and every phrase earns its place.
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?
Given the tool is a simple zero-parameter read-only state inspector, the description is complete. It explicitly lists all four categories of returned information, making it fully self-contained despite the absence of an output schema. No further detail about return values is necessary to invoke it correctly.
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 rubric sets a baseline of 4 for parameterless tools. The description appropriately focuses on the output rather than input semantics, and there are no undocumented parameters to compensate for.
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' and enumerates the specific components: installed MCPs, connection status, connected accounts, and catalog tool counts. This distinguishes it from all siblings, which are operational tools (authenticate, connect, feegow_*) rather than state inspection.
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 clearly implies when to use it: when you need an overview of the toolkit's integrations and their status. It does not explicitly name alternatives or exclusions, but no sibling tool serves a similar purpose, so the context is unambiguous and sufficient for an agent to select it.
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.
Many tools have identical descriptions (e.g., multiple tools with same 'Read appointments and scheduling data' text) and only differ by a 'flattened action' label, making it impossible for an agent to distinguish which tool to call for a specific operation.
Names follow a loose verb_noun pattern but are extremely inconsistent: some use underscores, some have redundant prefixes like 'feegow_appointment_', and the same actions are duplicated across multiple tool names (e.g., 'list' appears in many). The 'flattened action' suffix is confusing.
94 tools is far too many for a clinic management system. This is clearly due to a one-action-per-tool design that fragments the API surface, making the server bloated and hard to navigate. A typical well-structured server for this domain would have 10-20 tools.
The server covers many areas (appointments, patients, financial, procedures, stock, etc.), suggesting broad functionality. However, the fragmentation obscures gaps and makes it difficult to determine if all CRUD operations exist for each entity. Some areas (e.g., stock write) have multiple tools for single actions.