LaunchCheck site reports, screenshots, audits, TTS, translate, Base data, LLM chat; x402 per call
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
[PAID $0.001 USDC per call via x402 on Base; errors are free] Live gas snapshot for Base mainnet (chain 8453) read from public Base RPC: latest block number/time/utilization, base fee, eth_gasPrice, eth_maxPriorityFeePerGas, the last 10 blocks of base fees, slow/standard/fast EIP-1559 fee suggestions (10th/50th/90th percentile tips) in gwei and wei, and the estimated total cost (L2 execution + OP Stack L1 data-fee upper bound) of an ETH transfer, an ERC-20 transfer and a swap in ETH and USD (Chainlink ETH/USD on Base). No params. Cached 4 s. Errors are never charged.
This tool takes no arguments.
[PAID $0.001 USDC per call via x402 on Base; errors are free] Live gas snapshot for Base mainnet (chain 8453) read from public Base RPC: latest block number/time/utilization, base fee, eth_gasPrice, eth_maxPriorityFeePerGas, the last 10 blocks of base fees, slow/standard/fast EIP-1559 fee suggestions (10th/50th/90th percentile tips) in gwei and wei, and the estimated total cost (L2 execution + OP Stack L1 data-fee upper bound) of an ETH transfer, an ERC-20 transfer and a swap in ETH and USD (Chainlink ETH/USD on Base). No params. Cached 4 s. Errors are never charged.
No arguments.
{
"type": "object",
"required": [],
"properties": {}
}[PAID $0.002 USDC per call via x402 on Base; errors are free] Inspect a token or any address on Base mainnet: contract vs EOA (incl. EIP-7702 delegation), bytecode size, ERC-20 name/symbol/decimals/totalSupply (raw and formatted; bytes32 symbols handled), proxy implementation (EIP-1967, beacon, ZeppelinOS/FiatToken), whether it is a well-known Base token (guards against spoofed symbols), and optionally the balance of `holder`. Read live from public Base RPC; metadata cached 1 h. All params optional: defaults to USDC on Base. Invalid input = 400, never charged.
| Argument | Type | Description |
|---|---|---|
| holder | string | Optional address whose balance of this token to include. |
| address | string | Token / contract address on Base (0x + 40 hex). Optional: defaults to USDC 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913. |
{
"type": "object",
"required": [],
"properties": {
"holder": {
"type": "string",
"description": "Optional address whose balance of this token to include."
},
"address": {
"type": "string",
"description": "Token / contract address on Base (0x + 40 hex). Optional: defaults to USDC 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913."
}
}
}[PAID $0.002 USDC per call via x402 on Base; errors are free] Look up one transaction on Base mainnet by hash: status (success, failed or pending), block, timestamp, confirmations, from/to, value, method id, gas used, effective gas price, fee split into L2 execution and L1 data fee (ETH and USD), contract created, and decoded ERC-20 Transfer events (token, symbol, from, to, amount; up to 20). Useful to confirm a payment landed. Read live from public Base RPC. All params optional: defaults to a confirmed USDC x402 payment. Unknown hash = 404, invalid hash = 400, never charged.
| Argument | Type | Description |
|---|---|---|
| hash | string | Transaction hash (0x + 64 hex). Optional: defaults to 0x20215b4a54f0a39995f3afbd748d7b52c3a1922685ddf08e5f694ea1e89b52bf. |
{
"type": "object",
"required": [],
"properties": {
"hash": {
"type": "string",
"description": "Transaction hash (0x + 64 hex). Optional: defaults to 0x20215b4a54f0a39995f3afbd748d7b52c3a1922685ddf08e5f694ea1e89b52bf."
}
}
}[PAID $0.002 USDC per call via x402 on Base; errors are free] Balances of one address on Base mainnet in a single call: native ETH, the well-known tokens USDC, USDT, USDbC, DAI, WETH, cbETH, wstETH, AERO (non-zero only, or all with includeZero=true), plus up to 10 extra ERC-20 contracts you pass in `tokens` (symbol/name/decimals read on-chain). Also nonce, account type (EOA, EIP-7702 delegated EOA, or contract) and a USD total for ETH/WETH (Chainlink) and stablecoins. Read live from public Base RPC via Multicall3; cached 10 s. All params optional: defaults to a well-known public address. Invalid input = 400, never charged.
| Argument | Type | Description |
|---|---|---|
| tokens | string | Optional comma-separated extra ERC-20 contract addresses on Base (max 10). |
| address | string | Base address (0x + 40 hex). Optional: defaults to 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 (vitalik.eth). |
| includeZero | boolean | Also list well-known tokens with zero balance (default false). |
{
"type": "object",
"required": [],
"properties": {
"tokens": {
"type": "string",
"description": "Optional comma-separated extra ERC-20 contract addresses on Base (max 10)."
},
"address": {
"type": "string",
"description": "Base address (0x + 40 hex). Optional: defaults to 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 (vitalik.eth)."
},
"includeZero": {
"type": "boolean",
"description": "Also list well-known tokens with zero balance (default false)."
}
}
}[PAID $0.001 USDC per call via x402 on Base; errors are free] Live crypto prices for up to 25 coins per call: pass tickers in `symbols` (BTC,ETH,SOL,AERO,...; common tickers built in, others resolved by CoinGecko search to the largest coin with that ticker), CoinGecko `ids`, or one token `address` + `chain` (base default; ethereum, arbitrum, optimism, polygon, bsc, avalanche, solana). Returns price, market cap, 24h volume and 24h % change in each `vs` currency (usd default; up to 5, e.g. usd,eur,btc) plus last-updated time. Data: CoinGecko public API, cached 30 s; falls back to Coinbase spot rates (price only) if CoinGecko is unavailable. All params optional: with none it returns BTC and ETH in USD. Unknown coins = 404, invalid input = 400, never charged.
| Argument | Type | Description |
|---|---|---|
| vs | string | Comma-separated quote currencies (max 5), e.g. usd,eur,btc. Default usd. |
| ids | string | Comma-separated CoinGecko coin ids, e.g. bitcoin,aerodrome-finance (optional). |
| chain | string | Chain of `address` (default base). |
| address | string | Optional token contract address; returns that token price (overrides symbols/ids). |
| symbols | string | Comma-separated tickers, e.g. BTC,ETH,SOL (max 25). Optional: defaults to BTC,ETH. |
{
"type": "object",
"required": [],
"properties": {
"vs": {
"type": "string",
"description": "Comma-separated quote currencies (max 5), e.g. usd,eur,btc. Default usd."
},
"ids": {
"type": "string",
"description": "Comma-separated CoinGecko coin ids, e.g. bitcoin,aerodrome-finance (optional)."
},
"chain": {
"enum": [
"base",
"ethereum",
"arbitrum",
"optimism",
"polygon",
"bsc",
"avalanche",
"solana"
],
"type": "string",
"description": "Chain of `address` (default base)."
},
"address": {
"type": "string",
"description": "Optional token contract address; returns that token price (overrides symbols/ids)."
},
"symbols": {
"type": "string",
"description": "Comma-separated tickers, e.g. BTC,ETH,SOL (max 25). Optional: defaults to BTC,ETH."
}
}
}[FREE, 10 calls/hour per IP] Quick check of one public website: homepage meta/OG/canonical, security headers, HTTPS, and up to 20 links tested for breakage. For the deeper 3-page audit with leaked-key scan use website_audit (paid).
| Argument | Type | Description |
|---|---|---|
| url* | string | Public http(s) URL or hostname to check. |
{
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"description": "Public http(s) URL or hostname to check."
}
}
}[PAID $0.002 USDC per call via x402 on Base; errors are free] Foreign-exchange rates from one base currency (`from`, default USD) to a list of currencies (`to`, comma-separated, or "all"; default 14 majors incl. EUR, GBP, JPY, CNY, INR, KRW, VND), with `amount` converted. Live mode uses Coinbase public exchange rates (updated about every minute, 160+ ISO 4217 currencies plus XAU/XAG), falling back to exchangerate-api daily rates. With `date=YYYY-MM-DD` it returns the ECB reference rates for that day (Frankfurter, ~30 major currencies, back to 1999-01-04). All params optional: with none it returns USD to 14 major currencies. Invalid codes = 400, never charged.
| Argument | Type | Description |
|---|---|---|
| to | string | Comma-separated target codes (max 50) or "all". Default: EUR,GBP,JPY,CNY,CHF,CAD,AUD,INR,KRW,SGD,HKD,MXN,BRL,VND. |
| date | string | Optional YYYY-MM-DD for historical ECB reference rates (since 1999-01-04). Omit for live rates. |
| from | string | Base currency, ISO 4217 code (default USD). |
| amount | number | Amount in `from` to convert (default 1). |
{
"type": "object",
"required": [],
"properties": {
"to": {
"type": "string",
"description": "Comma-separated target codes (max 50) or \"all\". Default: EUR,GBP,JPY,CNY,CHF,CAD,AUD,INR,KRW,SGD,HKD,MXN,BRL,VND."
},
"date": {
"type": "string",
"description": "Optional YYYY-MM-DD for historical ECB reference rates (since 1999-01-04). Omit for live rates."
},
"from": {
"type": "string",
"description": "Base currency, ISO 4217 code (default USD)."
},
"amount": {
"type": "number",
"minimum": 0,
"description": "Amount in `from` to convert (default 1)."
}
}
}[PAID $0.01 USDC per call via x402 on Base; errors are free] Generate an original 1024x1024 image from a text prompt with FLUX.1 [schnell] on Workers AI (about 2-5 s). Returns JSON with image_base64 + mimeType, or the raw image bytes with format=jpeg. Content policy: no sexual/nude, gore, hate, real or famous people, or ID documents/currency; such prompts get HTTP 400 and are not charged. All params optional: with no prompt a sample watercolor lighthouse is drawn.
| Argument | Type | Description |
|---|---|---|
| steps | integer | Diffusion steps, more = more detail (default 4). |
| prompt | string | What to draw (max 1000 chars). Optional: defaults to a watercolor lighthouse. |
{
"type": "object",
"required": [],
"properties": {
"steps": {
"type": "integer",
"maximum": 8,
"minimum": 1,
"description": "Diffusion steps, more = more detail (default 4)."
},
"prompt": {
"type": "string",
"description": "What to draw (max 1000 chars). Optional: defaults to a watercolor lighthouse."
}
}
}[PAID $0.05 USDC per call via x402 on Base; errors are free] LaunchCheck full report for one public URL: status code, HTTPS/redirects, title/description, Open Graph/Twitter card, robots.txt/sitemap/noindex, plus up to 50 links checked for breakage, og:image load check, desktop 1280x800 and mobile 390x844 JPEG screenshots, edge TTFB and real-browser load time, image alt text, heading outline, mobile overflow, and a P1-P3 prioritized fix list. Read-only. Unreachable sites are not charged.
| Argument | Type | Description |
|---|---|---|
| url | string | Public http(s) URL (hostname, not IP). Private/reserved addresses are refused. Optional: defaults to https://example.com. |
{
"type": "object",
"required": [],
"properties": {
"url": {
"type": "string",
"description": "Public http(s) URL (hostname, not IP). Private/reserved addresses are refused. Optional: defaults to https://example.com."
}
}
}[PAID $0.003 USDC per call via x402 on Base; errors are free] One-shot LLM completion on Cloudflare Workers AI with a minimal interface: give `prompt` (and optionally `system`, or OpenAI-style `messages`), get {text, model, finish_reason, usage}. Models: llama-3.1-8b (default), llama-3.2-3b, llama-3.2-1b, mistral-7b, granite-4.0-micro. max_tokens capped at 512, input up to 24000 chars, Llama Guard 3 safety check, 503 "capacity" when the daily budget is used up. Errors are never charged. All params optional: with none it answers a short sample question. For the OpenAI wire format use POST /v1/chat/completions.
| Argument | Type | Description |
|---|---|---|
| model | string | Model alias (default llama-3.1-8b). |
| prompt | string | User message. Optional: defaults to a short sample question. |
| system | string | Optional system instruction. |
| messages | array | Optional OpenAI-style history (POST JSON). |
| max_tokens | integer | Max output tokens (default/cap 512). |
| temperature | number | Sampling temperature. |
{
"type": "object",
"required": [],
"properties": {
"model": {
"enum": [
"llama-3.1-8b",
"llama-3.2-3b",
"llama-3.2-1b",
"mistral-7b",
"granite-4.0-micro"
],
"type": "string",
"description": "Model alias (default llama-3.1-8b)."
},
"prompt": {
"type": "string",
"description": "User message. Optional: defaults to a short sample question."
},
"system": {
"type": "string",
"description": "Optional system instruction."
},
"messages": {
"type": "array",
"items": {
"type": "object",
"properties": {
"role": {
"type": "string"
},
"content": {
"type": "string"
}
}
},
"description": "Optional OpenAI-style history (POST JSON)."
},
"max_tokens": {
"type": "integer",
"maximum": 512,
"minimum": 1,
"description": "Max output tokens (default/cap 512)."
},
"temperature": {
"type": "number",
"maximum": 2,
"minimum": 0,
"description": "Sampling temperature."
}
}
}[PAID $0.005 USDC per call via x402 on Base; errors are free] Fetch one public web page and return structured metadata: title, meta description, canonical, lang, robots, Open Graph and Twitter card tags, favicon, RSS/Atom feeds, JSON-LD @types, and internal/external links (up to 100 each). Good for link previews, unfurling and quick site triage.
| Argument | Type | Description |
|---|---|---|
| url | string | Public http(s) URL (hostname, not IP). Private/reserved addresses are refused. Optional: defaults to https://example.com. |
{
"type": "object",
"required": [],
"properties": {
"url": {
"type": "string",
"description": "Public http(s) URL (hostname, not IP). Private/reserved addresses are refused. Optional: defaults to https://example.com."
}
}
}[PAID $0.002 USDC per call via x402 on Base; errors are free] Cohere/Jina-style rerank: POST {query, documents: string[] | {text}[], top_n, return_documents} and get {results: [{index, relevance_score, document?}]} sorted by relevance. Models (Cloudflare Workers AI): bge-reranker-base (cross-encoder, English/Chinese, scores 0..1); bge-m3 (multilingual similarity scoring) (default bge-reranker-base; other names map to it). Up to 100 documents, each scored on its first 4000 chars; one fixed price per call. Use after vector search to pick the best passages for an LLM. Errors are never charged. All params optional: with none it ranks a small sample.
| Argument | Type | Description |
|---|---|---|
| model | string | Rerank model (default bge-reranker-base). |
| query | string | Search query (max 2000 chars). Optional with documents omitted: a sample is ranked. |
| top_n | integer | Return only the best N (default all). |
| documents | array | Documents to rank: strings or {text} objects (max 100). |
| return_documents | boolean | Include the document text in each result (default false). |
{
"type": "object",
"required": [],
"properties": {
"model": {
"enum": [
"bge-reranker-base",
"bge-m3"
],
"type": "string",
"description": "Rerank model (default bge-reranker-base)."
},
"query": {
"type": "string",
"description": "Search query (max 2000 chars). Optional with documents omitted: a sample is ranked."
},
"top_n": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Return only the best N (default all)."
},
"documents": {
"type": "array",
"items": {
"type": [
"string",
"object"
]
},
"description": "Documents to rank: strings or {text} objects (max 100)."
},
"return_documents": {
"type": "boolean",
"description": "Include the document text in each result (default false)."
}
}
}[PAID $0.008 USDC per call via x402 on Base; errors are free] Render a public web page in a real headless Chrome (JavaScript executed, waits for network idle) and return a screenshot: viewport (default 1280x800) or full page (up to 8000 px tall), PNG or JPEG, optional dark mode and extra wait. JSON with image_base64 + finalUrl/status/title, or raw image bytes with format=png|jpeg. Typically 2-6 s (up to ~25 s when busy). Use it for visual QA, link previews, archiving, checking what a page really shows, or feeding a vision model. Adult/malware domains (Cloudflare family DNS) and private addresses are refused. All params optional: with none it captures https://example.com. Errors are never charged.
| Argument | Type | Description |
|---|---|---|
| url | string | Public http(s) URL to capture (hostname, not IP). Optional: defaults to https://example.com. |
| type | string | Image type (default png). |
| width | integer | Viewport width in px (default 1280). |
| height | integer | Viewport height in px (default 800). |
| waitMs | integer | Extra wait after load before capturing, ms (default 0). |
| quality | integer | JPEG quality (default 80; jpeg only). |
| darkMode | boolean |
[PAID $0.02 USDC per call via x402 on Base; errors are free] Fetch a public web page (or take raw text) and return a structured JSON brief made by Llama 3.3 70B: title, language, contentType, summary, keyPoints, named entities with types, topic tags, concrete facts (prices, dates, versions, limits) as label/value pairs, sentiment and audience. Grounded in the page only, no invented facts. Reads up to 24,000 chars of main content (2 MB HTML, 10 s fetch timeout). All params optional: with none it summarizes https://example.com. GET with query params, or POST a JSON body for long text (up to 200,000 chars accepted, first 24,000 analyzed).
| Argument | Type | Description |
|---|---|---|
| url | string | Public http(s) URL to read (hostname, not IP; private addresses refused). Optional: defaults to https://example.com. Ignored when `text` is given. |
| lang | string | Optional output language for summary/keyPoints (ISO 639-1, e.g. "en"). Default: same as the content. |
| text | string | Raw text or Markdown to summarize instead of a URL (optional, max 200000 chars, first 24000 analyzed). Prefer POST for long text. |
| focus | string | Optional aspect to emphasize, e.g. "pricing", "API limits", "risks" (max 200 chars). |
| length | string | Summary length: short = 1-2 sentences, medium = 3-4 (default), long = 5-8. |
| maxPoints | integer |
[PAID $0.001 USDC per call via x402 on Base; errors are free] Drop-in OpenAI Embeddings endpoint: POST {input: string | string[], model, encoding_format: float|base64, dimensions} and get {object: "list", data: [{embedding, index}], model, usage}. Models (Cloudflare Workers AI): bge-m3 (1024-d, multilingual (100+ languages), 8192-token context); bge-large-en-v1.5 (1024-d, English); bge-base-en-v1.5 (768-d, English); bge-small-en-v1.5 (384-d, English, fastest); embeddinggemma-300m (768-d, multilingual (Google EmbeddingGemma)). Any other model name (e.g. text-embedding-3-small) maps to bge-m3; the actual model is in the response. `dimensions` truncates and re-normalizes. Up to 100 inputs per call, 8000 chars each, 60000 chars total, one fixed price per call. For RAG, semantic search, clustering and dedupe. Errors are never charged. GET ?input= also works; with no params it embeds a sample sentence.
| Argument | Type | Description |
|---|---|---|
| input | string | array | Text or array of texts to embed (max 100). Optional: defaults to a sample sentence. |
| model | string | Embedding model alias (default bge-m3). |
| dimensions | integer | Optional output size; vectors are truncated and re-normalized. |
| encoding_format | string | float (default) or base64 (little-endian float32). |
{
"type": "object",
"required": [],
"properties": {
"input": {
"type": [
"string",
"array"
],
"items": {
"type": "string"
},
"description": "Text or array of texts to embed (max 100). Optional: defaults to a sample sentence."
},
"model": {
"enum": [
"bge-m3",
"bge-large-en-v1.5",
"bge-base-en-v1.5",
"bge-small-en-v1.5",
"embeddinggemma-300m"
],
"type": "string",
"description": "Embedding model alias (default bge-m3)."
},
"dimensions": {
"type": "integer",
"maximum": 1024,
"minimum": 1,
"description": "Optional output size; vectors are truncated and re-normalized."
},
"encoding_format": {
"enum": [
"float",
"base64"
],
"type": "string",
"description": "float (default) or base64 (little-endian float32)."
}
}
}[PAID $0.005 USDC per call via x402 on Base; errors are free] Turn text (up to 2000 chars) into spoken audio with MeloTTS on Cloudflare Workers AI, in English, Spanish, French, Chinese, Japanese or Korean. Returns JSON with audio_base64 + mimeType (audio/wav, 44.1 kHz mono), or the raw audio bytes with format=wav. Good for voice replies, narration, accessibility and language practice. Text with sexual, hateful or violent content is refused (HTTP 400, not charged). All params optional: with none it speaks a short English sample. GET with query params or POST a JSON body.
| Argument | Type | Description |
|---|---|---|
| lang | string | Language of the text / voice (default en). |
| text | string | Text to speak (max 2000 chars). Optional: defaults to a short English sample. |
{
"type": "object",
"required": [],
"properties": {
"lang": {
"enum": [
"en",
"es",
"fr",
"zh",
"ja",
"ko"
],
"type": "string",
"description": "Language of the text / voice (default en)."
},
"text": {
"type": "string",
"description": "Text to speak (max 2000 chars). Optional: defaults to a short English sample."
}
}
}[PAID $0.005 USDC per call via x402 on Base; errors are free] LLM translation (Meta Llama 4 Scout on Workers AI, M2M100 fallback). Give `text`, or a `url` whose main content is extracted as Markdown and translated in blocks, preserving Markdown formatting, URLs and code blocks. Source language auto-detected (or set `from`). Up to 20,000 chars per call (default 8,000). All params optional: with none it translates a short Spanish sample to English. Languages: en,es,fr,de,it,pt,nl,ru,uk,pl,cs,ro,hu,el,bg,sv,da,no,fi,tr,ar,he,fa,hi,bn,ur,ta,zh,ja,ko,vi,th,id,ms,tl,sw.
| Argument | Type | Description |
|---|---|---|
| to | string | Target language, ISO 639-1 code or English name (default "en"). |
| url | string | Public http(s) URL whose main content is translated (optional; used when `text` is absent). |
| from | string | Source language code, or "auto" (default: auto-detect). |
| text | string | Text or Markdown to translate (optional). If omitted and no url, a short Spanish sample is used. |
| maxChars | integer | Max source chars to translate (default 8000). |
{
"type": "object",
"required": [],
"properties": {
"to": {
"type": "string",
"description": "Target language, ISO 639-1 code or English name (default \"en\")."
},
"url": {
"type": "string",
"description": "Public http(s) URL whose main content is translated (optional; used when `text` is absent)."
},
"from": {
"type": "string",
"description": "Source language code, or \"auto\" (default: auto-detect)."
},
"text": {
"type": "string",
"description": "Text or Markdown to translate (optional). If omitted and no url, a short Spanish sample is used."
},
"maxChars": {
"type": "integer",
"maximum": 20000,
"minimum": 100,
"description": "Max source chars to translate (default 8000)."
}
}
}[PAID $0.005 USDC per call via x402 on Base; errors are free] Fetch one public web page and return its main content (article/main/body, scripts/nav/footer stripped) as clean Markdown with absolute links, plus title and length. Up to 2 MB HTML, 10 s timeout; optional maxChars (default 50000, max 200000).
| Argument | Type | Description |
|---|---|---|
| url | string | Public http(s) URL (hostname, not IP). Private/reserved addresses are refused. Optional: defaults to https://example.com. |
| maxChars | integer | Truncate markdown to this many characters (default 50000) |
{
"type": "object",
"required": [],
"properties": {
"url": {
"type": "string",
"description": "Public http(s) URL (hostname, not IP). Private/reserved addresses are refused. Optional: defaults to https://example.com."
},
"maxChars": {
"type": "integer",
"maximum": 200000,
"minimum": 500,
"description": "Truncate markdown to this many characters (default 50000)"
}
}
}[PAID $0.05 USDC per call via x402 on Base; errors are free] Pre-launch website audit: up to 3 pages crawled, 30 links checked, meta/OG/canonical, security headers, HTTPS, 404 handling, sitemap, and leaked-secret patterns in client JS (masked). Read-only.
| Argument | Type | Description |
|---|---|---|
| url | string | Public http(s) URL (hostname, not IP). Private/reserved addresses are refused. Optional: defaults to https://example.com. |
{
"type": "object",
"required": [],
"properties": {
"url": {
"type": "string",
"description": "Public http(s) URL (hostname, not IP). Private/reserved addresses are refused. Optional: defaults to https://example.com."
}
}
}| Emulate prefers-color-scheme: dark (default false). |
| fullPage | boolean | Capture the whole scrollable page, capped at 8000 px tall (default false). |
{
"type": "object",
"required": [],
"properties": {
"url": {
"type": "string",
"description": "Public http(s) URL to capture (hostname, not IP). Optional: defaults to https://example.com."
},
"type": {
"enum": [
"png",
"jpeg"
],
"type": "string",
"description": "Image type (default png)."
},
"width": {
"type": "integer",
"maximum": 1920,
"minimum": 320,
"description": "Viewport width in px (default 1280)."
},
"height": {
"type": "integer",
"maximum": 2000,
"minimum": 240,
"description": "Viewport height in px (default 800)."
},
"waitMs": {
"type": "integer",
"maximum": 5000,
"minimum": 0,
"description": "Extra wait after load before capturing, ms (default 0)."
},
"quality": {
"type": "integer",
"maximum": 100,
"minimum": 30,
"description": "JPEG quality (default 80; jpeg only)."
},
"darkMode": {
"type": "boolean",
"description": "Emulate prefers-color-scheme: dark (default false)."
},
"fullPage": {
"type": "boolean",
"description": "Capture the whole scrollable page, capped at 8000 px tall (default false)."
}
}
}| Max number of keyPoints (default 5). |
{
"type": "object",
"required": [],
"properties": {
"url": {
"type": "string",
"description": "Public http(s) URL to read (hostname, not IP; private addresses refused). Optional: defaults to https://example.com. Ignored when `text` is given."
},
"lang": {
"type": "string",
"description": "Optional output language for summary/keyPoints (ISO 639-1, e.g. \"en\"). Default: same as the content."
},
"text": {
"type": "string",
"description": "Raw text or Markdown to summarize instead of a URL (optional, max 200000 chars, first 24000 analyzed). Prefer POST for long text."
},
"focus": {
"type": "string",
"description": "Optional aspect to emphasize, e.g. \"pricing\", \"API limits\", \"risks\" (max 200 chars)."
},
"length": {
"enum": [
"short",
"medium",
"long"
],
"type": "string",
"description": "Summary length: short = 1-2 sentences, medium = 3-4 (default), long = 5-8."
},
"maxPoints": {
"type": "integer",
"maximum": 10,
"minimum": 1,
"description": "Max number of keyPoints (default 5)."
}
}
}