{
  "id": "contextdev.web.fonts",
  "object": "tool",
  "name": "Scrape Fonts",
  "summary": "Detect the fonts a website uses, with usage statistics.",
  "description": "Detect a site's typography so an application can match brand fonts without manual inspection: font families in use, their fallback stacks, where each family is applied, element and word counts showing which face actually carries the page, and font asset links when available. Useful for on-brand document, deck, and email generation.\n\nRaw contextdev#web/fonts endpoint: input is { body, queryParams, pathParams } as the provider documents them (https://docs.context.dev/api-reference/brand-intelligence/fonts).",
  "category": "lookup",
  "hosted_by": "Context.dev",
  "runtime": "partner",
  "side_effects": false,
  "status": "live",
  "credits": 0,
  "price": null,
  "providers": [
    {
      "id": "contextdev",
      "name": "Context.dev",
      "price": null,
      "own_key_only": true
    }
  ],
  "mcp_name": "contextdev_web_fonts",
  "input_schema": {
    "type": "object",
    "properties": {
      "queryParams": {
        "anyOf": [
          {
            "type": "object",
            "properties": {
              "domain": {
                "type": "string",
                "minLength": 3,
                "description": "Domain to detect fonts on, e.g. 'example.com'. Mutually exclusive with directUrl."
              },
              "maxAgeMs": {
                "type": "integer",
                "minimum": 0,
                "maximum": 9007199254740991,
                "description": "Maximum age in milliseconds of cached brand data before Context.dev hard-refreshes it. Default 7776000000 (3 months). Set 0 to always refresh."
              }
            },
            "required": [
              "domain"
            ],
            "additionalProperties": false
          },
          {
            "type": "object",
            "properties": {
              "directUrl": {
                "type": "string",
                "pattern": "^https?:\\/\\/\\S+$",
                "description": "Exact URL to use, bypassing domain resolution (e.g. 'https://example.com/pricing'). Mutually exclusive with domain."
              },
              "maxAgeMs": {
                "type": "integer",
                "minimum": 0,
                "maximum": 9007199254740991,
                "description": "Maximum age in milliseconds of cached brand data before Context.dev hard-refreshes it. Default 7776000000 (3 months). Set 0 to always refresh."
              }
            },
            "required": [
              "directUrl"
            ],
            "additionalProperties": false
          }
        ],
        "description": "Provide a domain or a directUrl."
      }
    },
    "required": [],
    "additionalProperties": false
  },
  "kind": "endpoint"
}