Files
integration/Plugins/BlueprintMCP/endpoint-rename-plan.md

207 lines
16 KiB
Markdown
Raw Normal View History

# BlueprintMCP Endpoint Naming Plan
Convention: every endpoint is `verb_noun`. Names should be descriptive enough that you can guess what the endpoint does without reading documentation. Verbs:
- **dump** — return the entire contents of a single object (blueprint, graph, material, etc.)
- **list** — enumerate assets or sub-elements from the asset registry (cheap, no loading)
- **search** — deep search that loads assets, inspects their contents, and returns matches
- **find** — look up references or locate specific items by criteria
- **create** — make a new asset/graph/struct/enum
- **add** — add a sub-element to an existing thing (variable, component, parameter, etc.)
- **remove/delete** — remove a sub-element or asset
- **set/change** — change a property value or type
- **rename** — rename something
- **connect/disconnect** — wire/unwire pins
- **validate/compile** — compile and report errors
- **snapshot/diff/restore** — capture, compare, and restore graph state
## Blueprint — Read/Query
| Current | Proposed | Description |
|---------|----------|-------------|
| `list` | `list_blueprint_assets` | List all blueprint and level blueprint assets from the asset registry (no loading). Optional `query` filters by name/path substring. Optional `parentClass` filters by parent class name. Returns name, path, and parent class for each. |
| `blueprint` | `dump_blueprint` | Load one blueprint by name and dump everything: variables, graph list, interfaces, and parent class. |
| `graph` | `dump_blueprint_graph` | Load one graph by blueprint name + graph name. Dumps all nodes with their pins, connections, positions, and metadata. |
| `search` | `search_within_blueprints` | Deep search: loads every blueprint, iterates all graphs/nodes, and finds nodes whose title, function name, event name, or variable name matches the query. Returns blueprint, graph, and node info for each match. |
| `references` | `find_asset_references` | Given an asset path, queries the asset registry for all packages that reference it. Separates results into blueprint referencers and other referencers. |
| `search_by_type` | `search_type_usage_in_blueprints` | Deep search: loads every blueprint and finds variables, function parameters, and pin types that use a given type name (struct, class, or enum). Returns usage location and context for each match. |
| `get_pin_info` | `get_pin_details` | Get detailed type and connection info for a specific pin (by blueprint, nodeId, pinName). |
| `check_pin_compatibility` | `check_pin_connection_compatibility` | Check whether two specific pins (source and target) can be connected. Returns compatibility and any error message. |
| `test_save` | `test_save_blueprint_package` | Diagnostic: load a blueprint and save its package with no modifications, to verify the save pipeline works. |
## Blueprint — Discovery (Unreal reflection)
| Current | Proposed | Description |
|---------|----------|-------------|
| `list_classes` | `search_unreal_classes` | Search all UClasses in the engine. Optional `query` filters by class name substring. Optional `parentClass` restricts to subclasses. Returns class name, path, parent, and flags. |
| `list_functions` | `list_class_functions` | List all UFunctions on a given class. Optional `query` filters by function name substring. Returns name, parameters, return type, and flags for each. |
| `list_properties` | `list_class_properties` | List all UProperties on a given class. Optional `query` filters by property name substring. Returns name, type, flags, and metadata for each. |
## Blueprint — Validation
| Current | Proposed | Description |
|---------|----------|-------------|
| `validate_blueprint` | `compile_blueprint` | Compile one blueprint and report any errors/warnings with graph, node, and message details. |
| `validate_all_blueprints` | `compile_all_blueprints` | Compile all blueprints (optional `query` to filter which ones). Returns per-blueprint pass/fail with error details. Supports pagination. |
## Blueprint — Creation/Structure
| Current | Proposed | Description |
|---------|----------|-------------|
| `create_blueprint` | `create_blueprint_asset` | Create a new Blueprint asset with a given name, path, and parent class. |
| `create_graph` | `create_blueprint_graph` | Create a new function or macro graph inside a blueprint. |
| `delete_graph` | `delete_blueprint_graph` | Delete a graph from a blueprint. |
| `rename_graph` | `rename_blueprint_graph` | Rename a graph inside a blueprint. |
| `reparent_blueprint` | `reparent_blueprint` | Change a blueprint's parent class. |
| `create_struct` | `create_struct_asset` | Create a new user-defined struct asset. |
| `create_enum` | `create_enum_asset` | Create a new user-defined enum asset. |
| `add_struct_property` | `add_struct_field` | Add a field to a user-defined struct. |
| `remove_struct_property` | `remove_struct_field` | Remove a field from a user-defined struct. |
## Blueprint — Variables
| Current | Proposed | Description |
|---------|----------|-------------|
| `add_variable` | `add_blueprint_variable` | Add a variable to a blueprint with a given name and type. |
| `remove_variable` | `remove_blueprint_variable` | Remove a variable from a blueprint by name. |
| `change_variable_type` | `change_blueprint_variable_type` | Change an existing blueprint variable's type. |
| `set_variable_metadata` | `set_blueprint_variable_metadata` | Set variable metadata (category, tooltip, replication, etc.). |
## Blueprint — Functions/Parameters
| Current | Proposed | Description |
|---------|----------|-------------|
| `add_function_parameter` | `add_function_parameter` | Add an input or output parameter to a function graph. |
| `remove_function_parameter` | `remove_function_parameter` | Remove a parameter from a function graph. |
| `change_function_param_type` | `change_function_parameter_type` | Change the type of an existing function parameter. |
## Blueprint — Event Dispatchers
| Current | Proposed | Description |
|---------|----------|-------------|
| `add_event_dispatcher` | `add_event_dispatcher` | Add an event dispatcher to a blueprint. |
| `list_event_dispatchers` | `list_event_dispatchers` | List all event dispatchers on a blueprint with their delegate signatures. |
## Blueprint — Components
| Current | Proposed | Description |
|---------|----------|-------------|
| `add_component` | `add_blueprint_component` | Add a component to a blueprint's component hierarchy. |
| `remove_component` | `remove_blueprint_component` | Remove a component from a blueprint. |
| `list_components` | `list_blueprint_components` | List all components in a blueprint's component hierarchy. |
## Blueprint — Interfaces (new-style)
| Current | Proposed | Description |
|---------|----------|-------------|
| `list_interfaces` | `list_blueprint_interfaces` | List all interfaces implemented by a blueprint, with the function stubs each provides. |
| `add_interface` | `add_blueprint_interface` | Add an interface implementation to a blueprint. Creates function stub graphs. |
| `remove_interface` | `remove_blueprint_interface` | Remove an interface implementation from a blueprint. Optionally preserves function graphs. |
## Blueprint — Node Mutation (new-style)
| Current | Proposed | Description |
|---------|----------|-------------|
| `search_node_types` | `search_spawnable_node_types` | Search the blueprint action database (the right-click menu) for spawnable node types matching a query string. Returns full action names like "Utilities\|Flow Control\|Branch". |
| `spawn_node` | `spawn_node_in_graph` | Create one or more nodes in a graph by exact action name (from search_spawnable_node_types). Invokes the spawner and returns the new node details. |
| `delete_node` | `delete_node_from_graph` | Delete a node from a graph by GUID. |
| `move_node` | `set_node_position` | Set a node's X/Y position in the graph editor. |
| `duplicate_nodes` | `duplicate_nodes_in_graph` | Duplicate one or more nodes within a graph. |
| `connect_pins` | `connect_blueprint_pins` | Connect two pins (by blueprint, source node+pin, target node+pin). |
| `disconnect_pin` | `disconnect_blueprint_pin` | Break connections on a pin (all connections, or a specific one). |
| `set_pin_default` | `set_pin_default_value` | Set a pin's default value string. |
| `get_node_comment` | `get_node_comment` | Get the comment text on a node. |
| `set_node_comment` | `set_node_comment` | Set or clear the comment text on a node. |
| `replace_function_calls` | `replace_function_calls_in_blueprint` | Bulk-replace all calls to one function with calls to another across a blueprint. |
| `refresh_all_nodes` | `refresh_all_nodes_in_graph` | Refresh (reconstruct) all nodes in a graph to pick up signature changes. |
| `change_struct_node_type` | `change_struct_node_type` | Change which struct a Break/Make/Set-Members node operates on. |
| `set_blueprint_default` | `set_class_default_value` | Set a property value on the blueprint's Class Default Object (CDO). |
| `rename_asset` | `rename_asset` | Rename or move an asset to a new name/path. |
| `delete_asset` | `delete_asset` | Delete an asset from the project. |
| `diff_blueprints` | `diff_two_blueprints` | Compare two blueprints and return structural differences (added/removed/changed nodes, connections, variables). |
## Blueprint — Snapshots
| Current | Proposed | Description |
|---------|----------|-------------|
| `snapshot_graph` | `snapshot_blueprint_graph` | Capture a snapshot of a blueprint's graphs (nodes and connections) for later diffing or restore. |
| `diff_graph` | `diff_blueprint_graph_vs_snapshot` | Diff the current state of a blueprint's graphs against a previously captured snapshot. Returns added/removed/changed nodes and connections. |
| `restore_graph` | `restore_blueprint_graph_from_snapshot` | Restore a blueprint's graphs to the state captured in a snapshot (recreates nodes and connections). |
| `find_disconnected_pins` | `find_pins_disconnected_since_snapshot` | Compare current graphs against a snapshot and find pins that were previously connected but are now disconnected. |
| `analyze_rebuild_impact` | `analyze_cpp_rebuild_impact` | Given a C++ module name, find all blueprints that use structs/classes from that module and report which nodes/pins would be affected by a rebuild. |
## Materials — Read
| Current | Proposed | Description |
|---------|----------|-------------|
| `materials` | `list_material_assets` | List all material and material instance assets from the asset registry (no loading). Optional `query` filters by name/path substring. Optional `type` filters to "material" or "instance" only. |
| `material` | `dump_material` | Load one material by name and dump everything: properties (domain, blend mode, shading model, two-sided, etc.) and expression summary. |
| `material_graph` | `dump_material_expression_graph` | Load one material and dump its full expression graph: every expression node with type, position, parameter values, and all pin connections. |
| `describe_material` | `describe_material_in_english` | Load a material and generate a human-readable text description by tracing the expression graph backwards from each material output pin. |
| `search_materials` | `search_within_materials` | Deep search: loads every material, inspects expression nodes, and finds materials/expressions whose name, class, description, or parameter name matches the query. |
| `material_references` | `find_material_references` | Given a material name, query the asset registry for all assets that reference it. |
## Materials — Mutation
| Current | Proposed | Description |
|---------|----------|-------------|
| `create_material` | `create_material_asset` | Create a new material asset. |
| `set_material_property` | `set_material_property` | Set a top-level material property (blend mode, shading model, two-sided, etc.). |
| `add_material_expression` | `add_material_expression` | Add a material expression node to a material's graph. |
| `delete_material_expression` | `delete_material_expression` | Remove a material expression node from a material's graph. |
| `connect_material_pins` | `connect_material_expression_pins` | Connect two expression pins in a material graph. |
| `disconnect_material_pin` | `disconnect_material_expression_pin` | Disconnect a pin in a material graph. |
| `set_expression_value` | `set_material_expression_property` | Set a property on a material expression node (e.g. constant value, texture, parameter name). |
| `move_material_expression` | `set_material_expression_position` | Set X/Y position of a material expression in the graph editor. |
| `validate_material` | `compile_material` | Compile a material and report errors. |
## Material Instances
| Current | Proposed | Description |
|---------|----------|-------------|
| `create_material_instance` | `create_material_instance_asset` | Create a new material instance constant with a given parent material. |
| `set_material_instance_parameter` | `set_material_instance_parameter` | Set a parameter override on a material instance (scalar, vector, texture, etc.). |
| `material_instance_params` | `dump_material_instance_parameters` | Dump all parameter values on a material instance, showing both overridden and inherited values. |
| `reparent_material_instance` | `reparent_material_instance` | Change a material instance's parent material. |
## Material Functions
| Current | Proposed | Description |
|---------|----------|-------------|
| `material_functions` | `list_material_function_assets` | List all material function assets from the asset registry. Optional `query` filters by name/path substring. |
| `material_function` | `dump_material_function` | Load one material function and dump its expressions, inputs, and outputs. |
| `create_material_function` | `create_material_function_asset` | Create a new material function asset. |
## Material Snapshots
| Current | Proposed | Description |
|---------|----------|-------------|
| `snapshot_material_graph` | `snapshot_material_expression_graph` | Capture a snapshot of a material's expression graph. |
| `diff_material_graph` | `diff_material_graph_vs_snapshot` | Diff a material's current expression graph against a snapshot. |
| `restore_material_graph` | `restore_material_graph_from_snapshot` | Restore a material's expression graph from a snapshot. |
## Animation Blueprints
| Current | Proposed | Description |
|---------|----------|-------------|
| `create_anim_blueprint` | `create_anim_blueprint_asset` | Create a new Animation Blueprint asset with a given skeleton. |
| `add_anim_state` | `add_anim_state_to_machine` | Add a state node to a state machine graph. |
| `remove_anim_state` | `remove_anim_state_from_machine` | Remove a state node from a state machine graph. |
| `add_anim_transition` | `add_anim_state_transition` | Add a transition between two states in a state machine. |
| `set_transition_rule` | `set_anim_transition_rule` | Set the boolean condition expression for a state machine transition. |
| `add_anim_node` | `add_anim_graph_node` | Add an animation node (sequence player, blend space player, etc.) to a state's graph. |
| `add_state_machine` | `add_anim_state_machine` | Add a state machine sub-graph to an anim blueprint's AnimGraph. |
| `set_state_animation` | `set_anim_state_animation` | Set which animation sequence a state plays. |
| `list_anim_slots` | `list_anim_slot_names` | List all animation slot names available in the skeleton's slot groups. |
| `list_sync_groups` | `list_anim_sync_groups` | List all animation sync groups defined in the project. |
| `create_blend_space` | `create_blend_space_asset` | Create a new Blend Space asset. |
| `set_blend_space_samples` | `set_blend_space_sample_points` | Set the sample points (animation + coordinates) on a blend space. |
| `set_state_blend_space` | `set_anim_state_blend_space` | Set a state to play a blend space instead of a single animation. |
## System
| Current | Proposed | Description |
|---------|----------|-------------|
| `health` | `health` | Returns server status, mode, and asset counts. Answered on HTTP thread, no game-thread access. |
| `rescan` | `rescan_asset_registry` | Re-scan the asset registry and refresh all cached asset lists. |
| `shutdown` | `shutdown` | Request graceful engine exit. Only available in commandlet mode. |