1. Conduid
  2. Productivity
  3. Codriver MCP
MCP server · Productivity

Codriver MCP

CoDriver - AI-powered Desktop Automation via MCP. Lets Claude control any desktop application through screenshots, accessibility trees, and input injection. The co-driver for human-AI collaboration.

Unclaimed MIT last commit 8 months ago productivity
56Fair

Scored yesterday · breakdown

About Codriver MCP

Codriver MCP is an MCP server published by ViktorTrn in the Productivity category: coDriver - AI-powered Desktop Automation via MCP. Lets Claude control any desktop application through screenshots, accessibility trees, and input injection. The co-driver for human-AI collaboration.

The repository has 16 stars and 5 forks, with the last commit 8 months ago. Six months or more without a commit doesn't mean the server is broken, but check the open issues before depending on it in production.

Install

From source
git clone https://github.com/ViktorTrn/codriver-mcp

This server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.

Tools (12)

desktop_clickClick at coordinates or by element ref

Parameters not published.

desktop_displaysList connected monitors for multi-display capture

Parameters not published.

desktop_dragDrag & drop between coordinates or element refs

Parameters not published.

desktop_findFind UI elements by name, role, or value

Parameters not published.

desktop_keyPress key combinations (`ctrl+c`, `alt+tab`, `f5`)

Parameters not published.

desktop_launchLaunch, quit, or check status of applications

Parameters not published.

desktop_ocrExtract text from screen via OCR (tesseract.js)

Parameters not published.

desktop_read_uiRead accessibility tree with ref IDs

Parameters not published.

desktop_screenshotCapture full desktop, window, or specific monitor (PNG/JPEG)

Parameters not published.

desktop_scrollScroll in any direction at position

Parameters not published.

desktop_typeType text at cursor or into a specific element

Parameters not published.

desktop_windowsList and focus application windows

Parameters not published.

Ask AI

✦

Ask AI about Codriver MCP

Powered by Claude · Grounded in docs

I know everything about Codriver MCP. Ask me about installation, configuration, usage, or troubleshooting.

Security checks

Static checks derived from the repository yesterday. Heuristics on the source, not an audit.

  • ✓README presentThe repository ships documentation.
  • ✓License declaredUsable under a stated license.
  • ✓Tests presentA test suite exists in the repository.
  • ✓Dependencies pinnedA lockfile pins dependency versions.
  • ✓No dynamic code executionSource scan found no eval, dynamic Function, or shell execution.
  • !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.

Releases

v0.5.0v0.5.0 - Windows Support · 12 Feb 2026Windows 10/11 Support 🪟 CoDriver MCP now runs on macOS and Windows - all 12 tools work on both platforms with zero new dependencies. What's New InputController: robotjs mouse/keyboard on Windows (Swift/CGEvent remains on macOS)…
v0.4.2v0.4.2 - Documentation Update · 12 Feb 2026What's Changed Updated README with macOS permission requirements and Sequoia-compatible tech stack. Documentation Added macOS Permissions section with table explaining Screen Recording and Accessibility requirements Added IDE tip: how…
v0.4.1v0.4.1 - macOS Sequoia Compatibility · 12 Feb 2026What's New Full macOS Sequoia compatibility - all 12 MCP tools tested and working. Bug Fixes Mouse input: Replace robotjs mouse operations with Swift/CGEvent (`robot.moveMouse()` broken on Sequoia) Window listing: Replace…
v0.4.0v0.4.0 - First Public Release · 12 Feb 2026CoDriver MCP v0.4.0 AI-powered Desktop Automation via Model Context Protocol What "Claude in Chrome" is for the browser, CoDriver is for the entire desktop. Installation npx codriver-mcp Or in Claude Code settings…

README

CoDriver MCP

AI-powered Desktop Automation via Model Context Protocol

CoDriver is an MCP server that gives Claude control over any desktop application. It captures screenshots, reads accessibility trees, performs OCR, and injects mouse/keyboard input - enabling real-time human-AI collaboration on the desktop.

What "Claude in Chrome" is for the browser, CoDriver is for the entire desktop.

Features

Tool Description
desktop_screenshot Capture full desktop, window, or specific monitor (PNG/JPEG)
desktop_click Click at coordinates or by element ref
desktop_type Type text at cursor or into a specific element
desktop_key Press key combinations (ctrl+c, alt+tab, f5)
desktop_scroll Scroll in any direction at position
desktop_drag Drag & drop between coordinates or element refs
desktop_windows List and focus application windows
desktop_read_ui Read accessibility tree with ref IDs
desktop_find Find UI elements by name, role, or value
desktop_launch Launch, quit, or check status of applications
desktop_ocr Extract text from screen via OCR (tesseract.js)
desktop_displays List connected monitors for multi-display capture

Platform Support

Platform Status Mouse/Keyboard Window Mgmt Accessibility Screenshots OCR
macOS Supported Swift/CGEvent + robotjs Swift/CoreGraphics JXA/osascript screenshot-desktop tesseract.js
Windows Supported robotjs PowerShell + Win32 P/Invoke PowerShell + UI Automation screenshot-desktop tesseract.js
Linux Planned - - - - -

Quick Start

Prerequisites

  • Node.js 20+
  • macOS or Windows 10/11
  • Windows only: Visual Studio Build Tools (for robotjs native compilation)

macOS Permissions

CoDriver requires two system permissions. Grant them in System Settings > Privacy & Security:

Permission Required for How to grant
Screen Recording Screenshots, window listing Add your terminal/IDE app
Accessibility Mouse clicks, keyboard input, scroll, UI tree reading Add your terminal/IDE app

Tip: If you use CoDriver from an IDE (e.g. Windsurf, VS Code), add the IDE app to both permission lists, then fully restart it (Cmd+Q).

Windows Permissions

Permission Required for Notes
None Screenshots, window listing, UI tree reading Works out of the box
Admin (optional) Reading UI of admin-elevated processes Run terminal as Administrator

Note: robotjs requires Visual Studio Build Tools to compile native modules on Windows. Install via npm install --global windows-build-tools or download from Visual Studio.

Installation

git clone https://github.com/ViktorTrn/codriver-mcp.git
cd codriver-mcp
npm install
npm run build

Configure in Claude Code (Local)

Add to ~/.claude/settings.json:

{
  "mcpServers": {
    "codriver": {
      "command": "node",
      "args": ["/absolute/path/to/codriver-mcp/dist/index.js"]
    }
  }
}

Remote Access (HTTP Transport)

node dist/index.js --http                           # localhost:3100
node dist/index.js --http --port 8080               # custom port
node dist/index.js --http --host 0.0.0.0            # all interfaces
node dist/index.js --http --api-key YOUR_SECRET      # with authentication

Remote Claude Code configuration:

{
  "mcpServers": {
    "codriver-remote": {
      "url": "http://your-machine:3100/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}

Usage Examples

"Take a screenshot of my desktop"
-> desktop_screenshot

"Read the UI tree of the frontmost app"
-> desktop_read_ui

"Find the Save button"
-> desktop_find { query: "Save" }

"Click the Save button"
-> desktop_click { ref: "ref_3" }

"Drag the file to the trash"
-> desktop_drag { startRef: "ref_5", endRef: "ref_12" }

"Type into the search field"
-> desktop_type { ref: "ref_5", text: "hello world" }

"Launch Safari"
-> desktop_launch { action: "launch", appName: "Safari" }

"Read text from this area of the screen"
-> desktop_ocr { x: 100, y: 200, width: 500, height: 100 }

"Which monitors are connected?"
-> desktop_displays

Accessibility-Driven Workflow

The recommended workflow mirrors Chrome's accessibility approach:

  1. Read UI - desktop_read_ui returns an element tree with ref IDs
  2. Find elements - desktop_find searches by name, role, or value
  3. Interact by ref - desktop_click { ref: "ref_1" } or desktop_type { ref: "ref_3", text: "..." }

This is more reliable than coordinate-based clicking since elements are identified semantically.

Key Combinations

Input Action
enter Press Enter
ctrl+c Copy
ctrl+v Paste
ctrl+shift+s Save As
cmd+a Select All (macOS)
alt+tab Switch Window
f5 Refresh
esc Escape

Development

npm run build        # Compile TypeScript
npm run dev          # Watch mode (tsx)
npm test             # Run tests (107 tests)
npm run typecheck    # Type-check without emit

Architecture

CoDriver MCP Server (Node.js/TypeScript)
  |
  +-- Transport
  |     +-- stdio (local, default)
  |     +-- Streamable HTTP/SSE (remote, --http flag)
  |
  +-- Tools (12 total)
  |     +-- desktop_screenshot   PNG/JPEG capture, multi-monitor
  |     +-- desktop_click        Mouse click (coords or ref)
  |     +-- desktop_type         Keyboard input
  |     +-- desktop_key          Key combinations
  |     +-- desktop_scroll       Scroll wheel
  |     +-- desktop_drag         Drag & drop
  |     +-- desktop_windows      Window management
  |     +-- desktop_read_ui      Accessibility tree
  |     +-- desktop_find         Element search
  |     +-- desktop_launch       App lifecycle
  |     +-- desktop_ocr          Text recognition
  |     +-- desktop_displays     Monitor listing
  |
  +-- Modules
        +-- ScreenCapture       screenshot-desktop + sharp (cross-platform)
        +-- InputController     Swift/CGEvent (macOS) | robotjs (Windows)
        +-- WindowManager       Swift/CoreGraphics (macOS) | PowerShell+Win32 (Windows)
        +-- AccessibilityReader JXA/osascript (macOS) | PowerShell+UIA (Windows)
        +-- AppLauncher         AppleScript (macOS) | PowerShell (Windows)
        +-- OcrEngine           tesseract.js (cross-platform)

Tech Stack

Component macOS Windows
Runtime Node.js 20 LTS, TypeScript 5.7+ strict same
MCP SDK @modelcontextprotocol/sdk v1.26 same
Screenshots screenshot-desktop + sharp same
Mouse Input Swift/CGEvent @jitsi/robotjs
Keyboard Input @jitsi/robotjs same
Accessibility JXA / osascript PowerShell + UI Automation (System.Windows.Automation)
Window Management Swift/CoreGraphics PowerShell + Win32 P/Invoke
App Launcher AppleScript / osascript PowerShell (Start-Process / Stop-Process)
OCR tesseract.js same
HTTP Transport Express + StreamableHTTPServerTransport same
Testing vitest (107 tests) same

Roadmap

  • Phase 1: MVP - Screenshots, mouse, keyboard, windows (macOS)
  • Phase 2: Accessibility - UI tree reading, element refs, natural language find
  • Phase 3: Remote - HTTP/SSE transport, API-key auth, JPEG compression
  • Phase 4: Polish - OCR, drag & drop, app launch, multi-monitor
  • Phase 5: Windows - Full Windows 10/11 support

Future

  • npm package publishing (npm install -g codriver-mcp)
  • GIF recording
  • Linux platform support

License

MIT

Author

Viktor Trncik - IBT Ingenieurbüro Trncik

README fetched from the repository yesterday. The original is authoritative.

Questions

About Codriver MCP

How do I install Codriver MCP?

No package has been published for this server, so install it from source: clone the repository and follow its README.

Is Codriver MCP safe to use with an AI agent?

Its trust score is 56 out of 100 (fair). It passes 5 of the 6 static security checks run so far; the failures are listed above. It has no ConduID identity yet, so agent calls to it are not receipted.

Is Codriver MCP still maintained?

The last commit was 8 months ago and 2 open issues. That's long enough that you should check whether the maintainer is responding to issues before depending on it.