Skip to main content
Glama

Arche Browser

MCP Server for Browser Automation and Full Local PC Control.

Control a real Chrome browser AND your entire computer from Claude Code or any MCP client.

Features

  • Full Browser Control: Navigation, clicks, typing, screenshots, and more

  • Full PC Control: Shell commands, Python execution, file system, clipboard, processes

  • Real Browser: Uses your actual Chrome with cookies, extensions, login sessions

  • Remote Access: Control browser/PC on any machine via SSE transport

  • Token Authentication: Secure remote access with auto-generated tokens

  • Minimal Design: Just a few powerful primitives that can do anything

Design Philosophy

Inspired by Eric Gamma's principles: Simple, Flexible, Powerful

Instead of hundreds of specific tools, Arche provides a few powerful primitives:

Primitive

What it does

What you can achieve

shell()

Execute any shell command

Volume, reboot, programs, services, ANYTHING

python_exec()

Execute Python code

Camera, Excel, AI, complex logic, ANYTHING

screen_capture()

Desktop screenshot

Visual feedback for AI

With just shell and python_exec, AI can literally control EVERYTHING on your computer.

Installation

# From PyPI
pip install arche-browser

# From GitHub
pip install git+https://github.com/GizAI/arche-browser.git

# One-liner (no install)
uvx arche-browser

Usage

Browser Only (Default)

arche-browser

Claude Code config:

{"mcpServers": {"browser": {"command": "arche-browser"}}}

Full PC Control

arche-browser --local

Claude Code config:

{"mcpServers": {"arche": {"command": "arche-browser", "args": ["--local"]}}}

PC Control Only (No Browser)

arche-browser --local --no-browser

Remote Access (SSE)

On the machine with Chrome:

arche-browser --sse --port 8080 --local

# Output:
# [*] Auth: ENABLED
# [*] Token: abc123...
# [*] Connect URL: http://localhost:8080/sse?token=abc123...

On Claude Code:

{"mcpServers": {"remote": {"url": "http://YOUR_IP:8080/sse?token=YOUR_TOKEN"}}}

Local Control Tools

Core Primitives

Tool

Description

shell(command)

Execute shell command (bash/cmd/powershell)

python_exec(code)

Execute Python code with full system access

screen_capture(path)

Capture desktop screenshot

Convenience Tools

Tool

Description

file_read(path)

Read file content

file_write(path, content)

Write file content

file_list(path, pattern)

List directory contents

file_delete(path)

Delete file or directory

file_copy(src, dst)

Copy file or directory

file_move(src, dst)

Move/rename file or directory

clipboard_get()

Get clipboard content

clipboard_set(content)

Set clipboard content

system_info()

Get OS, CPU, memory, disk info

process_list()

List running processes

process_kill(pid/name)

Kill a process

What You Can Do

# Volume control (Windows)
shell("powershell (Get-AudioDevice -Playback).SetMute($false)")

# Take a photo with webcam
python_exec("""
import cv2
cap = cv2.VideoCapture(0)
ret, frame = cap.read()
cv2.imwrite("photo.jpg", frame)
cap.release()
""")

# Create Excel spreadsheet
python_exec("""
import openpyxl
wb = openpyxl.Workbook()
ws = wb.active
ws['A1'] = 'Sales Report'
ws['A2'] = 1000
wb.save('report.xlsx')
""")

# System maintenance
shell("cleanmgr /d C:")  # Windows disk cleanup
shell("sudo apt autoremove")  # Linux cleanup

# Reboot computer
shell("shutdown /r /t 60")  # Windows
shell("sudo reboot")  # Linux

# Kill a program
process_kill(name="notepad.exe")

Browser Tools

Navigation

Tool

Description

goto(url)

Navigate to URL

get_url()

Get current URL

get_title()

Get page title

reload()

Reload page

go_back()

Go back in history

go_forward()

Go forward in history

DOM & Input

Tool

Description

get_text(selector)

Get element text

get_html(selector)

Get element HTML

click(selector)

Click element

type_text(selector, text)

Type into input

select_option(selector, value)

Select dropdown

check_box(selector, checked)

Check/uncheck

scroll_to(x, y)

Scroll page

Screenshots & PDF

Tool

Description

screenshot(path)

Take screenshot

pdf(path)

Generate PDF

Cookies & Storage

Tool

Description

get_cookies()

Get cookies

set_cookie(name, value)

Set cookie

storage_get(key)

Get localStorage

storage_set(key, value)

Set localStorage

JavaScript

Tool

Description

evaluate(script)

Execute JS

CLI Options

arche-browser [OPTIONS]

Mode:
  --local          Enable full local PC control
  --no-browser     Disable browser tools (requires --local)

Transport:
  --sse            Run as SSE server for remote access
  --port PORT      SSE server port (default: 8080)

Browser:
  --headless       Run Chrome in headless mode

Authentication:
  --no-auth        Disable token authentication
  --token TOKEN    Use specific auth token
  --show-token     Show current auth token
  --reset-token    Generate new auth token

Architecture

arche_browser/
├── __init__.py    # Package exports
├── __main__.py    # CLI entry point
├── chrome.py      # Chrome process management
├── browser.py     # Full CDP browser automation
├── server.py      # MCP server with all tools
├── auth.py        # Token authentication
├── local.py       # Local PC control primitives
└── sites/
    └── chatgpt.py # ChatGPT-specific client

Security

  • Token Authentication: Remote SSE servers require authentication by default

  • Explicit Opt-in: Local PC control requires --local flag

  • No Sandbox: Local control has NO restrictions - use responsibly

Requirements

  • Python 3.10+

  • Chrome, Chromium, or Edge browser (for browser tools)

  • MCP client (Claude Code, etc.)

License

MIT