icogenie-mcp
AI-powered SVG icon generation MCP server. Generate production-ready SVG icons from text descriptions with customizable styles, sizes, and themes.
README
@icogenie/mcp
MCP (Model Context Protocol) server for IcoGenie. Enables AI agents like Claude to generate production-ready SVG icons programmatically.
Installation
npm install -g @icogenie/mcp
# or use directly with npx
npx @icogenie/mcp
Configuration
Claude Desktop
Add to your Claude Desktop configuration (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"icogenie": {
"command": "npx",
"args": ["-y", "@icogenie/mcp"]
}
}
}
Claude Code
The server works automatically when installed globally or via npx.
Authentication
On first use, the MCP server will:
- Open your browser for authentication
- Ask you to approve access
- Save the session token to
~/.icogenie/config.json
Subsequent uses are automatic - the token is shared with the IcoGenie CLI.
CI/CD Environments
Set ICOGENIE_SESSION_TOKEN environment variable to skip browser authentication:
export ICOGENIE_SESSION_TOKEN="your-session-token"
Available Tools
generate_icon
Generate a single icon preview from a text description.
Cost: 1 credit
generate_icon({
prompt: "home icon",
style: "solid", // or "outline"
variations: 1, // 1, 2, or 4
referenceImagePath: "/path/to/reference.png" // optional
})
Returns: { sessionId, preview, previews, creditsRemaining, sessionData, suggestions }
regenerate_icon
Regenerate a specific icon variation. Returns 4 candidate previews — use confirm_regeneration to finalize your choice (two-phase flow).
Cost: 1 credit
regenerate_icon({
sessionId: "abc123", // for single icons
bundleId: "xyz789", // for bundles (use one or the other)
index: 0, // which variation (0-based)
prompt: "Make it more 3D" // optional refinement
})
Returns: { candidates, regenToken, creditsRemaining }
confirm_regeneration
Finalize a regeneration by selecting one of the 4 candidates.
Cost: Free (included in regenerate_icon)
confirm_regeneration({
regenToken: "tok_abc123",
selectedIndex: 2 // 0-3, which candidate to keep
})
Returns: { success, preview, creditsRemaining }
check_credits
Check your current credit balance.
Cost: Free
check_credits()
Returns: { credits, team, user }
download_icon
Download the final SVG + PNG package for an icon or bundle.
Cost: 5 credits (single) or 4 credits/icon (bundle)
download_icon({
generationId: "abc123", // or bundleId
outputPath: "./icons.zip" // optional, returns base64 if omitted
})
normalize_bundle
Plan an icon bundle by generating an AI-enhanced icon list from a description.
Cost: Free (rate-limited)
normalize_bundle({
description: "food delivery app",
targetCount: 10,
style: "solid"
})
Returns: { bundleId, icons, bundleType, styleRecommendation, reasoning }
generate_bundle
Generate a bundle of icons from an icon list.
Cost: 1 credit per icon
generate_bundle({
icons: [
{ name: "home", description: "Home navigation icon" },
{ name: "cart", description: "Shopping cart icon" }
],
style: "solid",
bundleId: "bundle_abc123" // optional, from normalize_bundle
})
Returns: { bundleId, iconCount, icons: [{ name, description, preview }], pricing, creditsUsed, creditsRemaining }
save_to_library
Save a generated icon to your personal library.
Cost: Free
save_to_library({
generationId: "abc123",
name: "notification-bell", // optional display name
tags: ["ui", "alerts"] // optional tags
})
Returns: { success, libraryItemId }
list_library
List icons saved in your library.
Cost: Free
list_library({
page: 1, // optional, default 1
limit: 20, // optional, default 20
tag: "ui" // optional filter
})
Returns: { items: [{ id, name, tags, preview, createdAt }], total, page }
download_from_library
Download an icon from your library as SVG + PNG.
Cost: Free
download_from_library({
libraryItemId: "lib_abc123",
outputPath: "./bell-icon.zip" // optional, returns base64 if omitted
})
Returns: { savedTo } or { base64, filename }
claim_daily_credits
Claim 2 free credits, available once every 24 hours.
Cost: Free
claim_daily_credits()
Returns: { credited, creditsRemaining, nextClaimAt }
Example Workflow
-
Check credits:
check_credits() → { credits: 50, team: { name: "Personal" } } -
Generate a single icon:
generate_icon({ prompt: "notification bell icon", style: "outline" }) → { sessionId: "abc123", preview: "...", creditsRemaining: 49 } -
Refine if needed (two-phase):
regenerate_icon({ sessionId: "abc123", index: 0, prompt: "Add a dot indicator" }) → { candidates: ["...", "...", "...", "..."], regenToken: "tok_xyz", creditsRemaining: 48 } confirm_regeneration({ regenToken: "tok_xyz", selectedIndex: 1 }) → { success: true, preview: "...", creditsRemaining: 48 } -
Download final package:
download_icon({ generationId: "abc123", outputPath: "./bell-icon.zip" }) → { savedTo: "./bell-icon.zip" }
Bundle Workflow
-
Plan the bundle (free):
normalize_bundle({ description: "e-commerce app icons", targetCount: 8 }) → { icons: [{ name: "cart", ... }, ...], styleRecommendation: "outline" } -
Review and generate (pass bundleId for traceability):
generate_bundle({ icons: [...], style: "outline", bundleId: "bundle_abc" }) → { bundleId: "bundle_abc", icons: [...], credits: { previewUsed: 8 } } -
Download bundle:
download_icon({ bundleId: "xyz789", outputPath: "./ecommerce-icons.zip" })
Environment Variables
| Variable | Description | Default |
|---|---|---|
ICOGENIE_API_URL |
API endpoint | https://www.icogenie.xyz |
ICOGENIE_SESSION_TOKEN |
Session token (for CI/CD) | - |
ICOGENIE_CONFIG_DIR |
Config directory | ~/.icogenie |
Credit Pricing
| Action | Cost |
|---|---|
| Preview (single) | 1 credit |
| Preview (bundle) | 1 credit/icon |
| Download (single) | 5 credits |
| Download (bundle) | 4 credits/icon |
| Regenerate | 1 credit |
| Daily claim | 2 free credits/day |
| Library ops | Free |
Purchase credits at www.icogenie.xyz.
When to Use MCP vs CLI vs Web
| Use Case | Best Option |
|---|---|
| Generate icons inside Claude/Cursor | MCP |
| Automate in CI/CD pipelines | CLI |
| Quick one-off generation | Web |
| Batch generate icon bundles | CLI or MCP |
| Browse and manage icon library | Web |
Related
- @icogenie/cli - Command-line interface
- IcoGenie Web - Web application
- AI Agent Docs - Machine-readable documentation
- Developer Docs - Integration guides
License
MIT
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.