nsmcp::ToolRegistry method call (public)

 <instance of nsmcp::ToolRegistry[i]> call context authorizer name \
    arguments

Defined in /usr/local/ns/tcl/nsmcp/lib/tools.tcl

Parameters:
context (required)
authorizer (required)
name (required)
arguments (required)

Testcases:
No testcase defined.
Source code:
if {![dict exists ${:tools} $name]} {
    return -code error -errorcode {NSMCP RPC -32602} "Unknown tool"
}
set tool [dict get ${:tools} $name]
$authorizer require $context [$tool permission]
$tool validate $arguments
if {[catch {$tool execute $context $arguments} result options]} {
    if {[lrange [dict get $options -errorcode] 0 1] eq {NSMCP RPC}} {
        return -options $options $result
    }
    ns_log error "nsmcp: tool execution failed: $name"
    return [list {} object {content array {0 object {type string text text string {Tool execution failed; consult the server log.}}} isError boolean true}]
}
# Both structured output and text for clients without structured support.
return [list {} object [list structuredContent object [lindex $result 2]  content array [list 0 object [list type string text text string [ns_json value -- $result]]]  isError boolean false]]
XQL Not present:
Generic, PostgreSQL, Oracle
[ hide source ] | [ make this the default ]
Show another procedure: