Kroma MCP
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 "Install 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 MCPFind 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" or "aurora gradient shaders" and Kroma resolves it live from the best design galleries, component libraries, 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.6 specialized tools — inspiration, components, effects/shaders, site scraping, open web search, and source discovery.
Related MCP server: go_serper_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, Behance…) via Google Images for visual UI/UX inspiration. |
| Searches component libraries & docs (shadcn/ui, Magic UI, Aceternity, Uiverse, Tailwind, Radix, Headless UI, Flowbite, daisyUI, 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. |
| 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 the curated source registries so the agent can discover exact |
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_scrape_site_design
{ "url": "https://linear.app", "include_markdown": true }
// kroma_search_design_web
{ "query": "design tokens naming conventions", "sites": ["web.dev", "smashingmagazine.com"] }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.
🖥️ 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_component_code",
"kroma_find_effects_and_shaders",
"kroma_scrape_site_design",
"kroma_search_design_web",
"kroma_list_sources"
]
}
}
}🌐 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-component-code.ts
find-effects-and-shaders.ts
scrape-site-design.ts
search-design-web.ts
list-sources.tsArchitecture 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.
📄 License
MIT © 2026 Kroma MCP
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseBqualityDmaintenanceA lightweight, stateless MCP server utilizing Puppeteer for web searches, returning structured JSON results, easily integratable with other MCP-enabled systems.12701MIT
- Alicense-qualityDmaintenanceA Go-based MCP server that provides comprehensive access to the Serper Google Search API, including tools for images, news, maps, and scholar results. It also features a dedicated endpoint for scraping webpage content directly.13MIT
- Flicense-qualityBmaintenanceAn MCP server that enables AI agents to semantically retrieve premium UI components from Awwwards and adapt them into clean React + Tailwind code.1
- Alicense-qualityBmaintenanceMCP 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.391MIT
Related MCP Connectors
Serper MCP — wraps the Serper Google Search API (serper.dev)
MCP server for Google search results via SERP API
Agent-native MCP server over the public saagarpatel.dev corpus. Read-only, stateless.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/thatcreativetayo/kromamcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server