MCP Hub
Back to servers

go_computer_use_mcp_server

MCP (Model Context Protocol) server in Go for computer automation. Uses robotgo library for desktop automation. Features Mouse control: movement, clicks, dragging, scrolling Keyboard control: key presses, text input, hotkeys Screen operations: screenshots, pixel color, display information Window management: move, resize, minimize/maximize Process management: list processes, search, terminate

glama
Updated
Apr 10, 2026

go_computer_use_mcp_server

[!WARNING] This server is intended to run as a trusted local MCP tool.
It currently provides broad local desktop control and is not sandboxed by default.
Do not expose it to untrusted networks, users, or agents without additional security controls.

MCP (Model Context Protocol) server in Go for computer automation. Uses robotgo library for desktop automation.

Features

  • Mouse control: movement, clicks, dragging, scrolling
  • Keyboard control: key presses, text input, hotkeys
  • Screen operations: screenshots, pixel color, display information
  • Window management: move, resize, minimize/maximize
  • Process management: list processes, search, terminate
  • System utilities: system info, dialogs, delays

Quick Start with npx

The easiest way to run the server is via npx (requires Node.js 18+):

# Run with stdio transport (for MCP clients)
npx go-computer-use-mcp-server -t stdio

# Run with SSE transport
npx go-computer-use-mcp-server -t sse -h 0.0.0.0 -p 8080

Integration with AI Tools

Claude Desktop

Add to your Claude Desktop configuration file:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json Linux: ~/.config/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "computer-use": {
      "command": "npx",
      "args": ["-y", "go-computer-use-mcp-server", "-t", "stdio"]
    }
  }
}

Claude Code

Using CLI command:

claude mcp add computer-use -- npx -y go-computer-use-mcp-server -t stdio
claude mcp add --transport stdio \
  --env DISPLAY="$DISPLAY" \
  --env XAUTHORITY="${XAUTHORITY:-$HOME/.Xauthority}" \
  computer-use -- \
  npx -y go-computer-use-mcp-server -t stdio

Or add manually to your project's .mcp.json file:

{
  "mcpServers": {
    "computer-use": {
      "command": "npx",
      "args": ["-y", "go-computer-use-mcp-server", "-t", "stdio"]
    }
  }
}

OpenCode

Add to your opencode.jsonc configuration file:

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "computer-use": {
      "type": "local",
      "command": ["npx", "-y", "go-computer-use-mcp-server", "-t", "stdio"],
      "enabled": true
    }
  }
}

Codex (OpenAI)

Using CLI command:

codex mcp add computer-use -- npx -y go-computer-use-mcp-server -t stdio

Or add to ~/.codex/config.toml:

[mcp_servers.computer-use]
command = "npx"
args = ["-y", "go-computer-use-mcp-server", "-t", "stdio"]
env_vars = ["DISPLAY", "XAUTHORITY"]

Cursor

Add to your Cursor MCP configuration. Go to Cursor Settings > Features > MCP Servers and add:

{
  "mcpServers": {
    "computer-use": {
      "command": "npx",
      "args": ["-y", "go-computer-use-mcp-server", "-t", "stdio"]
    }
  }
}

Windsurf

Add to ~/.codeium/mcp_config.json or via Settings > Cascade > MCP Servers > Add Server:

{
  "mcpServers": {
    "computer-use": {
      "command": "npx",
      "args": ["-y", "go-computer-use-mcp-server", "-t", "stdio"]
    }
  }
}

Cline (VS Code Extension)

Click the MCP Servers icon in Cline panel, select "Configure" tab, then "Configure MCP Servers" to edit cline_mcp_settings.json:

{
  "mcpServers": {
    "computer-use": {
      "command": "npx",
      "args": ["-y", "go-computer-use-mcp-server", "-t", "stdio"],
      "disabled": false
    }
  }
}

Generic MCP Client

For any MCP-compatible client, use:

npx -y go-computer-use-mcp-server -t stdio

Installation from Source

Requirements

  • Go 1.21+
  • GCC compiler
  • X11 libraries (Linux)

Ubuntu/Debian

# Go (if not installed)
sudo snap install go --classic

# GCC
sudo apt install gcc libc6-dev

# X11
sudo apt install libx11-dev xorg-dev libxtst-dev

# Clipboard support
sudo apt install xsel xclip

# Bitmap support (for image operations)
sudo apt install libpng++-dev

