ezEngine Release 26.9
Loading...
Searching...
No Matches
ezMcpToolRegistry Class Reference

Owns one instance of every ezMcpToolProvider and routes calls to them. More...

#include <McpToolRegistry.h>

Static Public Member Functions

static void UpdateProviders ()
 Instantiates every provider type that isn't known yet.
 
static void Clear ()
 Destroys all providers. Called when the plugin is unloaded.
 
static const ezDynamicArray< ezMcpToolDesc > & GetTools ()
 All tools of all providers, in registration order.
 
static void SetExecuteWrapper (ezMcpExecuteWrapper wrapper)
 Installs the host's wrapper around every tool call. Pass an invalid delegate to remove it.
 
static ezResult Execute (ezStringView sToolName, const ezVariantDictionary &arguments, ezMcpToolResult &out_result)
 Runs a tool. Fails only if no tool of that name exists - a tool that ran but didn't like its arguments reports that through out_result instead.
 

Detailed Description

Owns one instance of every ezMcpToolProvider and routes calls to them.

The registry is filled through reflection, so a provider in another plugin needs no registration call - it only has to exist.

Member Function Documentation

◆ UpdateProviders()

void ezMcpToolRegistry::UpdateProviders ( )
static

Instantiates every provider type that isn't known yet.

Idempotent, and called again when the server starts, because plugins may be loaded after the one that owns the server and would otherwise never be picked up.

Provider types that cannot be allocated are skipped, which is what makes an abstract provider base usable: a tool that exists in several hosts declares the shared half with ezRTTINoAllocator and each host derives the concrete type that is actually instantiated here.


The documentation for this class was generated from the following files: