
Precision Desktop
If you're building Windows desktop automation and your AI agent's clicks keep missing targets on high-DPI displays, this is the fix. Windows silently uses two coordinate systems (physical pixels vs DPI-scaled logical coordinates), and most automation tools mix them without warning. This server sits alongside tools like windows-mcp and provides calibration from reference points, bidirectional coordinate conversion between physical and logical space, and UI element finding via Windows UI Automation that returns physical coordinates ready for clicking. It also tracks calibration freshness and verifies companion MCP patch status. Essential for any Windows automation workflow running on laptops or 4K monitors where DPI scaling is above 100 percent.
- tools
- 10
- transport
- STDIO
- env var
- 1
- last updated
- Feb 13, 2026
Tools
10 toolsPublic tool metadata for what this MCP can expose to an agent.
calibrateCompute DPI scale factors from 2+ reference points with known physical and logical coordinates
Compute DPI scale factors from 2+ reference points with known physical and logical coordinates
No parameter schema in public metadata yet.
calibrate_verifyMark calibration as verified after confirming a test click landed correctly
Mark calibration as verified after confirming a test click landed correctly
No parameter schema in public metadata yet.
get_calibrationRead current calibration state (scale factors, verification status, age)
Read current calibration state (scale factors, verification status, age)
No parameter schema in public metadata yet.
convert_coordinatesConvert a coordinate pair between physical and logical systems
Convert a coordinate pair between physical and logical systems
No parameter schema in public metadata yet.
find_ui_elementFind a single UI element by name using Windows UI Automation. Returns physical coordinates
Find a single UI element by name using Windows UI Automation. Returns physical coordinates
No parameter schema in public metadata yet.
find_all_ui_elementsFind all UI elements matching a name. Returns list with physical coordinates
Find all UI elements matching a name. Returns list with physical coordinates
No parameter schema in public metadata yet.
list_ui_elementsList all named interactive elements (buttons, text fields, etc.) in a window
List all named interactive elements (buttons, text fields, etc.) in a window
No parameter schema in public metadata yet.
find_windowFind a window handle (hwnd) by title substring
Find a window handle (hwnd) by title substring
No parameter schema in public metadata yet.
health_checkRun environment checks: calibration freshness, UI Automation, companion MCP status
Run environment checks: calibration freshness, UI Automation, companion MCP status
No parameter schema in public metadata yet.
patch_statusCheck which DPI-aware patches are applied to the companion MCP
Check which DPI-aware patches are applied to the companion MCP
No parameter schema in public metadata yet.
Sponsors
Configuration
WINDOWS_MCP_PATHPath to windows-mcp installation directory. Auto-detected if not set.
Readme
precision-desktop
mcp-name: io.github.ikoskela/precision-desktop
A companion MCP server that fixes DPI coordinate scaling for Windows desktop automation.
Windows DPI scaling silently breaks every MCP tool that clicks, types, or hovers on the desktop. precision-desktop detects and corrects the coordinate mismatch so your AI agent's clicks actually land where they should.
The Problem
Windows has two coordinate systems and doesn't tell you which one you're using.
When Windows DPI scaling is set above 100% (which it is on most modern laptops and monitors), different Windows APIs return coordinates in different systems:
| Coordinate System | Used By | Example: Point at 50% across a 4K display |
|---|---|---|
| Physical (pixels) | Mouse events, SetCursorPos, UI Automation* | 1920, 1080 |
| Logical (DPI-scaled) | GetWindowRect, Cursor.Position, .NET, screenshots | 1097, 617 (at 175% scaling) |
* UI Automation returns physical on DPI-aware processes, logical on others — yet another inconsistency.
The ratio between them is your DPI scale factor (e.g., 1.25x, 1.5x, 1.75x, 2.0x).
Details
- Repository
- github.com/ikoskela/precision-desktop
- Category
- Automation & Workflows
- Package
precision-desktop- Transport
- STDIO
- Registry
- MCP registry, active