Titan MCP
A unified browser automation protocol that connects AI agents to multiple automation backends including Selenium, Playwright, and Puppeteer. It provides a centralized interface for agents to navigate websites, execute JavaScript, and manage web interactions across various browser engines.
README
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 Root Havens
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.