Remotetouch

Delivers tap, swipe, long press, and double tap input to a remote touchscreen over SSH with auto-detection and optional screen override.
  • javascript

0

GitHub Stars

javascript

Language

4 months ago

First Indexed

2 months ago

Catalog Refreshed

Documentation & install

Readme and setup notes from the catalogue, plus a client-ready config you can copy for your MCP host.

Installation

Add the following to your MCP client configuration file.

Configuration

View docs
{
  "mcpServers": {
    "signal-slot-mcp-remotetouch": {
      "command": "node",
      "args": [
        "/path/to/mcp-remotetouch/build/index.js"
      ],
      "env": {
        "REMOTETOUCH_SSH_KEY": "/home/user/.ssh/id_rsa",
        "REMOTETOUCH_SSH_HOST": "<REMOTETOUCH_SSH_HOST>",
        "REMOTETOUCH_SSH_PORT": "22",
        "REMOTETOUCH_SSH_USER": "pi",
        "REMOTETOUCH_USE_SUDO": "false",
        "REMOTETOUCH_SCREEN_WIDTH": "1920",
        "REMOTETOUCH_SCREEN_HEIGHT": "1080"
      }
    }
  }
}

You can remotely control a Linux touchscreen by running a lightweight MCP server on your development machine that talks to a Python daemon running on the target device. This setup lets you inject taps, swipes, long presses, and double taps directly into the physical touchscreen over SSH, auto-detecting the screen and resolution without installing software on the remote device.

How to use

Connect to a remote device using the MCP client you have available, then start sending input events to the touchscreen. You can tap specific coordinates, swipe between points, perform long presses, and trigger double taps. Each action is issued through an active session and can be combined to automate complex gestures. You can also disconnect when you are finished to cleanly stop the remote daemon.

How to install

Prerequisites on your development machine and the remote device are required before installation.

On your development machine (the MCP server): ensure you have Node.js 18+ installed and access to SSH.

On the remote device (the target Linux touchscreen host): ensure Python 3 is installed and you have read/write access to /dev/input/eventN for the touchscreen.

Steps to install on your development machine:

git clone https://github.com/signal-slot/mcp-remotetouch.git
cd mcp-remotetouch
npm install
npm run build

Additional setup and configuration

Add the remote user to the input group on the remote device and re-login to apply permissions, or enable sudo usage if you prefer.

Register the MCP server in Claude Desktop by configuring the MCP server entry with the provided command and path to the built index.

Screen resolution is auto-detected from the device, but you can override it using the REMOTETOUCH_SCREEN_WIDTH and REMOTETOUCH_SCREEN_HEIGHT environment variables if needed.

Security and permissions

Ensure you have appropriate SSH access to the remote device, and that the remote user has permission to access the touchscreen device. If you encounter permission issues, consider adding the user to the input group or enabling sudo execution for the daemon.

Troubleshooting

Permission denied: The remote user needs access to /dev/input/eventN. Add the user to the input group or run with sudo.

No physical touchscreen device found: Confirm the device has a touchscreen driver and that it exposes INPUT_PROP_DIRECT and ABS_MT_POSITION_X in the input devices list.

SSH connection fails: Use key-based authentication with BatchMode enabled and verify the host and port. Password-based authentication is not supported.

Notes

The MCP server is designed to work with containerized environments and virtual input devices where a native uinput device may not be detected. All communication uses a JSON-line protocol over a persistent SSH session.

Available tools

touch_connect

Connect to a remote Linux device via SSH and start the touch daemon, returning a session ID.

touch_tap

Tap at the given coordinates with an optional duration in milliseconds.

touch_swipe

Swipe from a starting coordinate to an ending coordinate with optional duration and steps.

touch_long_press

Perform a long press at given coordinates for a specified duration.

touch_double_tap

Double tap at the given coordinates.

touch_disconnect

Disconnect a session and clean up the remote daemon.

touch_list_sessions

List all active sessions.

Built by
VeilStrat
AI signals for GTM teams
© 2026 VeilStrat. All rights reserved.All systems operational