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

Method MCPUserDetailsHandler

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

Source from the content-addressed store, hash-verified

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) {
327 if err := c.ensureMCPEnabled(ctx); err != nil {
328 return nil, err
329 }
330 cond := schema.NewMCPSearchUserCond(request)
331
332 siteGeneral, err := c.siteInfoService.GetSiteGeneral(ctx)
333 if err != nil {
334 log.Errorf("get site general info failed: %v", err)
335 return nil, err
336 }
337
338 user, exist, err := c.userCommon.GetUserBasicInfoByUserName(ctx, cond.Username)
339 if err != nil {
340 log.Errorf("get user failed: %v", err)
341 return nil, err
342 }
343 if !exist {
344 return mcp.NewToolResultText("User not found."), nil
345 }
346
347 resp := &schema.MCPSearchUserInfoResp{
348 Username: user.Username,
349 DisplayName: user.DisplayName,
350 Avatar: user.Avatar,
351 Link: fmt.Sprintf("%s/users/%s", siteGeneral.SiteUrl, user.Username),
352 }
353 res, _ := json.Marshal(resp)
354 return mcp.NewToolResultText(string(res)), nil
355 }
356}
357
358func (c *MCPController) MCPSemanticSearchHandler() func(ctx context.Context, request mcp.CallToolRequest) (*mcp.CallToolResult, error) {
359 return func(ctx context.Context, request mcp.CallToolRequest) (*mcp.CallToolResult, error) {

Callers 2

callMCPToolMethod · 0.80
RegisterMCPRouterMethod · 0.80

Calls 4

ensureMCPEnabledMethod · 0.95
NewMCPSearchUserCondFunction · 0.92
GetSiteGeneralMethod · 0.65

Tested by

no test coverage detected