Skip to main content
Glama
GenWaveLLC

SVGMaker MCP Server

by GenWaveLLC

SVGMaker MCP Server

A powerful MCP server for generating, editing, and converting SVG images using SVGMaker API.

Website npm version License Build Status npm downloads

🎨 MCP Server in Action

MCP Capabilities Demo

This very illustration came to life through our own SVGMaker MCP serverβ€”a living example of AI assistants and vector graphics working in perfect harmony via the Model Context Protocol.

Related MCP server: svgwriter-mcp

🌟 Highlights

  • 🎨 AI-Powered SVG Generation: Create SVGs from text descriptions

  • ✏️ Smart SVG Editing: Edit existing SVGs with natural language

  • πŸ–ΌοΈ Raster Mode: Skip vectorization and get a quick PNG instead of SVG

  • πŸ”„ Image-to-SVG Conversion: Convert any image to scalable SVG

  • πŸͺ„ Background Removal: Isolate the foreground subject and get a clean SVG with transparency

  • πŸ‘οΈ Inline Image Preview: Preview generations and gallery items directly in chat

  • πŸ”’ Secure File Operations: Built-in path validation and security

  • ⚑ Real-Time Progress: Live updates during operations

  • πŸ“ Type Safety: Full TypeScript support with type definitions

πŸ“‹ Table of Contents

πŸ’» Requirements

  • Node.js: Minimum version 20.9.0

    node --version  # Should be >= v20.9.0
  • npm: Minimum version 7.0.0

    npm --version   # Should be >= 7.0.0
  • Operating Systems:

    • Linux (Ubuntu 20.04+, CentOS 8+)

    • macOS (10.15+)

    • Windows (10+)

  • SVGMaker API key (Get one here)

πŸ“¦ Package Structure

@genwave/svgmaker-mcp/
β”œβ”€β”€ build/             # Compiled JavaScript files
β”œβ”€β”€ docs/              # Documentation
β”‚   └── api/           # API documentation
β”œβ”€β”€ src/               # Source TypeScript files
β”‚   β”œβ”€β”€ tools/         # MCP tool implementations
β”‚   β”œβ”€β”€ services/      # API integration
β”‚   └── utils/         # Utility functions
└── types/             # TypeScript declarations

πŸš€ Installation

# Using npm
npm install @genwave/svgmaker-mcp

# Using yarn
yarn add @genwave/svgmaker-mcp

Basic Setup

  1. Create .env file:

SVGMAKER_API_KEY="your_api_key_here"
  1. Start the server:

npx svgmaker-mcp

πŸ”Œ LLM Integrations

Every client below can run the server two ways:

  • stdio β€” the server runs on your machine with your API key. Local file paths work, and output_path saves the result to disk.

  • HTTPS β€” the server runs in the cloud at https://mcp.svgmaker.io/mcp and you sign in through the browser. The cloud server cannot see your disk, so output_path is not offered and results come back as hosted SVGMaker URLs. Local files must go through svgmaker_upload first.

The example prompts in each section are given in both shapes. Use the one that matches your setup.

πŸ”Œ Claude Desktop

  1. Add to claude_desktop_config.json.

    stdio (API key):

    {
      "mcpServers": {
        "svgmaker": {
          "command": "npx",
          "args": ["@genwave/svgmaker-mcp"],
          "transport": "stdio",
          "env": {
            "SVGMAKER_API_KEY": "your_api_key_here"
          }
        }
      }
    }

    HTTPS (OAuth browser login β€” no API key):

    Claude Desktop connects to remote servers from the UI, not from the config file: Settings β†’ Connectors β†’ Add custom connector, then enter https://mcp.svgmaker.io/mcp and complete the browser login.

  2. Example usage in Claude Desktop:

    stdio (API key):

    Generate an SVG of a minimalist mountain landscape:
    <mcp>
    {
      "server": "svgmaker",
      "tool": "svgmaker_generate",
      "arguments": {
        "prompt": "Minimalist mountain landscape with sun",
        "output_path": "./landscape.svg",
        "quality": "high",
        "aspectRatio": "landscape"
      }
    }
    </mcp>

    HTTPS (OAuth browser login β€” no API key):

    Generate an SVG of a minimalist mountain landscape and give me the hosted URL:
    <mcp>
    {
      "server": "svgmaker",
      "tool": "svgmaker_generate",
      "arguments": {
        "prompt": "Minimalist mountain landscape with sun",
        "quality": "high",
        "aspectRatio": "landscape"
      }
    }
    </mcp>

πŸ”Œ Claude Code

  1. Add the server with the Claude Code CLI.

    stdio (API key):

    claude mcp add svgmaker --env SVGMAKER_API_KEY=your_api_key_here -- npx -y @genwave/svgmaker-mcp

    HTTPS (OAuth browser login β€” no API key):

    claude mcp add --transport http svgmaker https://mcp.svgmaker.io/mcp

    Then run /mcp inside Claude Code, select svgmaker, and complete the browser login.

  2. Example usage in Claude Code:

    stdio (API key):

    Generate an SVG of a minimalist mountain landscape and save it to ./landscape.svg

    HTTPS (OAuth browser login β€” no API key):

    Generate an SVG of a minimalist mountain landscape and give me the hosted URL of the result

πŸ”Œ Cursor

Install MCP Server

Or configure manually:

  1. Configure in cursor settings.

    stdio (API key):

    {
      "mcpServers": {
        "svgmaker": {
          "type": "local",
          "command": "npx",
          "args": ["@genwave/svgmaker-mcp"],
          "transport": "stdio",
          "env": {
            "SVGMAKER_API_KEY": "your_api_key_here"
          }
        }
      }
    }

    HTTPS (OAuth browser login β€” no API key):

    {
      "mcpServers": {
        "svgmaker": {
          "url": "https://mcp.svgmaker.io/mcp"
        }
      }
    }
  2. Example usage in Cursor:

    stdio (API key):

    Use svgmaker to edit the logo.svg file and make it more modern:
    <mcp>
    {
      "server": "svgmaker",
      "tool": "svgmaker_edit",
      "arguments": {
        "input": "./logo.svg",
        "prompt": "Make it more modern and minimalist",
        "output_path": "./modern_logo.svg",
        "quality": "high"
      }
    }
    </mcp>

    HTTPS (OAuth browser login β€” no API key):

    Use svgmaker to modernize the logo, then give me the hosted URL:
    <mcp>
    {
      "server": "svgmaker",
      "tool": "svgmaker_edit",
      "arguments": {
        "input": "https://example.com/logo.svg",
        "prompt": "Make it more modern and minimalist",
        "quality": "high"
      }
    }
    </mcp>

    For a logo that only exists on your machine, call svgmaker_upload first and pass the returned upl_… id as input.

πŸ”Œ Visual Studio Code

Or configure manually:

  1. Configure in settings.json.

    stdio (API key):

    {
      "servers": {
        "svgmaker": {
          "type": "stdio",
          "command": "npx",
          "args": ["-y", "@genwave/svgmaker-mcp"],
          "env": {
            "SVGMAKER_API_KEY": "<your_api_key>"
          }
        }
      }
    }

    HTTPS (OAuth browser login β€” no API key):

    {
      "servers": {
        "svgmaker": {
          "type": "http",
          "url": "https://mcp.svgmaker.io/mcp"
        }
      }
    }
  2. Example usage in VS Code:

    stdio (API key):

    Generate a new icon for my app:
    <mcp>
    {
      "server": "svgmaker",
      "tool": "svgmaker_generate",
      "arguments": {
        "prompt": "Modern app icon with abstract geometric shapes",
        "output_path": "./assets/icon.svg",
        "quality": "high",
        "aspectRatio": "square"
      }
    }
    </mcp>

    HTTPS (OAuth browser login β€” no API key):

    Generate a new icon for my app and give me the hosted URL:
    <mcp>
    {
      "server": "svgmaker",
      "tool": "svgmaker_generate",
      "arguments": {
        "prompt": "Modern app icon with abstract geometric shapes",
        "quality": "high",
        "aspectRatio": "square"
      }
    }
    </mcp>

