MCP Directory

How to add Touchpoint to Windsurf

Give AI agents eyes and hands on any desktop via native accessibility APIs — no vision model required. Paste the config into ~/.codeium/windsurf/mcp_config.json and restart Windsurf.

Last updated June 14, 2026 · 39 · stdio · no auth

Windsurf config for Touchpoint

pip install touchpoint-py
{
  "mcpServers": {
    "touchpoint": {
      "command": "touchpoint-mcp",
      "args": []
    }
  }
}

Setup steps

  1. 1Open Windsurf → Cascade → the hammer/MCP icon → Configure (or edit ~/.codeium/windsurf/mcp_config.json).
  2. 2Paste the Touchpoint config below.
  3. 3Fill in placeholder secrets, then save.
  4. 4Click Refresh in the MCP panel.
  5. 5Touchpoint's tools become available to Cascade.

Before you start

  • Python 3.10+
  • pip install touchpoint-py
  • macOS: grant Accessibility permission (System Settings → Privacy & Security → Accessibility)
  • Linux: install xdotool (input + minimize_window) and wmctrl (window management); python3-gi and gir1.2-atspi-2.0 if missing
  • Windows: none — uses built-in COM/UIA APIs
  • Optional: launch Chrome/Electron apps with --remote-debugging-port for CDP support

What Touchpoint can do in Windsurf

screenshot

Capture the full desktop or crop to an app/window/element/monitor (vision mode).

snapshot

Get a compact structured text tree of the active window for orientation.

diff_snapshot

Show what changed between snapshots (no-vision mode orientation).

apps

List application names present in the accessibility tree.

windows

List all windows with id, title, app, position, size, and active state.

find

Search elements by name using 4-stage matching: exact → contains → word → fuzzy.

get_element

Fetch a fresh snapshot of a single element by ID (vision mode).

read_text

Read the text content of an element.

Security

The server gives an AI agent full control over the local desktop — reading the accessibility tree and simulating clicks, typing, and window management across all running apps. Grant only to trusted clients. On macOS you must explicitly grant Accessibility permission (System Settings → Privacy & Security → Accessibility). Browser/Electron control requires launching the app with a remote-debugging port. Wayland (without XWayland) cannot simulate input; the accessibility tree and native actions still work.

Touchpoint + Windsurf FAQ

Where is the Windsurf config file?

Windsurf reads MCP servers from ~/.codeium/windsurf/mcp_config.json. Paste the Touchpoint config there under the "mcpServers" key and restart the client.

Is Touchpoint safe to use with Windsurf?

The server gives an AI agent full control over the local desktop — reading the accessibility tree and simulating clicks, typing, and window management across all running apps. Grant only to trusted clients. On macOS you must explicitly grant Accessibility permission (System Settings → Privacy & Security → Accessibility). Browser/Electron control requires launching the app with a remote-debugging port. Wayland (without XWayland) cannot simulate input; the accessibility tree and native actions still work.

Does Touchpoint require a vision model?

No. It reads the native accessibility tree for structured element data. It offers a no-vision mode using compact text snapshots, plus an optional vision mode with screenshots for frontier models.

Which platforms are supported?

Linux (AT-SPI2 + xdotool), Windows (UIA + SendInput), and macOS (AX + CGEvent), all tested. Chromium and Electron apps are supported cross-platform via CDP.

How do I add it to Claude Desktop?

Add an entry under mcpServers with command "touchpoint-mcp" in claude_desktop_config.json. If you installed into a virtualenv, use the full path to the touchpoint-mcp binary.

View repo Full Touchpoint page