Framejet Screenshot
Clean PNG/JPEG screenshots via REST or MCP, with goal-driven multi-step navigation.
¿Debería usar esto?
Calidad y seguridad
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"screenshot": {
"url": "https://framejet.dev/mcp"
}
}
}Puntos de conexión remotos
https://framejet.dev/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (1)
🟡screenshot(url, full_page, width, height, format, ...)
Render any public URL to a PNG or JPEG image. Cookie/consent banners and chat widgets are removed by default so the result is clean enough to reason about. Returns the image inline. For a page that is several clicks past the URL, pass `goal` in plain words and Framejet walks the flow before capturing — you do not need CSS selectors, and you could not write them anyway, because the controls for step 2 do not exist until step 1 has happened. Any text to be typed must be supplied in `values`; nothing is ever invented. If the goal cannot be reached the call fails and no quota is spent, so a returned image always means the goal was reached. When you do know the page, `actions` is cheaper, faster and deterministic.
Esquema de entrada
{
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "The http(s) page to capture"
},
"full_page": {
"description": "Capture the whole scroll height (default false)",
"type": "boolean"
},
"width": {
"description": "Viewport width, default 1280",
"type": "integer",
"minimum": 320,
"maximum": 3840
},
"height": {
"description": "Viewport height, default 800",
"type": "integer",
"minimum": 200,
"maximum": 4320
},
"format": {
"description": "Image format, default png",
"type": "string",
"enum": [
"png",
"jpeg"
]
},
"clean": {
"description": "Strip cookie banners / chat widgets, default true",
"type": "boolean"
},
"delay": {
"description": "Extra wait in ms after load",
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"goal": {
"description": "Plain-words description of the page state to reach before capturing, ending with when to stop. Example: 'Search for the Colosseum article, open it, then open its View history page. Stop when the revision list is visible.' Needs `values` for anything that must be typed.",
"type": "string",
"maxLength": 300
},
"values": {
"description": "Exact strings a `goal` step may type into a field. Framejet picks among these and never invents text; if none fits, the capture fails.",
"maxItems": 10,
"type": "array",
"items": {
"type": "string",
"maxLength": 200
}
},
"actions": {
"description": "Deterministic alternative to `goal` when you already know the page: ';'-separated steps, each verb:arg — click:<css>, type:<css>=<text>, waitfor:<css>, wait:<ms>, scroll:<px>. Prefer this over `goal` whenever you can write the selectors.",
"type": "string"
}
},
"required": [
"url"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Comunidad
Evidencia