# Tools

A tool is a method the model can call during a chat. Use a shipped toolkit, write your own `@Tool` class, or define a tool at runtime.

- [Actions and tools](../agents/actions-and-tools.md): choose between an action, a `@Tool` class, a built-in toolkit and an MCP tool.
- [Catalog](catalog.md): the 63 shipped toolkits and their tools.
- [Custom tools](custom.md): write a class with `@Tool` methods and set per-tool deadlines.
- [Register tools](register.md): register toolkits and runtime-defined tools, and filter or observe tool calls.
- [Idempotency](idempotency.md): make retries of side-effecting tools safe.
- [Examples](examples.md): attach example calls with `@ToolExample`.
- [Images and speech](images-and-speech.md): image generation, text-to-speech and speech-to-text toolkits.
- [Docling](docling.md): convert documents through a Docling MCP server or the Docling CLI.
- [Graph stores](../rag/graph-stores.md): the knowledge-graph toolkit as a retrieval backend.

For tools from MCP servers, see [MCP client](../mcp/client.md).
