API & MCP
Everything a person can do on Pixel & Grid Font Maker, a program or AI agent can do with the same inputs and get the identical result.
HTTP API
POST https://luminagridfont.usefulweb.app/api/v1/calculate– run Pixel & Grid Font MakerGET https://luminagridfont.usefulweb.app/api/v1/tool– inputs, output schema, examples- OpenAPI 3.1: /openapi.json · /openapi.yaml
- Errors:
application/problem+json;422includes per-fielderrors.
Pixel & Grid Font Maker
Write each glyph as a small grid of # (ink) and . (empty), with 2–5 for diagonal half cells, any size up to 32 × 32 and with descender rows. Choose merged outlines, round dots or separate squares, proportional or monospace widths and letter spacing, and download a verified TrueType font. Lumina Glyph Lab edits the same text with a live preview.
| Field | Type | Default | Description |
|---|---|---|---|
grid (required) | textarea | "A\n.###.\n#...#\n#...#\n#####\n#...#\n#...#\n#...#\n.....\n.....\n\nB\n####.\n# | Glyph grids (a character on its own line, then rows of # and .; blank line between glyphs) |
familyName | text | "My Pixel Font" | Font name |
module | select (merged, dots, gap) | "merged" | Cell style |
descender | integer | 2 | Rows below the baseline |
width | select (proportional, monospace) | "proportional" | Glyph widths |
spacing | number | 1 | Letter spacing (cells) |
size | number | 0.8 | Dot or square size (share of a cell, for dots and separate squares) |
space | number | 0 | Space width (cells, 0 = automatic) |
sample | text | — | Sample text for the preview |
date | text | — | Creation date written into the font (optional, YYYY-MM-DD) |
Example request
5 × 7 pixel font with descenders
curl -X POST https://luminagridfont.usefulweb.app/api/v1/calculate -H 'content-type: application/json' -d '{"grid":"A\n.###.\n#...#\n#...#\n#####\n#...#\n#...#\n#...#\n.....\n.....\n\nB\n####.\n#...#\n#...#\n####.\n#...#\n#...#\n####.\n.....\n.....\n\nC\n.###.\n#...#\n#....\n#....\n#....\n#...#\n.###.\n.....\n.....\n\nE\n#####\n#....\n#....\n####.\n#....\n#....\n#####\n.....\n.....\n\nH\n#...#\n#...#\n#...#\n#####\n#...#\n#...#\n#...#\n.....\n.....\n\nI\n###\n.#.\n.#.\n.#.\n.#.\n.#.\n###\n...\n...\n\nL\n#....\n#....\n#....\n#....\n#....\n#....\n#####\n.....\n.....\n\nO\n.###.\n#...#\n#...#\n#...#\n#...#\n#...#\n.###.\n.....\n.....\n\nP\n####.\n#...#\n#...#\n####.\n#....\n#....\n#....\n.....\n.....\n\nX\n#...#\n#...#\n.#.#.\n..#..\n.#.#.\n#...#\n#...#\n.....\n.....\n\ng\n.....\n.....\n.####\n#...#\n#...#\n#...#\n.####\n....#\n.###.\n\np\n.....\n.....\n####.\n#...#\n#...#\n#...#\n####.\n#....\n#....\n\ny\n.....\n.....\n#...#\n#...#\n#...#\n#...#\n.####\n....#\n.###.\n\n1\n.#.\n##.\n.#.\n.#.\n.#.\n.#.\n###\n...\n...\n\n2\n.###.\n#...#\n....#\n..##.\n.#...\n#....\n#####\n.....\n.....\n\n!\n#\n#\n#\n#\n#\n.\n#\n.\n.\n\n.\n.\n.\n.\n.\n.\n.\n#\n.\n.","familyName":"Starter Pixel","module":"merged","descender":2,"width":"proportional","spacing":1,"size":0.8,"space":0,"sample":"HELLO PIXEL gpy 12!","date":""}'
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://luminagridfont.usefulweb.app/mcp– protocol revisions 2026-07-28 (stateless) and 2025-11-25 / 2025-06-18 / 2025-03-26 (initialize handshake). - Tools:
lumina_grid_font - Local stdio connector:
node src/mcp-stdio.ts --tool=lumina-grid-font
{
"mcpServers": {
"lumina-grid-font": { "type": "http", "url": "https://luminagridfont.usefulweb.app/mcp" }
}
}