MCPcopy
hub / github.com/apache/answer / MCPTagDetailsHandler

Method MCPTagDetailsHandler

internal/controller/mcp_controller.go:292–323  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

290}
291
292func (c *MCPController) MCPTagDetailsHandler() func(ctx context.Context, request mcp.CallToolRequest) (*mcp.CallToolResult, error) {
293 return func(ctx context.Context, request mcp.CallToolRequest) (*mcp.CallToolResult, error) {
294 if err := c.ensureMCPEnabled(ctx); err != nil {
295 return nil, err
296 }
297 cond := schema.NewMCPSearchTagCond(request)
298
299 siteGeneral, err := c.siteInfoService.GetSiteGeneral(ctx)
300 if err != nil {
301 log.Errorf("get site general info failed: %v", err)
302 return nil, err
303 }
304
305 tag, exist, err := c.tagCommonService.GetTagBySlugName(ctx, cond.TagName)
306 if err != nil {
307 log.Errorf("get tag failed: %v", err)
308 return nil, err
309 }
310 if !exist {
311 return mcp.NewToolResultText("Tag not found."), nil
312 }
313
314 resp := &schema.MCPSearchTagResp{
315 TagName: tag.SlugName,
316 DisplayName: tag.DisplayName,
317 Description: tag.OriginalText,
318 Link: fmt.Sprintf("%s/tags/%s", siteGeneral.SiteUrl, tag.SlugName),
319 }
320 res, _ := json.Marshal(resp)
321 return mcp.NewToolResultText(string(res)), nil
322 }
323}
324
325func (c *MCPController) MCPUserDetailsHandler() func(ctx context.Context, request mcp.CallToolRequest) (*mcp.CallToolResult, error) {
326 return func(ctx context.Context, request mcp.CallToolRequest) (*mcp.CallToolResult, error) {

Callers 2

callMCPToolMethod · 0.80
RegisterMCPRouterMethod · 0.80

Calls 4

ensureMCPEnabledMethod · 0.95
NewMCPSearchTagCondFunction · 0.92
GetSiteGeneralMethod · 0.65
GetTagBySlugNameMethod · 0.65

Tested by

no test coverage detected