Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,552Letters: 14Defects: 1,323counted 3 min ago
teppi

Server definition

Hash
sha256:c7e569ae96d8d8b4142865645f9aba356e27b13ff045bdd0440a0e736f7721a6
What it is
What a remote MCP server returned when asked what it offers: 1 tools

The blob, as servednamed by its sha256

{ "instructions": null, "tools": [ { "description": "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.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "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" }, "clean": { "description": "Strip cookie banners / chat widgets, default true", "type": "boolean" }, "delay": { "description": "Extra wait in ms after load", "maximum": 10000, "minimum": 0, "type": "integer" }, "format": { "description": "Image format, default png", "enum": [ "png", "jpeg" ], "type": "string" }, "full_page": { "description": "Capture the whole scroll height (default false)", "type": "boolean" }, "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.", "maxLength": 300, "type": "string" }, "height": { "description": "Viewport height, default 800", "maximum": 4320, "minimum": 200, "type": "integer" }, "max_credits": { "anyOf": [ { "const": 10, "type": "number" }, { "const": 20, "type": "number" }, { "const": 30, "type": "number" } ], "description": "Most credits a `goal` may spend, default 10. The maximum is reserved while the goal runs and the unused part is released. Ignored on plans where a goal costs one credit." }, "url": { "description": "The http(s) page to capture", "type": "string" }, "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.", "items": { "maxLength": 200, "type": "string" }, "maxItems": 10, "type": "array" }, "width": { "description": "Viewport width, default 1280", "maximum": 3840, "minimum": 320, "type": "integer" } }, "required": [ "url" ], "type": "object" }, "name": "screenshot", "outputSchema": null } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:c7e569ae96d8d8b4142865645f9aba356e27b13ff045bdd0440a0e736f7721a6 | sha256sum