Find free, openly licensed fonts by style, use or language, and get the CSS to use them.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Use this when the person asks about one font: its weights and styles, its license, the languages it covers, or what to pair it with. id is a family's id from search_fonts, or its name in lowercase with hyphens ("lora", "space-mono"). Not for the CSS to use it on a page: get_font_css gives that. Answers one family: its name, page link, category, designer, license, every style it has, the languages it fully covers, the families that pair with it and the ones that look like it.
a family id from search_fonts ("lora"), or its name
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http onlyfonts https://mcp.onlyfonts.ai/mcp
Use this when the person asks about one font: its weights and styles, its license, the languages it covers, or what to pair it with. id is a family's id from search_fonts, or its name in lowercase with hyphens ("lora", "space-mono"). Not for the CSS to use it on a page: get_font_css gives that. Answers one family: its name, page link, category, designer, license, every style it has, the languages it fully covers, the families that pair with it and the ones that look like it.
| Argument | Type | Description |
|---|---|---|
| id* | string | a family id from search_fonts ("lora"), or its name |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"maxLength": 80,
"minLength": 1,
"description": "a family id from search_fonts (\"lora\"), or its name"
}
},
"additionalProperties": false
}Use this when the person wants to use fonts on a web page, in an app or in a design tool that takes CSS. ids are 1 to 4 family ids from search_fonts or get_font. weights are 100 to 900; each family gets the ones it has, its regular and bold when left out. italic adds the italic of each weight a family has. Not for downloading font files to install on a computer. Answers one stylesheet link from cdn.onlyfonts.ai that loads every family asked for, the same as an @import line, and each family's font-family line with a fallback.
| Argument | Type | Description |
|---|---|---|
| ids* | array | 1 to 4 family ids |
| italic | boolean | |
| weights | array |
{
"type": "object",
"required": [
"ids"
],
"properties": {
"ids": {
"type": "array",
"items": {
"type": "string",
"maxLength": 80,
"minLength": 1
},
"maxItems": 4,
"minItems": 1,
"description": "1 to 4 family ids"
},
"italic": {
"type": "boolean"
},
"weights": {
"type": "array",
"items": {
"type": "integer",
"maximum": 900,
"minimum": 100
},
"maxItems": 9
}
},
"additionalProperties": false
}Use this when the person wants fonts for something: a style or mood, a use, a font by name, or a language to cover. For example "a warm serif", "a playful display font for a poster" or "a monospace for code". query is their words, at most 200 characters. category narrows to sans-serif, serif, monospace, display or handwriting. language keeps fonts that fully cover latin, latin-extended, ukrainian, greek, vietnamese, arabic, hebrew, thai, japanese, korean, chinese-simplified or devanagari. limit is 1 to 20, 8 when left out. Not for fonts installed on the person's computer, and not for paid fonts: the catalog holds free fonts only. Answers free, openly licensed font families from the onlyfonts catalog, best match first, each with its id, name, page link, category, designer and how many styles it has.
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| query* | string | their words: a style, a mood, a use, a font's name |
| category | string | |
| language | string | only fonts that fully cover this language |
{
"type": "object",
"required": [
"query"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 20,
"minimum": 1
},
"query": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "their words: a style, a mood, a use, a font's name"
},
"category": {
"enum": [
"sans-serif",
"serif",
"monospace",
"display",
"handwriting"
],
"type": "string"
},
"language": {
"enum": [
"latin",
"latin-extended",
"ukrainian",
"greek",
"vietnamese",
"arabic",
"hebrew",
"thai",
"japanese",
"korean",
"chinese-simplified",
"devanagari"
],
"type": "string",
"description": "only fonts that fully cover this language"
}
},
"additionalProperties": false
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 10, 2026.