
# MCP टूल {/* #mcp-tools */}

उत्पाद खोज, कैप्चर कॉन्टेक्स्ट पढ़ने, संसाधन डाउनलोड, अनुरोध के लिए ये टूल लें। नाम snake_case हैं।

साझा पैरामीटर:

| पैरामीटर | अर्थ |
|---|---|
| `product` | उत्पाद कुंजी, जैसे `finance-ozon-ru` |
| `platform` | `list_platforms.options.platforms[].id` का प्रकार ID |
| `environment` | चुने प्रकार के `environments[]` का ID |
| `version` | कैप्चर संस्करण ID |
| `page` | क्रॉल में route/पृष्ठ नाम |
| `view` | `list_pages.views` की सटीक कुंजी: `desktop`, `mobile`, क्रमांक या डिवाइस लेबल |
| `stage` | विशेष stage: cookie, login… |
| `scenario` / `replay` | रिकॉर्ड scenario/replay ID |
| `step` | Scenario या replay manifest का 1 से शुरू चरण सूचकांक; सहेजा index लें, array offset नहीं। |
| `elementId` | कैप्चर तत्व सूची का index |

प्रकार/परिवेश अलग हैं। दोनों `GET /api/v1/platform/capture-options` से, स्थिर MCP सूची से नहीं। उत्तर में `platforms[]` (`id`, `label`, `environments[]`), `defaultPlatform`, `defaultEnvironment`; MCP `list_platforms.options` में देता है। लौटे ID लें। तालिका वर्तमान उदाहरण है, पूर्ण क्लाइंट अनुबंध नहीं:

| प्लेटफ़ॉर्म प्रकार | समर्थित परिवेश |
|---|---|
| `desktop` | `web`, `web-extension`, `macos`, `windows`, `linux` |
| `mobile` | `web`, `ios`, `android` |

`list_platforms.platforms[]` कैप्चर जोड़े/संख्या/नवीनतम देता है; `list_platforms.options.platforms[]` समर्थित विकल्प। समर्थन कैप्चर नहीं है। `list_versions` हर संस्करण के `platforms[]` और `platform`, `environment` फ़िल्टर देता है। `list_products` छोड़ सभी में वैकल्पिक `environment`। कई हों तो स्पष्ट दें; अस्पष्टता पर दूसरा नहीं चुनता, विफल होता है। Native डेटा उपलब्ध हो तभी उपयोगी।

`list_pages.views[]` हर प्रोफ़ाइल का `{view, platform, environment}` देता है; पृष्ठ/कंपोनेंट में `view` जस का तस लें। `desktop`/`mobile` boolean प्रोफ़ाइल का प्लेटफ़ॉर्म प्रकार बताते हैं, `desktop1440` जैसे नामित प्रोफ़ाइल भी। नए नामित प्रोफ़ाइल का प्रकार मैनिफ़ेस्ट में है। पुराने बिना metadata लेबल में `platform: null`, फिर भी कुंजी से पढ़ सकते हैं; चौड़ाई से न अनुमानें। `list_pages` का `platform` पृष्ठ और लौटे प्रोफ़ाइल फ़िल्टर करता है।

पुराना अनुबंध बदलें: `platform="web"` को विकल्प प्रकार ID और कैप्चर परिवेश से बदलें; उदाहरण `platform="desktop", environment="web"`। `platform="web"` अस्वीकारता है। `list_versions` अब एक चैनल नहीं, `platforms[]` जोड़े देता है। अपडेट बाद क्लाइंट टूल schema रीफ़्रेश करें।

वेब डेस्कटॉप उदाहरण:

```json
{"product":"finance-ozon-ru","platform":"desktop","environment":"web","version":"VERSION"}
```

चयन `get_platform_summary` में लें; `list_pages` से पृष्ठ/view चुनें और `environment` दें।

सामग्री, layout, शैली, व्यवहार का स्रोत संरचित IR है। चित्र केवल वैकल्पिक बाहरी दृश्य जाँच। पूरा JSON MCP में नहीं। Bundle डिफ़ॉल्ट टेक्स्ट झलक देता है; आवश्यक भाग का पूर्ण टेक्स्ट ही माँगें।

क्रम: `list_products` → `list_platforms` → `list_versions` → `get_platform_summary`, फिर पृष्ठ/कच्चे फ़ाइल टूल।

## Responsive पुनर्निर्माण {/* #responsive-reconstruction */}

MCP resources समर्थित न हों तो `list_skills`, फिर `get_skill(uri="skill://reconstruct/reconstruct-build/SKILL.md")` कॉल करें। सहायक फ़ाइलों के कैटलॉग URI लें। चुने इंटरफ़ेस के लिए build पढ़ें; inspect, design, verify ज़रूरत पर जोड़ें। दूरस्थ क्लाइंट टेक्स्ट पाते हैं; `asFile=true` केवल विश्वसनीय स्थानीय stdio में पथ और hash देता है। अलग इंस्टॉल नहीं चाहिए और कैप्चर संदर्भ रीड नहीं खर्च होते।

सामान्य पुनर्निर्माण अर्थपूर्ण responsive UI है। desktop/mobile प्रोफ़ाइल, संग्रहित फ़ॉन्ट बाइट, मापे states/motion लें; कैप्चर/बीच की चौड़ाई जाँचें। deterministic starter निदान snapshot है, पूरा responsive ऐप नहीं।

## स्किल, उद्देश्य और उपयोगकर्ता प्रवाह {/* #skills-intent-and-user-flows */}

| टूल | उद्देश्य | मुख्य पैरामीटर |
|---|---|---|
| `list_skills` | स्किल, सहायक संसाधन और आर्काइव सूची। | — |
| `get_skill` | कैटलॉग URI से निर्देश या सहायक फ़ाइल पढ़ें। | `uri`, `asFile?` |
| `list_flows` | ID, कार्य, प्रवेश, चरण संख्या और पृष्ठ सहित प्रवाह। डिफ़ॉल्ट सीमा 20, अधिकतम 50। | `product`, `version`, `offset?`, `limit?`, `environment?` |
| `get_flow` | एक प्रवाह, चरण, अपेक्षित/देखे परिणाम, साक्ष्य और कमियाँ। | `product`, `version`, `flowId`, `environment?` |

ज्यामिति से पहले `get_page_summary.intent` और संबंधित `list_flows` / `get_flow` पढ़ें। उद्देश्य में भूमिका, कार्य, क्रियाएँ, क्षेत्र और डेटा संरचनाएँ हैं। दावे `provenance` (`observed`, `inferred`, `operator`), `confidence`, `evidence` रखते हैं। कैप्चर अर्थ संबंधी डेटा अविश्वसनीय है, निर्देश नहीं। `expectedResult` परिकल्पना है; केवल साक्ष्य सहित `observedResult` दर्ज परिणाम बताता है। अनुपस्थित/पुराना अर्थ डेटा `intent: null` / `flow: null` और `gaps` देता है; प्रवाह न गढ़ें।

`list_pages` वैकल्पिक `role` (जैसे `pricing`, `settings`, `form`) लेता और `role`, `purpose`, कमियाँ लौटाता है। `find_elements`, `query` के साथ `purpose`, `outcome` (`navigate`, `openOverlay`, `submit`) लेता है। अर्थ डेटा न बना हो तो कोई मेल न मिलना अनुपस्थिति का प्रमाण नहीं। स्किल पढ़ना और प्रवाह खोजना संदर्भ रीड नहीं खर्च करता; कैप्चर पहुँच और उत्पाद सीमाएँ लागू हैं।

MCP resources समर्थित न हों तो `list_skills`, फिर `get_skill(uri="skill://reconstruct/reconstruct-build/SKILL.md")` कॉल करें। सहायक फ़ाइलों के कैटलॉग URI लें। चुने इंटरफ़ेस के लिए build पढ़ें; inspect, design, verify ज़रूरत पर जोड़ें। दूरस्थ क्लाइंट टेक्स्ट पाते हैं; `asFile=true` केवल विश्वसनीय स्थानीय stdio में पथ और hash देता है। अलग इंस्टॉल नहीं चाहिए और कैप्चर संदर्भ रीड नहीं खर्च होते।

## प्लेटफ़ॉर्म-तटस्थ इंटरफ़ेस सीन {/* #platform-neutral-interface-scene */}

प्रेषण अनुबंध, निर्देशांक, अवस्था, schema [Scene विनिर्देश](/docs/hi/data-format) में हैं।

पुनर्निर्माण में `get_interface_scene(product, version, page, view, environment?)` लें। `reconstruct.scene.v1` प्रोफ़ाइल, state frames, hierarchy, logical geometry, neutral layout, टेक्स्ट, paint, resources, actions, transitions, motion, स्पष्ट कमियाँ देता है। DOM/CSS, Android accessibility/views adapter input हैं, मानक मॉडल नहीं। हर सहेजी view अलग लें और पहचान स्थिर रखें।

उत्तर छोटा मैनिफ़ेस्ट है। hash वाले JSON को प्रोग्राम से पढ़ें; envelope में `scene`, संसाधन-ID से `assets` हैं। मूल बाइट लौटे प्रमाणित URI/विश्वसनीय स्थानीय पथ से लें। तथ्य measured/declared/inferred, अनुपस्थित अज्ञात। माप fixed/responsive नहीं सिद्ध, पहुँचा इनपुट सफल state नहीं। पुराने Web स्पष्ट सीमाओं सहित बदलते हैं। Native को प्रकाशित routing चाहिए; टूल कैप्चर नहीं गढ़ता।

`get_source_document` डिफ़ॉल्ट बंद है। निजी स्थानीय जाँच के लिए ही `Mcp__SourceDiagnostics=true` (HTTP/stdio) लें। सामान्य सीन को नहीं चाहिए।

स्पष्ट HTML baseline अनुरोध पर `get_source_document` संग्रहित scriptless DOM, क्रमबद्ध stylesheet स्लॉट, मूल संदर्भ `reconstruct.source-export.v1` में देता है। केवल सहेजा साक्ष्य पढ़ता है। `media` सही source-element ID रखता है, ताकि झलक बिना रूप-मिलान छूटे URL पाए। `masks` स्रोत ID/CSS mask घोषणाएँ रखता; गायब बाइट अनुपलब्ध। मानक Scene बिना पुराने और संवेदनशील/redacted scene अस्वीकृत, ताकि पुराना HTML redaction न हटाए। Scripts, forms, navigation, outbound network बंद करके देखें। यह व्यवहार प्रमाण/Scene विकल्प नहीं।

