Motion sensor for AI agents: tells when a screen region changes or goes still. Scores, never pixels.
Connect Runs on your machine
claude mcp add pir-mcp -e PIR_CAPTURE_CMD=<PIR_CAPTURE_CMD> -e PIR_SELECT_CMD=<PIR_SELECT_CMD> -e PIR_WINDOW_GEOMETRY_CMD=<PIR_WINDOW_GEOMETRY_CMD> -e PIR_PICK_WINDOW_CMD=<PIR_PICK_WINDOW_CMD> -e PIR_MAX_WAIT_MS=<PIR_MAX_WAIT_MS> -- npx -y [email protected]
{
"mcpServers": {
"pir-mcp": {
"command": "npx",
"args": [
"-y",
"[email protected]"
],
"env": {
"PIR_CAPTURE_CMD": "<PIR_CAPTURE_CMD>",
"PIR_SELECT_CMD": "<PIR_SELECT_CMD>",
"PIR_WINDOW_GEOMETRY_CMD": "<PIR_WINDOW_GEOMETRY_CMD>",
"PIR_PICK_WINDOW_CMD": "<PIR_PICK_WINDOW_CMD>",
"PIR_MAX_WAIT_MS": "<PIR_MAX_WAIT_MS>"
}
}
}
}
{
"mcpServers": {
"pir-mcp": {
"command": "npx",
"args": [
"-y",
"[email protected]"
],
"env": {
"PIR_CAPTURE_CMD": "<PIR_CAPTURE_CMD>",
"PIR_SELECT_CMD": "<PIR_SELECT_CMD>",
"PIR_WINDOW_GEOMETRY_CMD": "<PIR_WINDOW_GEOMETRY_CMD>",
"PIR_PICK_WINDOW_CMD": "<PIR_PICK_WINDOW_CMD>",
"PIR_MAX_WAIT_MS": "<PIR_MAX_WAIT_MS>"
}
}
}
}
{
"servers": {
"pir-mcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"[email protected]"
],
"env": {
"PIR_CAPTURE_CMD": "<PIR_CAPTURE_CMD>",
"PIR_SELECT_CMD": "<PIR_SELECT_CMD>",
"PIR_WINDOW_GEOMETRY_CMD": "<PIR_WINDOW_GEOMETRY_CMD>",
"PIR_PICK_WINDOW_CMD": "<PIR_PICK_WINDOW_CMD>",
"PIR_MAX_WAIT_MS": "<PIR_MAX_WAIT_MS>"
}
}
}
}
Replace the values in angle brackets with your own. Keys stay on your machine; we never see them.
Tools
This server runs locally, so its tools are listed by your MCP client once it starts.
Environment variables
| Name | Description |
|---|---|
PIR_CAPTURE_CMDOptional | Screenshot command template writing binary PPM to stdout; {x} {y} {w} {h} substituted. Default: grim (wlroots). |
PIR_SELECT_CMDOptional | Interactive rectangle selector printing 'x,y wxh'. Default: slurp. Empty disables the pick tools. |
PIR_WINDOW_GEOMETRY_CMDOptional | Prints 'x,y wxh' for window {id}. Default: Hyprland via jq. Empty disables window regions. |
PIR_PICK_WINDOW_CMDOptional | Interactive window pick printing the window id. Default: Hyprland + slurp. |
PIR_MAX_WAIT_MSOptional | Cap for blocking calls, ms (default 540000); keep under the host's MCP tool timeout. |
Details
| Package | [email protected] (NPM, stdio) |
| First published | 16 Sep 2026 |
| Last updated | 16 Sep 2026 |
| Registry name | io.github.Solteris-Dev/pir-mcp |
More ai and media servers See all
Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.
