ToolCatalog(
self,
groups: tuple[ToolGroup, ...],
unavailable: tuple[UnavailableServer| Name | Type |
|---|---|
| groups | tuple[ToolGroup, ...] |
| unavailable | tuple[UnavailableServer, ...] |
| mcp_error | str | None |
Everything dcode tools list needs to render, in display order.
Built-in group first, then one group per MCP server that exposes tools.
MCP servers discovered with no tools (errored, needing login, or disabled).
Surfaced rather than dropped so a user debugging a missing tool can see why it is absent.
Generic notice set when MCP discovery itself failed; None on success.
Raw exception detail is logged at debug level, never embedded here, so no file paths or stack traces leak into CLI/JSON output.