chromium-arm64
MCP Chromium ARM64 Server
🚀 Zwei Implementierungsansätze verfügbar
📦 Versionsvergleich
Funktion | Direct CDP (v1.4.0) ⭐ EMPFOHLEN | Puppeteer-basiert (v1.2.0) |
Abhängigkeiten | Nur | Puppeteer + MCP SDK (163 Pakete) |
Speichernutzung | Niedriger (natives Chromium) | Höher (Node.js-Wrapper-Overhead) |
Startzeit | Schneller (direktes WebSocket) | Langsamer (Puppeteer-Initialisierung) |
Browser-Steuerung | Natives Chrome DevTools Protocol | Puppeteer-Abstraktionsschicht |
ARM64-Optimierung | Vollständig natives ARM64 | Abhängig von Puppeteer ARM64-Support |
Debugging | Roh-CDP-Nachrichten sichtbar | Durch Puppeteer abstrahiert |
Wartung | Nur Chrome-Protokoll-Änderungen | Puppeteer + Chrome-Protokoll-Änderungen |
Leistung | Beste (direkte Kommunikation) | Gut (gekapselte Kommunikation) |
🎯 Wann welche Version verwenden?
Verwenden Sie Direct CDP (v1.4.0), wenn:
✅ Sie maximale Leistung und minimale Abhängigkeiten wünschen
✅ Sie native ARM64-Optimierung benötigen
✅ Sie direkte Kontrolle über das Chrome DevTools Protocol wünschen
✅ Sie Produktions-Automatisierungssysteme aufbauen
✅ Sie die neuesten Funktionen und schnellsten Updates wünschen
Verwenden Sie Puppeteer-basiert (v1.2.0), wenn:
✅ Sie von bestehendem Puppeteer-Code migrieren
✅ Sie die Puppeteer-API-Abstraktion bevorzugen
✅ Sie spezifische Puppeteer-Funktionen benötigen, die noch nicht in Direct CDP implementiert sind
✅ Sie Änderungen an bestehenden Workflows minimieren möchten
🔄 Zwischen Versionen wechseln
# 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 packagesRelated MCP server: mcp-browser-use
📚 Dokumentation & spezialisierte Anleitungen
Dieses Repository enthält mehrere Dokumentationsansätze für unterschiedliche Zielgruppen:
🎯 Für Entwickler & DevOps-Ingenieure
📖 TECHNISCHE README - Umfassende technische Dokumentation, einschließlich:
Architekturdiagramme und API-Referenz
Leistungs-Benchmarks und Optimierungsleitfäden
CI/CD-Integrationsbeispiele und E2E-Test-Workflows
Erweiterte Debugging- und Anpassungsoptionen
🍓 Für Maker & Unternehmer
📖 RASPBERRY PI README - Budgetorientierter Leitfaden, einschließlich:
Komplette 480-$-KI-Entwicklungsumgebung
No-Code-SaaS-Entwicklungs-Workflows
Praxisnahe Startup-Anwendungsfälle und ROI-Analyse
Fokus auf globale Zugänglichkeit und Maker-Bewegung
⚡ Schnellzugriffe
Entwickler: Zur Technischen Dokumentation →
Maker: Zum Raspberry Pi Guide →
Alle: Lesen Sie weiter für die universelle Einrichtung und Nutzung
✨ Kernfunktionen
🤖 Native ARM64-Browser-Automatisierung
Direkte Implementierung des Chrome DevTools Protocol
27 umfassende MCP-Tools für vollständige Browser-Steuerung
Optimiert für Raspberry Pi- und Apple Silicon-Architekturen
Keine Abhängigkeit von fehlerhaften x86_64-Puppeteer-Binärdateien
⚡ Hochleistungsarchitektur
Nur 2 Abhängigkeiten (ws + MCP SDK) gegenüber 163 Paketen bei Puppeteer
Geringere Speichernutzung und schnellere Startzeiten
Direkte WebSocket-Kommunikation mit Chrome
Umfassende Protokollierungs- und Audit-Funktionen
🛠️ Enterprise-Ready-Entwicklung
Vollständige Debugging-Suite mit Konsolen-/Netzwerküberwachung
Integrierte Barrierefreiheits-, SEO- und Leistungs-Audits
CI/CD-Integrationsbeispiele und E2E-Test-Workflows
Plattformübergreifende Kompatibilität (Linux ARM64, macOS Apple Silicon)
💰 Erschwingliche Innovationsplattform
Komplette KI-Entwicklungsumgebung für unter 500 $
Gleiche Fähigkeiten wie 50.000-$-Enterprise-Workstations
Globale Zugänglichkeit für Maker und Startups weltweit
Keine wiederkehrenden Cloud-Kosten – Sie besitzen Ihre Infrastruktur
🚀 Universeller Schnellstart
Voraussetzungen
# Install system dependencies
sudo apt update
sudo apt install chromium-browser nodejs npm python3
# Verify Chromium works
chromium-browser --versionInstallation
git clone https://github.com/nfodor/mcp-chromium-arm64
cd mcp-chromium-arm64
npm install
chmod +x *.py *.shSchnelltest (Einzeiler)
# 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')"Erwartetes Ergebnis: [OK] ARM64 Browser Works!
Test & Demo
# Quick demo with immediate visible results (30 seconds)
python3 instant_demo.py
# Or comprehensive demo showing all capabilities (2-3 minutes)
./run_demo.shEinrichtung testen
# Test MCP server directly
echo '{"jsonrpc":"2.0","method":"tools/list","id":1}' | node index.js
# Test Python wrapper
python3 simple_browser.py🛠️ Entwicklerhandbuch & Debugging
🔧 Verfügbare MCP-Tools (insgesamt 27)
Kern-Browser-Steuerung
navigate- Navigieren zu URLs mit vollständigem Laden der Seitescreenshot- PNG-Screenshots aufnehmen (ganze Seite oder Viewport)click- Elemente per CSS-Selektor mit präziser Positionierung anklickenfill- Eingabefelder mit Text oder Werten füllenhover- Über Elemente fahren für Dropdown-/Tooltip-Interaktionenselect- Dropdown-Optionen nach Wert auswählenevaluate- JavaScript ausführen und Ergebnisse zurückgebenget_content- Seiten-HTML oder reinen Textinhalt extrahieren
Erweiterte Funktionalität
get_console_logs- Browser-Konsolenausgabe abrufenget_console_errors- Nur Konsolenfehlermeldungen abrufenget_network_logs- Alle Netzwerkanfragen/-antworten überwachenget_network_errors- Fehlgeschlagene Netzwerkanfragen (4xx/5xx) verfolgenwipe_logs- Alle gespeicherten Protokolle aus dem Speicher löschenget_selected_element- Informationen über das aktuell fokussierte Element abrufen
Emulation mobiler Geräte
emulate_device- Emulieren mobiler Geräte mit 17 Voreinstellungen oder benutzerdefiniertem Viewport/UA/DPR/Touch, mit Unterstützung für QuerformatiPhones:
iphone-16,iphone-16-pro,iphone-16-pro-max,iphone-16e,iphone-15,iphone-15-pro-max,iphone-sePixels:
pixel-9,pixel-9-pro,pixel-9-pro-xl,pixel-9-pro-foldSamsung:
galaxy-s24,galaxy-s24-ultra,galaxy-z-fold-5Tablets:
ipad-air-m2,ipad-pro-13,galaxy-tab-s9
reset_emulation- Geräteemulation auf Desktop-Modus zurücksetzen
Screencast-Aufnahme
start_screencast- Browser-Aktivität via CDP-Screencast aufzeichnen (konfigurierbares Format, Qualität, Auflösung, Frame-Skip)stop_screencast- Aufnahme stoppen und via ffmpeg in MP4, GIF oder WebM kodieren (erkennt FPS automatisch anhand von Frame-Zeitstempeln)screencast_status- Aufnahmestatus, Frame-Anzahl und verstrichene Dauer prüfen
Audit- & Analyse-Tools
run_accessibility_audit- Alt-Texte, Labels, Überschriften, Kontrast prüfenrun_performance_audit- Ladezeiten, Speichernutzung, Ressourcen messenrun_seo_audit- Titel, Meta-Beschreibung, H1-Tags, Canonical validierenrun_best_practices_audit- HTTPS, veraltetes HTML, Viewport prüfenrun_nextjs_audit- Next.js-spezifische Optimierungsprüfungenrun_debugger_mode- Umfassende Debugging-Informationenrun_audit_mode- Alle Audits zusammen mit Zusammenfassung ausführenclose_browser- Sauberes Herunterfahren des Chromium-Prozesses
🐛 Debugging & Entwicklung
Direktes MCP-Testen
# 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.jsScreencast-Aufnahme
# 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.jsErfordert:
ffmpegauf dem System installiert. FPS werden automatisch anhand von CDP-Frame-Zeitstempeln erkannt. Die GIF-Ausgabe ist auf 15 fps begrenzt, um angemessene Dateigrößen zu gewährleisten.
Emulation mobiler Geräte
# 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.jsNetzwerk- & Konsolenüberwachung
# 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.jsAudits
# 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.jsElement-Inspektion
# 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 selectorChrome DevTools Protocol Debugging
# 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);
"Leistungsüberwachung
# 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 -hNetzwerk-Debugging
# 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🔍 Häufige Debugging-Szenarien
1. WebSocket-Verbindungsprobleme
# 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-Prozessprobleme
# 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. Probleme bei der Elementauswahl
# 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.js4. Speicher- und Leistungsprobleme
# 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🎯 Erweiterte Debugging-Funktionen
Ausführliche Protokollierung aktivieren
# 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=9222CDP-Nachrichtenverfolgung
# 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.jsIntegration mit Browser-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📊 Leistungs-Benchmarks
Vergleich der Startzeit
# 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Überwachung der Speichernutzung
# 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'🚨 Fehlercodes & Lösungen
Fehler | Ursache | Lösung |
| WebSocket-Verbindung verloren | Browser neu starten, Port-Verfügbarkeit prüfen |
| Chrome nicht vollständig gestartet | Startverzögerung erhöhen, Chrome-Prozess prüfen |
| CSS-Selektor ungültig | Selektor mit |
| Debugging-Port blockiert | Firewall prüfen, bestehende Chrome-Prozesse beenden |
| Seitenladeprobleme | Netzwerk prüfen, Timeout erhöhen, einfachere Seite versuchen |
🔧 Anpassung & Erweiterung
Neue MCP-Tools hinzufügen
// 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}` }] };
}Umgebungsvariablen
# Set browser window size (default: 1280,720)
export CHROMIUM_WINDOW_SIZE=1920,1080Chrome-Startoptionen
// 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
];🌐 Plattformübergreifende ARM64-Kompatibilität
Plattform-Support-Matrix
Plattform | Status | Chrome-Pfad | Installationsmethode | Hinweise |
Linux ARM64 ✅ | Voll unterstützt |
|
| Getestet auf Raspberry Pi OS |
macOS Apple Silicon ⚠️ | Erfordert Änderungen |
| Download von Google oder | Pfad- und Flag-Updates erforderlich |
Windows ARM64 ❓ | Ungetestet |
| Download von Google | Würde Windows-spezifische Änderungen erfordern |
macOS Apple Silicon Einrichtung
Voraussetzungen
# 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-quarantineErforderliche Codeänderungen
Derzeit ist der Server für Linux ARM64 optimiert. Für macOS-Kompatibilität ändern Sie 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-spezifische Probleme & Lösungen
1. Fehler "Chromium ist beschädigt"
# 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-quarantine2. Wahl zwischen Chrome und 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/chromium3. Berechtigungsprobleme
# Ensure Chrome has required permissions
# System Preferences > Security & Privacy > Privacy tab
# Grant Camera, Microphone access if needed for specific use casesPlattformübergreifende Kompatibilität testen
Schnelltest zur Plattformerkennung
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));
"Plattformübergreifender MCP-Test
# 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Überlegungen zu Windows ARM64
Obwohl ungetestet, würde der Windows ARM64-Support Folgendes erfordern:
// 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...Leistungsunterschiede
Plattform | Startzeit | Speichernutzung | Hinweise |
Linux ARM64 (Pi 4) | ~3-4s | ~150MB | Optimiert, gut getestet |
macOS Apple Silicon | ~2-3s | ~200MB | Schnellere CPU, mehr Speicher |
Windows ARM64 | Unbekannt | Unbekannt | Würde von Hardware abhängen |
Beiträge benötigt
Wir freuen uns über Beiträge für vollständigen plattformübergreifenden Support!
macOS-Tester: Testen Sie die vorgeschlagenen Änderungen auf Apple Silicon
Windows ARM64: Testen Sie auf Surface Pro X oder ähnlichen Geräten
Leistungsoptimierung: Plattformspezifische Optimierungen
Installationsskripte: Automatisierte Einrichtung für jede Plattform
Claude CLI-Integration
Voraussetzungen
# Install Claude Code CLI if you haven't already
npm install -g @anthropic-ai/claude-codeZur Claude CLI hinzufügen
# From the project directory after cloning
claude mcp add chromium-arm64 "$(pwd)/mcp-wrapper.sh" --scope userVerbindung verifizieren
claude mcp list
# Should show: chromium-arm64: /path/to/mcp-wrapper.sh - ✓ Connected⚠️ Wichtig: Claude nach dem Hinzufügen neu starten
**Sie MÜSSEN
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