41 lines
1,015 B
Go
41 lines
1,015 B
Go
// SPDX-License-Identifier: EUPL-1.2
|
|
|
|
package main
|
|
|
|
import (
|
|
core "dappco.re/go/core"
|
|
"forge.lthn.ai/core/mcp/pkg/mcp"
|
|
)
|
|
|
|
// c := core.New(core.WithService(registerMCPService))
|
|
// service := c.Service("mcp")
|
|
func registerMCPService(c *core.Core) core.Result {
|
|
if c == nil {
|
|
return core.Result{Value: core.E("main.registerMCPService", "core is required", nil), OK: false}
|
|
}
|
|
|
|
var registeredSubsystems []mcp.Subsystem
|
|
|
|
appendSubsystem := func(name string) {
|
|
serviceResult := c.Service(name)
|
|
if !serviceResult.OK {
|
|
return
|
|
}
|
|
subsystem, ok := serviceResult.Value.(mcp.Subsystem)
|
|
if !ok {
|
|
return
|
|
}
|
|
registeredSubsystems = append(registeredSubsystems, subsystem)
|
|
}
|
|
appendSubsystem("agentic")
|
|
appendSubsystem("monitor")
|
|
appendSubsystem("brain")
|
|
|
|
service, err := mcp.New(mcp.Options{
|
|
Subsystems: registeredSubsystems,
|
|
})
|
|
if err != nil {
|
|
return core.Result{Value: core.E("main.registerMCPService", "create mcp service", err), OK: false}
|
|
}
|
|
return core.Result{Value: service, OK: true}
|
|
}
|