Skip to main content
Glama

Stealth Browser MCP

by vibheksoni
extract_structure.js2.54 kB
/** * Extracts structure and metadata from a DOM element. * * @const selector {string} - CSS selector for the target element. * @const options {object} - Extraction options. * @const element {Element|null} - The DOM element found by selector. * @const result {object} - Object containing extracted element data. * @const rect {DOMRect} - Bounding rectangle of the element. * @returns {object} - Extracted structure and metadata, or error if not found. */ (function() { const selector = "$SELECTOR$"; const options = $OPTIONS$; const element = document.querySelector(selector); if (!element) return { error: 'Element not found' }; const result = { tag_name: element.tagName.toLowerCase(), id: element.id || null, class_name: element.className || null, class_list: Array.from(element.classList), text_content: element.textContent ? element.textContent.substring(0, 500) : '', inner_html: element.innerHTML ? element.innerHTML.substring(0, 2000) : '', outer_html: element.outerHTML ? element.outerHTML.substring(0, 3000) : '' }; if (options.include_attributes) { result.attributes = {}; result.data_attributes = {}; for (let i = 0; i < element.attributes.length; i++) { const attr = element.attributes[i]; if (attr.name.startsWith('data-')) { result.data_attributes[attr.name] = attr.value; } else { result.attributes[attr.name] = attr.value; } } } const rect = element.getBoundingClientRect(); result.dimensions = { width: rect.width, height: rect.height, top: rect.top, left: rect.left, right: rect.right, bottom: rect.bottom }; if (options.include_children) { result.children = []; for (let i = 0; i < Math.min(options.max_depth || 3, element.children.length); i++) { const child = element.children[i]; result.children.push({ tag_name: child.tagName.toLowerCase(), id: child.id || null, class_name: child.className || null, text_content: child.textContent ? child.textContent.substring(0, 100) : '' }); } } result.scroll_info = { scroll_width: element.scrollWidth, scroll_height: element.scrollHeight, scroll_top: element.scrollTop, scroll_left: element.scrollLeft }; return result; })();

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/vibheksoni/stealth-browser-mcp'

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