Labsco
Canvelete logo

Canvelete

from Canvelete

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

πŸ”₯πŸ”₯πŸ”₯βœ“ VerifiedPaid serviceNeeds API keys

Canvelete MCP Server

MCP Badge

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

πŸ”— Links:

πŸ“š MCP Server Documentation:

  • 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

Features

Resources (Read-Only Data Access)

  • 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

Tools (Actions)

  • 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
  • Templates: List, apply, and create templates
  • Assets: Comprehensive asset search across multiple sources
    • 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
  • Fonts: 30+ professional fonts with metadata and pairing recommendations
  • Shapes: 70+ SVG shapes from 8 categories (basic, arrows, stars, callouts, nature, symbols, geometric, extra)
  • AI Integration: Access Civi AI for design generation

Available Prompts

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.

Available Resources

Resources provide read-only access to Canvelete data:

URIDescription
canvelete://api/designs/listList all user's designs with pagination
canvelete://api/designs/templatesBrowse public design templates
canvelete://api/design/{id}Get detailed information about a specific design
canvelete://api/canvas/{designId}Get the current canvas state for a design
canvelete://api/canvas/{designId}/elementsGet all elements on a design canvas
canvelete://api/assets/libraryUser's uploaded assets (images, fonts, etc.)
canvelete://api/assets/fontsList of all available fonts for text elements
canvelete://api/user/profileUser profile and subscription information
canvelete://api/user/preferencesUser editor preferences and settings
canvelete://api/metadata/schemaSystem metadata, schemas, and property definitions

Available Tools

Design Management Tools

  • list_designs - List all user's designs with pagination and search
  • get_design - Get detailed design info including canvas data
  • create_design - Create new design with custom dimensions
  • update_design - Update design properties (name, description, visibility)
  • delete_design - Delete a design permanently
  • duplicate_design - Fork/copy an existing design
  • export_design - Export design to PNG, JPG, PDF, or SVG format

Canvas Manipulation Tools

  • 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

Template Tools

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

Asset Management Tools

  • 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

AI Tools

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

Element Types

Supported canvas element types:

  • 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

Development

Build

npm run build

Run in Development

npm run dev

Type Check

npm run type-check

Clean Build

npm run clean
npm run build

MCP Protocol Compliance

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

Compliance Documentation:

Key Compliance Features:

  • βœ… 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

Testing Compliance:

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

Real-time Sync

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.

Setup

  1. Start the WebSocket server (in the main Canvelete directory):
pnpm ws
  1. The WebSocket server runs on port 3001 by default. You can change this with the WS_PORT environment variable.

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

How it works

  • When MCP tools modify a design (add/update/delete elements, resize canvas, etc.), the changes are broadcast via WebSocket
  • All connected editor clients subscribed to that design receive instant updates
  • The editor shows a "Live" indicator when connected, with a count of received updates

Environment Variables

# WebSocket server port (default: 3001)
WS_PORT=3001

# WebSocket server URL for MCP server to connect to
WS_SERVER_URL=ws://localhost:3001/ws

Security & Privacy

API Key Security

  • Never commit API keys to version control or share them publicly
  • Use environment variables or secure configuration files
  • Rotate keys regularly if compromised or exposed
  • Use separate keys for development and production

Data Privacy

  • 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

Rate Limiting

  • 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

Best Practices

  • 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)

Contributing

Contributions are welcome! Please see CONTRIBUTING.md for guidelines.

Quick steps:

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

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

Changelog

See CHANGELOG.md for a detailed list of changes and version history.

License

MIT License - see LICENSE file for details.

Support

For issues and questions:

Related Links

Canvelete Resources

MCP Resources