Kroma MCP
Kroma MCP is a stateless, internet-connected server that turns AI assistants into real-time design scouts for UI/UX inspiration, component discovery, web effects, and blueprint generation — powered by live Google Search via the Serper API.
Find UI/UX Inspiration (
kroma_find_ui_inspiration): Search live design galleries (Mobbin, Awwwards, Dribbble, etc.) via Google Images for visual inspiration, returning image URLs and source pages.Find Component Code (
kroma_find_component_code): Discover copy-paste React, Vue, or Svelte components from libraries like shadcn/ui, Magic UI, Aceternity, with optional framework and keyword filtering.Find Effects & Shaders (
kroma_find_effects_and_shaders): Locate modern web micro-effects: GLSL shaders, Framer Motion variants, GSAP timelines, Three.js scenes, and more from sources like CodePen, Shadertoy, and Codrops.Scrape Site Design (
kroma_scrape_site_design): Extract design metadata from any URL: typography, fonts, color palette hints, and CSS/framework fingerprints (Tailwind, Radix, etc.).Search Design Web (
kroma_search_design_web): Perform live web searches tuned for design and front-end topics, optionally scoped to specific domains.List Curated Sources (
kroma_list_sources): Browse the curated registries of design galleries, component libraries, and effect sources — runs offline with no API key.Generate Engineering Blueprint (
kroma_generate_blueprint): Create a full Markdown blueprint for a project, covering architecture, stack, data model, milestones, testing, and optional live design/component references.
Searches Awwwards for visual UI/UX design inspiration, fetching live examples of award-winning website designs.
Searches Behance for visual UI/UX design inspiration, fetching live examples of design projects and portfolios.
Searches CodePen for code playground examples of web micro-effects, shaders, and animations.
Searches daisyUI for copy-paste UI components, enabling discovery of ready-to-use Tailwind CSS components.
Searches Dribbble for visual UI/UX design inspiration, fetching live examples of design shots and concepts.
Searches GitHub for component code, GLSL/canvas shaders, and source code repositories for web effects.
Searches Headless UI for accessible, unstyled UI component primitives, enabling discovery of copy-paste components.
Searches shadcn/ui for copy-paste React components, enabling discovery of modern UI components and design patterns.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Kroma MCP Find a glassmorphic pricing card component in React"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Kroma MCP — @kromamcp/server
A completely stateless, internet-connected Model Context Protocol server for UI/UX design inspiration, live component discovery, and modern web micro-effects.
Kroma turns your AI assistant into a design scout. Ask for "a glassmorphic pricing card in React", "a grainy mesh gradient hero as CSS", "hand-drawn rocket icons", or "OG image inspiration for a dev tool" and Kroma resolves it live from the best design galleries, component libraries, gradient generators, icon sets, and code playgrounds on the internet — no local database, no cache, no stored files.
Every request is resolved in real time via the Serper API (Google Search / Images / Scrape).
✨ Highlights
Completely stateless — zero databases, zero local caches, zero file storage. Every answer is fetched fresh.
Real-time internet resolution — live queries against curated design galleries, component docs, and code repos.
Multi-tenant & zero-config — connect and go. Keys resolve per-request from the environment or a tool argument.
Two transports —
stdiofor desktop/IDE hosts, and Streamable HTTP + SSE for remote hosting.10 specialized tools — UI inspiration, graphic & brand inspiration, components, effects/shaders, backgrounds & gradients, icons & logos, site scraping, open web search, source discovery, and engineering-blueprint generation.
Smart source routing — every curated source is tagged, so asking for a mesh gradient as CSS or an OG image hits only the handful of sources that actually serve it.
Related MCP server: Design Inspiration MCP Server
🔑 Prerequisites
Node.js ≥ 18
A Serper API key — grab a free one at serper.dev (2,500 free credits to start).
Set it as an environment variable:
export SERPER_API_KEY="your_serper_key_here"You can also pass a per-call
api_keyargument to any tool — it takes precedence over the env var. This is what makes Kroma multi-tenant: different callers can bring their own key.
🚀 Quickstart (npx)
No install required — run the latest published version directly:
SERPER_API_KEY=your_key npx -y @kromamcp/serverThat starts the server on stdio, ready for any MCP host.
🧰 The Tools
Tool | What it does |
| Searches live galleries (Mobbin, Godly, Awwwards, Dribbble, Lapa Ninja, Minimal Gallery, Land-book, Saaspo, Inspora, Behance…) via Google Images for visual UI/UX inspiration. |
| Mood-boards the artifacts that aren't a web page — social posts, pitch decks, OG images, logos, footers, branding, print. |
| Searches component libraries & docs (shadcn/ui, Magic UI, Aceternity, Uiverse, Tailwind, Radix, Headless UI, Flowbite, daisyUI, beUI Pro, GitHub…) for copy-paste React / Vue / Svelte components. |
| Discovers GLSL/canvas shaders, Framer Motion variants, GSAP scroll timelines, glassmorphism, glowing borders, Three.js and more from CodePen, Shadertoy, Codrops, GitHub, and blogs. |
| Finds gradients, grain/noise textures, mesh & animated backgrounds, patterns, and color palettes from asset libraries and live generators — Grainient, Backgrounds Supply, Pryzm, ColorFlow, zoxilsi studio, Gradientool, CSS Gradient, Tabbied, Ramps, beUI Pro. Returns results plus the matched generators with direct URLs. |
| Searches icon sets and brand-mark libraries — Koboyo (133,000+ free hand-drawn SVGs), Logoinspo (1,200+ curated logos), SVGL, Simple Icons, Lucide, Phosphor, Tabler, Heroicons, Hugeicons, Iconify, Streamline, Noun Project. |
| Scrapes any live URL and extracts layout, typography outline, fonts, color palette, and CSS/framework fingerprints (Tailwind, Radix, Framer, Next.js…). |
| General-purpose design/front-end web search, optionally scoped to specific domains. For anything the specialized tools don't cover. |
| Lists all six curated source registries so the agent can discover exact |
| Generates a full engineering blueprint ( |
Example tool arguments
// kroma_find_ui_inspiration
{ "query": "fintech dashboard dark mode", "sources": ["Mobbin", "Awwwards"], "num": 12 }
// kroma_find_component_code
{ "component": "command palette", "framework": "react", "keywords": "tailwind accessible" }
// kroma_find_effects_and_shaders
{ "effect": "animated glowing border", "category": "glow", "framework": "react" }
// kroma_find_graphic_inspiration
{ "query": "developer tool launch announcement", "asset": "social-post", "num": 12 }
{ "query": "seed round pitch deck", "asset": "deck" }
{ "query": "dark OG image with product screenshot", "asset": "og-image" }
// kroma_find_backgrounds_and_gradients
{ "look": "dark purple hero backdrop", "style": "mesh", "format": "css" }
{ "look": "warm grainy noise texture", "style": "grainy", "include_previews": true }
{ "look": "accessible brand color ramp", "style": "palette", "format": "code" }
// kroma_find_icons_and_logos
{ "query": "rocket deploy", "kind": "icon", "style": "hand-drawn", "free_only": true }
{ "query": "minimal fintech symbol", "kind": "logo" }
// kroma_scrape_site_design
{ "url": "https://linear.app", "include_markdown": true }
// kroma_search_design_web
{ "query": "design tokens naming conventions", "sites": ["web.dev", "smashingmagazine.com"] }
// kroma_generate_blueprint
{ "project": "Fintech onboarding dashboard", "kind": "dashboard", "stack": ["Next.js", "TypeScript", "Postgres"], "goals": ["Reduce drop-off", "SOC2-ready"], "depth": "deep" }Every tool returns both a readable JSON text block and structuredContent. Errors come back as graceful isError results (with an auth / request / unknown kind) instead of crashing the session.
Honest results
Google silently drops the site: operator when the scoped domains have a thin search index — and several of the best galleries (Deck.gallery, OGFolio, Footer.design, Ramps) are recent single-page apps with almost nothing indexed. So the three routing tools tell you exactly what you got:
Field | Meaning |
| Per result: the curated source it actually came from, or |
| How many of the returned results genuinely came from the curated set. |
|
|
| Set only when |
generators / galleries / libraries always carry the matched sources with direct URLs. For a single-page generator like ColorFlow or Pryzm, that URL is the answer — there's no article to find.
🖥️ Client Setup
Claude Desktop
Edit the config file:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"kroma": {
"command": "npx",
"args": ["-y", "@kromamcp/server"],
"env": {
"SERPER_API_KEY": "your_serper_key_here"
}
}
}
}Restart Claude Desktop. You'll see the Kroma tools appear under the tools menu.
Cursor
Add to ~/.cursor/mcp.json (global) or .cursor/mcp.json (project):
{
"mcpServers": {
"kroma": {
"command": "npx",
"args": ["-y", "@kromamcp/server"],
"env": { "SERPER_API_KEY": "your_serper_key_here" }
}
}
}Windsurf
Add to ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"kroma": {
"command": "npx",
"args": ["-y", "@kromamcp/server"],
"env": { "SERPER_API_KEY": "your_serper_key_here" }
}
}
}Roo Code
In the Roo Code MCP settings (mcp_settings.json), add:
{
"mcpServers": {
"kroma": {
"command": "npx",
"args": ["-y", "@kromamcp/server"],
"env": { "SERPER_API_KEY": "your_serper_key_here" },
"alwaysAllow": [
"kroma_find_ui_inspiration",
"kroma_find_graphic_inspiration",
"kroma_find_component_code",
"kroma_find_effects_and_shaders",
"kroma_find_backgrounds_and_gradients",
"kroma_find_icons_and_logos",
"kroma_scrape_site_design",
"kroma_search_design_web",
"kroma_list_sources",
"kroma_generate_blueprint"
]
}
}
}🌐 Remote Hosting (HTTP + SSE)
For a shared, always-on deployment, run Kroma over HTTP:
SERPER_API_KEY=your_key npx -y @kromamcp/server --transport http --port 3000
# or: KROMA_TRANSPORT=http PORT=3000 npx -y @kromamcp/serverThis exposes:
Path | Method | Purpose |
| POST / GET / DELETE | Streamable HTTP transport (modern, recommended) |
| GET | Legacy SSE stream (Cursor / Windsurf compatibility) |
| POST | SSE message channel |
| GET | Liveness probe → |
Connecting a client to the SSE endpoint
Hosts that support a URL/SSE endpoint (e.g. Cursor, Windsurf) can point at:
{
"mcpServers": {
"kroma": {
"url": "https://your-host.example.com/sse"
}
}
}Or the Streamable HTTP endpoint:
{
"mcpServers": {
"kroma": {
"url": "https://your-host.example.com/mcp"
}
}
}When self-hosting, provide
SERPER_API_KEYin the server's environment, or have each caller pass anapi_keytool argument for true multi-tenant, bring-your-own-key operation.
⚙️ Configuration
Variable | Default | Description |
| — | Required (unless passing |
|
| Per-request timeout in milliseconds. |
|
|
|
|
| HTTP port (http transport). |
|
| HTTP bind host (http transport). |
CLI flags: --transport <stdio|http>, --http, --port <n>, --host <h>, --help, --version.
🛠️ Local Development
git clone <this-repo>
cd kroma-mcp
npm install
npm run build # compile TypeScript → dist/
npm start # run the compiled server (stdio)
npm run dev # tsc --watch
npm run typecheck # type-check without emittingProject layout
src/
index.ts # entry point + stdio/http transports
services/serper.ts # stateless Serper API gateway (search/images/scrape)
lib/
sources.ts # curated source registries + query builders
response.ts # MCP result helpers + error guard
tools/
find-ui-inspiration.ts
find-graphic-inspiration.ts
find-component-code.ts
find-effects-and-shaders.ts
find-backgrounds-and-gradients.ts
find-icons-and-logos.ts
scrape-site-design.ts
search-design-web.ts
list-sources.ts
generate-blueprint.tsAdding a source
Every source is a CuratedSource in src/lib/sources.ts:
{
name: "Grainient",
domain: "grainient.supply",
note: "1,000+ grainy, smooth, and animated gradients plus AI backgrounds and a shader tool",
tags: ["grainy", "animated", "mesh", "ai", "shader", "image"],
}Drop it into the right registry (INSPIRATION_SOURCES, COMPONENT_SOURCES, EFFECT_SOURCES, GRAPHIC_SOURCES, BACKGROUND_SOURCES, ICON_SOURCES) and it's live — kroma_list_sources reads the arrays directly and the search tools build site: queries from them. name is what callers pass in sources; tags are what the asset / style / format / kind filters match against.
Architecture principles
Stateless by construction. No module holds user data between requests; HTTP sessions live only in-memory for the process lifetime and store no personal data.
Dynamic key resolution.
resolveApiKey(explicit?)prefers an explicitapi_keyargument, thenSERPER_API_KEY. Nothing is persisted.Graceful failure. Network errors, timeouts, and auth failures become typed, readable tool errors — never uncaught throws.
Widening fallbacks. Source filters never return an empty set: an unrecognised name or an over-narrow tag combination widens back to the parent registry, so a bad argument degrades into a broader search instead of zero results.
📄 License
MIT © 2026 Kroma MCP
Available Tools
6 toolskroma_find_component_codeFind Component CodeA
Search live web docs and repos (shadcn/ui, Magic UI, Aceternity, Uiverse, Tailwind, Radix, Headless UI, Flowbite, daisyUI, GitHub, and more) for copy-paste React/Vue/Svelte components. Returns doc pages, source links, and snippets. Use framework to target React/Vue/Svelte and keywords to refine.
Inputs: component (required), num, api_key, sources, +2 more.
kroma_find_effects_and_shadersFind Effects & ShadersA
Discover modern web micro-effects and motion techniques: GLSL/canvas shaders, Framer Motion variants, GSAP scroll timelines, glassmorphism, glowing borders, Three.js scenes, and more — sourced live from CodePen, Shadertoy, Codrops, GitHub, and technique blogs. Use category and framework to bias results.
Inputs: effect (required), num, api_key, sources, +2 more.
kroma_find_ui_inspirationFind UI/UX InspirationA
Search live design galleries (Mobbin, Godly, Awwwards, Dribbble, Lapa Ninja, Minimal Gallery, Land-book, Behance, and more) via Google Images for visual UI/UX inspiration. Returns image URLs, the page each shot lives on, and the gallery it came from. Great for mood-boarding a screen, flow, or aesthetic.
Inputs: query (required), gl, hl, num, +2 more.
kroma_list_sourcesList Curated SourcesA
List the curated source registries Kroma searches — design galleries, component libraries, and effect/shader sources. Use this to discover the exact source names you can pass to the sources argument of the other Kroma tools. Runs offline; no API key required.
Inputs: category.
kroma_scrape_site_designScrape Site DesignA
Scrape any live URL and extract design-relevant metadata: page title/description, a heading/typography outline, detected font families, a color-palette hint, and CSS/utility framework fingerprints (Tailwind, Radix, Framer, GSAP, Next.js, etc.). Ideal for reverse-engineering the structure and styling of a site you admire.
Inputs: url (required), api_key, include_raw, include_markdown.
kroma_search_design_webSearch Design WebA
General-purpose live web search tuned for design and front-end topics. Unlike the specialized tools, this is not locked to curated galleries — use it for design systems, articles, accessibility guidance, tokens, or anything else. Optionally scope to explicit domains with sites.
Inputs: query (required), gl, hl, num, +3 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 6 tools
Each tool targets a distinct purpose: finding visual inspiration, scraping site metadata, general web search, listing sources, finding components, and finding effects. The overlap between find_ui_inspiration and search_design_web is minimal and clearly differentiated by scope.
All tool names follow the consistent pattern 'kroma_<verb>_<noun>' in snake_case. Verbs are varied but always action-oriented, and the nouns clearly indicate the resource type, making the naming predictable and readable.
With 6 tools, the server is well-scoped for design discovery and analysis. Each tool covers a distinct aspect of the workflow without redundancy, and the count is neither too thin nor overwhelming.
The tool set covers the full lifecycle implied by the domain: finding inspiration, scraping live sites, searching the web, listing available sources, and locating components and effects. There are no obvious missing operations for the server's stated purpose.
Maintenance
Related MCP Connectors
Unified 15-tool SEO, SERP, clean Markdown & GEO (LLM citation Share-of-Voice) MCP server.
Serper MCP — wraps the Serper Google Search API (serper.dev)
Official SerpApi MCP server for Google, Bing, and other search engines.
One MCP server for all web data. Scrape, search, crawl, and AI research in one install.
Related MCP Servers
- AlicenseBqualityDmaintenanceA lightweight, stateless MCP server utilizing Puppeteer for web searches, returning structured JSON results, easily integratable with other MCP-enabled systems.1511 npm1MIT
- AlicenseAqualityDmaintenanceSearches top design platforms like Dribbble and Behance to provide UI inspiration, color palettes, and layout patterns via the Serper API. It allows users to retrieve visual references, articles, and style guides directly within any MCP-compatible client.24421MIT
- FlicenseNot gradedqualityBmaintenanceAn MCP server that enables AI agents to semantically retrieve premium UI components from Awwwards and adapt them into clean React + Tailwind code.1-
- AlicenseNot gradedqualityBmaintenanceMCP server for the MiroMiro design-extraction API. It extracts real design data from live websites—including brand colors, fonts, tokens, SVGs, images, and component code—so AI agents can build from actual values.161 npmMIT