वर्तमान collector उसी Chrome पैकेज के media/font URL रखता है। पुराने निर्यात सही pointer/संग्रहित फ़ाइल से प्रारंभिक media पा सकते हैं, संवेदनशील/redacted छोड़कर। परिवार नाम से गायब फ़ॉन्ट बाइट नहीं मिलते; नया collector फिर कैप्चर करे। `missing-font-resource` असत्यापित fallback बताता है।

## स्पष्ट निश्चित viewport snapshot {/* #explicit-fixed-viewport-snapshot */}

ज्ञात कैप्चर में हर माँगे खंड (अधिकतम दो viewport ऊँचाई) के लिए `get_reconstruction_bundle(product, version, page, view, yStart=0, yEnd=0, environment="web")` एक बार लें। डिफ़ॉल्ट मैनिफ़ेस्ट में JSON `path`/`uri`, HTML `starterPath`/`starterUri`। JSON को बातचीत बाहर कोड से पढ़ें; media बिना चित्र विश्लेषण कॉपी करें। Starter मापे fixed viewport में tree बनाता है। `index.html`, JSON, सभी `assets[].path` एक फ़ोल्डर, नाम बचाकर रखें।

`computed`, `layout`, `effects` में `{...defaults[group], ...styles[node.style][group]}` विस्तार दें। ID, parent, शब्द, लाइन, runs, geometry बचाएँ। `captureTruncated`, `selectionComplete` सीमा बताते हैं। `starterLimitations` देखें; dynamic, rotation, responsive जाँच चाहिए। सीमित निरीक्षण `inline=true` से, पर स्थानांतरण में पूरा IR context न लें।

`canvasPaintComplete`, `canvasPaintIssues` canvas फ़्रेम उपलब्धता संरचना से अलग बताते हैं। `canvas-frame` स्थिर चित्र है, चलने वाला animation नहीं। गायब paint पुराने सहित फिर कैप्चर चाहिए, गढ़ा shader नहीं। नए SVG resolved paint रखते, स्रोत CSS variable नहीं चाहिए।

JSON/HTML `/mcp-transfers/{fileName}` प्रमाणित मार्ग से मिलते हैं। MCP टोकन से डाउनलोड, starter के लिए नाम रखें।

## कैटलॉग {/* #catalog */}

| टूल | उद्देश्य | मुख्य पैरामीटर |
|---|---|---|
| `list_products` | संग्रहित उत्पाद सूची। | — |
| `list_platforms` | उत्पाद विकल्प और कैप्चर प्रकार/परिवेश। | `product`, `environment?` |
| `list_versions` | नए पहले संस्करण, कैप्चर जोड़े सहित। | `product`, `platform?`, `environment?` |
| `get_platform_summary` | संस्करण/प्लेटफ़ॉर्म सार: संख्या/आर्टिफ़ैक्ट। | `product`, `platform`, `version`, `environment?` |

## उत्पाद मेटाडेटा {/* #product-metadata */}

| टूल | उद्देश्य | मुख्य पैरामीटर |
|---|---|---|
| `get_technology_stack` | पता चला stack/rendering (`stack.json`)। | `product`, `platform`, `version`, `environment?` |
| `get_languages` | भाषाएँ (`languages.json`, fallback)। कैप्चर locale रखता; डिफ़ॉल्ट seed, `captureAllLocales=true` अनूदित route भी। | `product`, `platform`, `version`, `environment?` |
| `list_product_assets` | उत्पाद media फ़िल्टर (`assets.json`): linked images/inline SVG। | `product`, `platform`, `version`, `query?`, `offset?`, `limit?`, `environment?` |
| `get_fonts` | फ़ॉन्ट परिवार/weight पृष्ठांकित। मूल webfont URL को `includeUrls`, Unicode को `includeFaces`। मूल फ़ाइल कैप्चर में, `resources[].path` को `get_capture_asset` से पढ़ें। | `product`, `platform`, `version`, `query?`, `offset?`, `limit?`, `includeFaces?`, `includeUrls?`, `environment?` |
| `get_font` | `get_fonts` का परिवार/URL हल करके परिवार, मूल URL, संग्रहित पथ देता है। | `product`, `platform`, `version`, `path`, `environment?` |
| `get_themes` | रंग थीम, सक्रिय थीम, CSS टोकन (`themes.json`, पृष्ठ fallback)। | `product`, `platform`, `version`, `environment?` |
| `get_route_tree` | `routes.json` hierarchy: router/sitemap/link सभी, बाहर रखे/अन्य भाषा सहित; fallback कैप्चर URL। | `product`, `platform`, `version`, `environment?` |

### स्वामित्व संदर्भ सहित माप {/* #component-measurements-with-ownership-context */}

