Plasmate logo

Plasmate

Headless browser MCP server that turns web pages into structured SOM data and supports stateful agent interactions.

Install Plasmate

Run the project’s own setup commands, in order.

Setup steps from the project

plasmate installs with its own commands rather than a config we can generate, so these are copied as-is. Run them in order in a terminal. Source: github.com

  1. 1. Install
    curl -fsSL https://plasmate.app/install.sh | sh
    
  2. 2. Start the server
    plasmate serve --protocol awp --host 127.0.0.1 --port 9222
    

Overview

plasmate MCP server connects AI agents to a native headless browser engine through MCP over stdio or Streamable HTTP. It converts HTML into a Semantic Object Model with structured regions, content, and interactive elements identified by stable IDs. Tools cover page fetching, text and link extraction, screenshots, sessions, navigation, form actions, cookies, and JavaScript evaluation. Reach for it when an agent needs compact page representations or controlled browser workflows rather than raw DOM output.

Use cases

  • Fetch web pages as structured SOM JSON for agent analysis
  • Extract readable text and deduplicated links from URLs
  • Run stateful browser sessions with form and navigation actions
  • Connect Puppeteer workflows through the supported CDP interface

Key features

  • Semantic Object Model page output
  • MCP over stdio and Streamable HTTP
  • Stateful sessions with navigation and interaction tools
  • V8 JavaScript evaluation
  • Cookie, screenshot, cache, and trace operations
  • Supported Puppeteer workflows through CDP

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

ActiveLast checked 2d ago

Recent health check succeeded.

11/11 checks healthy over the last 56d

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 7d ago via OSV.dev

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

GitHub stars39Stargazers on the source repository.
Last commit2d agoMost recent push to the default branch.
Directory activity1 viewsConfig copies, upvotes, and views on AllMCPs.

How Plasmate works

What plasmate does

plasmate exposes a headless browser designed for agent workflows. Pages are processed into a Semantic Object Model (SOM), which represents content, regions, and interactive elements in structured JSON. This gives an agent a page-oriented representation to inspect and act on instead of requiring it to reason over the complete HTML document.

The engine runs JavaScript through V8 and supports a documented subset of the Chrome DevTools Protocol for compatible Puppeteer workflows. It also provides native MCP and AWP interfaces. SOM output size depends on the page, configuration, serialization, and tokenizer, so applications should measure the results they receive.

How it works

A stateless MCP call can fetch a URL and return SOM data, readable text, or deduplicated links. For interactive work, open_page creates a session and returns a session ID, SOM, and cache-restoration status. Later calls can navigate that session, inspect its state, act on elements by SOM ID, and close the session.

Available page actions include clicking, typing, selecting options, scrolling, toggling controls, and clearing fields. JavaScript evaluation operates in the page context. Cookie tools read, add, update, or remove cookies associated with a session. Screenshots are available when visual output is needed, with SOM fallback behavior.

The native executable can also serve CDP for Puppeteer clients or AWP through its respective protocols. Stateful workflows can be run from versioned, bounded plans; mutating steps require separate confirmations, while JavaScript evaluation and cookie writes require category opt-ins.

Setup and configuration

Install the native engine with the project’s shell installer or Cargo:

  • curl -fsSL https://plasmate.app/install.sh | sh
  • cargo install plasmate

The npm and PyPI packages provide client SDKs and do not install the native executable. Install the engine separately before adding either SDK to an application.

Start the MCP server over stdio with:

bash
plasmate mcp

A Claude Desktop configuration uses the plasmate executable with mcp as its argument. Cursor, VS Code Copilot, and Windsurf use the same MCP server definition in their respective configuration files.

For Streamable HTTP, select the transport explicitly and provide a capability token:

bash
PLASMATE_MCP_HTTP_TOKEN="$(openssl rand -hex 32)" plasmate mcp --transport http --host 127.0.0.1 --port 9272

Requests to the resulting /mcp endpoint must send the token as a Bearer authorization header. The endpoint returns HTTP 405 for GET requests rather than exposing an SSE notification stream.

Tools and capabilities

The MCP tool surface includes:

  • Fetching SOM data, readable text, and deduplicated links
  • Inspecting pages, taking screenshots, and checking cache or session state
  • Opening, navigating, and closing stateful browser sessions
  • Clicking, typing, selecting, scrolling, toggling, and clearing controls
  • Evaluating JavaScript in a page context
  • Reading, setting, and clearing session cookies
  • Inspecting, exporting, clearing, and validating retained action traces
  • Reviewing bounded ARD discovery signals and evaluating robots.txt policy

Element selectors can narrow returned content to areas such as the main region, sidebar, headings, or interactive elements. Action-oriented selectors can also build a compact menu of clickable, typable, selectable, toggleable, submit, or resettable controls.

Limitations and notes

The CDP implementation covers a documented subset intended for supported Puppeteer workflows, rather than claiming complete browser protocol coverage. SOM output is dependent on page and serialization details, so token reduction should be evaluated against the target sites and model tokenizer. HTTP deployments require explicit token authentication, and the server does not provide an SSE notification stream for GET requests.

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about Plasmate

plasmate is an MCP server that connects AI agents to a native headless browser engine through stdio or Streamable HTTP. Its main tools fetch pages into Semantic Object Model JSON, extract text and links, inspect or screenshot pages, manage sessions, and interact through navigation, clicks, typing, selection, scrolling, cookies, and JavaScript.

Install the native engine with the shell installer or `cargo install plasmate`, then run `plasmate mcp`. The npm and PyPI packages are client SDKs and do not install the native executable.

Yes, plasmate works with Cursor through its MCP configuration. Add the `plasmate` command with `mcp` as the argument to Cursor’s `~/.cursor/mcp.json` file.

Run `plasmate mcp --transport http` with a `PLASMATE_MCP_HTTP_TOKEN`, host, and port. Clients must send the token as a Bearer authorization header to the `/mcp` endpoint.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewPlasmate AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/plasmate?style=directory)](https://allmcps.com/mcp/plasmate)
HTML Embed
<a href="https://allmcps.com/mcp/plasmate"><img src="https://allmcps.com/api/badge/plasmate?style=directory" alt="Plasmate on AllMCPs" /></a>