Hyperion V2
Hyperion V2 - LLM原生通用网络代理
最强大的AI浏览器。 通用MCP服务器,允许任何AI代理(Claude、Cursor、Cline、OpenCode等)通过5种感知引擎、弹性心跳和实时视觉控制真实的Chrome浏览器。
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🚀 V2新特性
1. 基于Zod Schema的LLM友好API
✅ 自动文档 → LLM无歧义理解每个工具
✅ 类型安全执行 → 自动验证输入
✅ 16+预注册工具 → 截图、点击、输入、覆盖层、视觉等
2. 心跳+弹性自动重连
✅ 健康监控 → 检测静默断开
✅ 指数退避 → 自动重连,延迟递增
✅ 连接池 → 实时指标(延迟、消息、错误)
✅ 告别"连接丢失" → 自动恢复
3. 实时视觉流
✅ 连续帧 → 可配置1-10帧/秒
✅ 变化检测 → 检测添加/移除的元素
✅ 平台检测 → 识别Instagram、TikTok、Facebook等
✅ 完整元素元数据 → 位置、文本、选择器、ARIA角色
4. 通用动作框架
✅ 完整执行追踪 → 操作前后截图、重试历史、持续时间
✅ 自动重试 → 按动作可配置(超时、退避)
✅ 执行历史 → 最近1000个动作及完整日志
✅ 监听器模式 → 订阅执行事件
5. 稳健覆盖层引擎
✅ 一次性注入 → 保证无重复
✅ 自动刷新 → DOM变化时更新
✅ MutationObserver+调整大小 → 始终同步
✅ 按ID点击[0][1][2] → LLM看到数字并点击
Related MCP server: agentify-desktop
📋 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)🎯 使用场景
Claude Code / Cursor / Cline
# Start MCP server
hyperion --mcp --launch
# Configure in your editor's settings
# Claude Code automatically discovers and uses all 16+ toolsLLM执行动作的方式:
{
"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 }📊 16+已注册动作
动作 | 类别 | 感知 | 超时 | 重试 |
| 视觉 | 视觉 | 5秒 | ✗ |
| 导航 | 无 | 30秒 | ✓ (2次) |
| 交互 | 视觉 | 3秒 | ✓ (3次) |
| 交互 | 无 | 5秒 | ✓ (2次) |
| 视觉 | 视觉 | 5秒 | ✗ |
| 视觉 | 视觉 | 2秒 | ✗ |
| 交互 | 视觉 | 3秒 | ✓ (2次) |
| 视觉 | 无 | 2秒 | ✗ |
| 视觉 | 视觉 | ∞ | ✗ |
| 视觉 | 无 | ∞ | ✗ |
| 提取 | 无 | 5秒 | ✗ |
| 工具 | 无 | 15秒 | ✗ |
| 交互 | 无 | 3秒 | ✗ |
| 工具 | 无 | 5秒 | ✗ |
| 交互 | 视觉 | 2秒 | ✗ |
| 交互 | 无 | 3秒 | ✗ |
🔧 安装
npm install -g hyperion-browser
# O desde source
git clone https://github.com/ericklrm89-jpg/hyperion.git
cd hyperion
npm install
npm run build🎬 快速开始
MCP模式(Claude Code、Cursor等)
# 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 --extension交互式CLI
hyperion --launch
> navigate https://example.com
> screenshot
> click "button.submit"
> type "#email" "test@example.com"
> scroll down 500
> eval "document.title"🏗️ 支柱架构
支柱1:核心类型
系统共享的通用定义:
ActionDefinition<T>→ Zod Schema + 元数据ActionExecution→ 带截图的完整追踪VisionFrame→ 30+属性的帧ConnectionMetrics→ 健康监控
支柱2:弹性层
心跳+自动重连+连接池
// 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, ... }支柱3:通用动作框架
安全执行+重试+追踪
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)`);
});支柱4:实时视觉
流式传输+变化检测
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();支柱5:覆盖层引擎
稳健注入+自动同步
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);支柱6:LLM服务器
MCP桥接+16+动作
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种连接模式
模式 | 方法 | 反检测 | Chrome 136+ | 推荐 |
扩展 | 原生消息传递 | ✅ CreepJS 0% | ✅ 无弹窗 | ✅ 默认 |
启动 | 全新浏览器启动 | ✅ 完全隐身 | 不适用 | 用于CI/隔离环境 |
附加 | WebSocket连接到现有浏览器 | ⚠️ 部分 | ❌ 弹窗 | 仅用于调试 |
🔒 反检测
Runtime.enable关闭 → 消除运行时泄漏Emulation.setAutomationOverride→navigator.webdriver = false(原生)零JS补丁 → 无指纹
扩展+原生消息传递 → 避免Chrome 136+弹窗
Emulation.setFocusEmulationEnabled→ 后台标签页不节流
📈 指标与调试
// 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: '...' }
// ]
// }🧪 测试
# Unit tests
npm run test
# Integration tests
npm run test:integration
# Watch mode
npm run test -- --watch📚 完整文档
🤝 LLM集成
Claude Code
{
"mcpServers": {
"hyperion": {
"command": "hyperion",
"args": ["--mcp", "--launch"]
}
}
}Cursor
在.cursor/settings.json中:
{
"rules": {
"hyperion": "hyperion --mcp --launch"
}
}Cline
在cline_config.json中:
{
"mcpServers": [
{
"name": "hyperion",
"command": "npx hyperion --mcp --launch"
}
]
}📄 许可证
MIT - 免费用于商业和个人用途
🚀 V2.1路线图
视频录制集成
多标签页管理
高级手势支持(滑动、捏合)
Chrome DevTools集成
执行日志云持久化
性能分析钩子
💬 支持
GitHub Issues:hyperion/issues
Hyperion V2 - LLM原生浏览器自动化框架。
为希望正确自动化网络的AI代理倾心打造。
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