$git clone https://github.com/jumodada/Drissionpage-MCP-Server> Professional browser automation for Codex, Claude Code, and MCP clients powered by DrissionPage
| 1 | # DrissionPage MCP Server |
| 2 | |
| 3 | > Professional browser automation for Codex, Claude Code, and MCP clients powered by DrissionPage |
| 4 | |
| 5 | [](https://pypi.org/project/drissionpage-mcp/) [](https://pepy.tech/project/drissionpage-mcp) [](https://opensource.org/licenses/Apache-2.0) [](https://www.python.org/downloads/) [](https://github.com/jumodada/Drissionpage-MCP-Server/actions/workflows/ci.yml) [](https://codecov.io/gh/jumodada/Drissionpage-MCP-Server) []() |
| 6 | |
| 7 | [](https://drissionpage-mcp.vercel.app) |
| 8 | |
| 9 | **[Open the interactive Browser Lab](https://drissionpage-mcp.vercel.app)** to replay bounded natural pointer motion, drag controls, and verify observable state. |
| 10 | |
| 11 | **Official Repositories**: [GitHub](https://github.com/jumodada/Drissionpage-MCP-Server) | [GitCode](https://gitcode.com/g1879/DrissionMCP) |
| 12 | |
| 13 | [English Version](README.md) | [中文版本](README_CN.md) |
| 14 | |
| 15 | ## 🖱️ Atomic Browser Control with Natural Pointer Motion |
| 16 | |
| 17 | **DrissionPage MCP 0.7.3 exposes 53 typed browser capabilities.** The MCP server provides accurate low-level observation and interaction; the client or an optional Skill composes those capabilities for a site, component library, or business workflow. |
| 18 | |
| 19 | > **The model decides what to do; the MCP executes the requested browser operation exactly.** |
| 20 | |
| 21 | ```text |
| 22 | Screenshot / page observation |
| 23 | ↓ |
| 24 | Multimodal model identifies viewport coordinates |
| 25 | ↓ |
| 26 | page_click_xy(x=442, y=369, profile="natural") |
| 27 | ↓ |
| 28 | 24-step eased cubic path → exact target → press → release |
| 29 | ↓ |
| 30 | Observe and verify the resulting page state |
| 31 | ``` |
| 32 | |
| 33 | ### Core interaction guarantees |
| 34 | |
| 35 | - **Two bounded profiles**: `direct` emits one exact move; `natural` emits a deterministic 24-step eased cubic path with reproducible 8-14ms intervals and exact final arrival. |
| 36 | - **No hidden randomness**: the same start, target, and profile produce the same path; there is no jitter, overshoot, or anti-detection logic. |
| 37 | - **Explicit sequences**: click is the selected move profile, optional caller-specified delay, press, release; drag keeps one press across the selected path and ordered waypoints. |
| 38 | - **Failure-safe input**: a pressed pointer button is released if execution fails after the press. |
| 39 | - **Fresh browser evidence**: selector geometry is resolved immediately before selector-backed drag operations. |
| 40 | - **Typed results**: outputs report the executed coordinates, button, step count, and explicit delay metadata. |
| 41 | |
| 42 | Use structured DOM targets when reliable selectors exist. Use coordinates, `natural` motion, and explicit drag waypoints for canvas controls, editors, maps, charts, and other visual-only surfaces. Component-specific target discovery, challenge observation, multi-click sequencing, login procedures, and other business policy belong in the client or an optional Skill. |
| 43 | |
| 44 | ```json |
| 45 | { |
| 46 | "x": 442, |
| 47 | "y": 369, |
| 48 | "profile": "natural", |
| 49 | "button": "left", |
| 50 | "element": "visually identified control" |
| 51 | } |
| 52 | ``` |
| 53 | |
| 54 | Designed for authorized browser automation, testing, accessibility workflows, and technical research. The core does not provide challenge-specific or site-specific workflows. |
| 55 | |
| 56 | ## 🧭 Client Setup Navigation |
| 57 | |
| 58 | - [Atomic browser control](#-atomic-browser-control-with-natural-pointer-motion) |
| 59 | - [Install + screenshot |