Summary:\n- added vendor-neutral MCP stdio server with marketplace, core CLI, and ethics tools\n- implemented plugin discovery across commands and skills\n- added Good/Bad/Ugly tests and Go module dependency updates
33 lines
749 B
Go
33 lines
749 B
Go
package main
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
"path/filepath"
|
|
|
|
"github.com/mark3labs/mcp-go/mcp"
|
|
)
|
|
|
|
func loadMarketplace() (Marketplace, string, error) {
|
|
root, err := findRepoRoot()
|
|
if err != nil {
|
|
return Marketplace{}, "", err
|
|
}
|
|
|
|
path := filepath.Join(root, marketplacePath)
|
|
var marketplace Marketplace
|
|
if err := readJSONFile(path, &marketplace); err != nil {
|
|
return Marketplace{}, "", err
|
|
}
|
|
|
|
return marketplace, root, nil
|
|
}
|
|
|
|
func marketplaceListHandler(_ context.Context, _ mcp.CallToolRequest) (*mcp.CallToolResult, error) {
|
|
marketplace, _, err := loadMarketplace()
|
|
if err != nil {
|
|
return mcp.NewToolResultError(fmt.Sprintf("failed to load marketplace: %v", err)), nil
|
|
}
|
|
|
|
return mcp.NewToolResultStructuredOnly(marketplace), nil
|
|
}
|