termux-puppeteer-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@termux-puppeteer-mcpTake a screenshot of example.com"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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.
Related MCP server: Chrome MCP Docker
Quick Setup
Automated installation (recommended):
bash setup.shThe 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.jsThe 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 alpineChromium 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 stepsUsers can run it on any Termux installation
Works on ARM64 Android devices without root
License
MIT - Feel free to use and modify
Available Tools
9 toolsclose_sessionA
Close a browser session and free up resources. Sessions auto-close after timeout, but explicit closing is recommended.
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | Yes | The session ID to close |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, yet the description only mentions closing and freeing resources without detailing side effects, failure modes, or idempotency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise, front-loaded sentences with no extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Lacks output schema and does not describe success/failure behavior, but for a simple close action it is minimally adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters (sessionId described). The description adds no additional meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Close') and resource ('browser session'), clearly distinguishing it from siblings like create_session or list_sessions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States that explicit closing is recommended even though sessions auto-close, providing context for when to invoke the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_sessionA
Create a new browser session for multi-step workflows. Returns a sessionId that persists state between calls. Sessions auto-expire after 5 minutes of inactivity.
| Name | Required | Description | Default |
|---|---|---|---|
| metadata | No | Optional metadata to attach to the session (e.g., agentId, purpose) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses creation, sessionId return, state persistence, and auto-expiration. It does not mention resource consumption or the need to call close_session, but overall it is transparent about key behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with the primary action. Every sentence adds value: creation, return value, and expiration. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description explains the return value. It covers creation, persistence, and expiration. However, it does not address potential errors (e.g., session limit) or prerequisites, but for a simple tool, it is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter, 'metadata', is described as 'Optional metadata to attach to the session (e.g., agentId, purpose).' This adds meaningful examples beyond the schema description, enhancing understanding of its usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Create a new browser session for multi-step workflows.' This is a specific verb+resource combination that distinguishes it from sibling tools like close_session (destroys) and list_sessions (lists).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions 'multi-step workflows' and auto-expiration after 5 minutes, providing clear context for when to use the tool. However, it does not explicitly state when not to use it or name alternatives, though siblings provide indirect guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_page_contentB
Get the HTML content of the current page. Requires sessionId.
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | Yes | Session ID (required) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and description lacks disclosure of behavioral traits. Does not specify if it is read-only, idempotent, or any side effects. Missing error scenarios like invalid session or unloaded page.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with purpose, no extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Lacks details about return format (HTML string), error handling, or prerequisites (e.g., page must be navigated). Given no output schema, the description could provide more context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with sessionId described. The description only repeats the requirement, adding minimal value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and resource ('HTML content of the current page'). It distinguishes from sibling tools like puppeteer_screenshot (image) and puppeteer_navigate (navigation).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like puppeteer_evaluate or list_sessions. Only mentions requirement of sessionId, but does not explain context for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_sessionsA
List all active browser sessions with their status
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must cover behavioral traits. It indicates a read-only listing operation with status, but does not disclose any side effects, permission requirements, or potential rate limits. For a simple list operation, this is adequate but lacks depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that directly states the tool's purpose. Every word is informative, with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (zero parameters, no output schema, no annotations), the description is mostly complete. It specifies what the tool lists and that status is included. However, it could benefit from clarifying the status format or the definition of 'active', but overall it is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters, so the input schema already provides full coverage (100%). The description adds no parameter-specific information, but since there are no parameters, a baseline score of 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: listing all active browser sessions with their status. It uses a specific verb ('list') and resource ('browser sessions'), and distinguishes itself from sibling tools like create_session and close_session.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like create_session or close_session. It implicitly covers the typical use case for listing sessions, but lacks explicit context about prerequisites or limitations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
puppeteer_clickC
Click an element on the current page. Requires sessionId to maintain state after navigation.
| Name | Required | Description | Default |
|---|---|---|---|
| selector | Yes | CSS selector for the element to click | |
| sessionId | Yes | Session ID (required for stateful operation) | |
| waitForNavigation | No | Wait for navigation after click |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It does not mention potential side effects like navigation (despite the waitForNavigation parameter), element visibility requirements, or error conditions. The agent cannot infer that clicking may trigger network requests or state changes beyond the stated navigation wait.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that conveys the core action and a key requirement. While very concise, it lacks structured information (e.g., separate usage notes), but the brevity is not excessive given the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description is incomplete. It does not explain return values (e.g., success boolean, error messages), error handling for invalid selectors or missing sessionId, or what happens when waitForNavigation is true. The minimal information forces reliance on the parameter schema alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers all three parameters with descriptions, achieving 100% coverage. The description adds value by explaining the purpose of sessionId ('maintain state after navigation'), but does not elaborate on selector usage or waitForNavigation behavior beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Click an element') and the context ('on the current page'), distinguishing it from sibling tools like puppeteer_navigate or puppeteer_screenshot. However, it does not explicitly differentiate from puppeteer_evaluate, which could also simulate clicks via JavaScript.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions the requirement for sessionId 'to maintain state after navigation', but provides no guidance on when to use this tool versus alternatives (e.g., puppeteer_evaluate for programmatic clicks, or puppeteer_navigate for page transitions). No when-not-to-use or exclusion criteria are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
puppeteer_evaluateB
Execute JavaScript in the page context and return the result. Requires sessionId.
| Name | Required | Description | Default |
|---|---|---|---|
| script | Yes | JavaScript code to execute (can use return statement) | |
| sessionId | Yes | Session ID (required) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description does not disclose potential side effects (e.g., modifying page state) or whether the execution is read-only. 'Return the result' is vague about what gets returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no wasted words. Front-loaded with the core action. Perfectly concise for a simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Lacks explanation of return value format (e.g., serialized JSON?) and error handling. Given no output schema, description should detail what 'result' means. Still minimally adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so description adds no extra meaning beyond what the schema already provides for both 'script' and 'sessionId'. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action ('Execute JavaScript') and the resource ('in the page context'), and distinguishes from sibling tools like puppeteer_click or puppeteer_navigate by focusing on JavaScript evaluation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., get_page_content for HTML, puppeteer_click for interaction). Only mentions sessionId requirement, not contextual usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
puppeteer_screenshotB
Take a screenshot of the current page state and return as base64 JPEG. If sessionId provided, screenshots the current state. Otherwise navigates to URL first.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | URL to screenshot (only used if sessionId not provided) | |
| sessionId | No | Session ID to screenshot current state | |
| width | No | Viewport width in pixels | |
| height | No | Viewport height in pixels | |
| delay | No | Additional delay in milliseconds after page load | |
| waitForSelector | No | CSS selector to wait for before taking screenshot |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It mentions return format as base64 JPEG but omits important details such as whether it waits for full page load, the impact of delay and waitForSelector, viewport behavior, and any limitations (e.g., full-page screenshots, popups).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences with no filler. The purpose and conditional use are front-loaded, making it efficient for an agent to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 6 parameters, no output schema, and sibling tools, the description is incomplete. It fails to explain the return format details (e.g., size limits), full-page vs viewport behavior, the role of delay/waitForSelector in execution, and how it differs from puppeteer_screenshot_debug or puppeteer_navigate + manual screenshot.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description only adds conditional logic for sessionId vs url, which is already implied by the parameter descriptions. No additional meaning beyond the schema is provided for other parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool takes a screenshot and returns base64 JPEG. It distinguishes between using an existing session (sessionId) vs navigating to a URL. However, it does not differentiate from the sibling tool puppeteer_screenshot_debug, which likely has a similar purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides guidance on when to use sessionId vs url. However, it lacks comparison with sibling tools (e.g., puppeteer_screenshot_debug, puppeteer_navigate) and does not specify prerequisites like needing an active session or URL validity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
puppeteer_screenshot_debugA
Take a screenshot and save it to a file, then open with termux-open for debugging. Works with sessionId to capture current state.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | URL to screenshot (only used if sessionId not provided) | |
| sessionId | No | Session ID to screenshot current state | |
| width | No | Viewport width in pixels | |
| height | No | Viewport height in pixels | |
| filename | No | Output filename (defaults to screenshot-{timestamp}.jpg) | |
| delay | No | Additional delay in milliseconds after page load |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses file save and termux-open side effects, but could mention it's non-destructive and potential implications of saving files.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with the action and purpose. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers basic purpose but lacks details on parameter interactions (e.g., url vs sessionId precedence), return value, and differentiation from sibling screenshot tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
100% schema coverage means schema already describes parameters. Description adds little beyond saying 'Works with sessionId', which is already in schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it takes a screenshot, saves to file, and opens for debugging. The name includes 'debug' to differentiate from sibling puppeteer_screenshot, but it could be more explicit about the distinct use case.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies use for debugging and mentions sessionId, but no explicit guidance on when to use this vs puppeteer_screenshot, nor when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
9 tool updates
v2.0.0- First observed
close_session - First observed
create_session - First observed
get_page_content - First observed
list_sessions - First observed
puppeteer_click - First observed
puppeteer_evaluate - First observed
puppeteer_navigate - First observed
puppeteer_screenshot - First observed
puppeteer_screenshot_debug
TDQS
Most tools are distinct, but puppeteer_screenshot and puppeteer_screenshot_debug overlap in purpose (both take screenshots), and get_page_content and puppeteer_navigate both return page content. This could cause confusion for an agent.
Naming is inconsistent: some tools use verb_noun snake_case (close_session, create_session), while others use a 'puppeteer_' prefix with lowercase verb (puppeteer_click, puppeteer_navigate). This mixed pattern reduces predictability.
9 tools is well-scoped for a browser automation server, covering essential session management and page interaction actions without excess.
Basic operations are covered (navigate, click, evaluate, screenshot, get content), but common actions like form filling and element waiting are missing, leaving notable gaps for complex workflows.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Automate cloud Chrome—navigate, click, type, screenshot, run code, record screen video
Headless browser primitives for AI agents when sites need real JS rendering.
Headless-browser-as-JSON with memorymarket cache economics. Real Chromium, crypto settlement.
Stealth web automation for AI agents. Login, signup, navigate, screenshot.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables interaction with Chromium browser instances through Puppeteer for inspecting dev builds, capturing screenshots, and automating UI interactions. Features permission-gated tools for secure browser navigation, DOM manipulation, and JavaScript evaluation.171MIT
- AlicenseBqualityDmaintenanceEnables AI coding assistants to control a persistent Chrome browser through DevTools Protocol. Supports web navigation, screenshots, element interaction, mobile testing, console logs, and network debugging in a stable Docker environment.107MIT
- AlicenseNot gradedqualityDmaintenanceReal browser automation for Termux/Android. Runs Firefox or Chromium on Xvfb on your phone with a persistent daemon for sub-second commands.18MIT
- AlicenseNot gradedqualityDmaintenanceProvides browser automation and DevTools capabilities via Puppeteer, with Docker support for consistent environments.1,832MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/kevintpeng/termux-puppeteer-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server