Skip to main content
Glama

MCP Chromium ARM64 Server

🚀 2つの実装アプローチ

📦 バージョン比較

機能

Direct CDP (v1.4.0)推奨

Puppeteerベース (v1.2.0)

依存関係

ws + MCP SDKのみ (89パッケージ)

Puppeteer + MCP SDK (163パッケージ)

メモリ使用量

低い (ネイティブChromium)

高い (Node.jsラッパーのオーバーヘッド)

起動時間

速い (直接WebSocket)

遅い (Puppeteerの初期化)

ブラウザ制御

ネイティブChrome DevTools Protocol

Puppeteer抽象化レイヤー

ARM64最適化

完全ネイティブARM64

PuppeteerのARM64サポートに依存

デバッグ

生のCDPメッセージを表示可能

Puppeteerにより抽象化

メンテナンス

Chromeプロトコルの変更のみ

Puppeteer + Chromeプロトコルの変更

パフォーマンス

最高 (直接通信)

良好 (ラップされた通信)

🎯 バージョンの使い分け

Direct CDP (v1.4.0) を使用すべき場合:

  • ✅ 最大限のパフォーマンスと最小限の依存関係を求める場合

  • ✅ ネイティブARM64最適化が必要な場合

  • ✅ Chrome DevTools Protocolを直接制御したい場合

  • ✅ 本番環境の自動化システムを構築している場合

  • ✅ 最新機能と最速のアップデートを求める場合

Puppeteerベース (v1.2.0) を使用すべき場合:

  • ✅ 既存のPuppeteerコードから移行する場合

  • ✅ Puppeteer APIの抽象化を好む場合

  • ✅ Direct CDPでまだ実装されていない特定のPuppeteer機能が必要な場合

  • ✅ 既存ワークフローへの変更を最小限に抑えたい場合

🔄 バージョンの切り替え

# Switch to Direct CDP (recommended)
git checkout direct-chromium
npm install  # Only 89 packages

# Switch back to Puppeteer version
git checkout main  
npm install  # 163 packages

Related MCP server: mcp-browser-use

📚 ドキュメントと専門ガイド

このリポジトリには、対象読者に合わせた複数のドキュメントが含まれています。

🎯 開発者およびDevOpsエンジニア向け

📖 技術README - 以下を含む包括的な技術ドキュメント:

  • アーキテクチャ図とAPIリファレンス

  • パフォーマンスベンチマークと最適化ガイド

  • CI/CD統合例とE2Eテストワークフロー

  • 高度なデバッグとカスタマイズオプション

🍓 メイカーおよび起業家向け

📖 Raspberry Pi README - 以下を特徴とする予算重視のガイド:

  • 480ドルで構築するAI開発環境

  • ノーコードSaaS開発ワークフロー

  • 実践的なスタートアップのユースケースとROI分析

  • グローバルなアクセシビリティとメイカームーブメントへの焦点

クイックリンク


✨ 主な機能

🤖 ネイティブARM64ブラウザ自動化

  • Chrome DevTools Protocolの直接実装

  • 完全なブラウザ制御のための27個の包括的なMCPツール

  • Raspberry PiおよびApple Siliconアーキテクチャ向けに最適化

  • 壊れやすいx86_64 Puppeteerバイナリへの依存なし

⚡ 高パフォーマンスアーキテクチャ

  • 依存関係はわずか2つ (ws + MCP SDK) (Puppeteerの163パッケージと比較)

  • 低いメモリ使用量と高速な起動時間

  • Chromeとの直接WebSocket通信

  • 包括的なログ記録と監査機能

🛠️ エンタープライズ対応の開発環境

  • コンソール/ネットワーク監視を備えた完全なデバッグスイート

  • アクセシビリティ、SEO、パフォーマンス監査を内蔵

  • CI/CD統合例とE2Eテストワークフロー

  • クロスプラットフォーム互換性 (Linux ARM64, macOS Apple Silicon)

💰 手頃な価格のイノベーションプラットフォーム

  • 500ドル未満で構築できる完全なAI開発環境

  • 5万ドル以上のエンタープライズワークステーションと同等の機能

  • 世界中のメイカーやスタートアップが利用可能

  • 定期的なクラウドコストなし - インフラを自前で所有


