agent/mcp/marketplace.go
Snider 1823893c16 feat(mcp): add marketplace server
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
2026-02-05 20:44:47 +00:00

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
}