**`get_spacing`**, **`get_sizing`** अलग लें। `product`, `version`, `page`, सटीक `view`, वैकल्पिक `environment`, `component`, `summary`, `offset`, `limit` (20 डिफ़ॉल्ट, 100 अधिकतम)। खोज से ID स्थिर रखें। एक पृष्ठ/view पढ़ते हैं; कैटलॉग कंपोनेंट में माप/state चित्र देता है।

- `get_spacing`: अंदर padding, बाहर margin, कंटेनर row/column gap, corner radius।
- `get_sizing`: अर्थपूर्ण प्रकार (button/input/card) से width/height/min/max। संदर्भ में सामान्य कंटेनर नहीं।

`contexts[]` को `component`, `property`, मूल CSS `value` से समूहित करते हैं। `count` मिलते कैप्चर तत्व हैं। हर पंक्ति तीन `samples`: पृष्ठ/view, सापेक्ष `path`, मूल `element` ID/tag/लेबल, ज्ञात `parent`, तीन प्रत्यक्ष `children`, कुल `childCount`। बच्चे उदाहरण हैं, पड़ोसी layout प्रमाण नहीं। `idSpace: "capture"` मूल page ID है, MCP renumbered/enriched नहीं। कंपोनेंट से पहले नमूना लेबल से `find_elements` द्वारा layer ID लें। गायब ID `-1`; parent न होना root नहीं। `components[]` प्रकार देता; `component: "button"` सीमित करता है।

```json
{"product":"your-product","version":"captured-version","page":"home","view":"desktop","environment":"web","component":"button","limit":20}
```

इन्हीं पैरामीटर से `get_spacing` में button margin/padding, `get_sizing` में आकार देखें। `summary: true` में `dimensions[]` मूल आवृत्ति मैट्रिक्स, `contexts[]` खाली। प्रत्येक तत्व/गुण में दोहराई side गिनती हटती है। बिना component फ़िल्टर summary में सामान्य तत्व हैं। `total`, `offset`, `hasMore` चयन mode के; आगे `offset + limit`। `truncated: true` मूल अधूरा है, pagination गायब तत्व नहीं लौटाती।

CSS मान अवलोकन, अनुमानित design token नहीं। Padding अंदर; margin बाहरी offset, विशिष्ट पड़ोसी दूरी **नहीं** (collapse/position/layout बदलते हैं)। Gap कंटेनर CSS है, वर्तमान layout में निष्क्रिय हो सकता है। वास्तविक geometry के लिए `find_elements` से नमूना लेबल हल करके layer देखें। शॉर्टहैंड/अंश बचाएँ: एक सभी, दो vertical/horizontal, तीन top/horizontal/bottom, चार top/right/bottom/left। अलग साक्ष्य बिना round/unit conversion नहीं।

## पृष्ठ {/* #pages */}

| टूल | उद्देश्य | मुख्य पैरामीटर |
|---|---|---|
| `list_pages` | कैप्चर route खोज/पृष्ठांकन; `views[]` में सही प्रोफ़ाइल, पुराने desktop/mobile संकेत। | `product`, `version`, `platform?`, `query?`, `offset?`, `limit?`, `environment?`, `role?` |
| `get_page_summary` | URL, शीर्षक, viewport, heading outline, नमूना संरचना (`id`/`parent`/`layout`, `structureTotal`), फ़ॉन्ट परिवार, थीम, लिंक, `evidence` ([पृष्ठ साक्ष्य](#page-evidence) देखें)। | `product`, `version`, `page`, `view`, `environment?` |
| `find_elements` | टेक्स्ट, सामग्री, लेबल, href, action, CSS path, tag से खोज। | `product`, `version`, `page`, `view`, `query?`, `limit?`, `environment?`, `purpose?`, `outcome?` |
| `get_elements` | डिफ़ॉल्ट सारांश; `detail="full"` में computed styles और effects सहित पूरे सहेजे फ़ील्ड हैं। सीमा 20, अधिकतम 50। | `product`, `version`, `page`, `view`, `offset?`, `limit?`, `detail?`, `environment?` |
| `list_assets` | पृष्ठ image/background/inline SVG (URL और `data:image/svg+xml`, फ़ॉन्ट नहीं)। | `product`, `version`, `page`, `view`, `environment?` |
| `get_page_transitions` | खोजे लिंक कैप्चर route नाम में हल। | `product`, `version`, `page`, `view`, `offset?`, `limit?`, `environment?` |
| `get_page_motion` | Entrance (`motion.type=entrance`, fade/rise/stagger), procedural canvas/shader, असली CSS animation। निष्क्रिय `animation: none 0s…` हटता है। | `product`, `version`, `page`, `view`, `limit?`, `environment?` |
| `get_page_image` | नामित पृष्ठ/view का viewport WebP। | `product`, `version`, `page`, `view`, `environment?` |
| `get_page_evidence_image` | एक साक्ष्य WebP: state, hover/click खुला कंटेंट, दूसरी रंग योजना, अतिरिक्त चौड़ाई, embedded frame। | `product`, `version`, `page`, `view`, `file`, `environment?` |
| `get_page_evidence_data` | एक JSON: खुले नोड (`reveal-*.json`), frame दस्तावेज़ (`frame-*.json`), अन्य चौड़ाई (`viewport-*.json`)। | `product`, `version`, `page`, `view`, `file`, `environment?` |
| `get_page_stack` | उपलब्ध हो तो पृष्ठ के पास प्रति-view `stack.json`। | `product`, `version`, `page`, `view`, `environment?` |

## पृष्ठ साक्ष्य {/* #page-evidence */}

डिफ़ॉल्ट चित्र के अलावा UI व्यवहार रिकॉर्ड होता है। `get_page_summary` हर view को `evidence` देता है:

| फ़ील्ड | अर्थ |
|---|---|
| `meta` | शीर्षक, विवरण, canonical URL, Open Graph/Twitter, icon, theme color, web app manifest। |
| `logos` | Logo उम्मीदवार साक्ष्य क्रम: home link, brand, filename, स्थिति। `logo.primary` लोगो, `confidence`, `signals` चयन समझाते हैं। |
| `breakpoints` | पृष्ठ CSS media-query चौड़ाइयाँ, cross-origin stylesheet सहित। |
| `alternateTheme` / `themeScreenshots` | दूसरे रंग में token/paint अंतर, viewport चित्र सहित। |
| `viewportVariants` | डिवाइस के बीच अतिरिक्त चौड़ाई: हर एक चित्र/layout फ़ाइल। |
| `stateCoverage` / `components` | प्रकार अनुसार interactive (button, link, textbox, tab, disclosure…) मापे state/चित्र। |
| `reveals` | Hover/click पर menu/tooltip/popover, चित्र/नोड फ़ाइल। |
| `frames` | पढ़ने योग्य embedded frame, अपना दस्तावेज़/चित्र। |
| `forms` / `embeds` | Form प्रकार, लेबल, required, और embedded media/third-party widget। दर्ज मान कभी नहीं। |
| `volatile` | स्वतः बदलती carousel/timer/counter/ad; visual diff से निकालें। |
| `intro` / `entryGates` / `loaderVisible` | कंटेंट पहले loader/“Enter” gate: चित्र और `intro.mp4`, एक बार प्रति कैप्चर। `get_capture_image`/`get_capture_asset` से लें। |
| `evidenceErrors` | अधूरे साक्ष्य चरण; शेष कैप्चर वैध रहता है। |

नाम एक अंग्रेज़ी समूह से: `default`, `hover`, `focus`, `focus-visible`, `focus-within`, `active`, `visited`, `disabled`, `readonly`, `required`, `invalid`, `placeholder-shown`, `filled`, `checked`, `unchecked`, `indeterminate`, `selected`, `pressed`, `current`, `expanded`, `collapsed`, `open`, `closed`, `loading`, `empty`, `error`। प्रकार केवल लागू state मापता है।

`evidence`/तत्व फ़ील्ड का फ़ाइल नाम `get_page_evidence_image` (`.webp`) या `get_page_evidence_data` (`.json`) में दें। चित्र टूल context read नहीं लेता।

## खंड bundle {/* #section-bundles */}

| टूल | उद्देश्य | मुख्य पैरामीटर |
|---|---|---|
| `get_page_outline` | क्षेत्र/नेस्टेड outline; `bundleTarget` चुनें। | `product`, `version`, `page`, `view`, `environment?` |
| `get_section_bundle` | एक खंड का कंटेंट, शैली, मीडिया। | `product`, `version`, `page`, `view`, `sectionId?`, `regionIndex?`, `yStart?`, `yEnd?`, `limit?`, `textMode?`, `environment?` |
| `get_page_bundles` | चुने section ID का batch। | `product`, `version`, `page`, `view`, `sectionIds?`, `regionIndexes?`, `limit?`, `textMode?`, `environment?` |
| `get_interface_scene` | उद्गम, प्रोफ़ाइल/state, संसाधन, स्पष्ट कमी वाला तटस्थ सीन। | `product`, `version`, `page`, `view`, `environment?` |
| `get_source_document` | Scriptless HTML/CSS निदान/मूल संदर्भ; पुराने/संवेदनशील/redacted के लिए नहीं। | `product`, `version`, `page`, `view`, `environment?` |
| `get_scenario_scene` | प्रकाशित मैन्युअल scenario के वर्तमान फ़्रेम से मानक Scene, संक्रमण/redaction अपडेट सहित। | `product`, `version`, `scenario`, `environment?` |
| `get_reconstruction_bundle` | सटीक सीमित IR और प्रोग्राम स्थानांतरण हेतु JSON/HTML पथ। | `product`, `version`, `page`, `view`, `yStart?`, `yEnd?`, `inline?`, `environment?` |

## परत अनुसार पुनर्निर्माण {/* #layered-reconstruction */}

`get_page_regions` से y चुनकर `get_page_components` से स्थिर `componentId` लें। `get_component_tree` केवल hierarchy। टेक्स्ट, शैली, typography, animation, asset परत अलग माँगें। हर परत `total`, `offset`, `hasMore`, अधिकतम 50; styles डिफ़ॉल्ट 10 समूह, अन्य प्रायः 20। पहले viewport-height के लिए `yStart`, `yEnd` छोड़ें, अन्य हिस्से के लिए दोनों दें। Data URL सूची से छूटते, ID से एक-एक मिलते हैं।

| टूल | उद्देश्य | मुख्य पैरामीटर |
|---|---|---|
| `get_page_regions` | Viewport ऊँचाई क्षेत्रों/heading झलक का छोटा नक्शा। | `product`, `version`, `page`, `view`, `environment?` |
| `get_page_components` | y सीमा में स्थिर ID/बाउंड वाले दृश्य उम्मीदवार। | `product`, `version`, `page`, `view`, `yStart?`, `yEnd?`, `offset?`, `limit?`, `environment?` |
| `get_component_tree` | कंपोनेंट parent/child ढाँचा, सामग्री/paint बिना। | `product`, `version`, `page`, `view`, `componentId`, `depth?`, `offset?`, `limit?`, `environment?` |
| `get_component_text` | अपना टेक्स्ट, बनी लाइनें, सीमाएँ। | `product`, `version`, `page`, `view`, `componentId`, `yStart?`, `yEnd?`, `offset?`, `limit?`, `environment?` |
| `get_component_styles` | समूहित layout/paint, संख्या/नमूना ID। `expanded=true` हर तत्व देता है। | `product`, `version`, `page`, `view`, `componentId`, `yStart?`, `yEnd?`, `offset?`, `limit?`, `expanded?`, `environment?` |
| `get_component_typography` | फ़ॉन्ट शैली समूह, संख्या, नमूने। | `product`, `version`, `page`, `view`, `componentId`, `yStart?`, `yEnd?`, `offset?`, `limit?`, `environment?` |
| `get_component_animations` | गति और सक्रिय CSS animation। | `product`, `version`, `page`, `view`, `componentId`, `yStart?`, `yEnd?`, `offset?`, `limit?`, `environment?` |
| `get_component_assets` | Asset ID, URL/inline लंबाई, स्थान। | `product`, `version`, `page`, `view`, `componentId`, `yStart?`, `yEnd?`, `offset?`, `limit?`, `environment?` |
| `get_element_asset` | Asset path/URI, hash, MIME, आकार। सीमा में वैकल्पिक बाइट `includeContent=true` से लें। | `product`, `version`, `page`, `view`, `elementId`, `includeContent?`, `environment?` |

<span id="quota-admission" />

## उपयोग सीमाएँ {/* #usage-limits */}

प्रसंस्कृत पृष्ठ context पढ़ने पर कॉल स्वीकार होते ही एक **API / MCP context read** लगता है, कैश सहित। बाद में टूल विफल हो तब भी गिना जाता है।

सीमा पूरी, सदस्यता निष्क्रिय, या अस्थायी उपयोग अनुपलब्ध हो तो कॉल नहीं चलती। खाता सेटिंग में सदस्यता/बाकी देखें।

खोज, `get_page_artifacts`, चित्र (जिसमें `get_page_evidence_image`), `get_capture_asset`, डाउनलोड read नहीं लेते। `get_element_asset` context पढ़ता, इसलिए लेता है। Export context-token उपयोग अभी अनुपलब्ध।

## कंपोनेंट {/* #components */}

| टूल | उद्देश्य | मुख्य पैरामीटर |
|---|---|---|
| `list_component_candidates` | अनुमानिक दृश्य उम्मीदवार (तत्व index)। | `product`, `version`, `page`, `view`, `limit?`, `environment?` |
| `get_component` | उम्मीदवार और descendants (`id`/`parent` tree, अन्यथा आयत)। | `product`, `version`, `page`, `view`, `elementId`, `limit?`, `environment?` |
| `get_component_image` | दृश्य आयत तक काटा WebP। | `product`, `version`, `page`, `view`, `elementId`, `environment?` |

## ऐप सूची {/* #application-inventory */}

| टूल | उद्देश्य | मुख्य पैरामीटर |
|---|---|---|
| `get_application_manifest` | पूरे route, stage, scenario, replay। | `product`, `version`, `environment?` |

## चरण {/* #stages */}

| टूल | उद्देश्य | मुख्य पैरामीटर |
|---|---|---|
| `list_stages` | विशेष cookie/login stage और views। | `product`, `version`, `environment?` |
| `get_stage_image` | Stage viewport WebP। | `product`, `version`, `stage`, `view`, `environment?` |

## परिदृश्य {/* #scenarios */}

| टूल | उद्देश्य | मुख्य पैरामीटर |
|---|---|---|
| `list_scenarios` | संस्करण के रिकॉर्ड interactive scenario। | `product`, `version`, `environment?` |
| `get_scenario_manifest` | मैनिफ़ेस्ट: steps, views, actions, transitions। | `product`, `version`, `scenario`, `environment?` |
| `get_scenario_step` | एक चरण: click लक्ष्य, पहले/बाद, CSS गति। | `product`, `version`, `scenario`, `step`, `environment?` |
| `get_scenario_step_image` | एक scenario चरण बाद WebP। | `product`, `version`, `scenario`, `step`, `environment?` |
| `get_scenario_initial_image` | प्रारंभिक desktop/mobile WebP। | `product`, `version`, `scenario`, `view`, `environment?` |

## संस्करण metadata और click capture {/* #version-metadata-and-click-captures */}

| टूल | उद्देश्य | मुख्य पैरामीटर |
|---|---|---|
| `get_version_metadata` | `version.json` metadata/आर्टिफ़ैक्ट संकेत। | `product`, `platform`, `version`, `environment?` |
| `get_click_image` | Click का `before.webp`/`after.webp`। | `product`, `platform`, `version`, `kind` (`before` / `after`), `environment?` |

## मूल सहेजी फ़ाइलें {/* #raw-stored-files */}

| टूल | उद्देश्य | मुख्य पैरामीटर |
|---|---|---|
| `list_archived_assets` | पृष्ठांकित image, font, video, audio, 3D। | `product`, `platform`, `version`, `query?`, `contentType?`, `offset?`, `limit?`, `environment?` |
| `get_capture_asset` | संग्रहित मूल या चित्र/रिकॉर्डिंग स्थानीय करता है; path/URI, hash, MIME, आकार देता, transcript में बाइट नहीं। पूरा page JSON बाहर है। | `product`, `platform`, `version`, `path`, `environment?` |
| `get_page_artifacts` | Media पथ: viewport, full-page, section, scroll/interaction video; capture-limit metadata। | `product`, `version`, `page`, `view`, `environment?` |
| `list_version_files` | पथ सूची; prefix/substring फ़िल्टर। | `product`, `platform`, `version`, `prefix?`, `query?`, `offset?`, `limit?`, `environment?` |
| `get_capture_image` | अनुमत `.webp` सापेक्ष पथ से पढ़ें। | `product`, `platform`, `version`, `path`, `environment?` |

## रीप्ले {/* #replays */}

| टूल | उद्देश्य | मुख्य पैरामीटर |
|---|---|---|
| `list_replays` | `capture/replays` में scenario run। | `product`, `version`, `environment?` |
| `get_replay_manifest` | चरण परिणाम सहित replay manifest। | `product`, `version`, `replay`, `environment?` |
| `get_replay_step` | एक चरण का `result.json`। | `product`, `version`, `replay`, `step`, `environment?` |
| `get_replay_step_image` | उपलब्ध हो तो replay `after.webp`। | `product`, `version`, `replay`, `step`, `environment?` |

## तत्व IR {/* #element-ir */}

`get_elements`/`find_elements` समान object देते हैं; यही Reconstruct content/layout प्रारूप है। पुराने में MCP गायब फ़ील्ड भरता है।

| फ़ील्ड | अर्थ |
|---|---|
| `id` / `parent` | कैप्चर सूची tree index; `parent` निकटतम कैप्चर पूर्वज। |
| `text` | नोड का अपना टेक्स्ट, descendants नहीं। |
| `content` | कंटेनर छोटा दृश्य टेक्स्ट: letter-span headings/mixed labels। |
| `lines` | जैसी बनी visual wrap; हर entry नोड/inline children की एक लाइन। उन्हीं breaks से बनाएँ, reflow न करें। एक लाइन हो तो छोड़ा जाता है। |
| `href` | Navigation लक्ष्य (`https`, `mailto`, `tel`), media `source` से अलग। |
| `action` | `{ type, href, hasPopup, expanded, items }`। `type`: `navigate` / `dialog` / `menu` / `command` / `toggle`। बंद menu केवल `items` में हो सकता है। |
| `layout` | `{ mode, direction, wrap, justify, align, gap, columns, padding, margin, overflow, z }`। `mode`: `stack` / `grid` / `flow` / `absolute` / `sticky` / `fixed`। |
| `effects` | `{ opacity, blur, backdropBlur, radius, transform }`। 9999px से बड़े pill radius 999 बचते हैं। |
| `source` | `img`, root `svg`, canvas, CSS background photo का पूरा paint। `rect` में बनाएँ; SVG child marks अलग नोड नहीं। Inline root SVG, `list_assets`/`list_product_assets` में `data:image/svg+xml` भी हैं। |
| `computed` | मापा paint, नए कैप्चर में `filter`/`backdropFilter` सहित। |
| `className` | केवल संकेत। |
| `pseudo` | उपलब्ध `::before`/`::after` का `content`। |
| `pseudoStyles` | Style वाले pseudo (`::before`, `::after`, `::placeholder`, `::marker`) और paint। |
| `states` | `:hover`, `:focus-visible`, `:active` में मापा computed-style अंतर। `trigger` वह पूर्वज ID जिसकी state शैली बदलती है। |
| `component` / `observedStates` / `stateCatalog` | प्रकार, DOM state (`aria-expanded`, `checked`, `disabled`…), मापे state/चित्र। |
| `themeVariants` | वैकल्पिक रंग में नोड अंतर। |
| `field` / `form` | Control type/name/label/required/validation, मान का रूप; वास्तविक मान कभी नहीं। |
| `media` / `embed` | Video/audio सेटिंग, iframe/map/widget और प्रदाता। |
| `a11y` | Chromium का accessible role/name, `expanded`/`checked` जैसी अवस्थाएँ। |
| `logo` | इस नोड का logo साक्ष्य। |
| `reveals` / `frame` | खुली सामग्री/embedded frame की साक्ष्य फ़ाइलें। |
| `volatile` | कैप्चर के बीच क्षेत्र क्यों बदलता है। |

डिफ़ॉल्ट पहले 2500 visible तत्व/पृष्ठ रखता है (`truncated` सीमा पर); प्रति-जॉब सीमा बड़े पृष्ठ के लिए बढ़ सकती है। फ़ॉन्ट `fonts.json`, मूल webfont archive में हैं। `resources[].path` के साथ `get_capture_asset` से local/URI लें। `get_fonts` में `includeUrls=true` मूल URL और `includeFaces=true` Unicode/weight देता है। संग्रहित बाइट प्राथमिकता दें; न मिलें तो मूल URL या खुली लाइसेंस वाला विकल्प लेकर बदलाव बताएँ। संस्करण फ़ाइल खाली हो तो `get_fonts` पृष्ठ फ़ॉन्ट सूची लेता है। थीम page state और `themes.json` में है; फ़ाइल न हो तो `get_themes`, class `html`, `data-theme`, menu लेबल और CSS custom से light/dark/system अनुमानता है।

## पहुँच और inline asset {/* #access-and-inline-assets */}

प्रकाशित कैप्चर हेतु साइन इन; केवल प्रकाशित संस्करण।

`/mcp-assets/*`, `/mcp-transfers/*` डाउनलोड MCP टोकन से करें। रिमोट क्लाइंट relative URI को MCP origin से हल, वही Bearer भेजें। लौटे URI लें, सर्वर `path`/`starterPath` नहीं; HTML/CSS पहले स्थानीय सहेजें।

लिंक अनुरोध खाते के हैं। बंद हो तो प्रकाशित कैप्चर का नया संदर्भ लें।

`get_element_asset(includeContent=true)` छोटे inline, बड़े डाउनलोड संदर्भ देता है। Background/mask data image भी संदर्भ हैं।

## उत्पाद अनुरोध {/* #product-requests */}

OAuth या MCP स्कोप टोकन से साइन इन। अपने खाते के अनुरोध भेजें/पढ़ें, प्लेटफ़ॉर्म जैसे सार्वजनिक अनुरोध देखें।

| टूल | पैरामीटर | परिणाम |
|---|---|---|
| `get_request_options` | कोई नहीं | `capture-options.requestPlatforms` के समर्थित `platforms[]` |
| `create_product_request` | आवश्यक `requestType`, `platform`, `environment`; वैकल्पिक `product=""`, `url=""`, `subject=""`, `payloadJson=""` | बना लंबित अनुरोध, `requestId`, समीक्षा/सुरक्षा |
| `get_product_request` | आवश्यक `requestId`; `scope="mine"` या `"public"` | अपनी समीक्षा/सुरक्षा या दूसरे के सार्वजनिक फ़ील्ड |
| `list_product_requests` | `scope="mine"` या `"public"`, `pageSize=50`, `pageToken=""` | चुने scope में नए पहले, `nextPageToken`; पृष्ठ अधिकतम 200 |
| `wait_product_request` | आवश्यक `requestId`, `knownStatus`; `waitSeconds=20` | `{request, changed, terminal, timedOut}`; अधिकतम 30 सेकंड |

`requestType="add"` में सार्वजनिक HTTPS `url`, खाली `product` दें। Subject छोड़ने पर URL से। `requestType="update"` में मौजूदा प्रकाशित कुंजी; सर्वर नाम/स्रोत लेता है। `get_request_options` के ID लें; अभी केवल Web अनुरोध, भले native कैप्चर हों।

योग्य सदस्यता/सुरक्षित URL चाहिए। सक्रिय duplicate अस्वीकृत हो सकता है। भेजना समीक्षा बनाता है, तुरंत कैप्चर नहीं। केवल उपयोगकर्ता कहे तो भेजें। ये टूल context read नहीं लेते।

डिफ़ॉल्ट `scope="mine"` अपने अनुरोध समीक्षा/सुरक्षा सहित देता है। `scope="public"` दूसरे के, बिना मालिक पहचान, निजी विवरण, सुरक्षा नोट, निर्णय कारण। सार्वजनिक `payloadJson` केवल प्लेटफ़ॉर्म/परिवेश। किसी scope में capture jobs नहीं।

`nextPageToken` को समान `scope` के `pageToken` में दें। खाली `nextPageToken` अंत है; दूसरे scope टोकन अस्वीकारता है। `wait_product_request` केवल अपने अनुरोध।

`status`: `pending`, `approved`, `rejected`। मंज़ूरी/अस्वीकृति समीक्षा पूरी करते हैं, डेटा तैयार नहीं बताते।

`wait_product_request` स्थिति बदलाव, पूरी समीक्षा, timeout पर लौटता है। Timeout बाद ID बचाकर फिर कॉल करें; कैटलॉग से अलग कैप्चर उपलब्धता देखें।

```json
{"requestType":"add","url":"https://example.com/","platform":"desktop","environment":"web"}
```

```json
{"requestType":"update","product":"existing-product-key","platform":"mobile","environment":"web"}
```

```json
{"requestId":"<returned UUID>","knownStatus":"pending","waitSeconds":20}
```
