chromium-arm64
Servidor MCP Chromium ARM64
🚀 Dos enfoques de implementación disponibles
📦 Comparación de versiones
Característica | CDP directo (v1.4.0) ⭐ RECOMENDADO | Basado en Puppeteer (v1.2.0) |
Dependencias | Solo | Puppeteer + MCP SDK (163 paquetes) |
Uso de memoria | Menor (chromium nativo) | Mayor (sobrecarga del envoltorio de Node.js) |
Tiempo de inicio | Más rápido (WebSocket directo) | Más lento (inicialización de puppeteer) |
Control del navegador | Protocolo nativo Chrome DevTools | Capa de abstracción de Puppeteer |
Optimización ARM64 | ARM64 nativo completo | Depende del soporte ARM64 de Puppeteer |
Depuración | Mensajes CDP sin procesar visibles | Abstraído por Puppeteer |
Mantenimiento | Solo cambios en el protocolo Chrome | Cambios en Puppeteer + protocolo Chrome |
Rendimiento | Mejor (comunicación directa) | Bueno (comunicación envuelta) |
🎯 Cuándo usar cada versión
Use CDP directo (v1.4.0) si:
✅ Desea el máximo rendimiento y el mínimo de dependencias
✅ Necesita optimización nativa para ARM64
✅ Desea un control directo del protocolo Chrome DevTools
✅ Está creando sistemas de automatización en producción
✅ Desea las últimas funciones y las actualizaciones más rápidas
Use la versión basada en Puppeteer (v1.2.0) si:
✅ Está migrando desde código de Puppeteer existente
✅ Prefiere la abstracción de la API de Puppeteer
✅ Necesita funciones específicas de Puppeteer que aún no se han implementado en CDP directo
✅ Desea minimizar los cambios en los flujos de trabajo existentes
🔄 Cambio entre versiones
# 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
📚 Documentación y guías especializadas
Este repositorio incluye múltiples enfoques de documentación para diferentes audiencias:
🎯 Para desarrolladores e ingenieros DevOps
📖 README TÉCNICO - Documentación técnica completa que incluye:
Diagramas de arquitectura y referencia de API
Benchmarks de rendimiento y guías de optimización
Ejemplos de integración CI/CD y flujos de trabajo de pruebas E2E
Opciones avanzadas de depuración y personalización
🍓 Para creadores y emprendedores
📖 README DE RASPBERRY PI - Guía centrada en el presupuesto que incluye:
Configuración completa de desarrollo de IA por $480
Flujos de trabajo de desarrollo SaaS sin código
Casos de uso de startups del mundo real y análisis de ROI
Enfoque en accesibilidad global y el movimiento maker
⚡ Enlaces rápidos
Desarrolladores: Ir a Documentación técnica →
Creadores: Ir a Guía de Raspberry Pi →
Todos: Continúe leyendo para la configuración y el uso universal
✨ Características principales
🤖 Automatización de navegador ARM64 nativa
Implementación directa del protocolo Chrome DevTools
27 herramientas MCP integrales para un control total del navegador
Optimizado para arquitecturas Raspberry Pi y Apple Silicon
Sin dependencia de binarios de Puppeteer x86_64 rotos
⚡ Arquitectura de alto rendimiento
Solo 2 dependencias (ws + MCP SDK) frente a 163 paquetes en Puppeteer
Menor uso de memoria y tiempos de inicio más rápidos
Comunicación WebSocket directa con Chrome
Capacidades integrales de registro y auditoría
🛠️ Desarrollo listo para empresas
Suite de depuración completa con monitoreo de consola/red
Auditorías de accesibilidad, SEO y rendimiento integradas
Ejemplos de integración CI/CD y flujos de trabajo de pruebas E2E
Compatibilidad multiplataforma (Linux ARM64, macOS Apple Silicon)
💰 Plataforma de innovación asequible
Configuración completa de desarrollo de IA por menos de $500
Mismas capacidades que estaciones de trabajo empresariales de más de $50,000
Accesibilidad global para creadores y startups de todo el mundo
Sin costos recurrentes en la nube: sea dueño de su infraestructura
🚀 Inicio rápido universal
Requisitos previos
# Install system dependencies
sudo apt update
sudo apt install chromium-browser nodejs npm python3
# Verify Chromium works
chromium-browser --versionInstalación
git clone https://github.com/nfodor/mcp-chromium-arm64
cd mcp-chromium-arm64
npm install
chmod +x *.py *.shPrueba rápida (una línea)
# 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')"Resultado esperado: [OK] ARM64 Browser Works!
Prueba y demostración
# Quick demo with immediate visible results (30 seconds)
python3 instant_demo.py
# Or comprehensive demo showing all capabilities (2-3 minutes)
./run_demo.shProbar la configuración
# Test MCP server directly
echo '{"jsonrpc":"2.0","method":"tools/list","id":1}' | node index.js
# Test Python wrapper
python3 simple_browser.py🛠️ Guía del desarrollador y depuración
🔧 Herramientas MCP disponibles (27 en total)
Control básico del navegador
navigate- Navegar a URLs con carga completa de páginascreenshot- Capturar capturas de pantalla PNG (página completa o ventana gráfica)click- Hacer clic en elementos mediante selector CSS con posicionamiento precisofill- Rellenar campos de entrada con texto o valoreshover- Pasar el ratón sobre elementos para interacciones de menús desplegables/información sobre herramientasselect- Seleccionar opciones de menús desplegables por valorevaluate- Ejecutar JavaScript y devolver resultadosget_content- Extraer HTML de la página o contenido de texto plano
Funcionalidad avanzada
get_console_logs- Recuperar la salida de la consola del navegadorget_console_errors- Obtener solo mensajes de error de la consolaget_network_logs- Monitorear todas las solicitudes/respuestas de redget_network_errors- Rastrear solicitudes de red fallidas (4xx/5xx)wipe_logs- Borrar todos los registros almacenados de la memoriaget_selected_element- Obtener información sobre el elemento enfocado actualmente
Emulación de dispositivos móviles
emulate_device- Emular dispositivos móviles con 17 preajustes o ventana gráfica/UA/DPR/táctil personalizados, con soporte horizontaliPhones:
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- Restablecer la emulación del dispositivo al modo de escritorio
Grabación de screencast
start_screencast- Iniciar la grabación de la actividad del navegador mediante screencast CDP (formato, calidad, resolución, salto de fotogramas configurables)stop_screencast- Detener la grabación y codificar a MP4, GIF o WebM mediante ffmpeg (detecta automáticamente los FPS a partir de las marcas de tiempo de los fotogramas)screencast_status- Verificar el estado de la grabación, el recuento de fotogramas y la duración transcurrida
Herramientas de auditoría y análisis
run_accessibility_audit- Verificar texto alternativo, etiquetas, encabezados, contrasterun_performance_audit- Medir tiempos de carga, uso de memoria, recursosrun_seo_audit- Validar título, meta descripción, etiquetas H1, canónicasrun_best_practices_audit- Verificar HTTPS, HTML obsoleto, ventana gráficarun_nextjs_audit- Verificaciones de optimización específicas de Next.jsrun_debugger_mode- Información de depuración completarun_audit_mode- Ejecutar todas las auditorías juntas con un resumenclose_browser- Apagado limpio del proceso de chromium
🐛 Depuración y desarrollo
Prueba directa de 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.jsGrabación de screencast
# 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.jsRequiere:
ffmpeginstalado en el sistema. Los FPS se detectan automáticamente a partir de las marcas de tiempo de los fotogramas de CDP. La salida GIF está limitada a 15 fps para tamaños de archivo razonables.
Emulación de dispositivos móviles
# 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.jsMonitoreo de red y consola
# 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.jsAuditorías
# 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.jsInspección de elementos
# 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 selectorDepuración del protocolo Chrome DevTools
# 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);
"Monitoreo de rendimiento
# 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 -hDepuración de red
# 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🔍 Escenarios de depuración comunes
1. Problemas de conexión 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. Problemas con el proceso de 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. Problemas de selección de elementos
# 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. Problemas de memoria y rendimiento
# 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🎯 Funciones de depuración avanzadas
Habilitar registro detallado
# 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=9222Seguimiento de mensajes 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.jsIntegración con las herramientas de desarrollo del navegador
# 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📊 Benchmarks de rendimiento
Comparación de tiempo de inicio
# 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.jsMonitoreo del uso de memoria
# 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'🚨 Códigos de error y soluciones
Error | Causa | Solución |
| Conexión WebSocket perdida | Reiniciar navegador, verificar disponibilidad de puerto |
| Chrome no iniciado completamente | Aumentar retraso de inicio, verificar proceso de chrome |
| Selector CSS no válido | Verificar selector con la herramienta |
| Puerto de depuración bloqueado | Verificar firewall, cerrar procesos de chrome existentes |
| Problemas de carga de página | Verificar red, aumentar tiempo de espera, probar página más simple |
🔧 Personalización y extensión
Agregar nuevas herramientas 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}` }] };
}Variables de entorno
# Set browser window size (default: 1280,720)
export CHROMIUM_WINDOW_SIZE=1920,1080Opciones de inicio de 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
];🌐 Compatibilidad multiplataforma ARM64
Matriz de soporte de plataforma
Plataforma | Estado | Ruta de Chrome | Método de instalación | Notas |
Linux ARM64 ✅ | Totalmente compatible |
|
| Probado en Raspberry Pi OS |
macOS Apple Silicon ⚠️ | Requiere modificaciones |
| Descargar de Google o | Necesita actualizaciones de ruta y flags |
Windows ARM64 ❓ | No probado |
| Descargar de Google | Necesitaría cambios específicos para Windows |
Configuración de macOS Apple Silicon
Requisitos previos
# 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-quarantineCambios de código requeridos
Actualmente, el servidor está optimizado para Linux ARM64. Para la compatibilidad con macOS, modifique 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
}Problemas y soluciones específicos de macOS
1. Error "Chromium está dañado"
# 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. Elección entre Chrome y 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. Problemas de permisos
# Ensure Chrome has required permissions
# System Preferences > Security & Privacy > Privacy tab
# Grant Camera, Microphone access if needed for specific use casesPrueba de compatibilidad multiplataforma
Prueba rápida de detección de plataforma
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));
"Prueba MCP multiplataforma
# 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 platformConsideraciones de Windows ARM64
Aunque no se ha probado, el soporte para Windows ARM64 necesitaría:
// 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...Diferencias de rendimiento
Plataforma | Tiempo de inicio | Uso de memoria | Notas |
Linux ARM64 (Pi 4) | ~3-4s | ~150MB | Optimizado, bien probado |
macOS Apple Silicon | ~2-3s | ~200MB | CPU más rápida, más memoria |
Windows ARM64 | Desconocido | Desconocido | Dependería del hardware |
Se necesita contribución
¡Agradecemos las contribuciones para un soporte multiplataforma completo!
Probadores de macOS: Prueben los cambios propuestos en Apple Silicon
Windows ARM64: Prueben en Surface Pro X o dispositivos similares
Optimización de rendimiento: Optimizaciones específicas de la plataforma
Scripts de instalación: Configuración automatizada para cada plataforma
Integración con Claude CLI
Requisitos previos
# Install Claude Code CLI if you haven't already
npm install -g @anthropic-ai/claude-codeAgregar a Claude CLI
# From the project directory after cloning
claude mcp add chromium-arm64 "$(pwd)/mcp-wrapper.sh" --scope userVerificar conexión
claude mcp list
# Should show: chromium-arm64: /path/to/mcp-wrapper.sh - ✓ Connected⚠️ Importante: Reinicie Claude después de agregar
DEBE iniciar una nueva sesión de Claude después de agregar el servidor MCP:
# Exit current session if in one
exit
# Start fresh session
claudeUso en Claude CLI
Pídale a Claude que use las herramientas de 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-arm64Sea explícito para evitar Playwright/Puppeteer:
"Usa chromium-
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