()
| 290 | } |
| 291 | |
| 292 | func (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 | |
| 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) { |
no test coverage detected