chromium-arm64
MCP Chromium ARM64 服务器
🚀 提供两种实现方案
📦 版本对比
特性 | 直接 CDP (v1.4.0) ⭐ 推荐 | 基于 Puppeteer (v1.2.0) |
依赖 | 仅 | Puppeteer + MCP SDK (163 个包) |
内存占用 | 更低 (原生 chromium) | 更高 (Node.js 包装器开销) |
启动时间 | 更快 (直接 WebSocket) | 更慢 (Puppeteer 初始化) |
浏览器控制 | 原生 Chrome DevTools Protocol | Puppeteer 抽象层 |
ARM64 优化 | 完全原生 ARM64 | 取决于 Puppeteer 的 ARM64 支持 |
调试 | 可见原始 CDP 消息 | 被 Puppeteer 抽象化 |
维护 | 仅需关注 Chrome 协议变更 | 需关注 Puppeteer + Chrome 协议变更 |
性能 | 最佳 (直接通信) | 良好 (包装通信) |
🎯 如何选择版本
如果满足以下条件,请使用直接 CDP (v1.4.0):
✅ 您追求极致性能和最少依赖
✅ 您需要原生 ARM64 优化
✅ 您希望直接控制 Chrome DevTools Protocol
✅ 您正在构建生产级自动化系统
✅ 您想要最新的功能和最快的更新
如果满足以下条件,请使用基于 Puppeteer (v1.2.0):
✅ 您正在从现有的 Puppeteer 代码迁移
✅ 您更喜欢 Puppeteer API 抽象
✅ 您需要直接 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 packagesRelated MCP server: mcp-browser-use
📚 文档与专业指南
本仓库为不同受众提供了多种文档方案:
🎯 面向开发者与 DevOps 工程师
📖 技术自述文件 - 全面的技术文档,包括:
架构图和 API 参考
性能基准测试和优化指南
CI/CD 集成示例和 E2E 测试工作流
高级调试和自定义选项
🍓 面向创客与创业者
📖 树莓派自述文件 - 以预算为中心的指南,包括:
完整的 480 美元 AI 开发配置
无代码 SaaS 开发工作流
真实世界的创业案例和投资回报率分析
全球可访问性和创客运动焦点
⚡ 快速链接
✨ 核心功能
🤖 原生 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-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- 将设备模拟重置回桌面模式
屏幕录制
start_screencast- 通过 CDP 屏幕广播开始录制浏览器活动 (可配置格式、质量、分辨率、跳帧)stop_screencast- 停止录制并通过 ffmpeg 编码为 MP4、GIF 或 WebM (自动从帧时间戳检测 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 输出限制为 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 selectorChrome 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.js4. 内存与性能问题
# 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=9222CDP 消息追踪
# 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'🚨 错误代码与解决方案
错误 | 原因 | 解决方案 |
| WebSocket 连接丢失 | 重启浏览器,检查端口可用性 |
| Chrome 未完全启动 | 增加启动延迟,检查 chrome 进程 |
| CSS 选择器无效 | 使用 |
| 调试端口被阻塞 | 检查防火墙,终止现有的 chrome 进程 |
| 页面加载问题 | 检查网络,增加超时时间,尝试更简单的页面 |
🔧 自定义与扩展
添加新的 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,1080Chrome 启动选项
// 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 ✅ | 完全支持 |
|
| 在 Raspberry Pi OS 上测试 |
macOS Apple Silicon ⚠️ | 需要修改 |
| 从 Google 下载或 | 需要更新路径和标志 |
Windows ARM64 ❓ | 未测试 |
| 从 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-quarantine2. 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/chromium3. 权限问题
# 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 platformWindows 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-4s | ~150MB | 已优化,经过充分测试 |
macOS Apple Silicon | ~2-3s | ~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:
"Use chromium-arm64 to navigate..." (使用 chromium-arm64 导航...)
"Using the chromium-arm64 tool, take a screenshot" (使用 chromium-arm64 工具截屏)
"Open a browser" (可能会尝试使用损坏的 Playwright)
"Take a screenshot" (可能会尝试使用损坏的 Puppeteer)
成功示例
当工作正常时,您会看到:
You: Use chromium-arm64 to navigate to https://httpbin.org/json and show me what you see
Claude: I'll navigate to https://httpbin.org/json using the chromium-arm64 tool.
[Uses chromium-arm64.navigate tool]
The page displays a JSON object with a slideshow structure containing:
- Author: "Yours Truly"
- Date: "date of publication"
- Title: "Sample Slide Show"
...使用示例
Python API
import simple_browser
# Navigate to any website
result = simple_browser.browser_navigate("https://example.com")
print(result) # "Successfully navigated to https://example.com"
# Take a screenshot
screenshot = simple_browser.browser_screenshot("homepage.png")
print(screenshot) # "Screenshot saved to /tmp/homepage.png"
# Execute JavaScript
title = simple_browser.browser_evaluate("document.title")
print(title) # Website title
# Extract page content
content = simple_browser.browser_get_content("text")
print(content[:100]) # First 100 chars of page textMCP 工具 (通过 Claude Code)
配置完成后,直接在 Claude Code 中使用这些工具:
navigate- 访问 URLscreenshot- 捕获页面图像click/fill/hover/select- 与页面元素交互evaluate- 执行 JavaScriptget_content- 提取页面 HTML/文本emulate_device/reset_emulation- 带有 17 个预设的移动设备模拟start_screencast/stop_screencast- 将浏览器活动录制为 MP4/GIF/WebMget_console_logs/get_network_logs- 监控控制台和网络`
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