πŸ”Œ WindSurf

  1. Configure in ~/.codeium/windsurf/mcp_config.json.

    stdio (API key):

    {
      "mcpServers": {
        "svgmaker": {
          "command": "npx",
          "args": ["-y", "@genwave/svgmaker-mcp"],
          "env": {
            "SVGMAKER_API_KEY": "<your_api_key>"
          }
        }
      }
    }

    HTTPS (OAuth browser login β€” no API key):

    {
      "mcpServers": {
        "svgmaker": {
          "serverUrl": "https://mcp.svgmaker.io/mcp"
        }
      }
    }
  2. Example usage in WindSurf:

    stdio (API key):

    Convert the company logo to SVG:
    <mcp>
    {
      "server": "svgmaker",
      "tool": "svgmaker_convert",
      "arguments": {
        "input": "./branding/logo.png",
        "output_path": "./branding/vector_logo.svg"
      }
    }
    </mcp>

    HTTPS (OAuth browser login β€” no API key):

    Upload ./branding/logo.png with svgmaker_upload, then convert it to SVG:
    <mcp>
    {
      "server": "svgmaker",
      "tool": "svgmaker_convert",
      "arguments": {
        "input": "upl_2f1c8a4e-6b3d-4c9a-8e7f-0a1b2c3d4e5f"
      }
    }
    </mcp>

πŸ”Œ Zed

  1. Configure in settings.

    stdio (API key):

    {
      "context_servers": {
        "svgmaker": {
          "command": {
            "path": "npx",
            "args": ["-y", "@genwave/svgmaker-mcp"],
            "env": {
              "SVGMAKER_API_KEY": "<your_api_key>"
            }
          },
          "settings": {}
        }
      }
    }

    HTTPS (OAuth browser login β€” no API key):

    {
      "context_servers": {
        "svgmaker": {
          "url": "https://mcp.svgmaker.io/mcp"
        }
      }
    }

    You can also add it from the UI: Settings β†’ AI β†’ General β†’ MCP Servers β†’ Add Server β†’ Add Remote MCP Server.

  2. Example usage in Zed:

    stdio (API key):

    Edit an existing SVG file:
    <mcp>
    {
      "server": "svgmaker",
      "tool": "svgmaker_edit",
      "arguments": {
        "input": "./diagrams/flowchart.svg",
        "prompt": "Add rounded corners and smooth gradients",
        "output_path": "./diagrams/enhanced_flowchart.svg",
        "quality": "high"
      }
    }
    </mcp>

    HTTPS (OAuth browser login β€” no API key):

    Edit one of my earlier generations and give me the hosted URL:
    <mcp>
    {
      "server": "svgmaker",
      "tool": "svgmaker_edit",
      "arguments": {
        "input": "gen_abc123",
        "prompt": "Add rounded corners and smooth gradients",
        "quality": "high"
      }
    }
    </mcp>

πŸ”Œ Codex

  1. Add the server with the Codex CLI.

    stdio (API key):

    codex mcp add svgmaker --env SVGMAKER_API_KEY=your_api_key_here -- npx -y @genwave/svgmaker-mcp

    HTTPS (OAuth browser login β€” no API key):

    codex mcp add svgmaker --url https://mcp.svgmaker.io/mcp
  2. Example usage in Codex:

    stdio (API key):

    Generate an SVG of a minimalist mountain landscape and save it to ./landscape.svg:
    <mcp>
    {
      "server": "svgmaker",
      "tool": "svgmaker_generate",
      "arguments": {
        "prompt": "Minimalist mountain landscape with sun",
        "output_path": "./landscape.svg",
        "quality": "high",
        "aspectRatio": "landscape"
      }
    }
    </mcp>

    HTTPS (OAuth browser login β€” no API key):

    Generate an SVG of a minimalist mountain landscape and give me the hosted URL:
    <mcp>
    {
      "server": "svgmaker",
      "tool": "svgmaker_generate",
      "arguments": {
        "prompt": "Minimalist mountain landscape with sun",
        "quality": "high",
        "aspectRatio": "landscape"
      }
    }
    </mcp>

