{
  "id": "font.convert",
  "object": "tool",
  "name": "Convert font",
  "summary": "TTF, OTF, WOFF, WOFF2.",
  "description": "Converts fonts between TTF, OTF, WOFF and WOFF2 with fontTools, optionally subsetting to the characters you need (much smaller web fonts). OTF to TTF converts the curves within one font unit.",
  "category": "files",
  "hosted_by": "Opentools",
  "runtime": "container",
  "side_effects": false,
  "status": "live",
  "credits": 2,
  "price": "$0.0020",
  "providers": [
    {
      "id": "opentools",
      "name": "Opentools",
      "price": "$0.0020"
    }
  ],
  "mcp_name": "font_convert",
  "input_schema": {
    "type": "object",
    "properties": {
      "file": {
        "anyOf": [
          {
            "type": "object",
            "properties": {
              "url": {
                "type": "string",
                "format": "uri",
                "description": "Public http(s) URL of the file"
              }
            },
            "required": [
              "url"
            ]
          },
          {
            "type": "object",
            "properties": {
              "file_id": {
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
                "description": "An id returned by POST /v1/files"
              }
            },
            "required": [
              "file_id"
            ]
          },
          {
            "type": "object",
            "properties": {
              "base64": {
                "type": "string",
                "description": "Base64-encoded file bytes (up to 10 MB)"
              },
              "name": {
                "type": "string",
                "description": "File name, e.g. invoice.pdf"
              },
              "content_type": {
                "type": "string"
              }
            },
            "required": [
              "base64",
              "name"
            ]
          },
          {
            "type": "object",
            "properties": {
              "connection": {
                "type": "string",
                "minLength": 1,
                "maxLength": 64,
                "description": "A storage connection id or name (see storage.connections)"
              },
              "path": {
                "type": "string",
                "minLength": 1,
                "maxLength": 1024,
                "description": "Path of the file in that connection, e.g. reports/q3.pdf"
              }
            },
            "required": [
              "connection",
              "path"
            ]
          }
        ],
        "x-file": true,
        "description": "The font"
      },
      "to": {
        "type": "string",
        "enum": [
          "ttf",
          "otf",
          "woff",
          "woff2"
        ],
        "description": "Output format"
      },
      "subset_text": {
        "description": "Keep only the glyphs needed for this text",
        "type": "string",
        "maxLength": 20000
      },
      "subset_unicodes": {
        "description": "Keep only these code points, like \"U+0020-007E,U+00A0-00FF\"",
        "type": "string",
        "maxLength": 2000,
        "pattern": "^[0-9A-Fa-fUu+,\\-\\s]+$"
      }
    },
    "required": [
      "file",
      "to"
    ]
  },
  "kind": "tool"
}