Canvelete

by canvelete

Not rated
GitHub

About

API-first platform for image optimization and document design. Generate optimized images, PDFs, and documents at scale with our visual editor and REST API.

Details

Author
canvelete
Categories
Other, API, Design

Setup

Install Canvelete in your MCP client (Claude Desktop, Cursor, Windsurf, and others).

Repository: https://github.com/canvelete/Canvelete-MCP-server

Follow the installation instructions in the repository README, then restart your MCP client.

Model Context Protocol (MCP) server for theCanveletedesign platform. This server exposes Canvelete's design capabilities to AI assistants and other MCP-compatible clients, enabling programmatic design creation and manipulation.

- Canvelete Platform- Create designs online
-
Documentation- Full API and platform documentation
-
Get API Key- Generate your API key

- Element Types Guide- Complete guide to all 13 element types (including QR codes & barcodes), their capabilities, and styling limits
-
Asset Search Guide- How to search and use external assets (Pixabay, Unsplash, Iconify, cliparts, illustrations)
-
Examples- Practical examples and use cases
-
MCP Setup Guide- Configuration and usage instructions

# Install globally npm install -g @canveletedotcom/mcp-server # Or use with npx (no installation needed) npx -y @canveletedotcom/mcp-server start

Then configure your MCP client (Claude Desktop, Kiro, etc.) with:

{ "mcpServers": { "canvelete-mcp-server": { "command": "canvelete-mcp", "args": ["start"], "env": { "CANVELETE_API_KEY": "your_api_key_here" } } } }

- Designs: Access user designs, browse templates
- Canvas: View canvas state and elements
- Assets: Browse user's asset library and available fonts
- User: Access profile and preferences
- Metadata: Complete element capabilities, styling limits, and design system documentation

- Design Management: Create, update, delete, duplicate, and export designs
- Canvas Manipulation: Add, update, delete elements; resize canvas; clear canvas

- 13 Element Types: rectangle, circle, text, image, svg, line, polygon, star, qr, barcode, table, container, bezier
- QR Codes: Generate QR codes for URLs, vCards, WiFi, and more
- Barcodes: Support for CODE128, EAN13, UPC, and 7 other formats

- Pixabay: 2.7M+ free stock photos and illustrations
- Unsplash: 3M+ high-quality curated photos
- Iconify: 200K+ icons from 150+ icon sets
- Cliparts: 10K+ curated clipart graphics
- Illustrations: 5K+ artistic illustrations

Prompts provide guided templates for common design tasks:

- create_social_post- Create social media posts (Instagram, Facebook, Twitter, etc.)
- create_presentation_slide- Create presentation slides with title and content
- add_text_element- Add styled text elements to designs

Prompts help AI assistants create designs with proper structure and styling automatically.

Method 1: Global Installation (Recommended)

Install the package globally to use thecanvelete-mcpcommand:

npm install -g @canveletedotcom/mcp-server

Method 2: NPX (No Installation Required)

npx -y @canveletedotcom/mcp-server start
git clone https://github.com/canvelete/canvelete.git cd canvelete/mcp-server npm install npm run build

Then use the local build path in your MCP configuration.

Create a.envfile in the mcp-server directory:

# Required: Canvelete API Key CANVELETE_API_KEY =your_api_key_here # Optional: Canvelete API URL (defaults to https://www.canvelete.com) CANVELETE_API_URL=https://www.canvelete.com # Optional: For AI generation features (if using Civi AI directly) GEMINI_API_KEY=your_gemini_api_key

You need a Canvelete API key to use the MCP server:
- Log in to yourCanvelete account
- Go to
Settings → API Keys
- Generate a new API key
- Save the key securely

For detailed API documentation, seedocs.canvelete.com.

You can provide the API key in two ways:

Option 1: Environment Variable(recommended for Claude Desktop)

Option 2: Tool Arguments(for programmatic use)

{ "apiKey": "your_api_key_here", "name": "My Design" }

- macOS:~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:%APPDATA%\Claude\claude_desktop_config.json
- Linux:~/.config/Claude/claude_desktop_config.json

