MCPcopy Index your code
hub / github.com/apache/answer / MCPQuestionDetailHandler

Method MCPQuestionDetailHandler

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

Source from the content-addressed store, hash-verified

126}
127
128func (c *MCPController) MCPQuestionDetailHandler() func(ctx context.Context, request mcp.CallToolRequest) (*mcp.CallToolResult, error) {
129 return func(ctx context.Context, request mcp.CallToolRequest) (*mcp.CallToolResult, error) {
130 if err := c.ensureMCPEnabled(ctx); err != nil {
131 return nil, err
132 }
133 cond := schema.NewMCPSearchQuestionDetail(request)
134
135 siteGeneral, err := c.siteInfoService.GetSiteGeneral(ctx)
136 if err != nil {
137 log.Errorf("get site general info failed: %v", err)
138 return nil, err
139 }
140
141 question, err := c.questioncommon.Info(ctx, cond.QuestionID, "")
142 if err != nil {
143 log.Errorf("get question failed: %v", err)
144 return mcp.NewToolResultText("No question found."), nil
145 }
146
147 resp := &schema.MCPSearchQuestionInfoResp{
148 QuestionID: question.ID,
149 Title: question.Title,
150 Content: question.Content,
151 Link: fmt.Sprintf("%s/questions/%s", siteGeneral.SiteUrl, question.ID),
152 }
153 res, _ := json.Marshal(resp)
154 return mcp.NewToolResultText(string(res)), nil
155 }
156}
157
158func (c *MCPController) MCPAnswersHandler() func(ctx context.Context, request mcp.CallToolRequest) (*mcp.CallToolResult, error) {
159 return func(ctx context.Context, request mcp.CallToolRequest) (*mcp.CallToolResult, error) {

Callers

nothing calls this directly

Calls 4

ensureMCPEnabledMethod · 0.95
GetSiteGeneralMethod · 0.65
InfoMethod · 0.65

Tested by

no test coverage detected