An agent can connect on its own if it already holds SCREENSHOT_TOKEN.Remote endpoint behind a static API key or header. The registry never sees the value; the agent fills the placeholder.
tools.schemasevery tool has an object input schema
fail
tools.annotationsno tool declares readOnlyHint or destructiveHint, so clients cannot tell safe calls from risky ones
fail
tools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: screenshot (readOnlyHint, destructiveHint, idempotentHint, openWorldHint)
pass
tools.token_costabout 703 tokens to load every tool
pass
tools.api_dumptools are not a one-to-one API dump
stability100 · weight 15
pass
stability.changes1 tool changes in 30 days
pass
stability.rug_pullno tool changed its meaning under the same name
dependenciesn/a · weight 15
n/a
deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package
1 tools, about 703 tokens to load them all · tool set f266e2e54504 · tools last changed 2026-09-30 · checked 2026-10-19 14:42 UTC
Tool changes
screenshotchangeddescription, input schema
before
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.
after · 81% of words in common
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 credits are spent, so a returned image always means the goal was reached. On plans that price goals per block (10 credits a block, a screenshot is 1) `max_credits` is the most a goal may spend; it stops with goal_budget_exceeded rather than go past it. When you do know the page, `actions` is cheaper, faster and deterministic.
Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.
Endpoints
remote
auth
reachable
uptime 30d
p50
protocol
last ok
https://framejet.dev/mcpstreamable-http
api_key ${SCREENSHOT_TOKEN}
yes
100%
322 ms
2026-07-28
2026-10-19
Tools (1)
screenshot
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 credits are spent, so a returned image always means the goal was reached. On plans that price goals per block (10 credits a block, a screenshot is 1) `max_credits` is the most a goal may spend; it stops with goal_budget_exceeded rather than go past it. When you do know the page, `actions` is cheaper, faster and deterministic.