Quest Browser MCP Server

Quest Browser MCP Server

Controls Oculus Browser via WebSocket CDP protocol, enabling full browser automation with Playwright-like API for navigation, interaction, content extraction, and more.

Category
访问服务器

README

Quest Browser MCP Server

An MCP (Model Context Protocol) server for controlling Oculus Browser via WebSocket CDP protocol. This server provides Playwright-like functionality using direct Chrome DevTools Protocol (CDP) commands, making it compatible with Oculus Browser's CDP 1.3 protocol.

Features

  • Reliable WebSocket CDP Connection - Bypasses Playwright's initialization issues
  • Full Playwright-like API - All common browser automation features
  • TypeScript Implementation - Type-safe and maintainable
  • MCP Protocol - Standard Model Context Protocol server
  • CDP 1.3 Compatible - Works with Oculus Browser's protocol version

Prerequisites

  1. Oculus Quest with browser running
  2. ADB installed and in system PATH
  3. Device connected via USB or wireless ADB

Note: The MCP server automatically sets up port forwarding on startup. You don't need to run adb forward manually.

Installation

npm install
npm run build

Usage

As MCP Server

Add to your MCP client configuration:

{
  "mcpServers": {
    "quest-browser": {
      "command": "node",
      "args": ["dist/index.js"],
      "env": {
        "CDP_ENDPOINT": "http://localhost:9222",
        "ADB_PATH": "adb"
      }
    }
  }
}

Direct Usage

# Development mode
npm run dev

# Production mode
npm run build
npm start

Available Tools

ADB Management

  • adb_check - Check if ADB is available and get version
  • adb_list_devices - List all ADB devices (connected and disconnected)
  • adb_get_connected_devices - Get only connected ADB devices
  • adb_forward_port - Set up ADB port forwarding (default: tcp:9222 -> localabstract:chrome_devtools_remote)
  • adb_list_forwardings - List all active ADB port forwardings
  • adb_remove_forwarding - Remove ADB port forwarding
  • adb_ensure_forwarding - Ensure port forwarding is set up (check first, then set up if needed)

Browser Management

  • browser_initialize - Initialize browser connection and get available pages
  • browser_connect - Connect to a specific page by index
  • browser_list_pages - List all available pages
  • browser_get_current_page - Get information about the currently connected page

Navigation

  • browser_navigate - Navigate to a URL
  • browser_wait_for_load - Wait for page to finish loading
  • browser_get_url - Get the current page URL
  • browser_get_title - Get the page title
  • browser_go_back - Navigate back in browser history
  • browser_go_forward - Navigate forward in browser history
  • browser_reload - Reload the current page
  • browser_wait_for_navigation - Wait for navigation to complete
  • browser_wait_for_url - Wait for URL to match pattern

Interaction

  • browser_click - Click an element by CSS selector
  • browser_type - Type text into an input element
  • browser_wait_for_selector - Wait for an element to appear
  • browser_fill - Fill form field with value (more robust than type)
  • browser_select_option - Select option(s) in a dropdown
  • browser_check - Check a checkbox or radio button
  • browser_uncheck - Uncheck a checkbox
  • browser_hover - Hover over an element
  • browser_double_click - Double click an element
  • browser_right_click - Right click an element
  • browser_press_key - Press a keyboard key
  • browser_drag_and_drop - Drag and drop an element

Content & Evaluation

  • browser_evaluate - Evaluate JavaScript expression in page context
  • browser_get_content - Get the full HTML content of the page
  • browser_screenshot - Take a screenshot of the current page
  • browser_query_selector - Query a single element by CSS selector
  • browser_query_selector_all - Query multiple elements by CSS selector
  • browser_get_text - Get text content of an element
  • browser_get_attribute - Get attribute value of an element
  • browser_get_inner_html - Get inner HTML of an element
  • browser_get_outer_html - Get outer HTML of an element

Wait Features

  • browser_wait_for_timeout - Wait for specified time

Network Features

  • browser_wait_for_response - Wait for network response matching URL pattern
  • browser_get_network_logs - Get network activity logs

Advanced Features

  • browser_set_viewport_size - Set viewport size
  • browser_set_geolocation - Set geolocation
  • browser_set_permissions - Set browser permissions
  • browser_add_init_script - Add initialization script to run on every page load

Accessibility

  • browser_get_accessibility_tree - Get accessibility tree snapshot (Playwright MCP specific)
  • browser_snapshot - Get accessibility snapshot (alias for browser_get_accessibility_tree)

Additional Playwright MCP Tools

  • browser_close - Close the browser connection
  • browser_console_messages - Get console messages from the page
  • browser_file_upload - Upload a file to a file input element
  • browser_fill_form - Fill multiple form fields at once
  • browser_handle_dialog - Handle a JavaScript dialog (alert, confirm, prompt)
  • browser_network_requests - Get list of network requests
  • browser_resize - Resize the browser viewport (alias for browser_set_viewport_size)

Automatic ADB Setup

The MCP server automatically:

  1. Checks if ADB is available in system PATH
  2. Detects connected ADB devices
  3. Sets up port forwarding: tcp:9222 -> localabstract:chrome_devtools_remote

This happens on server startup, so you don't need to manually run adb forward.

Development

# Watch mode
npm run watch

# Development mode (with tsx)
npm run dev

# Build
npm run build

# Run
npm start

Environment Variables

  • CDP_ENDPOINT - CDP endpoint URL (default: http://localhost:9222)
  • ADB_PATH - Path to ADB executable (default: adb from system PATH)

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选