Supports automated navigation and interaction with the Firefox web browser as a target for AI-driven tasks.
Connects AI agents to local models via Ollama to facilitate autonomous browser-based interaction and coordination.
Allows AI agents to control and automate interactions within the Opera web browser.
Integrates Puppeteer as a backend automation engine to enable Chromium-based browser control for AI agents.
Leverages Selenium as a backend to provide cross-browser automation and traditional web control capabilities.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Titan MCPnavigate to https://github.com/mrhavens and take a screenshot"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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 settingsConfiguration
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.yamlConnecting 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 |
| POST | Navigate to URL with optional actions |
| GET | Take screenshot of current page |
| POST | Execute JavaScript in browser |
| POST | Fill form fields |
| POST | Click elements |
| WS | WebSocket for agent commands |
Available Browsers
Browser | Status | Command |
Chrome | ✅ Installed |
|
Firefox | ✅ Installed |
|
Chromium | ✅ Installed |
|
Edge | ✅ Installed |
|
Opera | ⚠️ Install issues | - |
Text Browsers (Fallback)
Browser | Command |
Lynx |
|
Links2 |
|
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=30Examples
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.pyLicense
MIT
Author
Mark Havens / Titan Root Havens
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.