Skip to main content
Glama
crmmc

DrissionPage BetterMCP

by crmmc

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
browser_connect

Connect to an existing Chrome browser or launch a new one.

Browser options (headless, proxy, user_agent, extra_args) only apply when launching a new
browser -- they are ignored when connecting to an existing one.
Must be called before any other tools.

extra_args: Additional Chrome command-line arguments, e.g. ["--disable-gpu", "--no-sandbox"].
browser_info

Get current browser status including address, tab count, and process ID.

browser_quitA

Close the browser and release all resources.

Call browser_connect to start a new session.
tab_newA

Open a new browser tab. Optionally navigate to URL. Automatically switches to the new tab.

tab_close

Close a tab. Defaults to current tab if tab_id not specified.

tab_switch

Switch to a specific tab by its tab_id. Use tab_list to see available tabs.

tab_listA

List all open tabs with their tab_id, title, URL, and which is current.

tab_findA

Search tabs by title and/or URL substring. Returns matching tabs.

tab_infoB

Get details of a specific tab or the current tab.

page_navigateB

Navigate to a URL. Returns final URL (after redirects) and page title. Default timeout 15s.

page_back

Go back in browser history. Optionally specify number of steps.

page_forwardA

Go forward in browser history. Optionally specify number of steps.

page_refreshA

Refresh the current page. Set ignore_cache=true to bypass browser cache.

page_stop

Stop the current page from loading.

element_findA

Find a single element and return its info including element_id for future reference.

Locator syntax: #id | .class | @attr=val | text:str | tag:name |
css:selector | xpath:expr | @@a@@b (AND) | @|a@|b (OR)

Use element_id from result to interact with the element without re-finding it.
If parent is provided, finds the locator within the parent element (two-step find).
element_find_allC

Find all matching elements. Returns list with element_id for each.

Locator syntax: #id | .class | @attr=val | text:str | tag:name |
css:selector | xpath:expr | @@a@@b (AND) | @|a@|b (OR)

Returns empty list (not error) when no elements match.
element_waitA

Wait for an element to reach the given state.

state: present (default) | visible | hidden | deleted
Default timeout is 15s, max is 60s.
element_click

Click an element. Provide locator or element_id (from element_find).

click_type: left (default) | right | middle | double
Set by_js=true to click via JavaScript (useful for hidden elements).
element_input

Type text into an input element. Provide locator or element_id.

clear=true (default) clears the field before typing.
Set by_js=true to input via JavaScript.
element_clearC

Clear the value of an input element. Provide locator or element_id.

element_hover

Hover the mouse over an element. Provide locator or element_id.

element_dragA

Drag an element to a target element or by pixel offset.

Provide either target_locator/target_element_id (drag to target) or
offset_x/offset_y (drag by pixels). Duration controls drag speed in seconds.
element_get_textB

Get the visible text content of an element. Provide locator or element_id.

element_get_attr

Get the value of an HTML attribute from an element.

Returns null in data if attribute is absent. Provide locator or element_id.
element_get_infoA

Get full element details: tag, text, rect, attrs, html, states.

Provide locator or element_id. Returns richer info than element_find.
page_screenshot

Take a screenshot of the current page. Returns JPEG image (quality=100 fixed).

Set full_page=true for full page capture (scrolls to capture entire page).
Returns native ImageContent directly for MCP clients.
element_screenshot

Take a screenshot of a specific element. Returns JPEG image (quality=100 fixed).

Provide locator or element_id (from element_find). Returns native ImageContent
for MCP clients.
page_wait_load

Wait for the page to reach a specific load state.

state=load_complete waits for document to finish loading.
state=url_change requires text parameter (URL substring to wait for).
state=title_change requires text parameter (title substring to wait for).
frame_list

List all iframes in the current page.

Returns name, src, url, title for each iframe. Use frame_switch to enter one.
frame_switch

Switch to an iframe by locator or 1-based index.

After switching, element operations work inside this frame.
Use frame_list to see available frames.
frame_parent

Return to the parent frame. If already at top-level, returns confirmation.

frame_mainB

Return to the top-level page from any nested iframe. Clears frame context entirely.

page_scrollA

Scroll the page in a direction.

direction: up | down | left | right | top | bottom.
pixels is ignored for top/bottom (they scroll to absolute position).
element_scroll_into_view

Scroll until the target element is visible in the viewport.

Provide locator or element_id (from element_find).
element_select

Select option(s) in a element.

select_by: text (default) | value | index.
Pass a list for value to multi-select.
Use element_get_options to see available options first.
element_get_optionsA

Get all options of a element with text, value, index, and selected status.

Use before element_select to see available choices.
Provide locator or element_id.
page_get_textB

Get the plain text content of the current page (no HTML tags).

