Skip to main content
Glama

MCP Chromium ARM64 Server

🚀 Доступны два подхода к реализации

📦 Сравнение версий

Функция

Direct CDP (v1.4.0)РЕКОМЕНДУЕТСЯ

Puppeteer-based (v1.2.0)

Зависимости

Только ws + MCP SDK (89 пакетов)

Puppeteer + MCP SDK (163 пакета)

Использование памяти

Ниже (нативный chromium)

Выше (накладные расходы обертки Node.js)

Время запуска

Быстрее (прямой WebSocket)

Медленнее (инициализация puppeteer)

Управление браузером

Нативный протокол Chrome DevTools

Уровень абстракции Puppeteer

Оптимизация ARM64

Полная нативная ARM64

Зависит от поддержки ARM64 в Puppeteer

Отладка

Видны необработанные сообщения CDP

Абстрагировано через Puppeteer

Обслуживание

Только изменения протокола Chrome

Изменения Puppeteer + протокола Chrome

Производительность

Лучшая (прямая связь)

Хорошая (связь через обертку)

🎯 Когда какую версию использовать

Используйте Direct CDP (v1.4.0), если:

  • ✅ Вам нужна максимальная производительность и минимум зависимостей

  • ✅ Вам нужна нативная оптимизация ARM64

  • ✅ Вы хотите прямое управление через протокол Chrome DevTools

  • ✅ Вы создаете промышленные системы автоматизации

  • ✅ Вы хотите использовать новейшие функции и получать быстрые обновления

Используйте Puppeteer-based (v1.2.0), если:

  • ✅ Вы мигрируете с существующего кода Puppeteer

  • ✅ Вы предпочитаете абстракцию API Puppeteer

  • ✅ Вам нужны специфические функции Puppeteer, еще не реализованные в direct CDP

  • ✅ Вы хотите минимизировать изменения в существующих рабочих процессах

🔄 Переключение между версиями

# 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-тестирования

  • Расширенные возможности отладки и настройки

🍓 Для мейкеров и предпринимателей

📖 README ДЛЯ RASPBERRY PI - Руководство, ориентированное на бюджет, включающее:

  • Полная настройка среды разработки ИИ за $480

  • Рабочие процессы разработки SaaS без написания кода

  • Реальные примеры использования в стартапах и анализ ROI

  • Глобальная доступность и фокус на движении мейкеров

Быстрые ссылки


✨ Основные функции

🤖 Нативная автоматизация браузера ARM64

  • Прямая реализация протокола Chrome DevTools

  • 27 комплексных инструментов MCP для полного управления браузером

  • Оптимизировано для архитектур Raspberry Pi и Apple Silicon

  • Отсутствие зависимости от сломанных бинарных файлов Puppeteer для x86_64

⚡ Высокопроизводительная архитектура

  • Всего 2 зависимости (ws + MCP SDK) против 163 пакетов в Puppeteer

  • Более низкое использование памяти и более быстрое время запуска

  • Прямая связь по WebSocket с Chrome

  • Комплексное логирование и возможности аудита

🛠️ Разработка корпоративного уровня

  • Полный набор инструментов отладки с мониторингом консоли/сети

  • Встроенные аудиты доступности, SEO и производительности

  • Примеры интеграции CI/CD и рабочие процессы E2E-тестирования

  • Кроссплатформенная совместимость (Linux ARM64, macOS Apple Silicon)

💰 Доступная платформа для инноваций

  • Полная настройка разработки ИИ менее чем за $500

  • Те же возможности, что и у корпоративных рабочих станций стоимостью более $50 000

  • Глобальная доступность для мейкеров и стартапов по всему миру

  • Никаких регулярных облачных расходов — владейте своей инфраструктурой


🚀 Универсальный быстрый старт

Предварительные требования

# 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/touch, с поддержкой ландшафтного режима

    • 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 - Остановка записи и кодирование в MP4, GIF или WebM через ffmpeg (автоматическое определение FPS по временным меткам кадров)

  • screencast_status - Проверка статуса записи, количества кадров и прошедшей длительности

Инструменты аудита и анализа

  • run_accessibility_audit - Проверка alt-текста, меток, заголовков, контрастности

  • run_performance_audit - Измерение времени загрузки, использования памяти, ресурсов

  • run_seo_audit - Проверка заголовка, мета-описания, тегов H1, канонических ссылок

  • 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 ограничен 15 кадрами в секунду для обеспечения разумных размеров файлов.

Эмуляция мобильных устройств

# 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

# 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

Интеграция с инструментами разработчика браузера

# 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 Files\Google\Chrome\Application\chrome.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с

~150МБ

Оптимизировано, хорошо протестировано

macOS Apple Silicon

~2-3с

~200МБ

Более быстрый процессор, больше памяти

Windows ARM64

Неизвестно

Неизвестно

Зависит от оборудования

Требуется вклад

**Мы приветствуем вклад для полной кроссплатформенной

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