Skip to main content

MCP server for Google Fonts typography system generation

Project description

Google Fonts MCP

MCP server and Claude Code skill for typography system generation using Google Fonts. Searches 1,923 enriched fonts, suggests singles or pairs, and generates complete CSS/Tailwind typographic systems.

CleanShot 2026-03-21 at 19 08 00

What It Does

  • Font search with BM25 ranking across personality, mood, and use-case tags
  • Single font mode — one font for heading + body (body-suitable, multi-weight)
  • Pair mode — 73 proven pairings with contrast type classification
  • CSS generation — custom properties, Tailwind config, Google Fonts embed links
  • 8 modular scales — from minor-second (dense UI) to golden-ratio (hero sections)
  • 100-project showcasebrowsable gallery of pre-made typography systems

How It Works

  1. Tell Claude what you're building (SaaS, blog, e-commerce...)
  2. Skill searches 1,923 fonts or 73 proven pairings
  3. Pick a font + scale → get CSS custom properties, Tailwind config, and embed link
  4. Ship

Installation

MCP Server (any agent)

uvx google-fonts-mcp

Or install permanently:

pip install google-fonts-mcp

Claude Code

claude mcp add google-fonts -- uvx google-fonts-mcp

Or as a plugin:

claude plugin marketplace add sliday/google-fonts-skill
claude plugin install google-fonts

Cursor

Add to .cursor/mcp.json:

{
  "mcpServers": {
    "google-fonts": {
      "command": "uvx",
      "args": ["google-fonts-mcp"]
    }
  }
}

Windsurf

Add to ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "google-fonts": {
      "command": "uvx",
      "args": ["google-fonts-mcp"]
    }
  }
}

Any MCP Client

{
  "command": "uvx",
  "args": ["google-fonts-mcp"]
}

Usage

The skill activates automatically when you mention fonts, typography, or type scales in Claude Code.

CLI Scripts

# Search for a single body-suitable font
python3 scripts/search.py "modern clean SaaS" --mode single

# Search proven font pairings
python3 scripts/search.py "elegant editorial luxury" --mode pair

# Look up a specific font
python3 scripts/search.py "Inter" --mode lookup

# Search type scales
python3 scripts/search.py "marketing bold" --mode scale

# Generate CSS + Tailwind + embed for a single font
python3 scripts/generate-css.py --font "Inter" --scale major-third --format all

# Generate for a font pair
python3 scripts/generate-css.py --heading "Playfair Display" --body "Inter" \
  --scale perfect-fourth --format all

CleanShot 2026-03-21 at 19 08 08

Data

File Records Description
data/fonts.csv 1,923 Google Fonts with personality, contrast, body-suitability, quality tier
data/pairings.csv 73 Proven pairings with contrast type and scale recommendations
data/scales.csv 8 Modular type scales with sizes, line-heights, letter-spacing

Scale Reference

Scale Ratio Best For
minor-second 1.067 Dense UI, dashboards
major-second 1.125 Apps, admin panels
minor-third 1.2 General purpose
major-third 1.25 Blogs, content
perfect-fourth 1.333 Marketing, editorial
augmented-fourth 1.414 Magazines, expressive
perfect-fifth 1.5 Display-heavy
golden-ratio 1.618 Hero sections

Showcase Gallery

Browse 100 Typography Systems →

100 pre-made typography systems applied to fictional projects — SaaS dashboards, editorial blogs, luxury brands, gaming sites, and more. Each page renders live with actual Google Fonts.

Regenerate with:

python3 scripts/generate-showcase.py

MCP Tools

Tool Description
search_fonts Search fonts by mood/use-case. Modes: single, pair, scale
generate_typography_system Full CSS + Tailwind + embed from font + scale
lookup_font Get full metadata for a specific font
list_scales All 8 typographic scales
list_pairings All 73 proven pairings (filterable by contrast type)

Project Structure

├── src/google_fonts_mcp/             # MCP server (PyPI package)
│   ├── server.py                     # FastMCP server with 5 tools
│   ├── core.py                       # Search engine + CSS generation
│   └── data/                         # Bundled font data
├── SKILL.md                          # Claude Code skill definition
├── data/                             # Canonical font data (CSV)
├── scripts/                          # CLI tools + generators
├── showcase/                         # 100-project gallery + SEO
│   ├── llms-full.txt                 # Agent-readable full reference
│   └── pages/                        # Individual HTML previews
├── tests/                            # pytest suite
└── registry/                         # MCP registry submission files

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

google_fonts_mcp-1.3.0.tar.gz (104.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

google_fonts_mcp-1.3.0-py3-none-any.whl (106.1 kB view details)

Uploaded Python 3

File details

Details for the file google_fonts_mcp-1.3.0.tar.gz.

File metadata

  • Download URL: google_fonts_mcp-1.3.0.tar.gz
  • Upload date:
  • Size: 104.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.13

File hashes

Hashes for google_fonts_mcp-1.3.0.tar.gz
Algorithm Hash digest
SHA256 0a7a59ffbadf6ec5c49225bd9d9ab6fd10ba2c3f5f22f636e41dfc80a00f54ea
MD5 81a64ffe753c7978be2e40480710bd0d
BLAKE2b-256 124032de50be2b4d7c9f6e3c15d6e62af139b5c263fd0d5a817a99ef101a8e58

See more details on using hashes here.

File details

Details for the file google_fonts_mcp-1.3.0-py3-none-any.whl.

File metadata

File hashes

Hashes for google_fonts_mcp-1.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 da15b42419033611c0491b8678e46d7520b3c64cb29e07783b077cfc90a11cbf
MD5 e646b1a7ae996e5b7f016e71105a8c45
BLAKE2b-256 32b9f79141ec08bd1a20c8da88d1f80b2e579efe067b0d4310175fa78ee189c7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page