Skip to main content

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 showcase — browsable 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

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

Development

uv sync          # install deps incl. pytest (dev group)
uv run pytest -q # run the test suite

Weight strings follow the css2 API: semicolons between discrete weights (400;700), .. for variable ranges (100..900). Comma input is auto-normalized; invalid axis specifications are rejected before generating code.

License

MIT

Metadata

Release files for google-fonts-mcp 1.4.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for google-fonts-mcp 1.4.1
File Size Uploaded
google_fonts_mcp-1.4.1.tar.gz 226.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for google-fonts-mcp 1.4.1
File Interpreter ABI Platform
google_fonts_mcp-1.4.1-py3-none-any.whl Python 3 none any Details

Total release size: 336.0 kB

Release files / google_fonts_mcp-1.4.1.tar.gz

Download URL google_fonts_mcp-1.4.1.tar.gz
Size 226.0 kB
Tags Source
SHA-256 checksum
How to use checksums
7ba12c247e2bdb271a4dfbe9ef83f38f5c698979385017e66d88fae0c06bcdb9
BLAKE2b-256 checksum
How to use checksums
f0af4014d9c576d72552b7770d7d58a164208bcfd8b13beb6174c5722ccbb5ac
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 31, 2026.

Transparency log

Release files / google_fonts_mcp-1.4.1-py3-none-any.whl

Download URL google_fonts_mcp-1.4.1-py3-none-any.whl
Size 110.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5dc67a614d86474fbc5f17d8e4101d5f921630e060e0e56cda2b672d09ce4fb7
BLAKE2b-256 checksum
How to use checksums
a96785fc1faf02278b3931419ff6e5ca0fe3511c6b52ab1bd08902378839955a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 31, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.4.1 This release

2 release files

1.4.0

2 release files

1.3.1

2 release files

1.3.0

2 release files

1.2.0

2 release files

1.1.0

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page