Titan MCP Server

Local setup required. This server has to be cloned and prepared on your machine before you register it in Claude Code.
1

Set the server up locally

Run this once to clone and prepare the server before adding it to Claude Code.

Run in terminal
git clone https://github.com/mrhavens/titan-mcp.git
cd titan-mcp
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
npm install
2

Register it in Claude Code

After the local setup is done, run this command to point Claude Code at the built server.

Run in terminal
claude mcp add titan-mcp -- python3 "<FULL_PATH_TO_TITAN_MCP>/dist/index.js" --config /path/to/titan-mcp/config/mcp.yaml

Replace <FULL_PATH_TO_TITAN_MCP>/dist/index.js with the actual folder you prepared in step 1.

README.md

A unified browser automation protocol that connects AI agents to browsers.

Titan MCP - Unified Browser Automation Protocol

A unified Model Context Protocol (MCP) that connects AI agents to multiple browser automation tools.

Overview

Titan MCP provides a unified interface for AI agents to control web browsers using multiple backends:

  • Selenium - Traditional browser automation
  • Playwright - Modern Chromium automation
  • Puppeteer - Node.js browser control
  • Browser-Use - AI-powered browser interactions

Installation

# Clone the repository
git clone https://github.com/mrhavens/titan-mcp.git
cd titan-mcp

# Install Python dependencies
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

# Install Node.js dependencies
npm install

# Configure
cp config/mcp.yaml.example config/mcp.yaml
# Edit mcp.yaml with your settings

Configuration

Edit config/mcp.yaml:

browsers:
  chromium:
    enabled: true
    headless: false
    viewport: { width: 1920, height: 1080 }
  
  firefox:
    enabled: false
    headless: true

  webkit:
    enabled: false

automation:
  selenium:
    implicit_wait: 10
    page_load_timeout: 30
    
  playwright:
    slow_mo: 0
    accept_downloads: true
    
  browser_use:
    max_steps: 100
    headless: false

agents:
  openclaw:
    gateway: "ws://192.168.1.64:18789"
    token: "your-gateway-token"
    
  # Connect to witness-zero agents
  witness_zero:
    ollama: "http://192.168.1.64:11434"

Usage

Starting the MCP Server

# Start MCP server
python3 mcp_server.py

# Or with custom config
python3 mcp_server.py --config config/mcp.yaml

Connecting to AI Agents

The MCP exposes WebSocket and HTTP endpoints for agent connections:

# Example: Connect OpenClaw agent
import websocket

ws = websocket.create_connection("ws://localhost:8765/agent")
ws.send('{"action": "navigate", "url": "https://example.com"}')

API Endpoints

Endpoint Method Description
/browse POST Navigate to URL with optional actions
/screenshot GET Take screenshot of current page
/execute POST Execute JavaScript in browser
/fill POST Fill form fields
/click POST Click elements
/ws/agent WS WebSocket for agent commands

Available Browsers

Browser Status Command
Chrome ✅ Installed google-chrome
Firefox ✅ Installed firefox
Chromium ✅ Installed chromium-browser
Edge ✅ Installed microsoft-edge
Opera ⚠️ Install issues -

Text Browsers (Fallback)

Browser Command
Lynx lynx
Links2 links2
W3m w3m

Architecture

┌─────────────────────────────────────────────────────────┐
│                    AI Agents                            │
│  (OpenClaw, Claude, GPT, Ollama, etc.)               │
└──────────────────────┬──────────────────────────────────┘
                       │ WebSocket / HTTP
                       ▼
┌─────────────────────────────────────────────────────────┐
│                   Titan MCP Server                        │
│  ┌──────────────┬──────────────┬──────────────┐         │
│  │   Selenium   │  Playwright  │  Puppeteer   │         │
│  └──────────────┴──────────────┴──────────────┘         │
│  ┌──────────────┬──────────────┐                         │
│  │ Browser-Use │  Text Mode  │                         │
│  └──────────────┴──────────────┘                         │
└──────────────────────┬──────────────────────────────────┘
                       │
                       ▼
┌─────────────────────────────────────────────────────────┐
│                    Browsers                              │
│  Chrome | Firefox | Chromium | Edge | Opera            │
└─────────────────────────────────────────────────────────┘

Environment Variables

# Ollama (local models)
OLLAMA_HOST=http://192.168.1.64:11434

# OpenClaw Gateway
OPENCLAW_GATEWAY=ws://192.168.1.64:18789
OPENCLAW_TOKEN=your-token

# Browser settings
BROWSER_HEADLESS=false
BROWSER_TIMEOUT=30

Examples

Navigate and Screenshot

import requests

# Navigate to URL
response = requests.post("http://localhost:8765/browse", json={
    "action": "navigate",
    "url": "https://github.com/mrhavens",
    "wait_for": "networkidle"
})

# Take screenshot
screenshot = requests.get("http://localhost:8765/screenshot")
with open("screenshot.png", "wb") as f:
    f.write(screenshot.content)

Execute JavaScript

response = requests.post("http://localhost:8765/execute", json={
    "script": "document.title = 'Hello from Titan MCP'",
    "return_value": "document.title"
})

KAIROS Integration

This MCP integrates with the KAIROS ADAMON system for autonomous agent coordination.

Phase Lock Testing

# Run phase lock test with 7 agents
python3 scripts/phase_lock_test.py

License

MIT

Author

Mark Havens / Titan R

Tools (5)

/browseNavigate to a URL with optional automation actions.
/screenshotTake a screenshot of the current browser page.
/executeExecute JavaScript in the browser context.
/fillFill form fields on the current page.
/clickClick elements on the current page.

Environment Variables

OLLAMA_HOSTURL for local Ollama models
OPENCLAW_GATEWAYWebSocket URL for OpenClaw gateway
OPENCLAW_TOKENAuthentication token for OpenClaw
BROWSER_HEADLESSSet browser to headless mode
BROWSER_TIMEOUTTimeout duration for browser operations

Configuration

claude_desktop_config.json
{"mcpServers": {"titan-mcp": {"command": "python3", "args": ["/path/to/titan-mcp/mcp_server.py", "--config", "/path/to/titan-mcp/config/mcp.yaml"]}}}

Try it

Navigate to https://github.com/mrhavens/titan-mcp and take a screenshot of the page.
Execute JavaScript on the current page to change the document title to 'Titan Automation'.
Fill out the login form on the current page with my credentials.
Click the submit button on the current page.

Frequently Asked Questions

What are the key features of Titan MCP?

Unified interface for Selenium, Playwright, Puppeteer, and Browser-Use. Supports both WebSocket and HTTP endpoints for agent communication. Includes fallback support for text-based browsers like Lynx and W3m. Integrated with KAIROS ADAMON for autonomous agent coordination. Configurable browser settings including viewport and headless mode.

What can I use Titan MCP for?

Automating complex web navigation tasks for AI agents. Performing automated visual regression testing via screenshots. Executing custom JavaScript snippets across multiple browser engines. Coordinating autonomous agent workflows using the KAIROS system.

How do I install Titan MCP?

Install Titan MCP by running: git clone https://github.com/mrhavens/titan-mcp.git && cd titan-mcp && python3 -m venv venv && source venv/bin/activate && pip install -r requirements.txt && npm install

What MCP clients work with Titan MCP?

Titan MCP works with any MCP-compatible client including Claude Desktop, Claude Code, Cursor, and other editors with MCP support.

Turn this server into reusable context

Keep Titan MCP docs, env vars, and workflow notes in Conare so your agent carries them across sessions.

Need the old visual installer? Open Conare IDE.
Open Conare