An MCP server for web scraping and content extraction using Scrapling library with support for HTTP requests, browser automation, and AI-targeted content extraction
Server has 10 tools with complete input schemas and descriptions. Naming follows verb_noun convention (open_session, close_session, fetch, etc.). Descriptions are present and substantive (avg ~150 chars), exceeding the 10-char minimum. However, output schemas are entirely undocumented, no tool declares what fields it returns, forcing LLMs to guess downstream field names. Parameter descriptions are present but lack actionable constraints (e.g., 'timeout' has no min/max; 'extraction_type' enum is documented but 'wait_selector_state' lacks context on when to use each state). Error handling is absent, no guidance on retryability, user-fixable vs fatal errors, or recovery paths. Security concern: 'page_action' parameter accepts arbitrary Python code execution, creating injection risk without sanitization guidance.
Close a persistent browser session and free up resources.
Make an HTTP DELETE request using a persistent HTTP session with Chrome TLS fingerprint.
Fetch a URL using a persistent browser session with Playwright browser automation.
Make an HTTP GET request using a persistent HTTP session with Chrome TLS fingerprint.
List all active browser sessions with their metadata.
Open a persistent browser session that can be reused across multiple fetch calls. This avoids the overhead of launching a new browser for each request. Use close_session to close the session when done, and list_sessions to see all active sessions.
No output schemas documented for any tool. LLMs cannot infer what fields are returned, breaking downstream tool chaining and forcing guesswork on field names.
'page_action' parameter accepts arbitrary Python code without sanitization guidance. Creates code injection risk if LLM is tricked into passing malicious payloads.
Numeric parameters (timeout, wait, max_pages) lack min/max constraints in descriptions. LLMs can pass absurd values (e.g., timeout=999999999) that break APIs or cause hangs.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 67 | 2026-07-28+ | v2 |
Make an HTTP POST request using a persistent HTTP session with Chrome TLS fingerprint.
Make an HTTP PUT request using a persistent HTTP session with Chrome TLS fingerprint.
Fetch a URL using a persistent stealthy browser session with anti-bot bypass capabilities.
Take a screenshot of the current page in a browser session.
No error handling guidance. Tools do not document retryability, user-fixable vs fatal errors, or recovery paths. LLMs cannot determine next steps on failure.
HTTP methods (get, post, put, delete) are generic and lack domain context. Descriptions do not explain when to use each vs browser-based fetch tools, risking wrong tool selection.