DrissionPage MCP: browser control

DrissionPage MCP Server

A Python MCP server for Codex, Claude Code and Cursor: 69 atomic tools for driving Chromium on top of DrissionPage, with page and network observation

  • 484 ★ on the repository
  • Last commit
MCP server

Broad access

Why this level

  • The agent drives a real browser: cookies, storage and file uploads are in reach and forms can be submitted from your session
  • The package combines tools for request headers, user agent override and passing checks like Turnstile: use them only on your own or permitted sites
All reasons and checks

jumodada/drissionpage-mcp-server

Install

In your terminal, with SkillFoxx CLI

npx skillfoxx add mcp/drissionpage-mcp-server

Detects the agents on your machine, shows the access level and pins the version.

Other ways to install

Access and checks

How we review

Broad accessThe tool can change data, run commands or handle secrets.

  • The agent drives a real browser: cookies, storage and file uploads are in reach and forms can be submitted from your session
  • The package combines tools for request headers, user agent override and passing checks like Turnstile: use them only on your own or permitted sites

This is third-party code. Review the repository files before installing.

What it does

The server opens a Chromium browser through DrissionPage and gives an agent 69 typed tools. They fall into groups: navigation and tabs, element lookup and actions, page snapshots and the accessibility tree, frames and Shadow DOM, cookies and storage, waits, network observation, dialogs and permissions. The author's idea is that the model decides what to do and the server executes the operation exactly. When a page has reliable selectors, use them. For canvases, maps and charts the agent takes coordinates from a screenshot and calls page_click_xy. Pointer motion has two profiles: direct in one jump and natural along a deterministic 24-step curve. The core has no random jitter and no protection-evasion logic. Site-specific scenarios live outside the core in optional skills. The repository has three examples: diagnosing a cross-origin iframe, testing your own Cloudflare Turnstile integration and researching public Xiaohongshu notes. The server does not execute skills; they are Markdown instructions for the host.

Who it is for. For developers and testers who need to drive Chromium from Codex, Claude Code or Cursor, especially on pages with iframes, Shadow DOM and canvases.

Good fit when

  • You want to test your own site: fill a form, inspect network requests and console output
  • An element sits in a cross-origin frame or in Shadow DOM and general tools cannot see it
  • The interface is drawn on a canvas or a map, so clicks have to be placed by coordinates
  • You need to keep a downloaded file or a PDF with a SHA-256 checksum in a managed folder
  • You are setting up a check of your own Cloudflare Turnstile integration with test keys

Not a fit when

  • You need anti-bot evasion or a ready scenario for someone else's site: the core has neither
  • Your browser is not Chromium: Chrome or Chromium is required
  • Reading a page is enough: a service that returns Markdown text is faster
  • The task is bulk collection from other people's sites without permission: the author aims the server at authorized testing, accessibility and technical research

Example request

Open my test site, fill in the login form with a test user and show which network requests went out on submit

MCP

Transport
stdio
Authentication
not required

Environment variables

CHROME_PATH
Path to Chrome or Chromium when it is not found automatically
DP_HEADLESS
A value of 1 turns on windowless mode
DP_MCP_DOWNLOAD_ROOT
Directory for downloaded files
DP_MCP_UPLOAD_ROOT
Directory of files allowed to be uploaded to pages
DP_MCP_SCREENSHOT_ROOT
Directory for saved screenshots
DP_MCP_ARTIFACT_ROOT
Directory for PDF and MHTML artifacts with checksums

Limitations

  • Python 3.10 or newer and an installed Chrome or Chromium are required. The doctor command runs diagnostics, and with --launch-browser it also checks that the browser starts.
  • All 69 tools load at once, with no capability profiles or full mode.
  • The content of a cross-origin iframe is not always readable: frame_list reports whether the document is accessible, otherwise geometry and coordinates remain.
  • Downloads, uploads, screenshots and artifacts are confined to the directories named by DP_MCP_DOWNLOAD_ROOT, DP_MCP_UPLOAD_ROOT, DP_MCP_SCREENSHOT_ROOT and DP_MCP_ARTIFACT_ROOT.
  • pyproject declares the Apache-2.0 license, while GitHub detects it as NOASSERTION.