{ "mcpServers": { "canvelete-mcp-server": { "command": "canvelete-mcp", "args": ["start"], "env": { "CANVELETE_API_KEY": "your_api_key_here", "CANVELETE_API_URL": "https://www.canvelete.com" } } } }
{ "mcpServers": { "canvelete-mcp-server": { "command": "npx", "args": ["-y", "@canveletedotcom/mcp-server", "start"], "env": { "CANVELETE_API_KEY": "your_api_key_here", "CANVELETE_API_URL": "https://www.canvelete.com" } } } }
{ "mcpServers": { "canvelete-mcp-server": { "command": "node", "args": ["/absolute/path/to/mcp-server/dist/index.cjs", "start"], "env": { "CANVELETE_API_KEY": "your_api_key_here", "CANVELETE_API_URL": "https://www.canvelete.com" } } } }

-

Find your Kiro config file:~/.kiro/settings/mcp.json

Any MCP-compatible client can use this server. Configure it to run:

- Command:canvelete-mcp(if installed globally) ornpx -y @canveletedotcom/mcp-server
- Args:["start"]
- Environment: SetCANVELETE_API_KEYand optionallyCANVELETE_API_URL

Once configured, you can ask your AI assistant:

- "What designs do I have in Canvelete?"
- "Create a new 1080x1080 Instagram post design called 'Summer Sale'"
- "Add a text element to design {id} that says 'Hello World'"
- "Export design {id} as PNG"
- "List all my uploaded assets"
- "Apply template {template-id} to design {design-id}"
- "Create a presentation slide with title 'Welcome' and subtitle 'Introduction'"
- "Search for stock images of mountains"

Quick Example: Create a Social Media Post

// 1. Create a design create_design({ name: "Summer Sale Post", width: 1080, height: 1080 }) // 2. Add background add_element({ designId: "{design-id}", element: { type: "rectangle", x: 0, y: 0, width: 1080, height: 1080, fill: "linear-gradient(135deg, #667eea 0%, #764ba2 100%)" } }) // 3. Add text add_element({ designId: "{design-id}", element: { type: "text", text: "SUMMER SALE", x: 100, y: 400, width: 880, height: 150, fontSize: 96, fontFamily: "Poppins", fill: "#FFFFFF", fontWeight: "bold" } }) // 4. Export export_design({ designId: "{design-id}", format: "png", quality: 100 })

SeeEXAMPLES.mdfor more detailed examples. For complete API documentation, visitdocs.canvelete.com.

Resources provide read-only access to Canvelete data:

- add_element- Add any element type (shape, text, image, SVG, etc.)
- update_element- Modify element properties (position, style, content)
- delete_element- Remove an element from canvas
- resize_canvas- Change canvas dimensions
- clear_canvas- Remove all elements from canvas

- list_templates- Browse available design templates
- apply_template- Apply a template to an existing design
- create_template- Save a design as a reusable template

- list_assets- View user's asset library (images, fonts, etc.)
- search_stock_images- Search Pixabay for stock images
- search_icons- Search for icon assets
- search_clipart- Search for clipart images
- search_illustrations- Search for illustration assets
- list_fonts- List available fonts by category
- upload_asset- Upload a new asset to the library

- generate_design- Generate designs using AI
- chat_with_civi- Interact with Civi AI for design assistance

- rectangle- Rectangular shapes
- circle- Circular/elliptical shapes
- text- Text elements with fonts
- image- Images from URLs or assets
- line- Straight lines
- polygon- Multi-sided shapes
- star- Star shapes
- svg- SVG graphics
- bezier- Curved paths
- container- Group elements
- table- Data tables

This server follows theMCP Protocol specification (2025-11-25).

- MCP_COMPLIANCE.md- Implementation best practices and protocol compliance
-
SPECIFICATION_COMPLIANCE.md- Detailed compliance with official MCP specification (2025-11-25)

- ✅ All logging uses stderr (never stdout) to avoid corrupting JSON-RPC messages
- ✅ Proper error handling and formatting
- ✅ Complete tool, resource, and prompt definitions
- ✅ Standard MCP server structure and initialization

# Use MCP Inspector to verify compliance npx @modelcontextprotocol/inspector canvelete-mcp start

