gui/pkg/mcp/subsystem.go
Claude 484f7138ee
feat(mcp): add event_emit, event_on, event_off, event_list tools
4 new MCP tools for the events package:
- event_emit — fire custom events with optional data
- event_on — register event listener via IPC
- event_off — remove listeners by name
- event_list — query all registered listeners

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 15:03:30 +01:00

38 lines
1 KiB
Go

// pkg/mcp/subsystem.go
package mcp
import (
"forge.lthn.ai/core/go/pkg/core"
"github.com/modelcontextprotocol/go-sdk/mcp"
)
// Subsystem translates MCP tool calls to Core IPC messages for GUI operations.
type Subsystem struct {
core *core.Core
}
// New(c) creates a display MCP subsystem backed by a Core instance.
// sub := mcp.New(c); sub.RegisterTools(server)
func New(c *core.Core) *Subsystem {
return &Subsystem{core: c}
}
func (s *Subsystem) Name() string { return "display" }
func (s *Subsystem) RegisterTools(server *mcp.Server) {
s.registerWebviewTools(server)
s.registerWindowTools(server)
s.registerLayoutTools(server)
s.registerScreenTools(server)
s.registerClipboardTools(server)
s.registerDialogTools(server)
s.registerNotificationTools(server)
s.registerTrayTools(server)
s.registerEnvironmentTools(server)
s.registerBrowserTools(server)
s.registerContextMenuTools(server)
s.registerKeybindingTools(server)
s.registerDockTools(server)
s.registerLifecycleTools(server)
s.registerEventsTools(server)
}