pov
Enables LLM agents to capture screenshots, control mouse/keyboard, and manage windows on desktop platforms, primarily Windows, via an MCP server.
README
pov - Point of View
Screenshot capture, mouse/keyboard control, and window management — as a CLI and MCP server for LLM vision agents.
Lets LLMs (Claude Desktop, Cursor, OpenCode) see and interact with the Windows desktop. Works on Windows, macOS, Linux (X11/Wayland), and WSL.
Install
# With uv
uv pip install pov-desktop
# With pip
pip install pov-desktop
To install the pov CLI as a standalone tool:
uv tool install pov-desktop
Or from source:
git clone https://github.com/empezarcero/pov.git
cd pov
uv sync
CLI Usage
# Screenshots
pov capture # Capture screenshot, print base64
pov capture --output shot.png # Save to file
pov capture --monitor 1 # Specific monitor
pov monitors # List available monitors
# Mouse
pov click # Left-click at current position
pov click 500 300 # Left-click at (500, 300)
pov click 500 300 --button right --clicks 2
pov move-mouse 800 600 # Move cursor to (800, 600)
pov scroll -3 # Scroll down 3 clicks
pov scroll 5 --x 400 --y 200 # Scroll up at position
pov cursor # Print current cursor position
# Keyboard
pov type "Hello, world!" # Type text literally
pov key enter # Press a key
pov key ctrl+c # Key combo
pov key alt+f4 # Another combo
# Windows
pov windows # List visible windows
pov processes # List windowed processes
pov foreground # Get the focused window
pov focus <hwnd> # Focus a window by handle
pov window-state <hwnd> minimize
pov move-window <hwnd> --x 100 --y 100
pov resize-window <hwnd> --width 1024 --height 768
pov close-window <hwnd> # Gracefully close a window
# MCP server
pov serve # stdio transport (default)
pov serve --transport sse --port 8000
MCP Server
The MCP server exposes 16 tools:
Screenshots
| Tool | Description |
|---|---|
screenshot |
Capture a screenshot and return it as an image |
list_monitors |
List available monitors and their geometry |
Mouse
| Tool | Description |
|---|---|
mouse_move |
Move the cursor to screen coordinates |
mouse_click |
Click at coordinates (or current position) |
mouse_scroll |
Scroll the mouse wheel |
get_cursor_position |
Get the current cursor position |
Keyboard
| Tool | Description |
|---|---|
keyboard_type |
Type a string of text literally |
keyboard_key |
Press a key or combo (e.g. ctrl+c, alt+f4) |
Window Management
| Tool | Description |
|---|---|
list_windows |
List all visible windows with handles, titles, positions |
focus_window |
Bring a window to the foreground |
set_window_state |
Minimize, maximize, restore, hide, or show a window |
move_window |
Move and/or resize a window |
resize_window |
Resize a window without moving it |
get_foreground_window |
Get info about the currently focused window |
close_window |
Gracefully close a window (WM_CLOSE) |
list_processes |
List running processes with visible windows |
Claude Desktop / Cursor / OpenCode
Add to your MCP config:
{
"mcpServers": {
"pov": {
"command": "uv",
"args": ["run", "--directory", "/path/to/pov", "pov", "serve"]
}
}
}
SSE Transport
{
"mcpServers": {
"pov": {
"url": "http://127.0.0.1:8000/sse"
}
}
}
Platform Support
| Platform | Backend | Notes |
|---|---|---|
| Windows | mss + ctypes |
Screenshots via mss, input/windows via Win32 |
| macOS | mss |
Screenshot capture only |
| Linux | mss |
Screenshot capture only (X11 and Wayland) |
| WSL | PowerShell + .NET/Win32 | Full support — captures the Windows desktop, controls mouse/keyboard, manages windows |
Development
# Install in development mode
uv sync
# Run the CLI
uv run pov --help
# Run the MCP server
uv run pov serve
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。