Skip to content

Commit aae4d14

Browse files
EPMRPP-109097 || MCP. Tools. Add tool get defect types by project
1 parent 433b5e1 commit aae4d14

File tree

2 files changed

+25
-0
lines changed

2 files changed

+25
-0
lines changed

internal/reportportal/items.go

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -619,3 +619,27 @@ func (lr *TestItemResources) toolGetTestSuitesByFilter() (tool mcp.Tool, handler
619619
return readResponseBody(response)
620620
})
621621
}
622+
623+
// toolGetTestItemById creates a tool to retrieve a test item defect types for a specific project.
624+
func (lr *TestItemResources) toolGetProjectDefectTypes() (mcp.Tool, server.ToolHandlerFunc) {
625+
return mcp.NewTool("get_project_defect_types",
626+
// Tool metadata
627+
mcp.WithDescription("Get all defect types for a specific project, returns a JSON which contains a list of defect types in the 'configuration/subtypes' array"),
628+
lr.projectParameter,
629+
), lr.analytics.WithAnalytics("get_project_defect_types", func(ctx context.Context, request mcp.CallToolRequest) (*mcp.CallToolResult, error) {
630+
project, err := extractProject(ctx, request)
631+
if err != nil {
632+
return mcp.NewToolResultError(err.Error()), nil
633+
}
634+
635+
// Fetch the testItem with given ID
636+
_, response, err := lr.client.ProjectAPI.GetProject(ctx, project).
637+
Execute()
638+
if err != nil {
639+
return mcp.NewToolResultError(extractResponseError(err, response)), nil
640+
}
641+
642+
// Return the serialized testItem as a text result
643+
return readResponseBody(response)
644+
})
645+
}

internal/reportportal/server.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ func NewServer(
6363
s.AddTool(testItems.toolGetTestItemLogsByFilter())
6464
s.AddTool(testItems.toolGetTestItemAttachment())
6565
s.AddTool(testItems.toolGetTestSuitesByFilter())
66+
s.AddTool(testItems.toolGetProjectDefectTypes())
6667
s.AddResourceTemplate(testItems.resourceTestItem())
6768

6869
prompts, err := readPrompts(promptFiles, "prompts")

0 commit comments

Comments
 (0)