πŸ› οΈ Available Tools

Unless a block is marked otherwise, the JSON examples below show the stdio call shape. Over HTTPS, drop output_path β€” it is not part of the schema there β€” and use the hosted URL that comes back in the result.

Image input and output by transport

svgmaker_edit, svgmaker_convert and svgmaker_remove_background take their image from a single input parameter. What input may contain depends on how the server is running.

input value

stdio (local server)

HTTPS (mcp.svgmaker.io)

/Users/me/panda.png, file:///Users/me/panda.png

βœ… read from disk

❌ the server is in the cloud and cannot see your disk β€” call svgmaker_upload first

https://example.com/logo.png

βœ…

βœ…

upl_2f1c8a4e… (upload id from svgmaker_upload)

βœ…

βœ…

gen_abc123 (generation or gallery id)

βœ… svgmaker_edit and svgmaker_remove_background only

βœ… same

svgmaker_convert does not accept generation ids: the API would vectorize a downscaled preview of an SVG you already own, so the result is strictly worse than what you started with. Convert takes a file path, an https:// URL or an upload id.

For a URL the MCP server never downloads the image β€” it hands the URL to the SVGMaker API, which fetches it. A generation id is passed through as-is and resolved server-side.

Output follows the same split:

stdio

HTTPS

output_path

βœ… offered β€” the file is written to that path

not offered at all: the parameter is absent from the tool schema, because the cloud server has no access to your disk

result when output_path is not used

hosted SVGMaker URL returned

hosted SVGMaker URL returned

Over HTTPS the server never advertises a parameter it cannot honour. A stale client that still sends output_path is rejected with an error that points it at the hosted URL, so no credits are lost.

svgmaker_preview is likewise not offered over HTTPS β€” it reads local disk. Use svgmaker_generations_preview or svgmaker_gallery_preview instead.

input_path is still accepted on all three tools as an alias for input, and generation_id on svgmaker_edit and svgmaker_remove_background, so existing configurations keep working. Supply exactly one source. Prefer input in new code β€” the aliases stay only for compatibility.

svgmaker_upload

HTTPS transport only β€” it does not appear in the tool list over stdio, where local paths already work directly.

Mints a short-lived upload URL so a local file can be used with the cloud server. No bytes pass through the MCP server; your agent performs the upload itself.

{
  "filename": "panda.png"
}

Parameter

Type

Description

filename

string

Required. Name including extension, e.g. panda.png. Kept for reporting only β€” the stored object name is generated server-side and the image type is detected from the file bytes.

The response returns upload_url and expires_in. POST the file there as multipart form data:

curl -X POST -F "file=@/Users/me/panda.png" "<upload_url>"

Your agent must be able to run a shell command to finish this step. Clients with a terminal β€” Claude Code, Cursor, VS Code, WindSurf, Zed, Codex β€” can run the curl themselves. Claude Desktop connected over HTTPS has no shell, so it cannot complete the upload; use an https:// image URL or a generation id there instead.

The response carries the upload id:

{ "success": true, "data": { "upload_id": "upl_2f1c8a4e-6b3d-4c9a-8e7f-0a1b2c3d4e5f" } }

Pass that id as input to svgmaker_edit, svgmaker_convert or svgmaker_remove_background.

The upload URL expires after 5 minutes and works once. Files over 25 MB are rejected, as is anything whose bytes are not a supported image. Uploads cost no credits, are private, and are swept after 24 hours.

svgmaker_generate

Generate SVG images from text prompts. Supports style parameters for fine-grained control over the output.

stdio:

