Can MCP Server

Let AI agents see and interact with terminal/CLI apps via PNG screenshots

Local serverstdio

What is the Can MCP server?

If you already use Can, the can mcp server is the piece that lets your assistant work with it directly. Let AI agents see and interact with terminal/CLI apps via PNG screenshots.

What the server does

MCP server that lets AI agents see and interact with terminal/CLI applications through virtual terminals and PNG screenshots.

Available tools

The toolset is worth reading before you wire it up, because it tells you what the integration is really for:

  • launch — Start a CLI app in a virtual terminal. Returns a sessionId. Accepts optional env to set environment variables
  • screenshot — Capture the terminal as a PNG image
  • screenshot_region — Capture a specific rectangular area of the terminal
  • screenshot_text_region — Find text in the viewport and capture the surrounding area as a PNG
  • capture_baseline — Snapshot terminal state for later diff comparison
  • diff_screenshot — Compare current state against baseline with highlighted changes
  • get_cell_info — Query character, colors, and attributes at specific cell(s). Supports compact mode for reduced output
  • read_text — Read the terminal buffer as plain text
  • read_scrollback — Read text that scrolled above the visible viewport
  • wait_for_text — Wait until specific text appears in the terminal buffer
  • wait_for_idle — Wait until terminal output has been stable for a given duration. Supports stableMs for content-comparison mode (for apps with timers/spinners)
  • wait_for_color — Wait until a specific color appears at a position

Credentials and setup notes

can-see depends on node-canvas (Cairo) and node-pty, which require native compilation. Most systems will need: - Windows: Visual Studio Build Tools (C++ workload) — npm install --global windows-build-tools or install from Visual Studio Installer - macOS: Xcode Command Line Tools — xcode-select --install -

Installation

Installation goes through your MCP client rather than a global install: point it at can-see on npm and it is fetched when the client starts. The copy-paste blocks for Claude Desktop, Claude Code and Cursor are further down this page.

Where it fits

Among the browser automation options, the useful question is rarely "what can it do" but "what does it cost you to run" — permissions, credentials, and how much of your context its toolset consumes. Can's toolset — launch, screenshot, screenshot_region and 11 more — is a fair guide to whether it matches your workflow. It is maintained by HurleySk; worth a glance at recent repository activity before you build anything load-bearing on it.

SyncDev reviews every entry in this directory against the project's own documentation before publishing, and revisits them as servers change.

Worth knowing first

  • It runs with your machine's permissions. That is convenient and also the reason to think about what you point it at before you approve a tool call.
  • With 14 tools registered it takes up a noticeable share of the context window; turn it off in projects that never touch Can.
  • Keep per-call confirmation enabled while you learn its behaviour; it is the cheapest safeguard you have.

Available tools

ToolWhat it does
launchStart a CLI app in a virtual terminal. Returns a sessionId. Accepts optional env to set environment variables.
screenshotCapture the terminal as a PNG image.
screenshot_regionCapture a specific rectangular area of the terminal.
screenshot_text_regionFind text in the viewport and capture the surrounding area as a PNG.
capture_baselineSnapshot terminal state for later diff comparison.
diff_screenshotCompare current state against baseline with highlighted changes.
get_cell_infoQuery character, colors, and attributes at specific cell(s). Supports compact mode for reduced output.
read_textRead the terminal buffer as plain text.
read_scrollbackRead text that scrolled above the visible viewport.
wait_for_textWait until specific text appears in the terminal buffer.
wait_for_idleWait until terminal output has been stable for a given duration. Supports stableMs for content-comparison mode (for apps with timers/spinners), excludeRows to ignore specific rows, and excludePattern (regex) for dynamic
wait_for_colorWait until a specific color appears at a position.
wait_for_exitWait until the process exits and return its exit code and signal.
start_recordingBegin capturing frames for an animated GIF.

How to install the Can MCP server

Or if installed globally:

```json
{
  "mcpServers": {
    "can-see": {
      "command": "can-see"
    }
  }
}

Configuration as documented by the project. Restart the client after saving.

Configuration

can-see depends on node-canvas (Cairo) and node-pty, which require native compilation. Most systems will need: - Windows: Visual Studio Build Tools (C++ workload) — npm install --global windows-build-tools or install from Visual Studio Installer - macOS: Xcode Command Line Tools — xcode-select --install -

Example prompts to try

  • Use Can to launch.
  • Use Can to screenshot.
  • Use Can to screenshot region.

Frequently asked questions

It connects Can to MCP-compatible AI assistants such as Claude and Cursor, exposing 14 tools (launch, screenshot, screenshot_region, and more) that the assistant can call on your behalf. Instead of copying data back and forth by hand, the assistant works with Can directly.