PyPen MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| browser_launchB | Launch a new browser instance with optional configuration (headless, proxy, user agent, etc.) |
| browser_closeA | Close the browser instance |
| browser_navigateB | Navigate to a URL |
| browser_go_backA | Navigate back in browser history |
| browser_go_forwardA | Navigate forward in browser history |
| browser_refreshA | Refresh the current page |
| browser_get_infoA | Get information about the current page (URL, title) |
| network_enable_monitoringB | Enable network event monitoring to capture all HTTP traffic |
| network_disable_monitoringB | Disable network event monitoring |
| network_get_logsA | Get captured network logs, optionally filtered by URL pattern |
| network_get_response_bodyB | Get the response body for a specific request ID |
| network_enable_interceptionB | Enable request/response interception |
| network_disable_interceptionB | Disable request interception |
| network_setup_handlerB | Set up automatic interception handler with blocking, modification, and mocking rules |
| dom_find_elementC | Find an element on the page using various selectors |
| dom_find_elementsC | Find multiple elements on the page |
| dom_get_textB | Get the text content of an element |
| dom_get_htmlB | Get the outer HTML of an element |
| dom_clickB | Click on an element. IMPORTANT: You SHOULD either call debug_screenshot or view the source after every click to observe the result of the interaction. |
| dom_typeC | Type text into an input element |
| dom_scrollB | Scroll the page |
| dom_get_sourceB | Get the full page HTML source |
| dom_wait_forB | Wait for an element to appear on the page |
| js_executeB | Execute JavaScript in the browser context |
| js_get_console_logsB | Get console logs from the browser |
| js_get_global_varsA | Extract global JavaScript variables |
| js_get_local_storageA | Get all localStorage data |
| js_get_session_storageA | Get all sessionStorage data |
| js_set_local_storageC | Set a localStorage value |
| js_get_formsA | Get all forms on the page with their inputs |
| js_get_linksA | Get all links on the page |
| session_get_cookiesB | Get all cookies from the browser |
| session_get_cookieB | Get a specific cookie by name |
| session_set_cookieC | Set a cookie in the browser |
| session_delete_cookieB | Delete a cookie by name |
| session_clear_cookiesC | Clear all cookies |
| session_export_cookiesB | Export cookies in various formats (json, netscape, header) |
| session_import_cookiesB | Import cookies from JSON string |
| session_make_requestC | Make an HTTP request using the browser's session (inherits cookies/auth) |
| debug_screenshotA | Take a screenshot of the current page. Returns the image directly. MUST be called after every dom_click to observe the result. |
| debug_get_viewportA | Get the current viewport size |
| debug_set_viewportB | Set the viewport size |
| debug_get_performanceB | Get performance metrics from the page |
| debug_highlightB | Highlight all elements matching a selector |
| captcha_enable_turnstile_bypassA | Enable automatic Cloudflare Turnstile bypass. Uses PyDoll's built-in mechanism to detect and click the Turnstile checkbox. Success depends on IP reputation and browser fingerprint - this is NOT a magic bypass. Use residential proxies for best results. |
| captcha_disable_turnstile_bypassA | Disable automatic Turnstile bypass |
| captcha_detect_typeB | Detect what type of captcha is present on the current page. Scans for Cloudflare Turnstile, reCAPTCHA, hCaptcha, and image challenge indicators. |
| captcha_handle_autoA | Attempt to automatically handle any detected captcha. For Turnstile: uses built-in bypass. For others (ReCAPTCHA v2, hCaptcha, image challenges): returns need for human intervention. |
| captcha_request_human_interventionA | Request human intervention for an unsolvable captcha (e.g., ReCAPTCHA v2 image challenges, hCaptcha puzzles). Creates an intervention request with screenshot. The automation should wait for human to solve. |
| captcha_get_pending_interventionsA | Get all pending human intervention requests that have not been resolved |
| captcha_resolve_interventionA | Mark an intervention request as resolved after human has solved the captcha. This allows the automation to continue. |
| captcha_wait_for_resolutionA | Block until a human intervention is resolved or timeout expires. Use this to pause automation while waiting for human to solve captcha. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
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/D4D25A/PyPen'
If you have feedback or need assistance with the MCP directory API, please join our Discord server