feat: wire MCP server with bootstrap CLI
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
3943bfb8cc
commit
c419d8ce1d
2 changed files with 53 additions and 0 deletions
17
cmd/xdebug-mcp/main.go
Normal file
17
cmd/xdebug-mcp/main.go
Normal file
|
|
@ -0,0 +1,17 @@
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"log"
|
||||||
|
"os"
|
||||||
|
|
||||||
|
"forge.lclr.dev/AI/xdebug-mcp/internal/app"
|
||||||
|
)
|
||||||
|
|
||||||
|
var version = "dev"
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
if err := app.Run(context.Background(), os.Args[1:], version); err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
}
|
||||||
36
internal/app/app.go
Normal file
36
internal/app/app.go
Normal file
|
|
@ -0,0 +1,36 @@
|
||||||
|
package app
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
|
||||||
|
"github.com/mark3labs/mcp-go/server"
|
||||||
|
|
||||||
|
"forge.lclr.dev/AI/mcp-framework/bootstrap"
|
||||||
|
"forge.lclr.dev/AI/xdebug-mcp/internal/cache"
|
||||||
|
"forge.lclr.dev/AI/xdebug-mcp/internal/tools"
|
||||||
|
"forge.lclr.dev/AI/xdebug-mcp/mcpgen"
|
||||||
|
)
|
||||||
|
|
||||||
|
func Run(ctx context.Context, args []string, version string) error {
|
||||||
|
c := cache.New(cache.DefaultCapacity)
|
||||||
|
|
||||||
|
return bootstrap.Run(ctx, bootstrap.Options{
|
||||||
|
BinaryName: mcpgen.BinaryName,
|
||||||
|
Description: mcpgen.DefaultDescription,
|
||||||
|
Version: version,
|
||||||
|
Args: args,
|
||||||
|
Hooks: bootstrap.Hooks{
|
||||||
|
MCP: func(ctx context.Context, inv bootstrap.Invocation) error {
|
||||||
|
return runMCP(c, version)
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
func runMCP(c *cache.Cache, version string) error {
|
||||||
|
s := server.NewMCPServer(mcpgen.BinaryName, version)
|
||||||
|
s.AddTool(tools.AnalyzeTool(), tools.AnalyzeHandler(c))
|
||||||
|
s.AddTool(tools.CallersTool(), tools.CallersHandler(c))
|
||||||
|
s.AddTool(tools.CalleesTool(), tools.CalleesHandler(c))
|
||||||
|
return server.ServeStdio(s)
|
||||||
|
}
|
||||||
Loading…
Reference in a new issue