{"_id":"@canveletedotcom/mcp-server","_rev":"6-16c97602dfa9f99859259d1ea76fe2d4","name":"@canveletedotcom/mcp-server","dist-tags":{"latest":"1.1.1"},"versions":{"1.0.1":{"name":"@canveletedotcom/mcp-server","version":"1.0.1","keywords":["mcp","model-context-protocol","canvelete","design","ai","cli"],"author":{"name":"Canvelete"},"license":"MIT","_id":"@canveletedotcom/mcp-server@1.0.1","maintainers":[{"name":"canveletedotcom","email":"amanuelgaromsa@gmail.com"}],"bin":{"canvelete-mcp":"dist/index.cjs"},"dist":{"shasum":"9f0f91ad7db64e59ed47e623bc9895ba3d189533","tarball":"https://registry.npmjs.org/@canveletedotcom/mcp-server/-/mcp-server-1.0.1.tgz","fileCount":31,"integrity":"sha512-HFfYqYm+OZoP2CLVj/uV1LdzVZ1Hyd84xBgJKamhs1W+tXW4Quzvk9e1QG7e/IpwQ8kyuhySYIoqAri0NMuaSQ==","signatures":[{"sig":"MEUCIQDBv86zWbr1RSmcnVW/RaL2hzs2saB5Nll9gwxYOIyUCwIgdYifvPRA0jmp8P4iKEBf9e50Hz2YTaL7tIdY3qfFV5I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1445275},"main":"dist/index.cjs","type":"module","engines":{"node":">=18.0.0"},"scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsup","clean":"rm -rf dist","start":"node dist/index.cjs","test:watch":"vitest","type-check":"tsc --noEmit","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"canveletedotcom","email":"amanuelgaromsa@gmail.com"},"_npmVersion":"11.2.0","description":"Model Context Protocol server for Canvelete design platform","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ws":"^8.18.0","zod":"3.25.67","dotenv":"^16.4.5","nanoid":"^5.0.7","commander":"^12.1.0","node-fetch":"^3.3.2","zod-to-json-schema":"^3.25.0","@modelcontextprotocol/sdk":"^1.0.4"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","tsup":"^8.3.5","vitest":"^2.0.0","@types/ws":"^8.5.13","typescript":"^5.0.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_1.0.1_1765927441321_0.010514494680810449","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@canveletedotcom/mcp-server","version":"1.0.2","keywords":["mcp","model-context-protocol","canvelete","design","ai","cli","design-automation","canvas","graphics"],"author":{"name":"Canvelete"},"license":"MIT","_id":"@canveletedotcom/mcp-server@1.0.2","maintainers":[{"name":"canveletedotcom","email":"amanuelgaromsa@gmail.com"}],"homepage":"https://canvelete.com","bugs":{"url":"https://github.com/canvelete/canvelete/issues"},"bin":{"canvelete-mcp":"dist/index.cjs"},"dist":{"shasum":"819e74128c3ad54009b8ab20f680fb80014de9e7","tarball":"https://registry.npmjs.org/@canveletedotcom/mcp-server/-/mcp-server-1.0.2.tgz","fileCount":4,"integrity":"sha512-LbVrpo9zUQikt+fBFlPtpD2wXv+4jlxOBGMnO46dWaH12g3wEoToqxbOsyYBXOiRxFPY9La/LjKZyca7KMlYOw==","signatures":[{"sig":"MEUCIQCkNq5nuBSbYlHklujuVVhJQGt3PG1AX/kXOMCFhNGh0wIgb4/Delssb45VDL4qSU6fTqT3Lb+e9H03H3otloc26Is=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1236154},"main":"dist/index.cjs","type":"module","engines":{"node":">=18.0.0"},"scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsup","clean":"rm -rf dist","start":"node dist/index.cjs","test:watch":"vitest","type-check":"tsc --noEmit","prepublishOnly":"npm run clean && npm run build","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"canveletedotcom","email":"amanuelgaromsa@gmail.com"},"repository":{"url":"git+https://github.com/canvelete/canvelete.git","type":"git"},"_npmVersion":"11.2.0","description":"Model Context Protocol server for Canvelete design platform","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ws":"^8.18.0","zod":"3.25.67","dotenv":"^16.4.5","nanoid":"^5.0.7","commander":"^12.1.0","node-fetch":"^3.3.2","zod-to-json-schema":"^3.25.0","@modelcontextprotocol/sdk":"^1.0.4"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","tsup":"^8.3.5","vitest":"^2.0.0","@types/ws":"^8.5.13","typescript":"^5.0.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_1.0.2_1765929396845_0.0798744457953211","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@canveletedotcom/mcp-server","version":"1.0.3","keywords":["mcp","model-context-protocol","canvelete","design","ai","cli","design-automation","canvas","graphics"],"author":{"name":"Canvelete"},"license":"MIT","_id":"@canveletedotcom/mcp-server@1.0.3","maintainers":[{"name":"canveletedotcom","email":"amanuelgaromsa@gmail.com"}],"homepage":"https://canvelete.com","bugs":{"url":"https://github.com/canvelete/canvelete/issues"},"bin":{"canvelete-mcp":"dist/index.cjs"},"dist":{"shasum":"8bcbe2cb18ee5d8985b0034931db91f7e75c7a8f","tarball":"https://registry.npmjs.org/@canveletedotcom/mcp-server/-/mcp-server-1.0.3.tgz","fileCount":4,"integrity":"sha512-36pThiE6wWSfdkw3IzUfdazabUU6WGqsWcRKD3Qk3vpmp8FKEodVVCQR9EHQhaV/QNToDqHVewmoNjCg8Pnfaw==","signatures":[{"sig":"MEUCIQCwlunUTgwpjiYjo3eKTJBzKwoA0scWyNbYYF5xIXheGAIgULbmcN1LZkGU8+ydxz1gVey2/yBF0WidcDsX20am0SU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1236218},"main":"dist/index.cjs","type":"module","engines":{"node":">=18.0.0"},"scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsup","clean":"rm -rf dist","start":"node dist/index.cjs","test:watch":"vitest","type-check":"tsc --noEmit","prepublishOnly":"npm run clean && npm run build","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"canveletedotcom","email":"amanuelgaromsa@gmail.com"},"repository":{"url":"git+https://github.com/canvelete/canvelete.git","type":"git"},"_npmVersion":"11.2.0","description":"Model Context Protocol server for Canvelete design platform","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ws":"^8.18.0","zod":"3.25.67","dotenv":"^16.4.5","nanoid":"^5.0.7","commander":"^12.1.0","node-fetch":"^3.3.2","zod-to-json-schema":"^3.25.0","@modelcontextprotocol/sdk":"^1.0.4"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","tsup":"^8.3.5","vitest":"^2.0.0","@types/ws":"^8.5.13","typescript":"^5.0.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_1.0.3_1765930164853_0.9753521946471981","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@canveletedotcom/mcp-server","version":"1.0.4","keywords":["mcp","model-context-protocol","canvelete","design","ai","cli","design-automation","canvas","graphics"],"author":{"name":"Canvelete"},"license":"MIT","_id":"@canveletedotcom/mcp-server@1.0.4","maintainers":[{"name":"canveletedotcom","email":"amanuelgaromsa@gmail.com"}],"homepage":"https://canvelete.com","bugs":{"url":"https://github.com/canvelete/canvelete/issues"},"bin":{"canvelete-mcp":"dist/index.cjs"},"dist":{"shasum":"598d13928a383ec7d20843c2f8bdb72b70296d97","tarball":"https://registry.npmjs.org/@canveletedotcom/mcp-server/-/mcp-server-1.0.4.tgz","fileCount":4,"integrity":"sha512-7Ov+9eyJnqcHko4P/QTUBj3yY4DP/UJCy/vK3NYiBbsyPjVY0eL97NkglqOl4zdkqbHvrKgx/xxdeV0/e1CSyA==","signatures":[{"sig":"MEUCIBRzuuDy8FZ4FZl5oa7AHMAbW55zxNn9ORy5bpFJK6rYAiEAilhvlRr5AtHCX2sN9df+16i+y4jsD1WULZetqNB5RmY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1236218},"main":"dist/index.cjs","type":"module","engines":{"node":">=18.0.0"},"scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsup","clean":"rm -rf dist","start":"node dist/index.cjs","test:watch":"vitest","type-check":"tsc --noEmit","prepublishOnly":"npm run clean && npm run build","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"canveletedotcom","email":"amanuelgaromsa@gmail.com"},"repository":{"url":"git+https://github.com/canvelete/canvelete.git","type":"git"},"_npmVersion":"11.2.0","description":"Model Context Protocol server for Canvelete design platform","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ws":"^8.18.0","zod":"3.25.67","dotenv":"^16.4.5","nanoid":"^5.0.7","commander":"^12.1.0","node-fetch":"^3.3.2","zod-to-json-schema":"^3.25.0","@modelcontextprotocol/sdk":"^1.0.4"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","tsup":"^8.3.5","vitest":"^2.0.0","@types/ws":"^8.5.13","typescript":"^5.0.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_1.0.4_1765930558154_0.7059404211587244","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@canveletedotcom/mcp-server","version":"1.1.0","keywords":["mcp","model-context-protocol","canvelete","design","ai","cli","design-automation","canvas","graphics","mcp-server","design-tools","graphic-design","design-platform","claude","anthropic"],"author":{"name":"Canvelete"},"license":"MIT","_id":"@canveletedotcom/mcp-server@1.1.0","maintainers":[{"name":"canveletedotcom","email":"amanuelgaromsa@gmail.com"}],"homepage":"https://canvelete.com","bugs":{"url":"https://github.com/canvelete/canvelete/issues"},"bin":{"canvelete-mcp":"dist/index.cjs"},"dist":{"shasum":"10dde36f3a8fc106430b1bc0cbe9e5fd9ce0dae5","tarball":"https://registry.npmjs.org/@canveletedotcom/mcp-server/-/mcp-server-1.1.0.tgz","fileCount":12,"integrity":"sha512-iXp4SrCR+s0NXqLUjl6N6sMae+6l6ZDFQDS9GlWR/eo+T/v1X6HbpuItwA0m0JyORjCKqmaOuyFRspUdXg5HcQ==","signatures":[{"sig":"MEUCIC8NPCRn796cOYJ1gK6SobKOXiTQ1SEiiJDojM4IxHjLAiEA1uX2DwFAcp8wuGcPWnHcW7OwtNVhFWrpuWx8XQIlIZg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1373852},"main":"dist/index.cjs","type":"module","engines":{"node":">=18.0.0"},"gitHead":"8e4675c16396432581cdaa9db28315c209502799","scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsup","clean":"rm -rf dist","start":"node dist/index.cjs","test:watch":"vitest","type-check":"tsc --noEmit","prepublishOnly":"npm run clean && npm run build","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"canveletedotcom","email":"amanuelgaromsa@gmail.com"},"repository":{"url":"git+https://github.com/canvelete/canvelete.git","type":"git"},"_npmVersion":"11.2.0","description":"Model Context Protocol (MCP) server for Canvelete design platform. Enables AI assistants to create, manipulate, and export designs programmatically with 13 element types including QR codes, barcodes, and access to 200K+ icons and millions of stock images.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ws":"^8.18.0","zod":"3.25.67","dotenv":"^16.4.5","nanoid":"^5.0.7","commander":"^12.1.0","node-fetch":"^3.3.2","zod-to-json-schema":"^3.25.0","@modelcontextprotocol/sdk":"^1.0.4"},"documentation":"https://docs.canvelete.com","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","tsup":"^8.3.5","vitest":"^2.0.0","@types/ws":"^8.5.13","typescript":"^5.0.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_1.1.0_1766098712610_0.3068731325502798","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@canveletedotcom/mcp-server","version":"1.1.1","description":"Model Context Protocol (MCP) server for Canvelete design platform. Enables AI assistants to create, manipulate, and export designs programmatically with 13 element types including QR codes, barcodes, and access to 200K+ icons and millions of stock images.","main":"dist/index.cjs","bin":{"canvelete-mcp":"dist/index.cjs"},"type":"module","scripts":{"build":"tsup","dev":"tsx src/index.ts","start":"node dist/index.cjs","test":"vitest run","test:watch":"vitest","test:integration":"vitest run --config vitest.integration.config.ts","type-check":"tsc --noEmit","clean":"rm -rf dist","prepublishOnly":"npm run clean && npm run build"},"keywords":["mcp","model-context-protocol","canvelete","design","ai","cli","design-automation","canvas","graphics","mcp-server","design-tools","graphic-design","design-platform","claude","anthropic"],"author":{"name":"Canvelete"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/canvelete/canvelete.git"},"bugs":{"url":"https://github.com/canvelete/canvelete/issues"},"homepage":"https://canvelete.com","documentation":"https://docs.canvelete.com","dependencies":{"@modelcontextprotocol/sdk":"^1.0.4","commander":"^12.1.0","dotenv":"^16.4.5","nanoid":"^5.0.7","node-fetch":"^3.3.2","ws":"^8.18.0","zod":"3.25.67","zod-to-json-schema":"^3.25.0"},"devDependencies":{"@types/node":"^22.0.0","@types/ws":"^8.5.13","tsup":"^8.3.5","tsx":"^4.20.6","typescript":"^5.0.0","vitest":"^2.0.0"},"engines":{"node":">=18.0.0"},"_id":"@canveletedotcom/mcp-server@1.1.1","gitHead":"8e4675c16396432581cdaa9db28315c209502799","_nodeVersion":"22.14.0","_npmVersion":"11.2.0","dist":{"integrity":"sha512-KTxVyUamsLGHND21yEjVcP8Ep9uWbk6wZ7MZSc/dPhjD+GF9yurMnzfzu4tEeUodF2jJqrUAeoQvuNisHsTEEA==","shasum":"c30fcf20356389949883cad49592c8a8227fb495","tarball":"https://registry.npmjs.org/@canveletedotcom/mcp-server/-/mcp-server-1.1.1.tgz","fileCount":12,"unpackedSize":1376139,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDLwVVODW2LIkAl1sFXPyWuAU1VbSEbkpEd2D//fN67hAIgZE4uvDelFYpM6hLYRIBWERloXTAoTLXwuIzyEbnhVr4="}]},"_npmUser":{"name":"canveletedotcom","email":"amanuelgaromsa@gmail.com"},"directories":{},"maintainers":[{"name":"canveletedotcom","email":"amanuelgaromsa@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp-server_1.1.1_1766100796989_0.7288546818832486"},"_hasShrinkwrap":false}},"time":{"created":"2025-12-16T23:24:01.189Z","modified":"2025-12-18T23:33:17.358Z","1.0.1":"2025-12-16T23:24:01.489Z","1.0.2":"2025-12-16T23:56:37.051Z","1.0.3":"2025-12-17T00:09:25.060Z","1.0.4":"2025-12-17T00:15:58.360Z","1.1.0":"2025-12-18T22:58:32.800Z","1.1.1":"2025-12-18T23:33:17.168Z"},"bugs":{"url":"https://github.com/canvelete/canvelete/issues"},"author":{"name":"Canvelete"},"license":"MIT","homepage":"https://canvelete.com","keywords":["mcp","model-context-protocol","canvelete","design","ai","cli","design-automation","canvas","graphics","mcp-server","design-tools","graphic-design","design-platform","claude","anthropic"],"repository":{"type":"git","url":"git+https://github.com/canvelete/canvelete.git"},"description":"Model Context Protocol (MCP) server for Canvelete design platform. Enables AI assistants to create, manipulate, and export designs programmatically with 13 element types including QR codes, barcodes, and access to 200K+ icons and millions of stock images.","maintainers":[{"name":"canveletedotcom","email":"amanuelgaromsa@gmail.com"}],"readme":"# Canvelete MCP Server\n\n[![MCP Badge](https://lobehub.com/badge/mcp-full/canvelete-mcp-server)](https://lobehub.com/mcp/canvelete-mcp-server)\n\nModel Context Protocol (MCP) server for the [Canvelete](https://canvelete.com) design platform. This server exposes Canvelete's design capabilities to AI assistants and other MCP-compatible clients, enabling programmatic design creation and manipulation.\n\n**🔗 Links:**\n- **[Canvelete Platform](https://canvelete.com)** - Create designs online\n- **[Documentation](https://docs.canvelete.com)** - Full API and platform documentation\n- **[Get API Key](https://canvelete.com/settings/api-keys)** - Generate your API key\n\n**📚 MCP Server Documentation:**\n- **[Element Types Guide](./ELEMENT_TYPES_GUIDE.md)** - Complete guide to all 13 element types (including QR codes & barcodes), their capabilities, and styling limits\n- **[Asset Search Guide](./ASSET_SEARCH_GUIDE.md)** - How to search and use external assets (Pixabay, Unsplash, Iconify, cliparts, illustrations)\n- **[Examples](./EXAMPLES.md)** - Practical examples and use cases\n- **[MCP Setup Guide](./MCP_SETUP_GUIDE.md)** - Configuration and usage instructions\n\n## Quick Start\n\n```bash\n# Install globally\nnpm install -g @canveletedotcom/mcp-server\n\n# Or use with npx (no installation needed)\nnpx -y @canveletedotcom/mcp-server start\n```\n\nThen configure your MCP client (Claude Desktop, Kiro, etc.) with:\n\n```json\n{\n  \"mcpServers\": {\n    \"canvelete-mcp-server\": {\n      \"command\": \"canvelete-mcp\",\n      \"args\": [\"start\"],\n      \"env\": {\n        \"CANVELETE_API_KEY\": \"your_api_key_here\"\n      }\n    }\n  }\n}\n```\n\n## Features\n\n### Resources (Read-Only Data Access)\n- **Designs**: Access user designs, browse templates\n- **Canvas**: View canvas state and elements\n- **Assets**: Browse user's asset library and available fonts\n- **User**: Access profile and preferences\n- **Metadata**: Complete element capabilities, styling limits, and design system documentation\n\n### Tools (Actions)\n- **Design Management**: Create, update, delete, duplicate, and export designs\n- **Canvas Manipulation**: Add, update, delete elements; resize canvas; clear canvas\n  - **13 Element Types**: rectangle, circle, text, image, svg, line, polygon, star, qr, barcode, table, container, bezier\n  - **QR Codes**: Generate QR codes for URLs, vCards, WiFi, and more\n  - **Barcodes**: Support for CODE128, EAN13, UPC, and 7 other formats\n- **Templates**: List, apply, and create templates\n- **Assets**: Comprehensive asset search across multiple sources\n  - **Pixabay**: 2.7M+ free stock photos and illustrations\n  - **Unsplash**: 3M+ high-quality curated photos\n  - **Iconify**: 200K+ icons from 150+ icon sets\n  - **Cliparts**: 10K+ curated clipart graphics\n  - **Illustrations**: 5K+ artistic illustrations\n- **Fonts**: 30+ professional fonts with metadata and pairing recommendations\n- **Shapes**: 70+ SVG shapes from 8 categories (basic, arrows, stars, callouts, nature, symbols, geometric, extra)\n- **AI Integration**: Access Civi AI for design generation\n\n### Available Prompts\n\nPrompts provide guided templates for common design tasks:\n\n- **`create_social_post`** - Create social media posts (Instagram, Facebook, Twitter, etc.)\n- **`create_presentation_slide`** - Create presentation slides with title and content\n- **`add_text_element`** - Add styled text elements to designs\n\nPrompts help AI assistants create designs with proper structure and styling automatically.\n\n## Installation\n\n### Method 1: Global Installation (Recommended)\n\nInstall the package globally to use the `canvelete-mcp` command:\n\n```bash\nnpm install -g @canveletedotcom/mcp-server\n```\n\n### Method 2: NPX (No Installation Required)\n\nUse npx to run without installing:\n\n```bash\nnpx -y @canveletedotcom/mcp-server start\n```\n\n### Method 3: Local Development\n\nFor development or custom builds:\n\n```bash\ngit clone https://github.com/canvelete/canvelete.git\ncd canvelete/mcp-server\nnpm install\nnpm run build\n```\n\nThen use the local build path in your MCP configuration.\n\n## Configuration\n\n### Environment Variables\n\nCreate a `.env` file in the mcp-server directory:\n\n```env\n# Required: Canvelete API Key\nCANVELETE_API_KEY =your_api_key_here\n\n# Optional: Canvelete API URL (defaults to https://www.canvelete.com)\nCANVELETE_API_URL=https://www.canvelete.com\n\n# Optional: For AI generation features (if using Civi AI directly)\nGEMINI_API_KEY=your_gemini_api_key\n```\n\n### Authentication\n\nYou need a Canvelete API key to use the MCP server:\n\n1. Log in to your [Canvelete account](https://canvelete.com)\n2. Go to [Settings → API Keys](https://canvelete.com/settings/api-keys)\n3. Generate a new API key\n4. Save the key securely\n\nFor detailed API documentation, see [docs.canvelete.com](https://docs.canvelete.com).\n\nYou can provide the API key in two ways:\n\n**Option 1: Environment Variable** (recommended for Claude Desktop)\n```env\nCANVELETE_API_KEY=your_api_key_here\n```\n\n**Option 2: Tool Arguments** (for programmatic use)\n```json\n{\n  \"apiKey\": \"your_api_key_here\",\n  \"name\": \"My Design\"\n}\n```\n\n## Configuration\n\n### Claude Desktop\n\n1. Find your Claude Desktop config file:\n   - **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`\n   - **Windows**: `%APPDATA%\\Claude\\claude_desktop_config.json`\n   - **Linux**: `~/.config/Claude/claude_desktop_config.json`\n\n2. Add the Canvelete server configuration:\n\n**Option A: Using Global Installation**\n```json\n{\n  \"mcpServers\": {\n    \"canvelete-mcp-server\": {\n      \"command\": \"canvelete-mcp\",\n      \"args\": [\"start\"],\n      \"env\": {\n        \"CANVELETE_API_KEY\": \"your_api_key_here\",\n        \"CANVELETE_API_URL\": \"https://www.canvelete.com\"\n      }\n    }\n  }\n}\n```\n\n**Option B: Using NPX (No Installation)**\n```json\n{\n  \"mcpServers\": {\n    \"canvelete-mcp-server\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@canveletedotcom/mcp-server\", \"start\"],\n      \"env\": {\n        \"CANVELETE_API_KEY\": \"your_api_key_here\",\n        \"CANVELETE_API_URL\": \"https://www.canvelete.com\"\n      }\n    }\n  }\n}\n```\n\n**Option C: Using Local Build**\n```json\n{\n  \"mcpServers\": {\n    \"canvelete-mcp-server\": {\n      \"command\": \"node\",\n      \"args\": [\"/absolute/path/to/mcp-server/dist/index.cjs\", \"start\"],\n      \"env\": {\n        \"CANVELETE_API_KEY\": \"your_api_key_here\",\n        \"CANVELETE_API_URL\": \"https://www.canvelete.com\"\n      }\n    }\n  }\n}\n```\n\n3. Restart Claude Desktop\n\n### Kiro\n\n1. Find your Kiro config file: `~/.kiro/settings/mcp.json`\n\n2. Add the same configuration as above\n\n3. Restart Kiro\n\n### Other MCP Clients\n\nAny MCP-compatible client can use this server. Configure it to run:\n- Command: `canvelete-mcp` (if installed globally) or `npx -y @canveletedotcom/mcp-server`\n- Args: `[\"start\"]`\n- Environment: Set `CANVELETE_API_KEY` and optionally `CANVELETE_API_URL`\n\n## Usage Examples\n\n### Example Conversations\n\nOnce configured, you can ask your AI assistant:\n\n- **\"What designs do I have in Canvelete?\"**\n- **\"Create a new 1080x1080 Instagram post design called 'Summer Sale'\"**\n- **\"Add a text element to design {id} that says 'Hello World'\"**\n- **\"Export design {id} as PNG\"**\n- **\"List all my uploaded assets\"**\n- **\"Apply template {template-id} to design {design-id}\"**\n- **\"Create a presentation slide with title 'Welcome' and subtitle 'Introduction'\"**\n- **\"Search for stock images of mountains\"**\n\n### Quick Example: Create a Social Media Post\n\n```javascript\n// 1. Create a design\ncreate_design({\n  name: \"Summer Sale Post\",\n  width: 1080,\n  height: 1080\n})\n\n// 2. Add background\nadd_element({\n  designId: \"{design-id}\",\n  element: {\n    type: \"rectangle\",\n    x: 0, y: 0,\n    width: 1080, height: 1080,\n    fill: \"linear-gradient(135deg, #667eea 0%, #764ba2 100%)\"\n  }\n})\n\n// 3. Add text\nadd_element({\n  designId: \"{design-id}\",\n  element: {\n    type: \"text\",\n    text: \"SUMMER SALE\",\n    x: 100, y: 400,\n    width: 880, height: 150,\n    fontSize: 96,\n    fontFamily: \"Poppins\",\n    fill: \"#FFFFFF\",\n    fontWeight: \"bold\"\n  }\n})\n\n// 4. Export\nexport_design({\n  designId: \"{design-id}\",\n  format: \"png\",\n  quality: 100\n})\n```\n\nSee [EXAMPLES.md](./EXAMPLES.md) for more detailed examples. For complete API documentation, visit [docs.canvelete.com](https://docs.canvelete.com).\n\n## Available Resources\n\nResources provide read-only access to Canvelete data:\n\n| URI | Description |\n|-----|-------------|\n| `canvelete://api/designs/list` | List all user's designs with pagination |\n| `canvelete://api/designs/templates` | Browse public design templates |\n| `canvelete://api/design/{id}` | Get detailed information about a specific design |\n| `canvelete://api/canvas/{designId}` | Get the current canvas state for a design |\n| `canvelete://api/canvas/{designId}/elements` | Get all elements on a design canvas |\n| `canvelete://api/assets/library` | User's uploaded assets (images, fonts, etc.) |\n| `canvelete://api/assets/fonts` | List of all available fonts for text elements |\n| `canvelete://api/user/profile` | User profile and subscription information |\n| `canvelete://api/user/preferences` | User editor preferences and settings |\n| `canvelete://api/metadata/schema` | System metadata, schemas, and property definitions |\n\n## Available Tools\n\n### Design Management Tools\n- **`list_designs`** - List all user's designs with pagination and search\n- **`get_design`** - Get detailed design info including canvas data\n- **`create_design`** - Create new design with custom dimensions\n- **`update_design`** - Update design properties (name, description, visibility)\n- **`delete_design`** - Delete a design permanently\n- **`duplicate_design`** - Fork/copy an existing design\n- **`export_design`** - Export design to PNG, JPG, PDF, or SVG format\n\n### Canvas Manipulation Tools\n- **`add_element`** - Add any element type (shape, text, image, SVG, etc.)\n- **`update_element`** - Modify element properties (position, style, content)\n- **`delete_element`** - Remove an element from canvas\n- **`resize_canvas`** - Change canvas dimensions\n- **`clear_canvas`** - Remove all elements from canvas\n\n### Template Tools\n- **`list_templates`** - Browse available design templates\n- **`apply_template`** - Apply a template to an existing design\n- **`create_template`** - Save a design as a reusable template\n\n### Asset Management Tools\n- **`list_assets`** - View user's asset library (images, fonts, etc.)\n- **`search_stock_images`** - Search Pixabay for stock images\n- **`search_icons`** - Search for icon assets\n- **`search_clipart`** - Search for clipart images\n- **`search_illustrations`** - Search for illustration assets\n- **`list_fonts`** - List available fonts by category\n- **`upload_asset`** - Upload a new asset to the library\n\n### AI Tools\n- **`generate_design`** - Generate designs using AI\n- **`chat_with_civi`** - Interact with Civi AI for design assistance\n\n## Element Types\n\nSupported canvas element types:\n\n- **rectangle** - Rectangular shapes\n- **circle** - Circular/elliptical shapes\n- **text** - Text elements with fonts\n- **image** - Images from URLs or assets\n- **line** - Straight lines\n- **polygon** - Multi-sided shapes\n- **star** - Star shapes\n- **svg** - SVG graphics\n- **bezier** - Curved paths\n- **container** - Group elements\n- **table** - Data tables\n\n## Development\n\n### Build\n```bash\nnpm run build\n```\n\n### Run in Development\n```bash\nnpm run dev\n```\n\n### Type Check\n```bash\nnpm run type-check\n```\n\n### Clean Build\n```bash\nnpm run clean\nnpm run build\n```\n\n### MCP Protocol Compliance\n\nThis server follows the [MCP Protocol specification (2025-11-25)](https://spec.modelcontextprotocol.io/). \n\n**Compliance Documentation:**\n- **[MCP_COMPLIANCE.md](./MCP_COMPLIANCE.md)** - Implementation best practices and protocol compliance\n- **[SPECIFICATION_COMPLIANCE.md](./SPECIFICATION_COMPLIANCE.md)** - Detailed compliance with official MCP specification (2025-11-25)\n\n**Key Compliance Features:**\n- ✅ All logging uses stderr (never stdout) to avoid corrupting JSON-RPC messages\n- ✅ Proper error handling and formatting\n- ✅ Complete tool, resource, and prompt definitions\n- ✅ Standard MCP server structure and initialization\n\n**Testing Compliance:**\n```bash\n# Use MCP Inspector to verify compliance\nnpx @modelcontextprotocol/inspector canvelete-mcp start\n```\n\n## Troubleshooting\n\n### \"Invalid API key\"\n- Generate a new API key in Canvelete Settings → API Keys\n- Verify the key is set correctly in your MCP config\n- Check key hasn't expired or been revoked\n- Run the test script to verify: `npx tsx test-auth.ts your_api_key`\n\n### \"Permission denied\"\n- Ensure API key has appropriate scopes\n- Verify you own the resource you're modifying\n\n### \"Failed to connect to API\"\n- Check `CANVELETE_API_URL` is correct (default: https://www.canvelete.com)\n- Verify network connectivity to the Canvelete API\n- For local development, ensure the Canvelete app is running\n\n### Claude Desktop doesn't show resources\n- Restart Claude Desktop\n- Check the config file syntax\n- Verify the server path is absolute\n- Check stderr logs for errors\n\n## Real-time Sync\n\nThe 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.\n\n### Setup\n\n1. Start the WebSocket server (in the main Canvelete directory):\n```bash\npnpm ws\n```\n\n2. The WebSocket server runs on port 3001 by default. You can change this with the `WS_PORT` environment variable.\n\n3. Open the design editor - you'll see a sync indicator in the top-right corner showing connection status.\n\n### How it works\n\n- When MCP tools modify a design (add/update/delete elements, resize canvas, etc.), the changes are broadcast via WebSocket\n- All connected editor clients subscribed to that design receive instant updates\n- The editor shows a \"Live\" indicator when connected, with a count of received updates\n\n### Environment Variables\n\n```env\n# WebSocket server port (default: 3001)\nWS_PORT=3001\n\n# WebSocket server URL for MCP server to connect to\nWS_SERVER_URL=ws://localhost:3001/ws\n```\n\n## Security & Privacy\n\n### API Key Security\n\n- **Never commit API keys** to version control or share them publicly\n- **Use environment variables** or secure configuration files\n- **Rotate keys regularly** if compromised or exposed\n- **Use separate keys** for development and production\n\n### Data Privacy\n\n- The MCP server accesses your Canvelete account data through API keys\n- All API communication uses HTTPS encryption\n- API keys have scoped permissions based on your account settings\n- Review your API key permissions in Canvelete Settings → API Keys\n\n### Rate Limiting\n\n- API keys may have rate limits based on your subscription plan\n- The server respects rate limits and will return appropriate errors\n- Check your subscription plan for rate limit details\n\n### Best Practices\n\n- Only use trusted API keys from your own account\n- Don't share your API keys with untrusted parties\n- Monitor your API usage in Canvelete dashboard\n- Report security issues to security@canvelete.com (do not open public issues)\n\n## Deployment Modes\n\nThe Canvelete MCP Server supports both **local** and **cloud** deployment. See [DEPLOYMENT.md](./DEPLOYMENT.md) for detailed deployment instructions.\n\n### Local Deployment (Default)\n\nThe server runs locally on your machine using stdio transport, which is the standard for MCP clients like Claude Desktop, Kiro, and Cursor.\n\n**Advantages:**\n- ✅ Full control over your environment\n- ✅ No network latency\n- ✅ Data stays on your machine\n- ✅ Simple setup and configuration\n- ✅ Works offline (once API key is cached)\n\n**Use Cases:**\n- Personal development\n- Testing and debugging\n- Privacy-sensitive workflows\n- Desktop applications (Claude Desktop, Cursor, etc.)\n\n### Cloud Deployment\n\nThe server can be deployed to cloud platforms using containerization or serverless functions. The stdio transport works seamlessly in cloud environments.\n\n**Advantages:**\n- ✅ Scalable and always available\n- ✅ No local resource usage\n- ✅ Accessible from multiple devices\n- ✅ Managed infrastructure\n- ✅ Easy updates and maintenance\n\n**Supported Platforms:**\n- **Docker/Containers**: Deploy to any container platform (Docker, Kubernetes, etc.)\n- **Google Cloud Run**: Serverless container platform\n- **Azure Functions**: Serverless with custom handlers\n- **AWS Lambda**: Serverless functions (with stdio adapter)\n- **Vercel/Netlify**: Serverless platforms\n- **Any Node.js hosting**: Railway, Render, Fly.io, etc.\n\n**Quick Cloud Examples:**\n\n```bash\n# Docker deployment (using published package)\ndocker build -f Dockerfile.simple -t canvelete-mcp-server .\ndocker run -e CANVELETE_API_KEY=your_key canvelete-mcp-server\n\n# Or use docker-compose\ndocker-compose up -d\n```\n\nSee [DEPLOYMENT.md](./DEPLOYMENT.md) for complete deployment guides for:\n- Docker/Containers (Dockerfile included)\n- Google Cloud Run\n- Azure Functions\n- AWS Lambda\n- Railway, Render, Fly.io\n- Vercel/Netlify\n\n## Requirements\n\n- **Node.js**: >= 18.0.0\n- **Canvelete Account**: Sign up at [canvelete.com](https://canvelete.com)\n- **Canvelete API Key**: Get one from [Canvelete Settings → API Keys](https://canvelete.com/settings/api-keys)\n- **Documentation**: See [docs.canvelete.com](https://docs.canvelete.com) for API reference\n\n## Contributing\n\nContributions are welcome! Please see [CONTRIBUTING.md](./CONTRIBUTING.md) for guidelines.\n\nQuick steps:\n1. Fork the repository\n2. Create your feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit your changes (`git commit -m 'Add some amazing feature'`)\n4. Push to the branch (`git push origin feature/amazing-feature`)\n5. Open a Pull Request\n\nFor detailed contribution guidelines, code standards, and development setup, see [CONTRIBUTING.md](./CONTRIBUTING.md).\n\n## Changelog\n\nSee [CHANGELOG.md](./CHANGELOG.md) for a detailed list of changes and version history.\n\n## License\n\nMIT License - see [LICENSE](./LICENSE) file for details.\n\n## Support\n\nFor issues and questions:\n- **GitHub Issues**: [canvelete/canvelete/issues](https://github.com/canvelete/canvelete/issues)\n- **Platform Documentation**: [docs.canvelete.com](https://docs.canvelete.com)\n- **Canvelete Platform**: [canvelete.com](https://canvelete.com)\n- **API Documentation**: [docs.canvelete.com/api](https://docs.canvelete.com/api)\n- **Get Help**: Visit [canvelete.com/support](https://canvelete.com/support) or [docs.canvelete.com/help](https://docs.canvelete.com/help)\n\n## Deployment Architecture\n\n### How It Works\n\nThe MCP server uses **stdio transport** by default, which works in both local and cloud environments:\n\n1. **Local Mode**: MCP clients (Claude Desktop, etc.) spawn the server process and communicate via stdin/stdout\n2. **Cloud Mode**: Cloud platforms run the server in containers/functions and handle stdio communication through their infrastructure\n\n### Data Flow\n\n```\n┌─────────────┐         ┌──────────────┐         ┌─────────────┐\n│ MCP Client  │ ◄──────► │ MCP Server   │ ◄──────► │ Canvelete   │\n│ (Claude)    │  stdio  │ (This Server)│  HTTPS  │    API      │\n└─────────────┘         └──────────────┘         └─────────────┘\n```\n\n- **MCP Protocol**: JSON-RPC over stdio (local) or HTTP/SSE (cloud)\n- **Canvelete API**: Always HTTPS to `https://canvelete.com`\n\n### Choosing Deployment Mode\n\n**Use Local Deployment if:**\n- You're using Claude Desktop, Cursor, or other desktop MCP clients\n- You want maximum privacy and control\n- You're developing or testing\n- You have a single user/machine\n\n**Use Cloud Deployment if:**\n- You need 24/7 availability\n- You want to share access across multiple devices\n- You need scalability for multiple users\n- You prefer managed infrastructure\n\n## Related Links\n\n### Canvelete Resources\n- **[Canvelete Platform](https://canvelete.com)** - Create and edit designs online\n- **[Documentation](https://docs.canvelete.com)** - Complete platform and API documentation\n- **[API Reference](https://docs.canvelete.com/api)** - Detailed API documentation\n- **[Get Started Guide](https://docs.canvelete.com/getting-started)** - Platform getting started guide\n\n### MCP Resources\n- [MCP Server Directory](https://lobehub.com/mcp/canvelete-mcp-server)\n- [Model Context Protocol Documentation](https://modelcontextprotocol.io)\n- [MCP Cloud Deployment Guide](https://modelcontextprotocol.io/docs/deployment)\n","readmeFilename":"README.md"}