DrissionPage MCP logo

DrissionPage MCP

Local MCP browser automation with DrissionPage, Chromium control, page inspection, screenshots, tabs, dialogs, and pointer actions.

Install DrissionPage MCP

Pick your client, then add it in one click or paste the config.

STDIOPython
~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "drissionpage-mcp": {
      "command": "uvx",
      "args": [
        "drissionpage-mcp"
      ],
      "env": {
        "DP_MCP_SCREENSHOT_ROOT": "YOUR_VALUE_HERE",
        "DP_MCP_ARTIFACT_ROOT": "YOUR_VALUE_HERE"
      }
    }
  }
}

Settings → Developer → Edit Config, merge this into mcpServers, then fully quit and reopen Claude Desktop.

Values are written into the snippet above so you can paste it as is. They never leave your browser.

Install not yet sandbox-tested— the server itself is confirmed live (we called its tools/list endpoint). The stdio install command is a separate, ongoing check.

Overview

DrissionPage MCP is a local browser-automation server that connects MCP clients to Chromium through the DrissionPage Python library. It exposes typed tools for navigation, tab management, page inspection, JavaScript evaluation, screenshots, artifacts, dialogs, permissions, headers, and pointer-based interaction. Use it when an agent needs direct browser control, structured page state, or coordinate-based actions for visual interfaces. The server is intended for authorized automation, testing, accessibility workflows, and technical research.

Use cases

  • Automate Chromium navigation and tab workflows
  • Inspect page structure and accessibility trees
  • Test canvas, editor, map, and chart interactions
  • Capture screenshots and export PDF or MHTML artifacts
  • Handle browser dialogs, permissions, headers, and user agents

Key features

  • Typed MCP tools for local Chromium control
  • DOM, accessibility, and page-state observation
  • Deterministic direct or natural pointer movement
  • Failure-safe coordinate and selector-backed dragging
  • Screenshot and PDF/MHTML artifact export
  • Browser dialog, permission, header, and user-agent controls

Tools69

What DrissionPage MCP lets your agent do. Expand a tool for its parameters.

Verified live~26.1k tokens of context

Security & health

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

ActiveLast checked Today

Recent health check succeeded.

13/13 checks healthy over the last 50d

What it can do

From the 69 tools this server returned when we ran it; 69 declare their own safety hints.

Can delete or modify data · 41Writes files · 1Handles credentials · 5Makes network requests · 69Read-only tools · 28
Network at startup2 connections
Files written at startup30

Observed 2026-10-15 in an isolated sandbox. A description of reach, not a security audit.

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 6d ago via OSV.dev · drissionpage-mcp (PyPI)

Adoption & maintenance

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

GitHub stars484Stargazers on the source repository.
Last commit1d agoMost recent push to the default branch.
Tools exposed69Callable tools this server registers over MCP.
Directory activity1 viewsConfig copies, upvotes, and views on AllMCPs.

How DrissionPage MCP works

What DrissionPage MCP does

DrissionPage MCP brings browser-facing operations to MCP clients through a local server. It uses DrissionPage's direct Chromium/CDP control and its requests-style HTTP session support, presenting browser actions as typed MCP tools. The server is designed around small, explicit operations that an MCP client can combine into a larger workflow.

Its browser controls cover ordinary navigation as well as more specialized tasks. An agent can open URLs, move through history, refresh or close a page, inspect the current URL, list and switch tabs, resize the window, and handle a bounded HTTP authentication flow in an isolated Chromium context. It can also observe or respond to native alert, confirm, and prompt dialogs.

How it works

The server runs locally and keeps browser state for the active DrissionPage MCP session. Clients request individual operations, and the server returns typed results. Page observation can provide a bounded outline containing text excerpts, headings, links, buttons, inputs, forms, and selector suggestions. Separate tools expose a bounded Chromium accessibility tree and a compact fingerprint containing URL, title, ready state, element counts, visible text samples, active-element data, and recent console information.

For interaction, clients can use selectors where page structure is suitable or viewport coordinates for visual surfaces such as canvases, maps, charts, and editors. Pointer movement supports direct positioning or a deterministic bounded natural trajectory. Clicks and drags report execution details, and drag operations release the button if execution fails after pressing. Selector-backed element drags resolve geometry immediately before the operation and can target the top document, one same-origin iframe, or nested open Shadow DOM paths.

Setup and configuration

Install the Python package with pip and configure the local server in an MCP client. The project specifies Python 3.10 or newer. Codex can use a TOML MCP configuration, while clients that accept MCP JSON can use the corresponding server definition. The documented client integrations include Codex CLI/IDE, Claude Code, Claude Desktop, and Cursor.

Screenshot files are written beneath the path configured by DP_MCP_SCREENSHOT_ROOT. PDF or MHTML exports use DP_MCP_ARTIFACT_ROOT; export results include a checksum, a safe relative path, and receipt evidence. A source checkout can also be installed in editable mode for local validation.

Tools and capabilities

  • Navigate, refresh, go backward or forward, close pages, and retrieve the active URL.
  • List tabs, switch between them, or close one without shutting down the browser.
  • Capture inline screenshots, save screenshots locally, and export a page as PDF or MHTML.
  • Inspect page structure, accessibility state, compact page observations, and browser dialogs.
  • Execute a bounded JavaScript function and return a JSON-safe result; the function may modify the page.
  • Move, click, and drag with exact coordinates, bounded natural motion, ordered waypoints, or resolved element targets.
  • Replace extra request headers, override the tab user agent, clear HTTP cache, and manage bounded origin permissions.
  • Open an isolated authenticated tab for a bounded HTTP authentication challenge.

Limitations and notes

The core package supplies atomic browser capabilities rather than site-specific procedures or business workflows. Clients or optional Skills compose those operations for particular sites and tasks. Coordinate actions require reliable viewport coordinates, while selector-based actions are preferable when the DOM provides stable targets. The server is intended for authorized use and does not provide challenge-specific workflows.

The project describes its status as beta and uses Chromium-backed browser execution. Native dialog handling is capability-probed, and permission operations are scoped to bounded origins or the current Chromium context.

Reviews

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

Frequently Asked Questions about DrissionPage MCP

DrissionPage MCP is an MCP server that connects MCP clients to Chromium through the DrissionPage Python library. Its main tools navigate pages, manage tabs, inspect DOM and accessibility state, execute bounded JavaScript, capture screenshots, export artifacts, handle dialogs, and perform coordinate or selector-based pointer actions.

Install it with pip using the `drissionpage-mcp` package and Python 3.10 or newer. Configure the resulting local server in your MCP client, using the client’s TOML or JSON format, then restart the client.

Yes, DrissionPage MCP has a Cursor setup documented alongside Codex CLI/IDE, Claude Code, and Claude Desktop. Add the local server to Cursor’s MCP configuration and restart the client.

Use `page_screenshot_save` and configure `DP_MCP_SCREENSHOT_ROOT` as the allowed local screenshot directory. The tool saves the screenshot beneath that root rather than returning only an inline image.

Yes, `page_export_artifact` generates one PDF or MHTML file beneath `DP_MCP_ARTIFACT_ROOT`. Its result includes a checksum, safe relative path, and exact-once receipt evidence.

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 PreviewDrissionPage MCP AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/drissionpage-mcp?style=directory)](https://allmcps.com/mcp/drissionpage-mcp)
HTML Embed
<a href="https://allmcps.com/mcp/drissionpage-mcp"><img src="https://allmcps.com/api/badge/drissionpage-mcp?style=directory" alt="DrissionPage MCP on AllMCPs" /></a>