How to disable. Remove the drissionpage block from the client configuration: the mcp_servers section in config.toml for Codex, the mcpServers block for others. The package is removed with pip uninstall drissionpage-mcp.

FAQ

How do I install DrissionPage MCP in Claude Code?

Run python -m pip install -U "drissionpage-mcp>=0.8.8", check drissionpage-mcp --version and drissionpage-mcp doctor, then add a server with the command drissionpage-mcp to the MCP configuration. If the command is not on PATH, give the full Python path with the arguments -m drissionpage_mcp.cli.

How do the two pointer motion profiles differ?

The direct profile makes one exact move. The natural profile builds a deterministic 24-step curve with 8-14 ms pauses and an exact landing on the target. There is no randomness: the same start, target and profile give the same path.

What are the optional skills in this repository?

They are instructions in skills/<name>/SKILL.md for scenarios built on the general tools: cross-origin-iframe-probe, turnstile-testing and xiaohongshu-content-research. The server does not run them. The catalog can be installed with install.py and --client codex or --client claude.

Which environment variables does the server read?

CHROME_PATH sets the browser and DP_HEADLESS turns on windowless mode. Directories for downloads, uploads, screenshots and artifacts are set by DP_MCP_DOWNLOAD_ROOT, DP_MCP_UPLOAD_ROOT, DP_MCP_SCREENSHOT_ROOT and DP_MCP_ARTIFACT_ROOT.

Does the server show cookie and storage values?

Not by default. The cookie and storage tools return values redacted and reveal them only on an explicit parameter, such as include_values=true for storage.

Discussion

No questions or reviews yet.

Official

An MCP server and Chrome extension that let the agent drive your already open browser with your logged-in sessions, all locally

MCP serverBroad access7.2KRepository stars

A Chrome extension with an MCP server: the agent drives your everyday browser with its sessions, tabs, bookmarks and history

MCP serverBroad access12.5KRepository stars
Official

The Chrome DevTools team's official MCP server: the agent drives a live Chrome, reads network and console, and records performance traces

MCP serverExtended access54KRepository stars

An MCP server that opens pages in headless Chromium through Playwright and hands the agent the main text as Markdown, even from JavaScript-heavy sites

MCP serverExtended access1.1KRepository stars

An MCP server that drives your already open Chrome and stops to ask you about a 2FA code, a CAPTCHA, or a choice only you can make

MCP serverBroad access59Repository stars

A Python Chrome MCP: the agent connects to Chrome over the DevTools Protocol, reads network, console and cookies, runs JavaScript and takes page metrics

MCP serverExtended access312Repository stars

Comparison with similar tools

Entries that share the main search query, and how they differ.

EntryOfficialAuthenticationRepository starsMain difference
DrissionPage MCP: browser control (this entry)nonot required484
Playwright MCP Servernonot required5,671drives a browser through Playwright from ExecuteAutomation, without the DrissionPage engine
Chrome DevTools MCPyesnot required54,001the official Chrome DevTools team server for debugging and profiling a live Chrome
Browser Useno118,910a CLI, skill and Python library in which the agent drives the browser by itself

README in short

The README opens with the principle: the model decides, the server executes, and component or site scenarios stay in the client or in skills. Then come installation from PyPI, the doctor check, setup for Codex in TOML and for other clients in JSON, the full tool list by group and a table of example skills with stop boundaries. Below are quality checks: browser-backed tests, code coverage of at least 95 percent and an interactive lab for viewing pointer motion.

README badge

Report a problem

Foxx AIDrissionPage MCP: browser control
Foxx AI

I am Foxx AI and I have already vetted this tool. Ask about install, setup or anything else, and I will keep it simple.