Skip to main content
Glama

maptaste

MapLibre style taste checks for coding agents. M0: four heuristics, two skill packs, an MCP server, and a local map showcase.

Problem

Agents ship ugly MapLibre styles: rainbow fills, faint labels, crowded names, and light-only palettes. Maptaste flags common mistakes before visual review. It is not a full MapLibre validator; expressions and real rendering still need inspection.

Related MCP server: UI Keeper

Install

Node 20+ and pnpm.

pnpm add -g maptaste
# or run without installing
npx maptaste check style.json

CLI

maptaste check style.json --pack global
maptaste check style.json --pack cn --format json

JSON returns { findings, score, summary }. Exit codes: 0 without errors, 1 with errors, 2 for bad input. Warnings and info do not fail the command.

Rule

Default

Heuristic

MT001

error

Fill colors span at least four saturated hue sectors

MT002

warn

Static label color has contrast below 4.5 against a halo or background

MT003

info

No dark background or theme declaration in metadata

MT004

warn

More than 8 text symbol layers (6 for cn), or 3 large text defaults

Score: max(0, 100 - 10*errors - 3*warnings - info). Static colors support hex, rgb(), and common names. Dynamic colors, zoom visibility, and feature counts are not evaluated. Metadata keys containing dark, theme, or styles declare theme consideration.

import { check } from 'maptaste';
const result = check({ version: 8, layers: [] }, { pack: 'global' });

MCP

Build with pnpm install && pnpm build. Add to Claude Desktop or Cursor's MCP configuration (replace the absolute path):

{
  "mcpServers": {
    "maptaste": {
      "command": "node",
      "args": ["/absolute/path/maptaste/dist/mcp/server.js"]
    }
  }
}

The installed binary is maptaste-mcp. It uses the MCP SDK over stdio. Tools: check_taste accepts { "style": {} } or { "styleJson": "..." }; validate_style accepts { "style": {} } and checks object/version/layers structure; preview_info locates the showcase. Validation is intentionally basic.

Skills

Load skills/maptaste-global/SKILL.md or skills/maptaste-cn/SKILL.md in your agent's skill directory. Both use paper #ebe7df, void #0b0b0b, navy #1a2a4a, and pale blue #9eb6d4. The cn pack emphasizes administrative label hierarchy and uses a lower label-layer threshold.

Showcase

Separate Vite app with local GeoJSON, sequential blues, and light/dark themes. No map token or tile service required; WebGL is required. Google Fonts supplies the single serif headline, with a local serif fallback.

cd showcase
pnpm install
pnpm dev
# production check
pnpm build

Development

pnpm install
pnpm build
pnpm test

Demo

Add docs/demo.gif after recording.

License

MIT © 2026 Felix Fang.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables coding agents to query a workspace's design system before writing UI and validate generated code against the same system afterward, using configurable token and component sources.
    4 npm
    1
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    Enables AI coding agents to inspect a project's design tokens and component catalog, audit React/Tailwind files against seven static UI quality rules, score overall UI health, and apply auto-fixes that are re-audited and reverted on regression. It works both locally over filesystem access and remotely on raw TSX/JSX or CSS snippets passed directly as strings.
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    Provides coding agents with local tools to inspect project UI inventories, propose and compare visual direction boards, compile versioned design contracts and DTCG tokens, retrieve section-specific blueprints, and audit running interfaces with browser evidence including screenshots, accessibility findings, and overflow measurements.
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI coding agents to audit rendered web pages for design and UI defects by measuring geometry, styles, contrast and motion in a local browser and judging them against evidence-tiered rules. Findings come back as short, fixable items expressed in the project's own design tokens, while only sanitized numeric measurements leave the machine.
    Apache 2.0