()
| 323 | } |
| 324 | |
| 325 | func (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 | |
| 358 | func (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) { |
no test coverage detected