Interface: ToolConfig<TContext, TShared>
Defined in: packages/core/src/core/builder/defineTool.ts:101
Full defineTool() configuration.
Type Parameters
| Type Parameter | Default type | Description |
|---|---|---|
TContext | - | Application context type |
TShared extends ParamsMap | ParamsMap | Shared params map type |
Properties
actions?
optional actions: {
[key: string]: ActionDef<TContext, InferParams<TShared>, ParamsMap>;
};Defined in: packages/core/src/core/builder/defineTool.ts:117
Flat actions — each action's params are inferred independently
Index Signature
[key: string]: ActionDef<TContext, InferParams<TShared>, ParamsMap>annotations?
optional annotations: Record<string, unknown>;Defined in: packages/core/src/core/builder/defineTool.ts:115
MCP tool annotations (e.g. { readOnlyHint: true, openWorldHint: true })
description?
optional description: string;Defined in: packages/core/src/core/builder/defineTool.ts:103
Tool description for the LLM
discriminator?
optional discriminator: string;Defined in: packages/core/src/core/builder/defineTool.ts:107
Discriminator field name (default: 'action')
groups?
optional groups: {
[key: string]: GroupDef<TContext, InferParams<TShared>>;
};Defined in: packages/core/src/core/builder/defineTool.ts:119
Hierarchical groups (mutually exclusive with actions)
Index Signature
[key: string]: GroupDef<TContext, InferParams<TShared>>middleware?
optional middleware: (
| MiddlewareFn<TContext>
| MiddlewareDefinition<TContext, Record<string, unknown>>)[];Defined in: packages/core/src/core/builder/defineTool.ts:113
Global middleware applied to all actions (accepts both MiddlewareFn and MiddlewareDefinition)
shared?
optional shared:
| ZodObject<ZodRawShape, UnknownKeysParam, ZodTypeAny, {
[key: string]: any;
}, {
[key: string]: any;
}>
| TShared;Defined in: packages/core/src/core/builder/defineTool.ts:111
Parameters shared across all actions
tags?
optional tags: string[];Defined in: packages/core/src/core/builder/defineTool.ts:105
Capability tags for filtering
toonDescription?
optional toonDescription: boolean;Defined in: packages/core/src/core/builder/defineTool.ts:109
Use TOON-formatted descriptions