Hyperion V2
Hyperion V2 - Agente Web Universal Nativo para LLM
El navegador más potente para IA. Servidor MCP universal que permite a cualquier agente de IA (Claude, Cursor, Cline, OpenCode, etc.) controlar Chrome real con 5 motores de percepción, heartbeat resiliente y visión en tiempo real.
CLAUDE CODE ──┐
CURSOR ├─── MCP / CLI ──── HYPERION V2 ──── CDP ──── CHROME REAL
CLINE │ (Zod schemas) (5 engines) (tus tabs, logins)
OPENCODE ├─── Heartbeat + Auto-Reconnect
AGY │ Real-Time Vision Streaming
CODEX │ Overlay [0][1][2]...
HERMES └─── Action Registry + Full Tracing🚀 ¿Qué hay de nuevo en V2?
1. API amigable para LLM con esquemas Zod
✅ Autodocumentación → Los LLMs entienden cada herramienta sin ambigüedad
✅ Ejecución con seguridad de tipos → Validación automática de entradas
✅ Más de 16 herramientas preregistradas → screenshot, click, type, overlay, vision, etc.
2. Heartbeat + Reconexión automática resiliente
✅ Monitoreo de salud → Detecta desconexiones silenciosas
✅ Retroceso exponencial → Reconexión automática con retardo creciente
✅ Pool de conexiones → Métricas en tiempo real (latencia, mensajes, errores)
✅ No más "conexión perdida" → Se recupera automáticamente
3. Transmisión de visión en tiempo real
✅ Fotogramas continuos → De 1 a 10 fps configurables
✅ Detección de cambios → Detecta qué elementos se agregaron o eliminaron
✅ Detección de plataformas → Identifica Instagram, TikTok, Facebook, etc.
✅ Metadatos completos de elementos → Posición, texto, selectores, roles ARIA
4. Marco de acciones universal
✅ Traza de ejecución completa → Captura de pantalla antes/después, historial de reintentos, duración
✅ Reintento automático → Configurable por acción (tiempo de espera, retroceso)
✅ Historial de ejecución → Últimas 1000 acciones con registros completos
✅ Patrón de escucha → Suscríbete a eventos de ejecución
5. Motor de superposición robusto
✅ Inyección ÚNICA → Garantizada, sin duplicados
✅ Actualización automática → Se refresca ante cambios en el DOM
✅ MutationObserver + Resize → Siempre sincronizado
✅ Clic por ID [0][1][2] → El LLM ve los números y hace clic
Related MCP server: agentify-desktop
📋 Arquitectura V2
src/
├── core/
│ ├── types.ts ← Universal types (16 interfaces)
│ └── ActionRegistry.ts ← Action execution + tracing
│
├── connection/
│ ├── transport.ts ← Base transport (CDP protocol)
│ ├── resilience/
│ │ ├── HeartbeatManager.ts ← Health monitoring
│ │ ├── ReconnectionManager.ts ← Auto-reconnect + backoff
│ │ ├── ConnectionPool.ts ← Metrics + connection management
│ │ └── ConnectionHealthCheck.ts
│ ├── attach.ts ← WebSocket attach mode
│ ├── launch.ts ← Fresh Chrome launch
│ └── extension.ts ← Chrome extension mode
│
├── vision/
│ └── VisionEngine.ts ← Real-time frame capture + analysis
│
├── overlay/
│ └── OverlayEngine.ts ← Robust element mapping
│
├── mcp/
│ ├── LLMServer.ts ← 16+ registered actions
│ └── MCPServerAdapter.ts ← MCP protocol bridge
│
├── hyperion.ts ← Main client API
└── cli.ts ← CLI entry point (MCP/interactive)🎯 Casos de uso
Claude Code / Cursor / Cline
# Start MCP server
hyperion --mcp --launch
# Configure in your editor's settings
# Claude Code automatically discovers and uses all 16+ toolsAsí usa el LLM una acción:
{
"actionId": "overlay-inject",
"input": {
"refreshIntervalMs": 1000
}
}
→ Response: {
"injected": true,
"elementCount": 42,
"elements": [
{ "overlayId": 0, "text": "Click here", "x": 100, "y": 200 },
{ "overlayId": 1, "text": "Submit", "x": 150, "y": 250 },
...
]
}{
"actionId": "overlay-click",
"input": { "overlayId": 5 }
}
→ Response: { "clicked": true, "overlayId": 5 }📊 Más de 16 acciones registradas
Acción | Categoría | Percepción | Tiempo de espera | Reintento |
| visual | visual | 5s | ✗ |
| navegación | ninguna | 30s | ✓ (2x) |
| interacción | visual | 3s | ✓ (3x) |
| interacción | ninguna | 5s | ✓ (2x) |
| visual | visual | 5s | ✗ |
| visual | visual | 2s | ✗ |
| interacción | visual | 3s | ✓ (2x) |
| visual | ninguna | 2s | ✗ |
| visual | visual | ∞ | ✗ |
| visual | ninguna | ∞ | ✗ |
| extracción | ninguna | 5s | ✗ |
| utilidad | ninguna | 15s | ✗ |
| interacción | ninguna | 3s | ✗ |
| utilidad | ninguna | 5s | ✗ |
| interacción | visual | 2s | ✗ |
| interacción | ninguna | 3s | ✗ |
🔧 Instalación
npm install -g hyperion-browser
# O desde source
git clone https://github.com/ericklrm89-jpg/hyperion.git
cd hyperion
npm install
npm run build🎬 Inicio rápido
Modo MCP (Claude Code, Cursor, etc.)
# Launch fresh Chrome + MCP server
hyperion --mcp --launch --port 9222
# O attach a Chrome existente
hyperion --mcp --attach ws://localhost:9222/devtools/page/xxx
# O usar extension
hyperion --mcp --extensionCLI interactivo
hyperion --launch
> navigate https://example.com
> screenshot
> click "button.submit"
> type "#email" "test@example.com"
> scroll down 500
> eval "document.title"🏗️ Arquitectura de pilares
PILAR 1: Tipos principales
Definiciones universales compartidas por todo el sistema:
ActionDefinition<T>→ Esquema Zod + metadatosActionExecution→ Traza completa con capturas de pantallaVisionFrame→ Fotograma con más de 30 propiedadesConnectionMetrics→ Monitoreo de salud
PILAR 2: Capa de resiliencia
Heartbeat + Reconexión automática + Pool de conexiones
// Heartbeat detecta desconexiones
const hb = new HeartbeatManager(
sender,
onHealthChange,
{ maxMissed: 3, clientId: 'agent-1' }
);
hb.start(5000); // Ping cada 5s
// ReconnectionManager reintentos exponenciales
const rc = new ReconnectionManager({
maxAttempts: 10,
initialBackoffMs: 1000,
maxBackoffMs: 30000,
backoffMultiplier: 1.5,
});
await rc.executeWithReconnect(() => transport.call('Method'));
// ConnectionPool métricas
const pool = new ConnectionPool();
pool.recordMessageSent('conn-1', 'Page.navigate', 250);
const metrics = pool.getMetrics('conn-1');
// { state, messagesSent, averageLatency, errorCount, ... }PILAR 3: Marco de acciones universal
Ejecución segura + Reintento + Traza
const registry = new ActionRegistry();
// Registrar acción
registry.register({
id: 'custom-action',
name: 'My Action',
description: '...',
schema: z.object({ ... }),
retry: { maxAttempts: 3, backoffMs: 1000 },
timeout: 10000,
});
// Ejecutar con tracing
const execution = await registry.execute(
'custom-action',
{ input: 'value' },
async (validated) => {
// Tu código aquí
return result;
},
{
captureScreenshots: true,
beforeScreenshot: () => hyperion.screenshot.capture(),
afterScreenshot: () => hyperion.screenshot.capture(),
}
);
// execution contiene:
// - status, duration, attempts
// - output, error (si falló)
// - screenshots before/after/error
// - retry count y historial
registry.onExecution(exec => {
console.log(`Action ${exec.actionId} -> ${exec.status} (${exec.duration}ms)`);
});PILAR 4: Visión en tiempo real
Transmisión + Detección de cambios
const vision = new VisionEngine(hyperion);
// Start streaming
await vision.startStreaming(1000); // 1 frame/sec
vision.on('frame', (frame: VisionFrame) => {
console.log(`Frame ${frame.id}:`);
console.log(` URL: ${frame.url}`);
console.log(` Elements: ${frame.elements.length}`);
console.log(` Platform: ${frame.platform}`);
console.log(` Changes: +${frame.changes?.added.length} -${frame.changes?.removed.length}`);
});
vision.on('frame-changed', (frame) => {
// Solo elementos nuevos/removidos
console.log('DOM cambió:', frame.changes);
});
const latest = vision.getLatestFrame();
const history = vision.getFrameHistory(10);
const stats = vision.getStats();
vision.stopStreaming();PILAR 5: Motor de superposición
Inyección robusta + Sincronización automática
const overlay = new OverlayEngine();
// Inyectar (una sola vez, garantizado)
await overlay.ensureInjected(hyperion, { refreshIntervalMs: 1000 });
// Obtener elementos
const elements = await overlay.getElements(hyperion);
// [
// { overlayId: 0, text: 'Login', x: 100, y: 200 },
// { overlayId: 1, text: 'Sign Up', x: 150, y: 200 },
// ]
// Click por ID
await overlay.clickById(hyperion, 5);
// Eliminar overlay
await overlay.kill(hyperion);PILAR 6: Servidor LLM
Puente MCP + Más de 16 acciones
const llmServer = new LLMServer(hyperion);
// Automáticamente registra 16+ acciones
const definitions = llmServer.getActionDefinitions();
// Cada una tiene schema Zod auto-documentado
// Ejecutar acción (como lo haría un LLM)
const result = await llmServer.executeAction('overlay-inject', {
refreshIntervalMs: 1000,
});
// Ejecuta, trackea, captura screenshots, reintentos
const history = llmServer.getExecutionHistory(100);
const stats = llmServer.getStats();🎛️ 3 modos de conexión
Modo | Método | Antidetección | Chrome 136+ | Recomendado |
Extensión | Mensajería nativa | ✅ CreepJS 0% | ✅ Sin popup | ✅ Predeterminado |
Iniciar | Generar navegador nuevo | ✅ Sigilo total | N/A | Para CI/aislado |
Adjuntar | WebSocket a navegador existente | ⚠️ Parcial | ❌ Popup | Solo depuración |
🔒 Antidetección
Runtime.enableDESACTIVADO → Elimina fugas en tiempo de ejecuciónEmulation.setAutomationOverride→navigator.webdriver = false(nativo)Cero parches JS → Sin huellas digitales
Extensión + Mensajería nativa → Evita popup de Chrome 136+
Emulation.setFocusEmulationEnabled→ Las pestañas en segundo plano no reducen velocidad
📈 Métricas y depuración
// Connection metrics
const pool = new ConnectionPool();
const metrics = pool.getMetrics('conn-1');
// {
// state: 'connected',
// messagesSent: 1250,
// messagesReceived: 1240,
// failedMessages: 2,
// averageLatencyMs: 45.2,
// errorCount: 1,
// reconnectAttempts: 0
// }
// Action execution stats
const stats = registry.getStats();
// {
// totalExecutions: 500,
// successful: 495,
// failed: 5,
// successRate: 99%,
// averageDurationMs: 234.5
// }
// Execution trace
const exec = registry.getExecutionById('action-id-123');
// {
// status: 'success',
// duration: 1234,
// attempts: [
// { attempt: 1, result: {...} },
// { attempt: 2, error: '...' },
// { attempt: 3, result: {...} }
// ],
// screenshots: [
// { phase: 'before', base64: '...' },
// { phase: 'after', base64: '...' }
// ]
// }🧪 Pruebas
# Unit tests
npm run test
# Integration tests
npm run test:integration
# Watch mode
npm run test -- --watch📚 Documentación completa
API principal - Referencia completa
Definiciones de esquemas - Todos los esquemas Zod
Ejemplos - Ejemplos funcionales
Arquitectura - Diagrama detallado
🤝 Integración con LLMs
Claude Code
{
"mcpServers": {
"hyperion": {
"command": "hyperion",
"args": ["--mcp", "--launch"]
}
}
}Cursor
En .cursor/settings.json:
{
"rules": {
"hyperion": "hyperion --mcp --launch"
}
}Cline
En cline_config.json:
{
"mcpServers": [
{
"name": "hyperion",
"command": "npx hyperion --mcp --launch"
}
]
}📄 Licencia
MIT - Libre para uso comercial y personal
🚀 Hoja de ruta V2.1
Integración de grabación de video
Gestión de múltiples pestañas
Soporte avanzado de gestos (deslizar, pellizcar)
Integración con Chrome DevTools
Persistencia en la nube para registros de ejecución
Ganchos de perfilado de rendimiento
💬 Soporte
Problemas en GitHub: hyperion/issues
Discusiones: hyperion/discussions
Hyperion V2 - El marco de automatización de navegadores nativo para LLM.
Creado con 💚 para agentes de IA que desean automatizar la web correctamente.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityCmaintenanceMCP server + Chrome extension that gives AI coding agents control of your real browser with existing sessions, logins, and cookies. Works with Cursor, Claude, Windsurf.188847MIT

agentify-desktopofficial
AlicenseNot gradedqualityBmaintenanceMCP server that enables AI tools to control local browser sessions for ChatGPT, Claude, and other AI services, supporting querying, navigation, file uploads, and artifact management.65529Mozilla Public 2.0- FlicenseBqualityBmaintenanceA minimalist browser control engine that allows LLM agents to visually perceive and interact with web pages through the Chrome DevTools Protocol and MCP standard.411
- AlicenseNot gradedqualityAmaintenanceAn MCP server that lets LLM agents control all Chrome browser tabs via accessibility snapshots, element references, and a virtual cursor, supporting operations like click, type, navigate, screenshot, and video recording.MIT
Related MCP Connectors
Live browser debugging for AI assistants — DOM, console, network via MCP.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ericklrm89-jpg/hyperion'
If you have feedback or need assistance with the MCP directory API, please join our Discord server