A powerful MCP server for generating, editing, and converting SVG images using SVGMaker API. 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. - π¨ AI-Powered SVG Generation: Create SVGs from text descriptions - βοΈ Smart SVG Editing: Edit existing SVGs with natural
Add this skill
npx mdskills install GenWaveLLC/svgmaker-mcpWell-documented MCP server with three useful SVG tools and comprehensive integration guides
1# SVGMaker MCP Server2A powerful MCP server for generating, editing, and converting SVG images using SVGMaker API.34[](https://svgmaker.io)5[](https://www.npmjs.com/package/@genwave/svgmaker-mcp)6[](https://github.com/GenWaveLLC/svgmaker-mcp/blob/main/LICENSE)7[](https://github.com/GenWaveLLC/svgmaker-mcp/actions)8[](https://www.npmjs.com/package/@genwave/svgmaker-mcp)910## π¨ MCP Server in Action11121314*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.*1516## π Highlights1718- **π¨ AI-Powered SVG Generation**: Create SVGs from text descriptions19- **βοΈ Smart SVG Editing**: Edit existing SVGs with natural language20- **π Image-to-SVG Conversion**: Convert any image to scalable SVG21- **π Secure File Operations**: Built-in path validation and security22- **β‘ Real-Time Progress**: Live updates during operations23- **π Type Safety**: Full TypeScript support with type definitions2425## π Table of Contents2627- [Requirements](#-requirements)28- [Installation](#-installation)29- [Quick Start](#-quick-start)30- [LLM Integrations](#-llm-integrations)31- [Available Tools](#οΈ-available-tools)32- [Configuration](#οΈ-configuration)33- [Development](#-development)34- [Contributing](#-contributing)3536## π» Requirements3738- Node.js: Minimum version 18.0.039 ```bash40 node --version # Should be >= v18.0.041 ```42- npm: Minimum version 7.0.043 ```bash44 npm --version # Should be >= 7.0.045 ```46- Operating Systems:47 - Linux (Ubuntu 20.04+, CentOS 8+)48 - macOS (10.15+)49 - Windows (10+)50- SVGMaker API key ([Get one here](https://svgmaker.io/account))5152## π¦ Package Structure5354```55@genwave/svgmaker-mcp/56βββ build/ # Compiled JavaScript files57βββ docs/ # Documentation58β βββ api/ # API documentation59βββ src/ # Source TypeScript files60β βββ tools/ # MCP tool implementations61β βββ services/ # API integration62β βββ utils/ # Utility functions63βββ types/ # TypeScript declarations64```6566## π Installation6768```bash69# Using npm70npm install @genwave/svgmaker-mcp7172# Using yarn73yarn add @genwave/svgmaker-mcp74```7576### Basic Setup77781. Create .env file:79```bash80SVGMAKER_API_KEY="your_api_key_here"81```82832. Start the server:84```bash85npx svgmaker-mcp86```8788## π LLM Integrations8990### π Claude Desktop91921. Add to claude_desktop_config.json:93```json94{95 "mcpServers": {96 "svgmaker": {97 "command": "npx",98 "args": ["@genwave/svgmaker-mcp"],99 "transport": "stdio",100 "env": {101 "SVGMAKER_API_KEY": "your_api_key_here"102 }103 }104 }105}106```1071082. Example Claude prompt:109```110Generate an SVG of a minimalist mountain landscape:111<mcp>112{113 "server": "svgmaker",114 "tool": "svgmaker_generate",115 "arguments": {116 "prompt": "Minimalist mountain landscape with sun",117 "output_path": "./landscape.svg",118 "quality": "high",119 "aspectRatio": "landscape"120 }121}122</mcp>123```124125### π Cursor126127[](https://cursor.com/install-mcp?name=svgmaker&config=eyJ0eXBlIjoibG9jYWwiLCJjb21tYW5kIjoibnB4IEBnZW53YXZlL3N2Z21ha2VyLW1jcCIsInRyYW5zcG9ydCI6InN0ZGlvIiwiZW52Ijp7IlNWR01BS0VSX0FQSV9LRVkiOiJ5b3VyX2FwaV9rZXlfaGVyZSJ9fQ%3D%3D)128129130Or configure manually:1311321. Configure in cursor settings:133```json134{135 "mcpServers": {136 "svgmaker": {137 "type": "local",138 "command": "npx",139 "args": ["@genwave/svgmaker-mcp"],140 "transport": "stdio",141 "env": {142 "SVGMAKER_API_KEY": "your_api_key_here"143 }144 }145 }146}147```1481492. Example usage in Cursor:150```151Use svgmaker to edit the logo.svg file and make it more modern:152<mcp>153{154 "server": "svgmaker",155 "tool": "svgmaker_edit",156 "arguments": {157 "input_path": "./logo.svg",158 "prompt": "Make it more modern and minimalist",159 "output_path": "./modern_logo.svg",160 "quality": "high"161 }162}163</mcp>164```165166### π Visual Studio Code167168[<img alt="Install in VS Code (npx)" src="https://img.shields.io/badge/VS_Code-VS_Code?style=flat-square&label=Install%20SVGMaker%20MCP&color=0098FF">](https://insiders.vscode.dev/redirect/mcp/install?name=svgmaker&inputs=%5B%7B%22type%22%3A%22promptString%22%2C%22id%22%3A%22apiKey%22%2C%22description%22%3A%22SVGMaker%20API%20Key%22%2C%22password%22%3Atrue%7D%5D&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40genwave%2Fsvgmaker-mcp%22%5D%2C%22env%22%3A%7B%22SVGMAKER_API_KEY%22%3A%22%24%7Binput%3AapiKey%7D%22%7D%7D)169170171Or configure manually:1721731. Configure in settings.json:174```json175{176 "servers": {177 "svgmaker": {178 "type": "stdio",179 "command": "npx",180 "args": ["-y", "@genwave/svgmaker-mcp"],181 "env": {182 "SVGMAKER_API_KEY": "<your_api_key>"183 }184 }185 }186}187```1881892. Example usage in VS Code:190```191Generate a new icon for my app:192<mcp>193{194 "server": "svgmaker",195 "tool": "svgmaker_generate",196 "arguments": {197 "prompt": "Modern app icon with abstract geometric shapes",198 "output_path": "./assets/icon.svg",199 "quality": "high",200 "aspectRatio": "square"201 }202}203</mcp>204```205206### π WindSurf2072081. Configure in settings:209```json210{211 "mcpServers": {212 "svgmaker": {213 "command": "npx",214 "args": ["-y", "@genwave/svgmaker-mcp"],215 "env": {216 "SVGMAKER_API_KEY": "<your_api_key>"217 }218 }219 }220}221```2222232. Example usage in WindSurf:224```225Convert the company logo to SVG:226<mcp>227{228 "server": "svgmaker",229 "tool": "svgmaker_convert",230 "arguments": {231 "input_path": "./branding/logo.png",232 "output_path": "./branding/vector_logo.svg"233 }234}235</mcp>236```237238### π Zed2392401. Configure in settings:241```json242{243 "context_servers": {244 "svgmaker": {245 "command": {246 "path": "npx",247 "args": ["-y", "@genwave/svgmaker-mcp"],248 "env": {249 "SVGMAKER_API_KEY": "<your_api_key>"250 }251 },252 "settings": {}253 }254 }255}256```2572582. Example usage in Zed:259```260Edit an existing SVG file:261<mcp>262{263 "server": "svgmaker",264 "tool": "svgmaker_edit",265 "arguments": {266 "input_path": "./diagrams/flowchart.svg",267 "prompt": "Add rounded corners and smooth gradients",268 "output_path": "./diagrams/enhanced_flowchart.svg",269 "quality": "high"270 }271}272</mcp>273```274275## π οΈ Available Tools276277### svgmaker_generate278279Generate SVG images from text prompts. Supports style parameters for fine-grained control over the output.280281```json282{283 "prompt": "A minimalist mountain landscape with sun",284 "output_path": "/path/to/landscape.svg",285 "quality": "medium",286 "style": "flat",287 "color_mode": "few_colors",288 "composition": "full_scene",289 "background": "transparent"290}291```292293### svgmaker_edit294295Edit existing SVGs or images with natural language. Supports the same style parameters as generate.296297```json298{299 "input_path": "/path/to/input.svg",300 "prompt": "Add a gradient background and make it more vibrant",301 "output_path": "/path/to/enhanced.svg",302 "quality": "high",303 "style": "cartoon",304 "background": "opaque"305}306```307308### svgmaker_convert309310Convert raster images to SVG using AI-powered vectorization.311312```json313{314 "input_path": "/path/to/image.png",315 "output_path": "/path/to/vector.svg"316}317```318319## βοΈ Configuration320321### Environment Variables322323| Variable | Description | Required | Default |324|----------|-------------|----------|---------|325| `SVGMAKER_API_KEY` | Your SVGMaker API key | β Yes | - |326| `SVGMMAKER_RATE_LIMIT_RPM` | API rate limit (requests per minute) | β No | 2 |327| `SVGMAKER_BASE_URL` | Custom SVGMaker API base URL | β No | `https://api.svgmaker.io` |328| `SVGMAKER_DEBUG` | Enable debug logging | β No | `false` |329330### Debug Logging331332The server includes comprehensive logging for debugging and monitoring:333334**Enable Logging:**335```bash336# Enable debug logging337SVGMAKER_DEBUG=true npx @genwave/svgmaker-mcp338339# Or set NODE_ENV to development340NODE_ENV=development npx @genwave/svgmaker-mcp341```342343**Log Files Location:**344- **macOS/Linux**: `~/.cache/svgmaker-mcp/logs/`345- **Windows**: `%LOCALAPPDATA%/svgmaker-mcp/logs/`346- **Fallback**: `./logs/` (in project directory)347348**Log File Format:**349```350mcp-debug-2025-06-04T10-30-45-123Z.log351```352353## π Development354355### Local Setup3563571. Clone and install dependencies:358```bash359npm install360```3613622. Create .env file with your API key363```bash364SVGMAKER_API_KEY="your_api_key_here"365```3663673. Run in development mode:368```bash369npm run dev370```371372### Testing373374Use the MCP Inspector for testing:375```bash376npx @modelcontextprotocol/inspector node build/index.js377```378379### CI/CD Workflow380381This project uses GitHub Actions for continuous integration and deployment:3823831. **Continuous Integration**384 - Runs on every push to main branch and pull requests385 - Performs linting, type checking, and building386 - Ensures code quality and consistency3873882. **Releasing a New Version**389 - To release a patch version (bug fixes):390 ```bash391 npm run release:patch392 ```393 - To release a minor version (new features):394 ```bash395 npm run release:minor396 ```397 - To release a major version (breaking changes):398 ```bash399 npm run release:major400 ```4014023. **Publishing**403 - Automatically publishes to npm when a new version tag is pushed404405## π Security406407- β Path validation prevents directory traversal408- β Input sanitization for all parameters409- β Secure file operation handling410- β Environment variable protection411- β Rate limiting support412413## π€ Contributing414415We welcome contributions! Please see our [Contributing Guide](https://github.com/GenWaveLLC/svgmaker-mcp/blob/main/CONTRIBUTING.md) for details.416417## β Features418419### Input Format Support420- SVG files (.svg)421- PNG images (.png)422- JPEG images (.jpg, .jpeg)423- Other common image formats424425### Output Capabilities426- Clean, optimized SVG output427- Multiple aspect ratio options428- Background control (transparent/opaque)429- High-quality vectorization430431## π License432433MIT Β© [Genwave AI](https://genwave.xyz) - see the [LICENSE](https://github.com/GenWaveLLC/svgmaker-mcp/blob/main/LICENSE) file for details.434
Full transparency β inspect the skill content before installing.