Skip to main content
Glama

remote_macos_mouse_move

Control a remote macOS machine by moving the mouse cursor to specified coordinates. Adjusts positions automatically using screen scaling for precision.

Instructions

Move the mouse cursor to specified coordinates on a remote MacOs machine, with automatic coordinate scaling. Uses environment variables for connection details.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
source_heightNoHeight of the reference screen for coordinate scaling
source_widthNoWidth of the reference screen for coordinate scaling
xYesX coordinate for mouse position (in source dimensions)
yYesY coordinate for mouse position (in source dimensions)

Implementation Reference

  • The handler function that implements the remote MacOS mouse move tool. It connects to the VNC server using environment variables, scales the provided source coordinates to target screen dimensions, sends a pointer event to move the mouse, and returns a text summary of the action including success status and scaling info.
    def handle_remote_macos_mouse_move(arguments: dict[str, Any]) -> list[types.TextContent | types.ImageContent | types.EmbeddedResource]: """Move the mouse cursor on a remote MacOs machine.""" # Use environment variables host = MACOS_HOST port = MACOS_PORT password = MACOS_PASSWORD username = MACOS_USERNAME encryption = VNC_ENCRYPTION # Get required parameters from arguments x = arguments.get("x") y = arguments.get("y") source_width = int(arguments.get("source_width", 1366)) source_height = int(arguments.get("source_height", 768)) if x is None or y is None: raise ValueError("x and y coordinates are required") # Ensure source dimensions are positive if source_width <= 0 or source_height <= 0: raise ValueError("Source dimensions must be positive values") # Initialize VNC client vnc = VNCClient(host=host, port=port, password=password, username=username, encryption=encryption) # Connect to remote MacOs machine success, error_message = vnc.connect() if not success: error_msg = f"Failed to connect to remote MacOs machine at {host}:{port}. {error_message}" return [types.TextContent(type="text", text=error_msg)] try: # Get target screen dimensions target_width = vnc.width target_height = vnc.height # Scale coordinates scaled_x = int((x / source_width) * target_width) scaled_y = int((y / source_height) * target_height) # Ensure coordinates are within the screen bounds scaled_x = max(0, min(scaled_x, target_width - 1)) scaled_y = max(0, min(scaled_y, target_height - 1)) # Move mouse pointer (button_mask=0 means no buttons are pressed) result = vnc.send_pointer_event(scaled_x, scaled_y, 0) # Prepare the response with useful details scale_factors = { "x": target_width / source_width, "y": target_height / source_height } return [types.TextContent( type="text", text=f"""Mouse move from source ({x}, {y}) to target ({scaled_x}, {scaled_y}) {'succeeded' if result else 'failed'} Source dimensions: {source_width}x{source_height} Target dimensions: {target_width}x{target_height} Scale factors: {scale_factors['x']:.4f}x, {scale_factors['y']:.4f}y""" )] finally: # Close VNC connection vnc.close()
  • The input schema definition for the remote_macos_mouse_move tool, specifying required x,y coordinates and optional source dimensions for scaling.
    types.Tool( name="remote_macos_mouse_move", description="Move the mouse cursor to specified coordinates on a remote MacOs machine, with automatic coordinate scaling. Uses environment variables for connection details.", inputSchema={ "type": "object", "properties": { "x": {"type": "integer", "description": "X coordinate for mouse position (in source dimensions)"}, "y": {"type": "integer", "description": "Y coordinate for mouse position (in source dimensions)"}, "source_width": {"type": "integer", "description": "Width of the reference screen for coordinate scaling", "default": 1366}, "source_height": {"type": "integer", "description": "Height of the reference screen for coordinate scaling", "default": 768} }, "required": ["x", "y"] }, ),
  • The dispatch/registration in the tool call handler that routes calls to remote_macos_mouse_move to the appropriate handler function.
    elif name == "remote_macos_mouse_move": return handle_remote_macos_mouse_move(arguments)
  • Import of the handler function in the server module.
    handle_remote_macos_mouse_move,

Other Tools

Related Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/baryhuang/mcp-remote-macos-use'

If you have feedback or need assistance with the MCP directory API, please join our Discord server