webfetch-mcpv0.2.0

MCP 2025-06-18 Streamable HTTP checking…

Server

name
webfetch-mcp
version
0.2.0
protocol
2025-06-18
transport
Streamable HTTP
tools
1 (webfetch)

Live status

/healthz
200 OK · live
uptime
~0s (function-scoped)
region
iad1 (Washington, D.C.)
runtime
Node.js 24
build
~3 MB / 3 functions
GET /api/healthz liveness probe · JSON
curl -sS '/api/healthz'
POST /api/mcp initialize — first call in any MCP session
curl -sS -X POST '/api/mcp' \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"curl","version":"0"}}}'
POST /api/mcp tools/list — discover the webfetch tool
curl -sS -X POST '/api/mcp' \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/list"}'
POST /api/mcp tools/call — fetch example.com as markdown
curl -sS -X POST '/api/mcp' \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -d '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"webfetch","arguments":{"url":"https://example.com","format":"markdown","preferLlms":true}}}'

webfetch-mcp · webfetch tool

JSON Schema 2020-12
{
  "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
  }
}

Raw response json

        
Rendered html
No response yet. Hit “Run webfetch”.