🚀 ユニバーサルクイックスタート

前提条件

# Install system dependencies
sudo apt update
sudo apt install chromium-browser nodejs npm python3

# Verify Chromium works
chromium-browser --version

インストール

git clone https://github.com/nfodor/mcp-chromium-arm64
cd mcp-chromium-arm64
npm install
chmod +x *.py *.sh

クイックテスト (ワンライナー)

# Verify it works immediately after install:
python3 -c "import sys; sys.path.append('.'); import arm64_browser; print('[OK] ARM64 Browser Works!' if 'error' not in arm64_browser.navigate('https://example.com').lower() else '[FAIL] Failed')"

期待される結果: [OK] ARM64 Browser Works!

テストとデモ

# Quick demo with immediate visible results (30 seconds)
python3 instant_demo.py

# Or comprehensive demo showing all capabilities (2-3 minutes)
./run_demo.sh

セットアップのテスト

# Test MCP server directly
echo '{"jsonrpc":"2.0","method":"tools/list","id":1}' | node index.js

# Test Python wrapper
python3 simple_browser.py

🛠️ 開発者ガイドとデバッグ

🔧 利用可能なMCPツール (合計27個)

コアブラウザ制御

  • navigate - ページ読み込みを伴うURLへの移動

  • screenshot - PNGスクリーンショットのキャプチャ (ページ全体またはビューポート)

  • click - CSSセレクタによる要素のクリック (正確な位置指定)

  • fill - テキストや値による入力フィールドの埋め込み

  • hover - ドロップダウン/ツールチップ操作のための要素へのホバー

  • select - 値によるドロップダウンオプションの選択

  • evaluate - JavaScriptの実行と結果の取得

  • get_content - ページのHTMLまたはプレーンテキストコンテンツの抽出

高度な機能

  • get_console_logs - ブラウザコンソール出力の取得

  • get_console_errors - コンソールエラーメッセージのみの取得

  • get_network_logs - すべてのネットワークリクエスト/レスポンスの監視

  • get_network_errors - 失敗したネットワークリクエスト (4xx/5xx) の追跡

  • wipe_logs - メモリから保存されたすべてのログをクリア

  • get_selected_element - 現在フォーカスされている要素に関する情報の取得

モバイルデバイスエミュレーション

  • emulate_device - 17個のプリセットまたはカスタムビューポート/UA/DPR/タッチによるモバイルデバイスエミュレーション (ランドスケープサポート)

    • iPhones: iphone-16, iphone-16-pro, iphone-16-pro-max, iphone-16e, iphone-15, iphone-15-pro-max, iphone-se

    • Pixels: pixel-9, pixel-9-pro, pixel-9-pro-xl, pixel-9-pro-fold

    • Samsung: galaxy-s24, galaxy-s24-ultra, galaxy-z-fold-5

    • Tablets: ipad-air-m2, ipad-pro-13, galaxy-tab-s9

  • reset_emulation - デバイスエミュレーションをデスクトップモードにリセット

スクリーンキャスト録画

  • start_screencast - CDPスクリーンキャストによるブラウザアクティビティの録画開始 (フォーマット、品質、解像度、フレームスキップを設定可能)

  • stop_screencast - 録画を停止し、ffmpeg経由で MP4GIF、または WebM にエンコード (フレームタイムスタンプからFPSを自動検出)

  • screencast_status - 録画ステータス、フレーム数、経過時間の確認

監査および分析ツール

  • run_accessibility_audit - 代替テキスト、ラベル、見出し、コントラストのチェック

  • run_performance_audit - 読み込み時間、メモリ使用量、リソースの測定

  • run_seo_audit - タイトル、メタディスクリプション、H1タグ、canonicalの検証

  • run_best_practices_audit - HTTPS、非推奨HTML、ビューポートのチェック

  • run_nextjs_audit - Next.js固有の最適化チェック

  • run_debugger_mode - 包括的なデバッグ情報

  • run_audit_mode - すべての監査をまとめて実行し、要約を表示

  • close_browser - Chromiumプロセスのクリーンな終了

🐛 デバッグと開発

直接MCPテスト

# Test individual tools directly
echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"navigate","arguments":{"url":"https://example.com"}}}' | node index.js

