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 launch the same pinned release through npm (requires uv):

npx 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
├── bin/google-fonts-mcp.js           # npm/npx launcher for the pinned PyPI release
└── registry/                         # MCP registry submission files

Development

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

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.0

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.0
File Size Uploaded
google_fonts_mcp-1.4.0.tar.gz 110.4 kB Details

Built distribution (wheel)

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

Total release size: 220.5 kB

Release files / google_fonts_mcp-1.4.0.tar.gz

Download URL google_fonts_mcp-1.4.0.tar.gz
Size 110.4 kB
Tags Source
SHA-256 checksum
How to use checksums
dc17c265f41ad1ba7c8c743ad325e566ff5a0a37720b66944dd7de3758d93b2b
BLAKE2b-256 checksum
How to use checksums
c9159b5d20455ed06a4d38e119206af59adb1615092660d2d529b3e4ccd97542
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.0-py3-none-any.whl

Download URL google_fonts_mcp-1.4.0-py3-none-any.whl
Size 110.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
229b3fb7b25569581ad02ea27582c0b3b4bac8fa0014a4a602b911426702e41f
BLAKE2b-256 checksum
How to use checksums
cbbe8756a2c1acdbafc6eee2df3dcde38954b13cf9b95a3a6899d099f8e99030
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

1.4.1

2 release files

This release

1.4.0 This release

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