NAME
Catalyst::Plugin::MCP::Role::ToolProvider - MCP tool provider contract
REQUIRED METHODS
list( $cursor )
Return { tools => \@items }. Each tool is a hashref with at least a name. Tools are NOT paginated: list must return the complete tool set (the engine validates a tools/call name against it). Keep list cheap: it is also called once per tools/call to validate the name, so cache it or make it a trivial lookup if the underlying source is expensive.
call( $name, $args )
Return a tool result hashref. For an execution failure return a normal result carrying isError => 1 with content, NOT an exception. (Unknown-tool and bad-argument cases are protocol errors raised by the engine, not here.)