echo '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"evaluate","arguments":{"script":"document.title"}}}' | node index.js

echo '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"screenshot","arguments":{"name":"debug.png"}}}' | node index.js

スクリーンキャスト録画

# Start recording, interact with the page, then stop and encode
# 1. Start screencast
echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"start_screencast","arguments":{"format":"jpeg","quality":80,"maxWidth":1280,"maxHeight":720}}}' | node index.js

# 2. Perform actions (navigate, click, fill, etc.)
echo '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"navigate","arguments":{"url":"https://example.com"}}}' | node index.js

# 3. Check recording progress
echo '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"screencast_status","arguments":{}}}' | node index.js

# 4. Stop and encode to MP4
echo '{"jsonrpc":"2.0","id":4,"method":"tools/call","params":{"name":"stop_screencast","arguments":{"output":"mp4","name":"my-demo"}}}' | node index.js
# Output: /tmp/my-demo.mp4

# Encode as GIF instead (2-pass palette for quality)
echo '{"jsonrpc":"2.0","id":4,"method":"tools/call","params":{"name":"stop_screencast","arguments":{"output":"gif","name":"bug-repro"}}}' | node index.js
# Output: /tmp/bug-repro.gif

# Or WebM (VP9)
echo '{"jsonrpc":"2.0","id":4,"method":"tools/call","params":{"name":"stop_screencast","arguments":{"output":"webm"}}}' | node index.js

要件: システムに ffmpeg がインストールされていること。FPSはCDPフレームタイムスタンプから自動検出されます。GIF出力は適切なファイルサイズを維持するため15fpsに制限されています。

モバイルデバイスエミュレーション

# Emulate iPhone 16 Pro
echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"emulate_device","arguments":{"device":"iphone-16-pro"}}}' | node index.js

# Emulate in landscape mode
echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"emulate_device","arguments":{"device":"ipad-pro-13","landscape":true}}}' | node index.js

# Custom viewport with DPR
echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"emulate_device","arguments":{"width":390,"height":844,"deviceScaleFactor":3,"mobile":true}}}' | node index.js

# Reset back to desktop
echo '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"reset_emulation","arguments":{}}}' | node index.js

ネットワークとコンソールの監視

# Navigate to a page, then check console logs
echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_console_logs","arguments":{}}}' | node index.js

# Get only errors
echo '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"get_console_errors","arguments":{}}}' | node index.js

# Check network activity (all requests with status codes)
echo '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"get_network_logs","arguments":{}}}' | node index.js

# Check for failed requests (4xx/5xx)
echo '{"jsonrpc":"2.0","id":4,"method":"tools/call","params":{"name":"get_network_errors","arguments":{}}}' | node index.js

# Clear all logs when done
echo '{"jsonrpc":"2.0","id":5,"method":"tools/call","params":{"name":"wipe_logs","arguments":{}}}' | node index.js

監査

# Run all audits at once (accessibility + performance + SEO + best practices + Next.js)
echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"run_audit_mode","arguments":{}}}' | node index.js

# Or run individual audits
echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"run_accessibility_audit","arguments":{}}}' | node index.js
echo '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"run_performance_audit","arguments":{}}}' | node index.js
echo '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"run_seo_audit","arguments":{}}}' | node index.js

# Get full debug info (URL, viewport, memory, timing)
echo '{"jsonrpc":"2.0","id":4,"method":"tools/call","params":{"name":"run_debugger_mode","arguments":{}}}' | node index.js

要素の検査

# Get info about the currently focused element
echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_selected_element","arguments":{}}}' | node index.js
# Returns: tagName, id, className, textContent, value, and a CSS selector

Chrome DevTools Protocolデバッグ

# Manual CDP connection test
node -e "
const { WebSocket } = require('ws');
const { spawn } = require('child_process');

const chrome = spawn('/usr/bin/chromium-browser', [
  '--headless', '--remote-debugging-port=9227'
]);

setTimeout(() => {
  fetch('http://localhost:9227/json')
    .then(r => r.json())
    .then(tabs => {
      console.log('Available tabs:', tabs.length);
      const ws = new WebSocket(tabs[0].webSocketDebuggerUrl);
      ws.on('open', () => {
        console.log('CDP WebSocket connected!');
        ws.send(JSON.stringify({id: 1, method: 'Runtime.evaluate', params: {expression: '2+2'}}));
      });
      ws.on('message', (data) => {
        console.log('CDP Response:', JSON.parse(data));
        chrome.kill();
        process.exit(0);
      });
    });
}, 2000);
"

