Termux Puppeteer
FreeNot checkedEnables Puppeteer-based web automation (navigation, screenshots, PDF generation, JavaScript execution, clicking) on Android Termux by running Chromium inside an
About
Enables Puppeteer-based web automation (navigation, screenshots, PDF generation, JavaScript execution, clicking) on Android Termux by running Chromium inside an Alpine Linux container.
README
A Puppeteer MCP (Model Context Protocol) server that works on Android Termux by running Chromium inside an Alpine Linux container via proot-distro.
Why This Exists
Standard Puppeteer MCP servers don't work on Android/Termux because:
- No ARM build of Chrome exists
- Puppeteer requires a Chromium-based browser
This solution uses Alpine Linux in a containerized environment to run Chromium, while the MCP server runs in Termux and bridges commands to Alpine.
Quick Setup
Automated installation (recommended):
bash setup.sh
The script will automatically:
- Install proot-distro
- Install Alpine Linux
- Install Chromium and Node.js in Alpine
- Install Puppeteer in Alpine
- Set up the MCP server in Termux
- Create configuration files
No device root required!
Takes about 5-10 minutes depending on your connection.
Manual Setup
If already set up or prefer manual installation:
- ✅ Alpine Linux installed via
proot-distro - ✅ Chromium installed in Alpine
- ✅ Node.js and npm in both Termux and Alpine
- ✅ Puppeteer installed in Alpine
Available Tools
The server provides these Puppeteer tools via MCP:
- puppeteer_navigate - Navigate to a URL and get page content/title
- puppeteer_screenshot - Take screenshots (returns base64)
- puppeteer_pdf - Generate PDFs from URLs (returns base64)
- puppeteer_evaluate - Execute JavaScript in page context
- puppeteer_click - Click elements on pages
Usage with Claude Code
Add this to your Claude Code MCP settings:
{
"mcpServers": {
"puppeteer": {
"command": "node",
"args": ["/data/data/com.termux/files/home/termux-puppeteer-mcp/index.js"]
}
}
}
Or use the absolute path to node:
{
"mcpServers": {
"puppeteer": {
"command": "/data/data/com.termux/files/usr/bin/node",
"args": ["/data/data/com.termux/files/home/termux-puppeteer-mcp/index.js"]
}
}
}
Testing
You can test the server using the MCP inspector or by running:
node index.js
The server communicates via stdio using the MCP protocol.
How It Works
- MCP server runs in Termux (native Android environment)
- When a tool is called, it generates Puppeteer JavaScript code
- Code is executed inside Alpine Linux using
proot-distro login alpine - Chromium runs in Alpine with appropriate flags (
--no-sandbox, etc.) - Results are returned back through the MCP protocol
Example Commands
From Claude Code:
- "Take a screenshot of example.com"
- "Get the title of google.com"
- "Generate a PDF of github.com"
- "Click the login button on example.com"
Notes
- No device root required (proot works without root)
- Chromium runs in headless mode
- Screenshots are compressed JPEG (quality 60%, 800x600) to fit MCP token limits
- PDFs are returned as base64
- The proot warning about sanitizing bindings is normal and can be ignored
Files
setup.sh- Automated installation scriptindex.js- MCP server implementationpackage.json- Node.js dependencies.mcp.json- MCP server configuration for Claude CodeREADME.md- This fileSETUP.md- Detailed setup guide
Sharing
To share this setup online:
- The
setup.shscript contains all installation steps - Users can run it on any Termux installation
- Works on ARM64 Android devices without root
License
MIT - Feel free to use and modify
Installing Termux Puppeteer
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/kevintpeng/termux-puppeteer-mcpFAQ
Is Termux Puppeteer MCP free?
Yes, Termux Puppeteer MCP is free — one-click install via Unyly at no cost.
Does Termux Puppeteer need an API key?
No, Termux Puppeteer runs without API keys or environment variables.
Is Termux Puppeteer hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install Termux Puppeteer in Claude Desktop, Claude Code or Cursor?
Open Termux Puppeteer on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
Playwright
Browser automation, scraping, screenshots
by MicrosoftPuppeteer
Browser automation and web scraping.
by modelcontextprotocolopentabs-dev/opentabs
Plugin-based MCP server + Chrome extension that gives AI agents access to web applications through the user's authenticated browser session. 100+ plugins with a
by opentabs-devrobhunter/agentdeals
1,500+ developer infrastructure deals, free tiers, and startup programs across 54 categories. Search deals, compare vendors, plan stacks, and track pricing chan
by robhunterCompare Termux Puppeteer with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All browse MCPs
