icogenie-mcp

icogenie-mcp

AI-powered SVG icon generation MCP server. Generate production-ready SVG icons from text descriptions with customizable styles, sizes, and themes.

Category
Visit Server

README

@icogenie/mcp

npm version npm downloads MCP Protocol License: MIT

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:

  1. Open your browser for authentication
  2. Ask you to approve access
  3. 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

  1. Check credits:

    check_credits()
    → { credits: 50, team: { name: "Personal" } }
    
  2. Generate a single icon:

    generate_icon({ prompt: "notification bell icon", style: "outline" })
    → { sessionId: "abc123", preview: "...", creditsRemaining: 49 }
    
  3. 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 }
    
  4. Download final package:

    download_icon({ generationId: "abc123", outputPath: "./bell-icon.zip" })
    → { savedTo: "./bell-icon.zip" }
    

Bundle Workflow

  1. Plan the bundle (free):

    normalize_bundle({ description: "e-commerce app icons", targetCount: 8 })
    → { icons: [{ name: "cart", ... }, ...], styleRecommendation: "outline" }
    
  2. Review and generate (pass bundleId for traceability):

    generate_bundle({ icons: [...], style: "outline", bundleId: "bundle_abc" })
    → { bundleId: "bundle_abc", icons: [...], credits: { previewUsed: 8 } }
    
  3. 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

License

MIT

Recommended Servers

playwright-mcp

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.

Official
Featured
TypeScript
Magic Component Platform (MCP)

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.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

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.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

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.

Official
Featured
TypeScript
Kagi MCP Server

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.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

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.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured