render-mcp
Hosted browser for AI agents: screenshots, post-JS DOM, console, WCAG. No install, no API key.
사용해야 할까요
품질 및 안전성
도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.
컨텍스트 비용
이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.
설치
원클릭 설치
`claude_desktop_config.json` 파일에 다음을 추가하세요:
{
"mcpServers": {
"render-mcp": {
"url": "https://render.makermargins.com/mcp"
}
}
}원격 엔드포인트
https://render.makermargins.com/mcpstreamable-http할 수 있는 일
도구 목록
도구 (6)
🟢screenshot_url(url, full_page, width, height)
Take a screenshot of a web page as it actually renders in a real browser, after JavaScript has run. Use this when you need to see a page rather than read it — checking a layout, confirming a site is up and looks right, or capturing what a user would actually see. Returns a PNG image.
입력 스키마
{
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "The absolute URL to capture, including https://"
},
"full_page": {
"type": "boolean",
"description": "Capture the entire scrollable page rather than just the viewport. Defaults to false.",
"default": false
},
"width": {
"type": "number",
"description": "Viewport width in pixels. 320-2560. Defaults to 1280.",
"default": 1280
},
"height": {
"type": "number",
"description": "Viewport height in pixels. 240-2000. Defaults to 800.",
"default": 800
}
},
"required": [
"url"
]
}🟢rendered_html(url, wait_for, max_chars)
Fetch a page's HTML *after* JavaScript has executed. Use this when a plain HTTP fetch returns an empty shell or a loading spinner — single-page apps, sites that build their content client-side, or anything behind a framework. Returns the final DOM as HTML text.
입력 스키마
{
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "The absolute URL to load, including https://"
},
"wait_for": {
"type": "string",
"description": "Optional CSS selector to wait for before capturing, for pages that load content late."
},
"max_chars": {
"type": "number",
"description": "Truncate the returned HTML to this many characters. Defaults to 100000.",
"default": 100000
}
},
"required": [
"url"
]
}🟢page_diagnostics(url, include_warnings, width, height)
Load a page in a real browser and report what went wrong: JavaScript console errors and warnings, network requests that failed, and the HTTP status of the page itself. Use this when a site looks broken, a deployment might have shipped a bug, or a page loads blank and you need to know why. An agent cannot see a browser's console any other way.
입력 스키마
{
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "The absolute URL to load, including https://"
},
"include_warnings": {
"type": "boolean",
"description": "Include console warnings and info messages, not just errors. Defaults to false.",
"default": false
},
"width": {
"type": "number",
"description": "Viewport width in pixels. 320-2560. Defaults to 1280.",
"default": 1280
},
"height": {
"type": "number",
"description": "Viewport height in pixels. 240-2000. Defaults to 800.",
"default": 800
}
},
"required": [
"url"
]
}🟢accessibility_audit(url, standard, max_violations)
Run a WCAG accessibility audit on a page using axe-core in a real browser, and report the violations with the elements responsible. Because it runs against a genuinely rendered page, colour-contrast and other rules that depend on layout and computed colour actually fire — these are silently skipped by audits that parse HTML without a layout engine. Use this to check a page meets WCAG before shipping.
입력 스키마
{
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "The absolute URL to audit, including https://"
},
"standard": {
"type": "string",
"description": "Which ruleset to run. 'wcag2aa' is the usual legal benchmark but is a narrow filter — it excludes best-practice checks such as landmarks and heading order, so a page can return zero violations and still have real problems. Use 'all' when the question is \"is this page accessible?\" rather than \"does it meet WCAG AA?\". Defaults to wcag2aa.",
"enum": [
"wcag2a",
"wcag2aa",
"wcag21aa",
"all"
],
"default": "wcag2aa"
},
"max_violations": {
"type": "number",
"description": "Maximum violation types to report in detail. 1-50. Defaults to 20.",
"default": 20
}
},
"required": [
"url"
]
}🟢inspect_element(url, selector, max_matches, width, height)
Answer 'why isn't this element showing where I expect?' for a CSS selector on a live page. Returns the resolved box model, computed display/visibility/opacity/position/z-index, colours, whether the element is inside the viewport, and — crucially — whether another element is covering it. These are the values a browser computes after the full cascade and layout; they cannot be derived from reading HTML and CSS.
입력 스키마
{
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "The absolute URL to load, including https://"
},
"selector": {
"type": "string",
"description": "CSS selector for the element to inspect, for example '.buy-button' or '#header nav a'"
},
"max_matches": {
"type": "number",
"description": "How many matching elements to report. 1-10. Defaults to 3.",
"default": 3
},
"width": {
"type": "number",
"description": "Viewport width in pixels. 320-2560. Defaults to 1280.",
"default": 1280
},
"height": {
"type": "number",
"description": "Viewport height in pixels. 240-2000. Defaults to 800.",
"default": 800
}
},
"required": [
"url",
"selector"
]
}🟢url_to_pdf(url, landscape)
Render a web page to PDF exactly as a browser would print it. Use this to archive a page, produce a document from a rendered report, or capture something for a record. Returns a PDF file.
입력 스키마
{
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "The absolute URL to render, including https://"
},
"landscape": {
"type": "boolean",
"description": "Landscape orientation. Defaults to false.",
"default": false
}
},
"required": [
"url"
]
}커뮤니티
증거