termux-puppeteer-mcp
Enables Puppeteer-based web automation (navigation, screenshots, PDF generation, JavaScript execution, clicking) on Android Termux by running Chromium inside an Alpine Linux container.
README
Termux Puppeteer MCP Server
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
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.