パフォーマンス監視

# Monitor system resources during operation
htop &
echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"navigate","arguments":{"url":"https://httpbin.org/delay/5"}}}' | time node index.js

# Check memory usage
ps aux | grep chromium
free -h

ネットワークデバッグ

# Check if debugging port is accessible
curl -s http://localhost:9222/json | jq '.[] | {id, title, type}'

# Monitor WebSocket traffic (install websocat)
websocat ws://localhost:9222/devtools/page/[TAB_ID] --text -v

🔍 一般的なデバッグシナリオ

1. WebSocket接続の問題

# Symptoms: "CDP command timeout" errors
# Check if chrome debugging port is running
lsof -i :9222

# Test manual connection
node -e "
const { WebSocket } = require('ws');
const ws = new WebSocket('ws://localhost:9222/devtools/browser');
ws.on('open', () => console.log('✓ WebSocket OK'));
ws.on('error', (e) => console.log('✗ WebSocket Error:', e.message));
setTimeout(() => process.exit(0), 2000);
"

2. Chromeプロセスの問題

# Symptoms: Browser won't start or hangs
# Kill any stuck processes
pkill -f chromium-browser
pkill -f remote-debugging-port

# Test chrome startup manually
timeout 10s /usr/bin/chromium-browser --headless --remote-debugging-port=9223 --no-sandbox

# Check chrome logs
journalctl --user -u chromium --since "1 hour ago"

3. 要素選択の問題

# Debug CSS selectors interactively
echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"evaluate","arguments":{"script":"document.querySelectorAll(\"button\").length"}}}' | node index.js

# Get element information
echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"evaluate","arguments":{"script":"document.querySelector(\"#mybutton\") ? \"found\" : \"not found\""}}}' | node index.js

4. メモリとパフォーマンスの問題

# Monitor memory during operation
watch -n 1 'ps aux | grep -E "(chromium|node)" | grep -v grep'

# Chrome memory debugging
echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"evaluate","arguments":{"script":"JSON.stringify(performance.memory)"}}}' | node index.js

🎯 高度なデバッグ機能

詳細ログの有効化

# Set environment variables for detailed output
export DEBUG=puppeteer:*
export NODE_ENV=development

# Run with detailed Chrome logs
/usr/bin/chromium-browser --headless --enable-logging --log-level=0 --remote-debugging-port=9222

CDPメッセージトレース

# Create debug version with message logging
cp index.js debug-index.js

# Add to sendCDPCommand method:
# console.log('→ CDP:', JSON.stringify(command));
# console.log('← CDP:', JSON.stringify(response));

node debug-index.js

ブラウザDevToolsとの統合

# Connect regular Chrome DevTools to the headless instance
# 1. Start the MCP server
# 2. Open regular Chrome/Chromium
# 3. Navigate to: chrome://inspect
# 4. Click "Configure..." and add localhost:9222
# 5. Click "inspect" on the page you want to debug

📊 パフォーマンスベンチマーク

起動時間の比較

# Direct CDP (v1.3.0)
time echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"evaluate","arguments":{"script":"Date.now()"}}}' | node index.js

# Puppeteer version (v1.2.0)  
git checkout main
time echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"evaluate","arguments":{"script":"Date.now()"}}}' | node index.js

メモリ使用量の監視

# Before operation
free -h && ps aux | grep -E "(chromium|node)" | grep -v grep

# During operation (run in another terminal)
watch -n 1 'echo "=== $(date) ===" && free -h && echo && ps aux | grep -E "(chromium|node)" | grep -v grep'

🚨 エラーコードと解決策

エラー

原因

解決策

CDP command timeout

WebSocket接続の切断

ブラウザを再起動し、ポートの可用性を確認

WebSocket not ready

Chromeが完全に起動していない

起動遅延を増やし、Chromeプロセスを確認

Element not found

CSSセレクタが無効

evaluate ツールでセレクタを検証

ECONNREFUSED

