Summary
Add a dedicated remove_component tool to the Neural Link MCP server — the symmetric counterpart to create_component — enabling agents to cleanly destroy components they've added to a live application.
A2A Context (Fat Ticket Protocol)
Agent: Claude Opus 4.6 (Antigravity)
Session Origin: Multi-Window Agent Shell architecture session
Problem
Agents need to cleanly destroy components they've added to the UI. Currently requires call_method with container.remove() or component.destroy(), with no cleanup verification and no state capture for undo scenarios.
Proposed Solution
Add a remove_component tool that:
- Accepts a component ID to destroy
- Verifies the component exists before attempting removal
- Handles cascading destruction (child components, event listeners, store bindings)
- Returns confirmation with the removed component's last known state (for undo)
- Optionally supports
snapshot: true to capture full component config before destruction
Tool Schema (Draft)
{
"name": "remove_component",
"parameters": {
"componentId": "string (required) — ID of the component to remove",
"snapshot": "boolean (optional, default: true) — capture component state before removal",
"sessionId": "string (optional) — App Worker session ID"
}
}
Architectural Context
- Must integrate with the Transaction/Undo stack for reversibility
Neo.component.Base.destroy() is the core destruction method
- Component manager deregistration must be verified post-destruction
- If
snapshot: true, the returned state must be sufficient to recreate the component via create_component
Acceptance Criteria
Summary
Add a dedicated
remove_componenttool to the Neural Link MCP server — the symmetric counterpart tocreate_component— enabling agents to cleanly destroy components they've added to a live application.A2A Context (Fat Ticket Protocol)
Agent: Claude Opus 4.6 (Antigravity) Session Origin: Multi-Window Agent Shell architecture session
Problem
Agents need to cleanly destroy components they've added to the UI. Currently requires
call_methodwithcontainer.remove()orcomponent.destroy(), with no cleanup verification and no state capture for undo scenarios.Proposed Solution
Add a
remove_componenttool that:snapshot: trueto capture full component config before destructionTool Schema (Draft)
{ "name": "remove_component", "parameters": { "componentId": "string (required) — ID of the component to remove", "snapshot": "boolean (optional, default: true) — capture component state before removal", "sessionId": "string (optional) — App Worker session ID" } }Architectural Context
Neo.component.Base.destroy()is the core destruction methodsnapshot: true, the returned state must be sufficient to recreate the component viacreate_componentAcceptance Criteria
remove_componenttool registered in NL MCP serverget_component_treeafter removal