Unravel Engine C++ Reference
Loading...
Searching...
No Matches
mcp_tool_registry.h
Go to the documentation of this file.
1#pragma once
2
3#include <functional>
4#include <string>
5#include <unordered_map>
6#include <vector>
7
8#include <context/context.hpp>
9#include <ser20/external/simdjson/simdjson.h>
10
11namespace unravel::mcp
12{
13
15{
16 std::string text;
17 bool is_error{false};
19 std::string image_base64;
20 std::string image_mime{"image/png"};
21};
22
23using tool_handler = std::function<tool_result(rtti::context& ctx, const simdjson::dom::object& args)>;
24
26{
27 std::string name;
28 std::string description;
29 std::string input_schema_json;
31 bool mutates_scene{false};
36};
37
39{
40public:
41 void add(mcp_tool tool);
42 auto find(const std::string& name) const -> const mcp_tool*;
43 auto tools() const -> const std::vector<mcp_tool>&;
44 auto list_tools_json() const -> std::string;
45
46private:
47 std::vector<mcp_tool> tools_;
48 std::unordered_map<std::string, size_t> index_;
49};
50
60
61} // namespace unravel::mcp
auto find(const std::string &name) const -> const mcp_tool *
auto list_tools_json() const -> std::string
auto tools() const -> const std::vector< mcp_tool > &
std::string name
Definition hub.cpp:33
void register_asset_tools(mcp_tool_registry &registry)
void register_material_tools(mcp_tool_registry &registry)
std::function< tool_result(rtti::context &ctx, const simdjson::dom::object &args)> tool_handler
void register_scene_batch_tools(mcp_tool_registry &registry)
void register_scene_tools(mcp_tool_registry &registry)
void register_script_tools(mcp_tool_registry &registry)
void register_project_tools(mcp_tool_registry &registry)
void register_viewport_tools(mcp_tool_registry &registry)
void register_ops_batch_tools(mcp_tool_registry &registry)
void register_editor_tools(mcp_tool_registry &registry)
std::string image_base64
Optional PNG (or other) payload returned as an MCP image content block.