- Generate a new API key in Canvelete Settings → API Keys
- Verify the key is set correctly in your MCP config
- Check key hasn't expired or been revoked
- Run the test script to verify:npx tsx test-auth.ts your_api_key

- Ensure API key has appropriate scopes
- Verify you own the resource you're modifying

- CheckCANVELETE_API_URLis correct (default:https://www.canvelete.com)
- Verify network connectivity to the Canvelete API
- For local development, ensure the Canvelete app is running

Claude Desktop doesn't show resources

- Restart Claude Desktop
- Check the config file syntax
- Verify the server path is absolute
- Check stderr logs for errors

The MCP server supports real-time synchronization with the design editor via WebSocket. When you make changes through MCP tools, the editor will instantly update to reflect those changes.
- Start the WebSocket server (in the main Canvelete directory):
-

The WebSocket server runs on port 3001 by default. You can change this with theWS_PORTenvironment variable.

Open the design editor - you'll see a sync indicator in the top-right corner showing connection status.

# WebSocket server port (default: 3001) WS_PORT=3001 # WebSocket server URL for MCP server to connect to WS_SERVER_URL=ws://localhost:3001/ws

- Never commit API keysto version control or share them publicly
- Use environment variablesor secure configuration files
- Rotate keys regularlyif compromised or exposed
- Use separate keysfor development and production

- The MCP server accesses your Canvelete account data through API keys
- All API communication uses HTTPS encryption
- API keys have scoped permissions based on your account settings
- Review your API key permissions in Canvelete Settings → API Keys

- API keys may have rate limits based on your subscription plan
- The server respects rate limits and will return appropriate errors
- Check your subscription plan for rate limit details

- Only use trusted API keys from your own account
- Don't share your API keys with untrusted parties
- Monitor your API usage in Canvelete dashboard
- Report security issues to
security@canvelete.com(do not open public issues)

The Canvelete MCP Server supports bothlocalandclouddeployment. SeeDEPLOYMENT.mdfor detailed deployment instructions.

The server runs locally on your machine using stdio transport, which is the standard for MCP clients like Claude Desktop, Kiro, and Cursor.

- ✅ Full control over your environment
- ✅ No network latency
- ✅ Data stays on your machine
- ✅ Simple setup and configuration
- ✅ Works offline (once API key is cached)

- Personal development
- Testing and debugging
- Privacy-sensitive workflows
- Desktop applications (Claude Desktop, Cursor, etc.)

The server can be deployed to cloud platforms using containerization or serverless functions. The stdio transport works seamlessly in cloud environments.

- ✅ Scalable and always available
- ✅ No local resource usage
- ✅ Accessible from multiple devices
- ✅ Managed infrastructure
- ✅ Easy updates and maintenance

- Docker/Containers: Deploy to any container platform (Docker, Kubernetes, etc.)
- Google Cloud Run: Serverless container platform
- Azure Functions: Serverless with custom handlers
- AWS Lambda: Serverless functions (with stdio adapter)
- Vercel/Netlify: Serverless platforms
- Any Node.js hosting: Railway, Render, Fly.io, etc.

# Docker deployment (using published package) docker build -f Dockerfile.simple -t canvelete-mcp-server . docker run -e CANVELETE_API_KEY=your_key canvelete-mcp-server # Or use docker-compose docker-compose up -d

SeeDEPLOYMENT.mdfor complete deployment guides for:

- Docker/Containers (Dockerfile included)
- Google Cloud Run
- Azure Functions
- AWS Lambda
- Railway, Render, Fly.io
- Vercel/Netlify

- Node.js: >= 18.0.0
- Canvelete Account: Sign up at
canvelete.com
- Canvelete API Key: Get one from
Canvelete Settings → API Keys
- Documentation: See
docs.canvelete.comfor API reference

Contributions are welcome! Please seeCONTRIBUTING.mdfor guidelines.
- Fork the repository
- Create your feature branch (git checkout -b feature/amazing-feature)
- Commit your changes (git commit -m 'Add some amazing feature')
- Push to the branch (git push origin feature/amazing-feature)
- Open a Pull Request

For detailed contribution guidelines, code standards, and development setup, seeCONTRIBUTING.md.

SeeCHANGELOG.mdfor a detailed list of changes and version history.

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.