Find, price and license fonts from foundries; agents pay per licence in USDC via x402 on Base.
Maintained by@freddan-teamleader(verified)Also a maintainer?
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.
Buy a font licence. Call without payment to get x402 payment requirements (USDC), then again with the signed payment. Spends money: confirm price and licensee with the user first.
Licence type. A foundry may define its own; get_family lists them
The person or organisation the licence is for. Never the agent itself.
Shorthand for the first dimension of the use (desktop: computers, web: visitors/month, app: apps, ebook: titles, server: cores)
One style. Or use font_ids or bundle_id.
Licence dimensions, e.g. {"visitors": 100000, "domains": 2} or {"cores": 8, "years": 2}. get_family lists them per use.
Base64 x402 payment payload (X-PAYMENT). Omit on the first call to get the payment requirements.
Several styles of the same family, priced per style
A family bundle from get_family, e.g. <family_id>.family
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http agentfonts https://agentfonts.com/mcp
Buy a font licence. Call without payment to get x402 payment requirements (USDC), then again with the signed payment. Spends money: confirm price and licensee with the user first.
| Argument | Type | Description |
|---|---|---|
| use* | string | Licence type. A foundry may define its own; get_family lists them |
| tier | integer | Shorthand for the first dimension of the use (desktop: computers, web: visitors/month, app: apps, ebook: titles, server: cores) |
| font_id | string | One style. Or use font_ids or bundle_id. |
| options | object | Licence dimensions, e.g. {"visitors": 100000, "domains": 2} or {"cores": 8, "years": 2}. get_family lists them per use. |
| payment | string | Base64 x402 payment payload (X-PAYMENT). Omit on the first call to get the payment requirements. |
| font_ids | array | Several styles of the same family, priced per style |
| licensee* | object | The person or organisation the licence is for. Never the agent itself. |
| bundle_id | string | A family bundle from get_family, e.g. <family_id>.family |
{
"type": "object",
"required": [
"use",
"licensee"
],
"properties": {
"use": {
"enum": [
"desktop",
"web",
"app",
"ebook",
"server"
],
"type": "string",
"description": "Licence type. A foundry may define its own; get_family lists them"
},
"tier": {
"type": "integer",
"description": "Shorthand for the first dimension of the use (desktop: computers, web: visitors/month, app: apps, ebook: titles, server: cores)"
},
"font_id": {
"type": "string",
"description": "One style. Or use font_ids or bundle_id."
},
"options": {
"type": "object",
"description": "Licence dimensions, e.g. {\"visitors\": 100000, \"domains\": 2} or {\"cores\": 8, \"years\": 2}. get_family lists them per use.",
"additionalProperties": {
"type": "integer"
}
},
"payment": {
"type": "string",
"description": "Base64 x402 payment payload (X-PAYMENT). Omit on the first call to get the payment requirements."
},
"font_ids": {
"type": "array",
"items": {
"type": "string"
},
"description": "Several styles of the same family, priced per style"
},
"licensee": {
"type": "object",
"required": [
"name",
"email"
],
"properties": {
"name": {
"type": "string",
"description": "Legal name of the person or organisation"
},
"email": {
"type": "string",
"description": "Where the licence is sent; the licensee's address, not the agent's"
},
"org_id": {
"type": "string",
"description": "VAT or company number"
},
"country": {
"type": "string",
"description": "ISO 3166-1 alpha-2"
}
},
"description": "The person or organisation the licence is for. Never the agent itself."
},
"bundle_id": {
"type": "string",
"description": "A family bundle from get_family, e.g. <family_id>.family"
}
}
}A font family: every style with its base price, bundle offers (whole family, variable fonts, collection) and the foundry's licence types with their dimensions and price tiers. Free.
| Argument | Type | Description |
|---|---|---|
| id* | string | A family id, or the id of any font in the family |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "A family id, or the id of any font in the family"
}
}
}Details for one font: styles, scripts, metrics, missing glyphs for a sample text and a specimen URL. Free.
| Argument | Type | Description |
|---|---|---|
| sample | string | Text to check glyph coverage for, e.g. the real headline |
| font_id* | string | Font id from search_fonts, e.g. 'faro-grotesk-bold-1a2b3c' |
{
"type": "object",
"required": [
"font_id"
],
"properties": {
"sample": {
"type": "string",
"description": "Text to check glyph coverage for, e.g. the real headline"
},
"font_id": {
"type": "string",
"description": "Font id from search_fonts, e.g. 'faro-grotesk-bold-1a2b3c'"
}
}
}Price a licence (USD and USDC) and return machine-readable licence terms. Free, nothing is reserved.
| Argument | Type | Description |
|---|---|---|
| use* | string | Licence type. A foundry may define its own; get_family lists them |
| tier | integer | Shorthand for the first dimension of the use (desktop: computers, web: visitors/month, app: apps, ebook: titles, server: cores) |
| font_id | string | One style. Or use font_ids or bundle_id. |
| options | object | Licence dimensions, e.g. {"visitors": 100000, "domains": 2} or {"cores": 8, "years": 2}. get_family lists them per use. |
| font_ids | array | Several styles of the same family, priced per style |
| bundle_id | string | A family bundle from get_family, e.g. <family_id>.family |
{
"type": "object",
"required": [
"use"
],
"properties": {
"use": {
"enum": [
"desktop",
"web",
"app",
"ebook",
"server"
],
"type": "string",
"description": "Licence type. A foundry may define its own; get_family lists them"
},
"tier": {
"type": "integer",
"description": "Shorthand for the first dimension of the use (desktop: computers, web: visitors/month, app: apps, ebook: titles, server: cores)"
},
"font_id": {
"type": "string",
"description": "One style. Or use font_ids or bundle_id."
},
"options": {
"type": "object",
"description": "Licence dimensions, e.g. {\"visitors\": 100000, \"domains\": 2} or {\"cores\": 8, \"years\": 2}. get_family lists them per use.",
"additionalProperties": {
"type": "integer"
}
},
"font_ids": {
"type": "array",
"items": {
"type": "string"
},
"description": "Several styles of the same family, priced per style"
},
"bundle_id": {
"type": "string",
"description": "A family bundle from get_family, e.g. <family_id>.family"
}
}
}Search the font catalogue by style, tags, required glyphs and price. Free.
| Argument | Type | Description |
|---|---|---|
| use | string | Licence type the price filter and from-price apply to; default desktop |
| tags | array | All must match: headline, body, condensed, newspaper, ui, print… |
| tier | integer | first licence dimension: desktop computers, web visitors/month, app apps, ebook titles, server cores |
| limit | integer | Maximum number of fonts to return; default 10 |
| query | string | Free text over family, classification and tags, e.g. 'condensed headline sans' |
| glyphs | string | Characters the font must support, e.g. 'åäöÅÄÖ' or a sample headline |
| script | string | latin, latin-ext, cyrillic, greek |
| max_price_usd | number | Only fonts at or below this price for use/tier |
{
"type": "object",
"properties": {
"use": {
"enum": [
"desktop",
"web",
"app",
"ebook",
"server"
],
"type": "string",
"description": "Licence type the price filter and from-price apply to; default desktop"
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "All must match: headline, body, condensed, newspaper, ui, print…"
},
"tier": {
"type": "integer",
"description": "first licence dimension: desktop computers, web visitors/month, app apps, ebook titles, server cores"
},
"limit": {
"type": "integer",
"maximum": 50,
"minimum": 1,
"description": "Maximum number of fonts to return; default 10"
},
"query": {
"type": "string",
"description": "Free text over family, classification and tags, e.g. 'condensed headline sans'"
},
"glyphs": {
"type": "string",
"description": "Characters the font must support, e.g. 'åäöÅÄÖ' or a sample headline"
},
"script": {
"type": "string",
"description": "latin, latin-ext, cyrillic, greek"
},
"max_price_usd": {
"type": "number",
"description": "Only fonts at or below this price for use/tier"
}
}
}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 12, 2026.