Tool type works directly with ToolCard. There is no global registry, provider, or configuration step — define a plain object that matches the type and pass it straight to the component.
Minimal custom tool
The only required fields areid and name. Everything else is optional:
Custom tool with fields and an inline SVG image
Useas const satisfies Tool for the strictest typing, an inline SVG string for the logo, and a fields array to describe the connector’s configuration inputs:
Custom tool with a hosted image URL
If you have a stable hosted asset, use{ type: "url", src: "..." } instead of an inline SVG string:
Type-safe custom tools
For the strictest compile-time guarantees, useas const satisfies Tool. TypeScript will narrow every field to its literal type, and fields will be typed as a readonly tuple:
Mixing catalog and custom tools
Catalog entries and custom tools share the sameTool type, so they can be combined freely in a single array: