![]() |
ezEngine Release 26.9
|
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. | |
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.
|
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.