feat: add uixt tool get_screen_size

This commit is contained in:
lilong.129
2025-05-21 16:51:39 +08:00
parent 0d6a37ecef
commit 5c68760cca
2 changed files with 26 additions and 1 deletions

View File

@@ -1 +1 @@
v5.0.0-beta-2505211642
v5.0.0-beta-2505211651

View File

@@ -133,6 +133,16 @@ func (ums *MCPServer4XTDriver) addTools() {
ums.tools = append(ums.tools, terminateAppTool)
ums.handlerMap[terminateAppTool.Name] = ums.handleTerminateApp
// GetScreenSize Tool
getScreenSizeParams := append(
[]mcp.ToolOption{mcp.WithDescription("Get the screen size of the mobile device in pixels")},
commonToolOptions...,
)
getScreenSizeTool := mcp.NewTool("get_screen_size", getScreenSizeParams...)
ums.mcpServer.AddTool(getScreenSizeTool, ums.handleGetScreenSize)
ums.tools = append(ums.tools, getScreenSizeTool)
ums.handlerMap[getScreenSizeTool.Name] = ums.handleGetScreenSize
// TapXY Tool
tapParams := append(
[]mcp.ToolOption{mcp.WithDescription("Taps on the device screen at the given coordinates.")},
@@ -269,6 +279,21 @@ func (ums *MCPServer4XTDriver) handleTerminateApp(ctx context.Context, request m
return mcp.NewToolResultText(fmt.Sprintf("Terminated app success: %s", packageName)), nil
}
// handleGetScreenSize handles the get_screen_size tool call.
func (ums *MCPServer4XTDriver) handleGetScreenSize(ctx context.Context, request mcp.CallToolRequest) (*mcp.CallToolResult, error) {
driverExt, err := ums.setupXTDriver(ctx, request.Params.Arguments)
if err != nil {
return nil, err
}
screenSize, err := driverExt.IDriver.WindowSize()
if err != nil {
return mcp.NewToolResultError("Get screen size failed: " + err.Error()), nil
}
return mcp.NewToolResultText(
fmt.Sprintf("Screen size: %d x %d pixels", screenSize.Width, screenSize.Height),
), nil
}
// handleTapXY handles the tap_xy tool call.
func (ums *MCPServer4XTDriver) handleTapXY(ctx context.Context, request mcp.CallToolRequest) (*mcp.CallToolResult, error) {
driverExt, err := ums.setupXTDriver(ctx, request.Params.Arguments)