{
"name": "webfetch",
"description": "Fetch a URL over HTTP(S) and return its content. Supports text, markdown, html, and llms output. Uses Readability to extract the article body from HTML pages, and prefers /llms.txt indexes when a site advertises them. Refuses private/loopback addresses (SSRF protection).",
"inputSchema": {
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "Absolute http(s) URL to fetch.",
"format": "uri"
},
"format": {
"type": "string",
"enum": [
"text",
"markdown",
"html",
"llms"
],
"description": "Output format. `llms` follows the page's llms.txt index if present. Defaults to markdown.",
"default": "markdown"
},
"extractor": {
"type": "string",
"enum": [
"readability",
"raw"
],
"description": "HTML extraction strategy. `readability` strips chrome and returns the article body; `raw` keeps the full HTML. Ignored for non-HTML responses.",
"default": "readability"
},
"preferLlms": {
"type": "boolean",
"description": "If the page advertises a llms.txt index, fetch that instead. Defaults to true.",
"default": true
},
"maxLength": {
"type": "integer",
"minimum": 1024,
"maximum": 5000000,
"description": "Max characters of content to return. Defaults to 200000."
},
"headers": {
"type": "object",
"description": "Optional extra HTTP request headers (key/value strings).",
"additionalProperties": {
"type": "string"
}
}
},
"required": [
"url"
],
"additionalProperties": false
}
}