API & MCP
Everything a person can do on Webfont Subsetter (WOFF & TTF), a program or AI agent can do with the same inputs and get the identical result.
HTTP API
POST https://luminafontsubset.usefulweb.app/api/v1/calculate– run Webfont Subsetter (WOFF & TTF)GET https://luminafontsubset.usefulweb.app/api/v1/tool– inputs, output schema, examples- OpenAPI 3.1: /openapi.json · /openapi.yaml
- Errors:
application/problem+json;422includes per-fielderrors.
Webfont Subsetter (WOFF & TTF)
Upload a TrueType font (TTF or WOFF) and keep only the characters you need: type them, paste a page's text, add Unicode ranges or tick common blocks. Variable fonts can be frozen at one weight. You get a WOFF 1.0 or TTF file with kerning kept as a kern table, the size saving and a ready @font-face rule with unicode-range.
| Field | Type | Default | Description |
|---|---|---|---|
font (required) | file | — | Font (TTF or WOFF with TrueType outlines; up to 10 MB; uploaded to the server) |
text | textarea | — | Characters or text to keep |
ranges | text | — | Unicode ranges (e.g. U+0020-007E, U+00E9) |
presets | multiselect (basic-latin, latin-1, latin-ext-a, punctuation, greek, cyrillic, digits) | [] | Common character blocks |
format | select (woff, ttf) | "woff" | Output format |
kerning | boolean | true | Keep kerning (as a kern table) |
axes | text | — | Freeze a variable font at (e.g. wght=700; empty = keep the default instance) |
Every result contains
inputs (normalised, defaults applied), summary, result (validated against the published schema), units, assumptions, sources, warnings, computedAt and links.
MCP (Model Context Protocol)
- Streamable HTTP endpoint:
https://luminafontsubset.usefulweb.app/mcp– protocol revisions 2026-07-28 (stateless) and 2025-11-25 / 2025-06-18 / 2025-03-26 (initialize handshake). - Tools:
lumina_font_subset - Local stdio connector:
node src/mcp-stdio.ts --tool=lumina-font-subset
{
"mcpServers": {
"lumina-font-subset": { "type": "http", "url": "https://luminafontsubset.usefulweb.app/mcp" }
}
}