{
  "prompt": "A minimalist mountain landscape with sun",
  "output_path": "/path/to/landscape.svg",
  "quality": "medium",
  "style": "flat",
  "color_mode": "few_colors",
  "composition": "full_scene",
  "background": "transparent"
}

HTTPS β€” no output_path; the result is a hosted SVGMaker URL:

{
  "prompt": "A minimalist mountain landscape with sun",
  "quality": "medium",
  "style": "flat",
  "color_mode": "few_colors",
  "composition": "full_scene",
  "background": "transparent"
}

Raster mode β€” set raster: true to skip vectorization and get a PNG instead of an SVG. Over stdio, use a .png extension for output_path; over HTTPS the PNG comes back as a hosted URL. Cannot be combined with storage (raster results are temporary).

{
  "prompt": "A minimalist mountain landscape with sun",
  "output_path": "/path/to/landscape.png",
  "quality": "medium",
  "raster": true
}

Parameter

Type

Description

raster

boolean

When true, returns a raster PNG instead of SVG (skips vectorization). Over stdio, use a .png output path. Cannot be used with storage.

storage

boolean

When true, stores the generated image permanently in cloud storage. Cannot be used with raster. Defaults to true when raster is not set.

Style parameters (generate & edit)

All parameters below are optional and shared by svgmaker_generate and svgmaker_edit. Only specify the ones the user explicitly requests.

Parameter

Values

Default

Description

quality

low, medium, high

medium

Detail level vs. speed. high forces a square aspect ratio.

aspectRatio

square, portrait, landscape

auto (by quality)

Output shape. Ignored when quality is high (forced square).

background

auto, transparent, opaque

auto

Background style. transparent is good for overlays.

style

flat, line_art, engraving, linocut, silhouette, isometric, cartoon, ghibli

β€”

Art style.

color_mode

full_color, monochrome, few_colors

full_color

Color scheme.

image_complexity

icon, illustration, scene

β€”

Level of detail in the composition.

composition

centered_object, repeating_pattern, full_scene, objects_in_grid

β€”

Layout arrangement.

text_style

only_title, embedded_text

β€”

How text is handled in the design.

svgmaker_edit

Edit existing SVGs or images with natural language. Supports the same style parameters as generate. input accepts a local file path, an https:// URL, an upl_ upload id, or a generation ID (works for both your own generations and public gallery items) β€” see the input matrix.

stdio:

{
  "input": "/path/to/input.svg",
  "prompt": "Add a gradient background and make it more vibrant",
  "output_path": "/path/to/enhanced.svg",
  "quality": "high",
  "style": "cartoon",
  "background": "opaque"
}

HTTPS β€” the source is a generation ID, an https:// URL or an upl_ upload id, and the result is a hosted URL:

{
  "input": "gen_abc123",
  "prompt": "Add a gradient background and make it more vibrant",
  "quality": "high"
}

This shape works over stdio too, when you do not want a local file:

{
  "input": "gen_abc123",
  "prompt": "Make the background blue"
}

Raster mode β€” like generate, set raster: true to get a PNG instead of an SVG. Over stdio, use a .png extension for output_path. Cannot be combined with storage.

{
  "input": "/path/to/input.svg",
  "prompt": "Make it more vibrant",
  "output_path": "/path/to/edited.png",
  "raster": true
}

Parameter

Type

Description

input

string

Image source: local file path (stdio only), https:// URL, upl_ upload id, or generation ID. Required.

input_path

string

Accepted alias for input, restricted to a local file path.

generation_id

string

Accepted alias for input, restricted to a generation or gallery ID.

raster

boolean

When true, returns a raster PNG instead of SVG (skips vectorization). Over stdio, use a .png output path. Cannot be used with storage.

storage

boolean

When true, stores the edited image permanently in cloud storage. Cannot be used with raster. Defaults to true when raster is not set.

svgmaker_convert

Convert raster images to SVG using AI-powered vectorization. input accepts a local file path, an https:// URL or an upl_ upload id β€” see the input matrix. Generation ids are rejected, because converting one would re-vectorize a downscaled preview of an SVG you already have.

