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.

License

MIT

Metadata

Release files for google-fonts-mcp 1.3.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.3.1
File Size Uploaded
google_fonts_mcp-1.3.1.tar.gz 106.5 kB Details

Built distribution (wheel)

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

Total release size: 214.5 kB

Release files / google_fonts_mcp-1.3.1.tar.gz

Download URL google_fonts_mcp-1.3.1.tar.gz
Size 106.5 kB
Tags Source
SHA-256 checksum
How to use checksums
108b1b81249263685e81f0e90dad919b7f6aeeb2e6bd3ea8e370901c59ee6cf0
BLAKE2b-256 checksum
How to use checksums
a2cdefa0977d140552f67e33edaeb8b95667a0581031064b2602dd4d9d46816c
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 24, 2026.

Transparency log

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

Download URL google_fonts_mcp-1.3.1-py3-none-any.whl
Size 108.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8ce1b7a110df7bfc6bce160827d907ccc10a467ff5a7262e9ee872e9244361c5
BLAKE2b-256 checksum
How to use checksums
be25e68fe93db37c0f0462bc1d4502dd552ea9da2404d94ed54a36fca6564f21
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 24, 2026.

Transparency log

Release history Release notifications | RSS feed

1.4.1

2 release files

1.4.0

2 release files

This release

1.3.1 This release

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