DrissionPage MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| LOG_LEVEL | No | The logging level for the server (e.g., DEBUG, INFO, WARNING, ERROR). | |
| CHROME_PATH | No | Custom path to the Chrome or Chromium browser executable. |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| page_navigateA | Navigate to a specific URL in the browser |
| page_go_backA | Go back to the previous page in browser history |
| page_go_forwardA | Go forward to the next page in browser history |
| page_refreshA | Refresh the current page |
| tab_listA | List browser tabs tracked by the current DrissionPage MCP session. |
| tab_switch | Switch the active browser tab by id from tab_list. |
| tab_closeA | Close a browser tab by id from tab_list without closing the whole browser. |
| page_resize | Resize the browser window to specified dimensions |
| page_screenshotA | Take an inline screenshot of the current page |
| page_screenshot_saveA | Save a screenshot to a local path under DP_MCP_SCREENSHOT_ROOT |
| page_snapshot | Return a bounded page outline with text excerpt, headings, links, buttons, inputs, forms, and recommended selectors. |
| page_observe | Return a compact current-page fingerprint with URL, title, ready state, element counts, visible text samples, active element, and recent console summary. |
| page_evaluateA | Run a bounded JavaScript function body in the current page and return a JSON-safe result. This can mutate the page. |
| page_pointer_moveA | Move the viewport pointer to exact CSS pixel coordinates without pressing a button, using either one direct move or a bounded natural trajectory. |
| page_pointer_drag | Perform one failure-safe viewport drag through optional ordered waypoints using direct or bounded natural movement while the button remains pressed. Always releases the button. |
| page_pointer_drag_elementA | Resolve a source element and element, offset, or track-ratio destination immediately before one failure-safe drag. Supports CSS/XPath in the top document or one same-origin iframe, plus CSS paths through nested open Shadow DOM hosts; use coordinate drag for visual-only targets. |
| page_click_xy | Move the viewport pointer to exact CSS pixel coordinates using a direct or bounded natural trajectory, optionally wait for an explicit delay, then press and release one mouse button. |
| page_closeC | Close the current page/browser |
| page_get_url | Get the current URL of the page |
| page_dialog_respond | Accept or dismiss one pending alert, confirm, or prompt through a capability-probed native DrissionPage dialog path. |
| element_click_and_downloadA | Perform one native element click, await one completed download, and return an integrity-checked safe artifact receipt. |
| page_console_logsA | Read bounded browser console messages from the current tab. Supports level filtering, cursor pagination, and a maximum result limit. |
| element_findA | Find an element on the page using CSS selector or XPath. Bare selectors are treated as CSS; use text:... for text matching. |
| element_find_allA | Find multiple matching elements with bounded text/attribute summaries and recommended selectors for repeated lists, cards, and tables. |
| element_clickA | Click an element found by CSS selector or XPath. Bare selectors are treated as CSS; use text:... for text matching. |
| element_typeC | Type text into an input element |
| element_get_textA | Get text from an element or the whole page |
| element_get_attributeB | Get an attribute value from an element |
| element_get_propertyA | Get a live DOM property value from an element, such as an input's current value |
| element_get_htmlA | Get HTML from an element or the whole page |
| element_upload_fileA | Set files on an input[type=file]. Paths must exist under DP_MCP_UPLOAD_ROOT and response data only returns safe file names. |
| page_scrollA | Scroll the current page by direction or to a position. |
| element_scroll_into_viewB | Scroll an element into the viewport before a later action. |
| element_hoverB | Move the mouse over an element. |
| keyboard_pressB | Send keyboard text/keys to the active page element. |
| element_selectA | Select an option from a select element by value, text, or index. |
| element_checkB | Set a checkbox or radio element to checked/unchecked. |
| frame_listA | List iframe/frame contexts on the current page without changing global state. |
| frame_snapshotC | Return a bounded page outline from a selected iframe/frame. |
| frame_findA | Find an element inside a selected iframe/frame without global frame state. |
| shadow_findA | Find one element inside a shadow root exposed by the supported DrissionPage runtime. |
| shadow_find_all | Find repeated elements inside a shadow root exposed by the supported DrissionPage runtime. |
| browser_cookies_getA | Read normalized cookies with values redacted by default. |
| storage_getA | Read localStorage or sessionStorage by key or as a bounded map. |
| storage_setA | Set one localStorage/sessionStorage item. The value is not echoed. |
| storage_clearA | Clear one key or all items from localStorage/sessionStorage. |
| wait_for_elementA | Wait for an element to appear on the page. Bare selectors are treated as CSS; use text:... for text matching. |
| wait_for_urlA | Wait for the current URL to contain a substring |
| wait_timeB | Wait for a specific amount of time |
| wait_untilA | Wait for observable page state: element present/visible/hidden/detached/clickable/stable, text contains/matches, or URL contains/matches. |
| network_listen_startA | Start beta HTTP/XHR/Fetch network observation for the active tab. This observes packets only; it does not intercept or modify requests. |
| network_listen_waitA | Wait for observed HTTP/XHR/Fetch packets and return bounded metadata. Bodies and headers are opt-in and sensitive headers are redacted. |
| network_listen_stopB | Stop beta network observation for the active tab and optionally clear it. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| skills_catalog | Discovery metadata for optional Skills published separately from the standalone MCP server. |
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/jumodada/Drissionpage-MCP-Server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server