stdio:

{
  "input": "/path/to/image.png",
  "output_path": "/path/to/vector.svg"
}

HTTPS β€” no output_path, and the source is a URL or an upload id:

{
  "input": "https://example.com/logo.png"
}

Parameter

Type

Description

input

string

Image source: local file path (stdio only), https:// URL, or upl_ upload id. Generation IDs are not accepted. Required.

input_path

string

Accepted alias for input, restricted to a local file path.

output_path

string

stdio only β€” not offered over HTTPS. Optional absolute path (must end in .svg) to save the result. When omitted, a hosted URL is returned instead.

svgmaker_remove_background

Remove the background from an image and get the result as a clean SVG with transparency. The AI isolates the foreground subject, removes the background, and vectorizes the result. Accepts raster formats (PNG, JPEG, WebP, GIF, TIFF, AVIF) and SVG. input accepts a local file path, an https:// URL, an upl_ upload id, or a generation ID β€” see the input matrix.

stdio β€” provide an output_path (with a .svg extension) to save the SVG locally:

{
  "input": "/path/to/photo.png",
  "output_path": "/path/to/cutout.svg"
}

HTTPS β€” output_path is not offered; the result comes back as a SVGMaker-hosted URL. Omitting it over stdio does the same:

{
  "input": "gen_abc123"
}

Parameter

Type

Description

input

string

Image source: local file path (stdio only), https:// URL, upl_ upload id, or generation ID. Required.

input_path

string

Accepted alias for input, restricted to a local file path.

generation_id

string

Accepted alias for input, restricted to a generation or gallery ID.

output_path

string

stdio only β€” not offered over HTTPS. Optional absolute path (must end in .svg) to save the result. When omitted, a hosted URL is returned instead.

storage

boolean

When true, stores the resulting SVG permanently in cloud storage (appears in your generations). When false, a temporary hosted URL is returned. Defaults to true.

svgmaker_account_info

Get account information including email, display name, account type, and available credits. No parameters required.

{}

svgmaker_account_usage

Get API usage statistics with optional date filtering.

{
  "days": 30
}

Or use a date range:

{
  "start": "2026-01-01",
  "end": "2026-01-31"
}

svgmaker_generations_list

List your SVG generations with optional filtering and pagination.

{
  "page": 1,
  "limit": 20,
  "type": "generate",
  "query": "mountain"
}

svgmaker_generations_get

Get detailed information about a specific generation.

{
  "generation_id": "gen_abc123"
}

svgmaker_generations_delete

Delete a generation and its associated files. Requires a paid account.

{
  "generation_id": "gen_abc123"
}

svgmaker_generations_share

Share a generation by making it publicly accessible.

{
  "generation_id": "gen_abc123"
}

svgmaker_generations_download

Download a generation in various formats. Requires a paid account.

stdio β€” output_path saves the file locally:

{
  "generation_id": "gen_abc123",
  "output_path": "/path/to/output.svg",
  "format": "svg"
}

HTTPS β€” output_path is not offered; the tool returns a hosted download URL:

{
  "generation_id": "gen_abc123",
  "format": "svg"
}

svgmaker_generations_preview

Preview a generation by returning the image directly in the chat context as a PNG image. The LLM can see and describe the image, enabling follow-up edits.

{
  "generation_id": "gen_abc123"
}

Browse the public SVGMaker gallery with optional filtering and pagination.

{
  "page": 1,
  "limit": 20,
  "type": "generate",
  "query": "landscape",
  "pro": "true"
}

Get detailed information about a specific gallery item.

{
  "generation_id": "gal_abc123"
}

Download a gallery item in various formats. Costs 1 credit for SVG formats, 0 credits for WebP/PNG.

stdio β€” output_path saves the file locally:

{
  "generation_id": "gal_abc123",
  "output_path": "/path/to/output.svg",
  "format": "svg"
}

HTTPS β€” output_path is not offered; the tool returns a hosted download URL:

{
  "generation_id": "gal_abc123",
  "format": "svg"
}

Preview a gallery item by returning the image directly in the chat context as a PNG image.

{
  "generation_id": "gal_abc123"
}

svgmaker_preview

stdio transport only β€” this tool is not offered over HTTPS at all, because it reads local disk and the cloud server cannot see your files. Over HTTPS use svgmaker_generations_preview or svgmaker_gallery_preview, which take an id instead of a path.

Preview a local image file by returning it directly in the chat context. Supports PNG, SVG, WebP, and SVGZ formats.

{
  "input": "/path/to/image.svg"
}

Parameter

Type

Description

input

string

Absolute path to the local image file. Required.

file_path

string

Accepted alias for input. Supply exactly one of the two.

βš™οΈ Configuration

Environment Variables

Variable

Description

Required

Default

SVGMAKER_API_KEY

Your SVGMaker API key

βœ… Yes

-

SVGMAKER_RATE_LIMIT_RPM

API rate limit (requests per minute)

❌ No

2

SVGMAKER_BASE_URL

Custom SVGMaker API base URL

❌ No

https://api.svgmaker.io

SVGMAKER_DEBUG

Enable debug logging

❌ No

false

Debug Logging

The server includes comprehensive logging for debugging and monitoring:

Enable Logging:

# Enable debug logging
SVGMAKER_DEBUG=true npx @genwave/svgmaker-mcp

# Or set NODE_ENV to development
NODE_ENV=development npx @genwave/svgmaker-mcp

Log Files Location:

  • macOS/Linux: ~/.cache/svgmaker-mcp/logs/

  • Windows: %LOCALAPPDATA%/svgmaker-mcp/logs/

  • Fallback: ./logs/ (in project directory)

Log File Format:

mcp-debug-2025-06-04T10-30-45-123Z.log

πŸ” Development

Local Setup

  1. Clone and install dependencies:

npm install
  1. Create .env file with your API key

SVGMAKER_API_KEY="your_api_key_here"
  1. Run in development mode:

npm run dev

Testing

Use the MCP Inspector for testing:

npx @modelcontextprotocol/inspector node build/index.js

CI/CD Workflow

This project uses GitHub Actions for continuous integration and deployment:

  1. Continuous Integration

    • Runs on every push to main branch and pull requests

    • Performs linting, type checking, and building

    • Ensures code quality and consistency

  2. Bumping the Version

    • For a patch version (bug fixes):

      npm run version:patch
    • For a minor version (new features):

      npm run version:minor
    • For a major version (breaking changes):

      npm run version:major
  3. Publishing

    • Automatically publishes to npm when the version bump is merged to main

πŸ” Security

  • βœ… Path validation prevents directory traversal

  • βœ… Input sanitization for all parameters

  • βœ… Secure file operation handling

  • βœ… Environment variable protection

  • βœ… Rate limiting support

🀝 Contributing

We welcome contributions! Please see our Contributing Guide for details.

⭐ Features

Input Format Support

  • SVG files (.svg)

  • PNG images (.png)

  • JPEG images (.jpg, .jpeg)

  • Other common image formats

Output Capabilities

  • Clean, optimized SVG output

  • Multiple aspect ratio options

  • Background control (transparent/opaque)

  • High-quality vectorization

πŸ“ License

MIT Β© Genwave AI - see the LICENSE file for details.

A
license - permissive license
Not graded
quality - not tested
B
maintenance

Maintenance

–Maintainers
–Response time
3moRelease cycle
4Releases (12mo)
Commit activity

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

View all related MCP servers

Related MCP Connectors

  • Multilingual semantic SVG icon search with previews for AI coding agents. 20,000+ icons.

  • Generate images, GIFs, and PDFs from HTML, URLs, or templates β€” from your AI agent.

  • Browse, create, edit, and export SVGator animated SVG projects via your SVGator account.

View all MCP Connectors

Latest Blog Posts

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/GenWaveLLC/svgmaker-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server