デバッグポートがブロックされている

ファイアウォールを確認し、既存のChromeプロセスを終了

Navigation timeout

ページ読み込みの問題

ネットワークを確認し、タイムアウトを増やし、より単純なページを試す

🔧 カスタマイズと拡張

新しいMCPツールの追加

// In index.js, add to tools array:
{
  name: 'my_custom_tool',
  description: 'My custom functionality',
  inputSchema: {
    type: 'object',
    properties: {
      param: { type: 'string', description: 'Parameter description' }
    },
    required: ['param']
  }
}

// Add to switch statement in CallToolRequestSchema handler:
case 'my_custom_tool':
  return await this.myCustomTool(args.param);

// Implement the method:
async myCustomTool(param) {
  await this.ensureChromium();
  const result = await this.sendCDPCommand('Page.navigate', { url: param });
  return { content: [{ type: 'text', text: `Custom result: ${result}` }] };
}

環境変数

# Set browser window size (default: 1280,720)
export CHROMIUM_WINDOW_SIZE=1920,1080

Chrome起動オプション

// Modify in startChromium() method:
const customArgs = [
  '--headless',
  '--no-sandbox',
  '--disable-extensions',
  '--disable-plugins',
  '--disable-background-timer-throttling',
  '--disable-backgrounding-occluded-windows',
  '--disable-renderer-backgrounding',
  '--remote-debugging-port=9222',
  '--window-size=1920,1080',        // Custom viewport
  '--user-agent=CustomUA/1.0',      // Custom user agent
  '--disable-web-security',         // For CORS testing
  '--allow-running-insecure-content' // For mixed content
];

🌐 クロスプラットフォームARM64互換性

プラットフォームサポートマトリックス

プラットフォーム

ステータス

Chromeパス

インストール方法

メモ

Linux ARM64

完全サポート

/usr/bin/chromium-browser

apt install chromium-browser

Raspberry Pi OSでテスト済み

macOS Apple Silicon ⚠️

修正が必要

/Applications/Google Chrome.app/Contents/MacOS/Google Chrome

Googleからダウンロードまたは brew install chromium

パスとフラグの更新が必要

Windows ARM64

未テスト

C:Program FilesGoogleChromeApplicationchrome.exe

Googleからダウンロード

Windows固有の変更が必要

macOS Apple Siliconのセットアップ

前提条件

# Install Homebrew if not already installed
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# Install Node.js and Chromium
brew install node chromium --no-quarantine

必要なコード変更

現在、サーバーはLinux ARM64向けに最適化されています。macOS互換性のために index.js を変更してください:

// Detect platform and set appropriate chrome path
function getChromePath() {
  const platform = process.platform;
  
  switch(platform) {
    case 'linux':
      return '/usr/bin/chromium-browser';
    case 'darwin': // macOS
      // Try multiple possible paths
      const macPaths = [
        '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome',
        '/Applications/Chromium.app/Contents/MacOS/Chromium',
        '/opt/homebrew/bin/chromium'
      ];
      
      for (const path of macPaths) {
        if (require('fs').existsSync(path)) {
          return path;
        }
      }
      throw new Error('Chrome/Chromium not found on macOS');
    case 'win32':
      return 'C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe';
    default:
      throw new Error(`Unsupported platform: ${platform}`);
  }
}

// Update startChromium method
async startChromium() {
  const chromePath = getChromePath();
  const platform = process.platform;
  
  // Platform-specific arguments
  const baseArgs = [
    '--headless',
    '--disable-extensions',
    '--disable-plugins',
    `--remote-debugging-port=${debuggingPort}`,
    '--no-first-run',
    '--disable-gpu',
    '--window-size=1280,720'
  ];
  
  // Add Linux-specific sandbox flags
  if (platform === 'linux') {
    baseArgs.push('--no-sandbox', '--disable-setuid-sandbox');
  }
  
  // Add macOS-specific flags if needed
  if (platform === 'darwin') {
    baseArgs.push('--disable-dev-shm-usage');
  }
  
  chromiumProcess = spawn(chromePath, baseArgs);
  // ... rest of method
}

macOS固有の問題と解決策

1. 「Chromiumは壊れています」エラー

# Remove quarantine flag if downloading manually
sudo xattr -r -d com.apple.quarantine /Applications/Chromium.app

# Or install via Homebrew with no-quarantine flag
brew install chromium --no-quarantine

2. ChromeとChromiumの選択

# Option 1: Use Google Chrome (recommended)
# Download from: https://www.google.com/chrome/
# Path: /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

# Option 2: Use Chromium via Homebrew
brew install chromium --no-quarantine
# Path: /opt/homebrew/bin/chromium

3. 権限の問題

# Ensure Chrome has required permissions
# System Preferences > Security & Privacy > Privacy tab
# Grant Camera, Microphone access if needed for specific use cases

クロスプラットフォーム互換性のテスト

プラットフォーム検出のクイックテスト

node -e "
console.log('Platform:', process.platform);
console.log('Architecture:', process.arch);
const fs = require('fs');

const paths = {
  linux: '/usr/bin/chromium-browser',
  darwin: '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome',
  win32: 'C:\\\\Program Files\\\\Google\\\\Chrome\\\\Application\\\\chrome.exe'
};

const chromePath = paths[process.platform];
console.log('Expected Chrome path:', chromePath);
console.log('Chrome exists:', fs.existsSync(chromePath));
"

クロスプラットフォームMCPテスト

# Test basic functionality across platforms
echo '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"tools/call\",\"params\":{\"name\":\"evaluate\",\"arguments\":{\"script\":\"navigator.platform\"}}}' | node index.js

# Should return the current platform

Windows ARM64に関する考慮事項

未テストですが、Windows ARM64サポートには以下が必要です:

// Windows-specific chrome path detection
case 'win32':
  const winPaths = [
    'C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe',
    'C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe',
    process.env.LOCALAPPDATA + '\\Google\\Chrome\\Application\\chrome.exe'
  ];
  // Similar path checking logic...

パフォーマンスの違い

プラットフォーム

起動時間

メモリ使用量

メモ

Linux ARM64 (Pi 4)

~3-4秒

~150MB

最適化済み、テスト済み

macOS Apple Silicon

~2-3秒

~200MB

CPUが速く、メモリが多い

Windows ARM64

不明

不明

ハードウェアに依存

貢献のお願い

完全なクロスプラットフォームサポートへの貢献を歓迎します!

  • macOSテスター: Apple Siliconでの提案された変更のテスト

  • Windows ARM64: Surface Pro Xなどのデバイスでのテスト

  • パフォーマンス最適化: プラットフォーム固有の最適化

  • インストールスクリプト: 各プラットフォーム向けの自動セットアップ


Claude CLI統合

前提条件

# Install Claude Code CLI if you haven't already
npm install -g @anthropic-ai/claude-code

Claude CLIへの追加

# From the project directory after cloning
claude mcp add chromium-arm64 "$(pwd)/mcp-wrapper.sh" --scope user

接続の確認

claude mcp list
# Should show: chromium-arm64: /path/to/mcp-wrapper.sh - ✓ Connected

⚠️ 重要: 追加後にClaudeを再起動してください

MCPサーバーを追加した後は、新しいClaudeセッションを開始する必要があります:

# Exit current session if in one
exit
# Start fresh session
claude

Claude CLIでの使用

Claudeにchromium-arm64ツールを使用するよう指示してください:

List available MCP servers and use chromium-arm64 to navigate to https://example.com

Take a screenshot using the chromium-arm64 tool

Use chromium-arm64 to click the button with selector #submit

Fill the email field using chromium-arm64 with test@example.com

Record a screencast of the login flow and save it as a GIF

Emulate an iPhone 16 Pro and take a screenshot of the homepage

Run a full audit on https://example.com using chromium-arm64

Playwright/Puppeteerを避けるために明示的に指示してください:

  • 「chromium-arm64を使って移動して...」

  • 「chromium-arm64ツールを使ってスクリーンショットを撮って」

  • 「ブラウザを開いて」(壊れたPlaywrightが試される可能性があります)

  • 「スクリーンショットを撮って」(壊れたPuppeteerが試される可能性があります)

Install Server
A
security – no known vulnerabilities
F
license - not found
-
quality - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

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/nfodor/claude-arm64-browser'

If you have feedback or need assistance with the MCP directory API, please join our Discord server