Get knowledge base version
get_kb_versionRetrieve the current version of the knowledge base.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| kb_version | Yes |
get_kb_versionRetrieve the current version of the knowledge base.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
| Name | Required | Description | Default |
|---|---|---|---|
| kb_version | Yes |
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already communicate read-only, idempotent, and non-destructive behavior. The description adds only the 'current' scoping detail, which distinguishes it from changelog or historical queries, but no further behavioral context such as error cases or caching is provided.
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, focused sentence with no filler. The verb and object are front-loaded, making it instantly scannable.
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 tool with a rich annotation set and an output schema, the description fully covers what an agent needs. There are no edge cases or parameters to document.
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 input schema has zero parameters, so there is no parameter information to convey. The baseline of 4 applies because the description is not expected to add meaning beyond an empty schema.
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 ('Retrieve') and resource ('the current version of the knowledge base'), making the tool's purpose immediately clear. The qualifier 'current' differentiates it from history-related siblings like kb_changelog.
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?
While there is no explicit 'when to use' or 'use instead' language, the description clearly implies its use case: fetching the current knowledge base version. This is sufficient context given the tool's trivial nature and distinctness from sibling getters.
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 target a clearly distinct resource and action, and the list/register/update/set tool families are easy to tell apart. The closest pair is diagnose_preview and diagnose_shot, which are well-described but similar enough in name that an agent could select the wrong one.
The overwhelming majority of tools follow a consistent verb_noun pattern (list_beans, register_grinder, update_shot, set_active). Minor exceptions like grinder_math and kb_changelog lack the imperative verb prefix, but they are readable and do not create real confusion.
34 tools is above the 25+ threshold and feels heavy even though the domain is fairly rich. The many parallel list_* and register_* tools for beans, grinders, machines, scales, waters, programs, and recipes could plausibly be consolidated or trimmed without losing core capability.
The core shot lifecycle is well covered: log, update, delete, diagnose, and list shots, plus bean registration and maintenance tracking. However, most registered entities lack update/delete tools, and get_rule has no corresponding list_rules tool, leaving some obvious workflow gaps that agents must work around.