{
  "$schema": "https://static.modelcontextprotocol.io/schemas/mcp-server-card/v1.json",
  "version": "1.0",
  "protocolVersion": "2025-06-18",
  "serverInfo": {
    "name": "gofetch",
    "title": "gofetch",
    "version": "0.1.0"
  },
  "description": "Public web page to JSON fields (by JSON Schema) for agents. Pay-per-call x402 USDC on Base; charged only on success.",
  "websiteUrl": "https://getgofetch.dev",
  "documentationUrl": "https://getgofetch.dev/agents",
  "transport": {
    "type": "streamable-http",
    "endpoint": "/mcp"
  },
  "capabilities": {
    "tools": {
      "listChanged": false
    }
  },
  "authentication": {
    "required": false
  },
  "instructions": "gofetch turns one public web page into JSON fields (gofetch_extract, $0.005, charged only when ok). Payment is x402 v2, USDC on Base. Call gofetch_pricing (free) first. If your client cannot attach an x402 payment, gofetch_extract returns the PaymentRequired object and the HTTP route to call with an x402 wallet tool (AgentCash, MetaMask Agent Wallet, Coinbase Payments MCP). Static HTML only: no JavaScript rendering, no paywall or login bypass. JS-rendered or bot-protected sites return ok:false with error needs_js or blocked and are not charged. Guide: https://getgofetch.dev/agents",
  "tools": [
    {
      "name": "gofetch_pricing",
      "title": "gofetch pricing and how to pay (free)",
      "description": "Free. Returns gofetch's paid routes, prices, payTo, network, facilitator and the ways an agent can pay (x402 v2, USDC on Base). Call this first.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "openWorldHint": false,
        "idempotentHint": true,
        "title": "gofetch pricing (free)"
      }
    },
    {
      "name": "gofetch_extract",
      "title": "Extract JSON fields from a public page ($0.005, only on success)",
      "description": "Reads static HTML only: it does not run JavaScript, so JS-rendered sites (most big retailers) and bot-protected sites fail with ok:false, error needs_js or blocked, and no charge. Paid: $0.005 USDC on Base via x402, charged only when ok is true. Always returns a fixed envelope ({url, title, markdown, fetched_at, charged}). Optional schema (up to 20 properties) adds data and field_sources. Without an x402 payment in _meta[\"x402/payment\"] it returns the price and how to pay instead.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "format": "uri",
            "description": "Public http(s) page URL"
          },
          "schema": {
            "type": "object",
            "description": "Optional JSON Schema of extra fields to return (max 20 properties)"
          }
        },
        "required": [
          "url"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "openWorldHint": true,
        "title": "gofetch extract ($0.005 on success)"
      }
    }
  ],
  "contact": "hello@getgofetch.dev"
}