# Event hook support
sudo apt install xcb libxcb-xkb-dev x11-xkb-utils libx11-xcb-dev libxkbcommon-x11-dev libxkbcommon-dev

One-liner:

sudo apt install gcc libc6-dev libx11-dev xorg-dev libxtst-dev xsel xclip libpng++-dev xcb libxcb-xkb-dev x11-xkb-utils libx11-xcb-dev libxkbcommon-x11-dev libxkbcommon-dev

Fedora

# GCC (if not installed)
sudo dnf install gcc

# X11
sudo dnf install libX11-devel libXtst-devel

# Clipboard support
sudo dnf install xsel xclip

# Bitmap support
sudo dnf install libpng-devel

# Event hook support
sudo dnf install libxkbcommon-devel libxkbcommon-x11-devel xorg-x11-xkb-utils-devel

One-liner:

sudo dnf install gcc libX11-devel libXtst-devel xsel xclip libpng-devel libxkbcommon-devel libxkbcommon-x11-devel xorg-x11-xkb-utils-devel

Build

# Download dependencies
make deps

# Build for current platform
make build

# Build for all platforms
make build-all

Running (from source)

SSE transport (default)

./go_computer_use_mcp_server -t sse -h 0.0.0.0 -p 8080

Stdio transport

./go_computer_use_mcp_server -t stdio

Command line arguments

ArgumentDescriptionDefault
-tTransport: sse or stdiosse
-hHost for SSE server0.0.0.0
-pPort for SSE server8080

Available Tools

Mouse Control (12 tools)

ToolDescription
mouse_moveMove cursor to absolute coordinates
mouse_move_smoothSmooth cursor movement (human-like)
mouse_move_relativeRelative cursor movement
mouse_get_positionGet current cursor position
mouse_clickMouse click
mouse_click_atMove and click
mouse_togglePress/release mouse button
mouse_dragDrag operation
mouse_drag_smoothSmooth drag operation
mouse_scrollScroll
mouse_scroll_directionScroll in direction
mouse_scroll_smoothSmooth scroll

Keyboard Control (7 tools)

ToolDescription
key_tapKey press (with modifiers)
key_togglePress/release key
type_textType text (UTF-8)
type_text_delayedType text with delay
clipboard_readRead clipboard
clipboard_writeWrite to clipboard
clipboard_pastePaste via clipboard

Screen Operations (7 tools)

ToolDescription
screen_get_sizeGet screen size
screen_get_displays_numNumber of monitors
screen_get_display_boundsMonitor bounds
screen_captureScreen capture (returns MCP ImageContent)
screen_capture_saveCapture and save to file
screen_get_pixel_colorPixel color at coordinates
screen_get_mouse_colorPixel color under cursor

Window Management (9 tools)

ToolDescription
window_get_activeActive window information
window_get_titleWindow title
window_get_boundsWindow bounds
window_set_activeActivate window
window_moveMove window
window_resizeResize window
window_minimizeMinimize window
window_maximizeMaximize window
window_closeClose window

Process Management (6 tools)

ToolDescription
process_listList all processes
process_find_by_nameFind processes by name
process_get_nameGet process name by PID
process_existsCheck if process exists
process_killKill process
process_runRun command

System Utilities (3 tools)

ToolDescription
system_get_infoSystem information
util_sleepSleep/delay
alert_showShow dialog

Usage Examples

Move mouse and click

{
  "tool": "mouse_click_at",
  "arguments": {
    "x": 100,
    "y": 200,
    "button": "left",
    "double": false
  }
}

Type text

{
  "tool": "type_text",
  "arguments": {
    "text": "Hello, World!",
    "delay": 50
  }
}

Hotkeys

{
  "tool": "key_tap",
  "arguments": {
    "key": "c",
    "modifiers": ["ctrl"]
  }
}

Screen capture

{
  "tool": "screen_capture",
  "arguments": {
    "x": 0,
    "y": 0,
    "width": 800,
    "height": 600
  }
}

Supported Keys

Letters and numbers

a-z, A-Z, 0-9

Function keys

f1-f24

Navigation

up, down, left, right, home, end, pageup, pagedown

Special keys

backspace, delete, enter, tab, escape, space, insert, capslock

Modifiers

alt, ctrl, shift, cmd (or command)

Multimedia

audio_mute, audio_vol_down, audio_vol_up, audio_play, audio_stop, audio_pause

License

MIT

Reviews

No reviews yet

Sign in to write a review