Useful for reading page content without markup.

page_get_html

Get the HTML source of the current page.

outer=true (default) returns full <html> document.
outer=false returns inner HTML of <body> only.
network_listen_startA

Start listening for network requests matching a URL pattern on the current tab.

Only one listener per tab — starting a new one stops the previous. The listener
auto-expires after `expire` seconds if network_listen_wait is not called. After
starting, perform the action that triggers the request (e.g., click a button),
then call network_listen_wait to capture packets.
network_listen_waitA

Wait for network packets captured by a previously started listener.

Returns captured packets written to a JSONL file. Automatically stops the listener after waiting. If timeout occurs with partial captures, returns what was captured (not an error). Use count=1 for a single expected request, higher for multiple.

cookie_get_allA

Get all cookies for the current page. Optionally filter by domain substring.

cookie_setC

Set a cookie. Domain defaults to current page domain if not specified.

cookie_removeB

Remove a cookie by name, or clear ALL cookies if name is not provided.

Warning: clearing all cookies affects the entire browser, not just the current tab.
storage_getB

Read a value from localStorage or sessionStorage.

Set storage_type to 'local' (default) or 'session'.
storage_setB

Write a value to localStorage or sessionStorage.

Set storage_type to 'local' (default) or 'session'.
action_chain

Execute a sequence of low-level browser actions (move, click, drag, type, keyboard).

Each step is a dict with "action" key and action-specific parameters:
- move_to: {action: "move_to", locator: "<DrissionPage locator>", offset_x: 0, offset_y: 0}
- move: {action: "move", offset_x: 100, offset_y: 0}
- click: {action: "click"}
- hold: {action: "hold"} (mouse button down)
- release: {action: "release"} (mouse button up)
- key: {action: "key", key: "ctrl+a"} (combo keys separated by +)
- type: {action: "type", text: "hello"}
- wait: {action: "wait", seconds: 0.5}

Fail-fast: stops at the first failing step and reports which step failed.
Use element_click/element_input for simple interactions; use this for complex
sequences like drag-and-drop sliders or multi-step keyboard shortcuts.
keyboard_pressA

Press a key or key combination on the current page.

Single keys: "enter", "tab", "escape", "backspace", "delete", "f1".."f12".
Combinations: "ctrl+a", "ctrl+c", "ctrl+shift+t", "alt+f4".
Operates on the currently focused element. For typing text, use keyboard_type instead.
keyboard_typeA

Type text continuously on the current page as keyboard input.

Types each character sequentially. For filling form fields, prefer element_input
which targets a specific element. Use this for page-level typing when no specific
element reference is needed.
dialog_handleA

Handle the currently open alert/confirm/prompt dialog.

Returns dialog type, message, and whether it was accepted. Fails immediately
if no dialog is present — use dialog_auto for pre-emptive handling.
For prompt dialogs, pass text to fill the input field before accepting.
dialog_autoA

Enable or disable automatic handling of alert/confirm/prompt dialogs.

When enabled, all future dialogs are automatically accepted (accept=true)
or dismissed (accept=false) without manual intervention. Disable with
enabled=false when you need to inspect dialog content with dialog_handle.
Auto mode is automatically disabled on browser disconnect.
js_executeA

Execute JavaScript code on the current page and return the result.

Code runs as a function body — access injected args via arguments[0], arguments[1], etc.
Returns serialized result: primitives directly, DOM elements as summary strings,
non-serializable values as "[object Object]". Fails if an alert dialog is open.
Use specific tools (element_click, page_navigate, etc.) when available;
this is an escape hatch for unsupported operations.
cdp_execute

Execute a raw Chrome DevTools Protocol (CDP) command.

Advanced — use specific tools when available. Sends the command directly to the browser's CDP endpoint. The command string is the CDP method (e.g., "Page.navigate", "Network.enable") and params is the CDP parameters dict. Returns the raw CDP response.

file_upload

Upload a file via input[type=file] element. Provide locator or element_id to find the file input. Use by_js=True for hidden inputs (e.g., Ant Design Upload).

file_download

Download a file. Provide url for direct download, or locator/element_id to click a download link. save_dir and rename control output location.

page_save

Save current page as PDF or MHTML. For PDF, use landscape/print_background/scale parameters.

Prompts

Interactive templates invoked by user choice

NameDescription
workflow_guideStandard DrissionPage automation workflow guide
locator_helpDrissionPage locator syntax help with page context

Resources

Contextual data attached and managed by the client

NameDescription
resource_dp_statusBrowser and service status
resource_dp_configCurrent server configuration
resource_dp_guideDrissionPage locator syntax quick reference

Latest Blog Posts

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/crmmc/DrissionPage-BetterMCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server