{"_id":"@aicanvas/mcp","_rev":"8-23ee2c6ae1efe388a2536aeb540a49fb","name":"@aicanvas/mcp","dist-tags":{"latest":"0.3.0"},"versions":{"0.1.0":{"name":"@aicanvas/mcp","version":"0.1.0","keywords":["mcp","model-context-protocol","aicanvas","shadcn","react","components","framer-motion"],"author":{"name":"AI Canvas","email":"https://aicanvas.me"},"license":"MIT","_id":"@aicanvas/mcp@0.1.0","maintainers":[{"name":"aicanvas","email":"aicanvas.me@gmail.com"}],"homepage":"https://aicanvas.me","bugs":{"url":"https://github.com/uiNerd16/aicanvas/issues"},"bin":{"aicanvas-mcp":"dist/index.js"},"dist":{"shasum":"6ae07b127cee6038bec43fd18c80e75aca137f32","tarball":"https://registry.npmjs.org/@aicanvas/mcp/-/mcp-0.1.0.tgz","fileCount":3,"integrity":"sha512-R3Q1capLBKJQUUC1ASNPMx7mpL1wEdzRNReq8ZWtjagcA14CPWP5dbuy4lc45zc8KfelIdEkiSFjTTPTJhzkrQ==","signatures":[{"sig":"MEYCIQCJsfybyMPicxP58SwkV1OLOAoMNkE5wiRD3U04hJ9P9gIhANxA6Lr+6vv/7k/D8igiUe5eNDCvmdkUETiu3h0sNJIv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":20635},"type":"module","engines":{"node":">=18"},"gitHead":"a786a5b809793cbc5ac7b1cdc91ef53a9a0d33b3","scripts":{"dev":"tsc --watch","test":"npm run build && node test/smoke.mjs && node test/offline.mjs","build":"tsc && chmod +x dist/index.js","inspect":"npm run build && npx -y @modelcontextprotocol/inspector node dist/index.js","test:smoke":"npm run build && node test/smoke.mjs","test:offline":"npm run build && node test/offline.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"aicanvas","email":"aicanvas.me@gmail.com"},"repository":{"url":"git+https://github.com/uiNerd16/aicanvas.git","type":"git","directory":"mcp"},"_npmVersion":"11.8.0","description":"Model Context Protocol server for AI Canvas — search, inspect, and install components from the aicanvas.me registry directly from your AI editor.","directories":{},"_nodeVersion":"24.13.1","dependencies":{"zod":"^3.25.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.1.0_1777543067718_0.2168949502528814","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@aicanvas/mcp","version":"0.1.1","keywords":["mcp","model-context-protocol","aicanvas","shadcn","react","components","framer-motion"],"author":{"name":"AI Canvas","email":"https://aicanvas.me"},"license":"MIT","_id":"@aicanvas/mcp@0.1.1","maintainers":[{"name":"aicanvas","email":"aicanvas.me@gmail.com"}],"homepage":"https://aicanvas.me","bugs":{"url":"https://github.com/uiNerd16/aicanvas/issues"},"bin":{"aicanvas-mcp":"dist/index.js"},"dist":{"shasum":"06878ceec197e134d206059b14f784fcb8236645","tarball":"https://registry.npmjs.org/@aicanvas/mcp/-/mcp-0.1.1.tgz","fileCount":3,"integrity":"sha512-zSdt3iUNVQ6RzyNGGelyMEgVqLBSIXhCPW9g4FC036Bw5F5fsy4Wcb+jLXiPLD3jOqe7x7avmUdwQP5ChkTBdA==","signatures":[{"sig":"MEUCIG/+y4/Z6cYSSm+7BAHPCLUVvsdUalM6RxaTkwYbMZa4AiEAmvLjsc2cCQ1nMfWxoU8wbV2OK9rc7SFe6miSX501bk8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":20783},"type":"module","engines":{"node":">=18"},"gitHead":"10f55531fd8b39de34aa44fb2d07f8ac5c01cc7b","scripts":{"dev":"tsc --watch","test":"npm run build && node test/smoke.mjs && node test/offline.mjs","build":"tsc && chmod +x dist/index.js","inspect":"npm run build && npx -y @modelcontextprotocol/inspector node dist/index.js","test:smoke":"npm run build && node test/smoke.mjs","test:offline":"npm run build && node test/offline.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"aicanvas","email":"aicanvas.me@gmail.com"},"repository":{"url":"git+https://github.com/uiNerd16/aicanvas.git","type":"git","directory":"mcp"},"_npmVersion":"11.8.0","description":"Model Context Protocol server for AI Canvas — search, inspect, and install components from the aicanvas.me registry directly from your AI editor.","directories":{},"_nodeVersion":"24.13.1","dependencies":{"zod":"^3.25.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.1.1_1777749528439_0.9365512894612895","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@aicanvas/mcp","version":"0.2.0","keywords":["mcp","model-context-protocol","aicanvas","shadcn","react","components","framer-motion"],"author":{"name":"AI Canvas","email":"https://aicanvas.me"},"license":"MIT","_id":"@aicanvas/mcp@0.2.0","maintainers":[{"name":"aicanvas","email":"aicanvas.me@gmail.com"}],"homepage":"https://aicanvas.me","bugs":{"url":"https://github.com/uiNerd16/aicanvas/issues"},"bin":{"aicanvas-mcp":"dist/index.js"},"dist":{"shasum":"83c6f4c3389bc08b47cdaa7b12a525a5f8908744","tarball":"https://registry.npmjs.org/@aicanvas/mcp/-/mcp-0.2.0.tgz","fileCount":3,"integrity":"sha512-JSskZ1bJQsKYE1MuFNfrU1BWl/fra3IEaLfs/y4ne+QxmCmjarSZyJkovdIrPc4gwRErL/kFWRfVOYh9wu0HAQ==","signatures":[{"sig":"MEQCIE4wn7AdDgJTn9A3dFnJ0cInfFYGTlkMhT90iJXWszFNAiAOEN0t5jGJ5tgc3Dm1sEsPtBDOo2hffWx8PSsl2TVlcg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":34197},"type":"module","engines":{"node":">=18"},"scripts":{"dev":"tsc --watch","test":"npm run build && node test/smoke.mjs && node test/offline.mjs","build":"tsc && chmod +x dist/index.js","inspect":"npm run build && npx -y @modelcontextprotocol/inspector node dist/index.js","test:smoke":"npm run build && node test/smoke.mjs","test:offline":"npm run build && node test/offline.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"aicanvas","email":"aicanvas.me@gmail.com"},"repository":{"url":"git+https://github.com/uiNerd16/aicanvas.git","type":"git","directory":"mcp"},"_npmVersion":"11.8.0","description":"Model Context Protocol server for AI Canvas — search, inspect, and install components from the aicanvas.me registry directly from your AI editor.","directories":{},"_nodeVersion":"24.13.1","dependencies":{"zod":"^3.25.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.2.0_1782123322098_0.367383700459319","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@aicanvas/mcp","version":"0.2.1","keywords":["mcp","model-context-protocol","mcp-server","aicanvas","shadcn","shadcn-registry","shadcn-ui","react-components","ui-components","component-library","framer-motion","animated-components","tailwindcss","design-system","ai-agents","ai-coding","claude","cursor","code-generation","registry"],"author":{"name":"AI Canvas","email":"https://aicanvas.me"},"license":"MIT","_id":"@aicanvas/mcp@0.2.1","maintainers":[{"name":"aicanvas","email":"aicanvas.me@gmail.com"}],"homepage":"https://aicanvas.me","bugs":{"url":"https://github.com/uiNerd16/aicanvas/issues"},"bin":{"aicanvas-mcp":"dist/index.js"},"dist":{"shasum":"cceb06ae7eaaf017bbdbdbecbd6bd0eb4532db78","tarball":"https://registry.npmjs.org/@aicanvas/mcp/-/mcp-0.2.1.tgz","fileCount":3,"integrity":"sha512-PL64+6jaVQPjGTH9aG0wtcCCSHZQR3bzM0QDZCg6ZsP6BNe+yTiWpZciFVdqzAjFQBB2t8FbQVN1FXhB3WNCrg==","signatures":[{"sig":"MEQCIGTpVN/yMyFyTehgnKLz0oRzmkSamCd4QFzUCrgcxFqMAiA4/5IAQdbR38eFu4JX0Bp8vLKjv4fhf2T2PdhY4tbiQg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":36149},"type":"module","engines":{"node":">=18"},"mcpName":"io.github.uinerd16/aicanvas","scripts":{"dev":"tsc --watch","test":"npm run build && node test/smoke.mjs && node test/offline.mjs","build":"tsc && chmod +x dist/index.js","inspect":"npm run build && npx -y @modelcontextprotocol/inspector node dist/index.js","test:smoke":"npm run build && node test/smoke.mjs","test:offline":"npm run build && node test/offline.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"aicanvas","email":"aicanvas.me@gmail.com"},"repository":{"url":"git+https://github.com/uiNerd16/aicanvas.git","type":"git","directory":"mcp"},"_npmVersion":"11.8.0","description":"Model Context Protocol server for AI Canvas — search, inspect, and install components from the aicanvas.me registry directly from your AI editor.","directories":{},"_nodeVersion":"24.13.1","dependencies":{"zod":"^3.25.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.2.1_1783518290800_0.2510357869835478","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@aicanvas/mcp","version":"0.2.2","keywords":["mcp","model-context-protocol","mcp-server","aicanvas","shadcn","shadcn-registry","shadcn-ui","react-components","ui-components","component-library","framer-motion","animated-components","tailwindcss","design-system","ai-agents","ai-coding","claude","cursor","code-generation","registry"],"author":{"name":"AI Canvas","email":"https://aicanvas.me"},"license":"MIT","_id":"@aicanvas/mcp@0.2.2","maintainers":[{"name":"aicanvas","email":"aicanvas.me@gmail.com"}],"homepage":"https://aicanvas.me","bugs":{"url":"https://github.com/uiNerd16/aicanvas/issues"},"bin":{"aicanvas-mcp":"dist/index.js"},"dist":{"shasum":"717bf5be27b2ef370d9f28e1437f256555acc955","tarball":"https://registry.npmjs.org/@aicanvas/mcp/-/mcp-0.2.2.tgz","fileCount":3,"integrity":"sha512-pUbs1chZkxSUr4oJ86HbZ/w05ZVNGOwTv5b5/nuyH/x6/x2uAKwLiylytykWOdaXm9PVEn8vUuTnUmJV+tffYA==","signatures":[{"sig":"MEYCIQCToZBzxYZJKIYTOlPptGANxhAG3G6GvVRfAiEna3OoxwIhAJKYcTdt7xbVl8O6bcjUWPC8NyW7jO2xdbragRVnlUTv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":36149},"type":"module","engines":{"node":">=18"},"mcpName":"io.github.uiNerd16/aicanvas","scripts":{"dev":"tsc --watch","test":"npm run build && node test/smoke.mjs && node test/offline.mjs","build":"tsc && chmod +x dist/index.js","inspect":"npm run build && npx -y @modelcontextprotocol/inspector node dist/index.js","test:smoke":"npm run build && node test/smoke.mjs","test:offline":"npm run build && node test/offline.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"aicanvas","email":"aicanvas.me@gmail.com"},"repository":{"url":"git+https://github.com/uiNerd16/aicanvas.git","type":"git","directory":"mcp"},"_npmVersion":"11.8.0","description":"Model Context Protocol server for AI Canvas — search, inspect, and install components from the aicanvas.me registry directly from your AI editor.","directories":{},"_nodeVersion":"24.13.1","dependencies":{"zod":"^3.25.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.2.2_1783540292151_0.5164293646919607","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@aicanvas/mcp","version":"0.2.3","keywords":["mcp","model-context-protocol","mcp-server","aicanvas","shadcn","shadcn-registry","shadcn-ui","react-components","ui-components","component-library","framer-motion","animated-components","tailwindcss","design-system","ai-agents","ai-coding","claude","cursor","code-generation","registry"],"author":{"name":"AI Canvas","email":"https://aicanvas.me"},"license":"MIT","_id":"@aicanvas/mcp@0.2.3","maintainers":[{"name":"aicanvas","email":"aicanvas.me@gmail.com"}],"homepage":"https://aicanvas.me","bugs":{"url":"https://github.com/uiNerd16/aicanvas/issues"},"bin":{"aicanvas-mcp":"dist/index.js"},"dist":{"shasum":"61f63f774bee99cd6ad2c3236c7d6fa3f2a2b219","tarball":"https://registry.npmjs.org/@aicanvas/mcp/-/mcp-0.2.3.tgz","fileCount":3,"integrity":"sha512-oK/whhocxtjeGubfi1U6/MLEUUPTPgEb+unrgfZQVkRNUfYUvDYUDu5mzJpDglxkXMi7NrCabJgNpkukwGcOog==","signatures":[{"sig":"MEUCIEHw4YEu8A8fE+Fw8cASpu00MmkWNPKiMsptNSgiPLLuAiEAnACdy3WrI/D1FKQVrDtDvcII+6AjITrYCv+G/9/b0Hs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":39678},"type":"module","engines":{"node":">=18"},"mcpName":"io.github.uiNerd16/aicanvas","scripts":{"dev":"tsc --watch","test":"npm run build && node test/smoke.mjs && node test/offline.mjs","build":"tsc && chmod +x dist/index.js","inspect":"npm run build && npx -y @modelcontextprotocol/inspector node dist/index.js","test:smoke":"npm run build && node test/smoke.mjs","test:offline":"npm run build && node test/offline.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"aicanvas","email":"aicanvas.me@gmail.com"},"repository":{"url":"git+https://github.com/uiNerd16/aicanvas.git","type":"git","directory":"mcp"},"_npmVersion":"11.8.0","description":"Model Context Protocol server for AI Canvas — search, inspect, and install components from the aicanvas.me registry directly from your AI editor.","directories":{},"_nodeVersion":"24.13.1","dependencies":{"zod":"^3.25.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.2.3_1786093383642_0.2780200350259707","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"@aicanvas/mcp","version":"0.2.5","keywords":["mcp","model-context-protocol","mcp-server","aicanvas","shadcn","shadcn-registry","shadcn-ui","react-components","ui-components","component-library","framer-motion","animated-components","tailwindcss","design-system","ai-agents","ai-coding","claude","cursor","code-generation","registry"],"author":{"name":"AI Canvas","email":"https://aicanvas.me"},"license":"MIT","_id":"@aicanvas/mcp@0.2.5","maintainers":[{"name":"aicanvas","email":"aicanvas.me@gmail.com"}],"homepage":"https://aicanvas.me","bugs":{"url":"https://github.com/aicanvas-me/aicanvas/issues"},"bin":{"aicanvas-mcp":"dist/index.js"},"dist":{"shasum":"c112998ef67def177af5efdee87c48bcfc1812e6","tarball":"https://registry.npmjs.org/@aicanvas/mcp/-/mcp-0.2.5.tgz","fileCount":3,"integrity":"sha512-4oubiffndnyS3LjIKbNSCrbyb4hG3M5KRHD4DlFtZBUpDra4F76ujgw2bEJQp7i1qSUzTm36K5/XfLnbnl9S/Q==","signatures":[{"sig":"MEUCIDHTbGGtG4HZP8yy6PGJu0z/oiieYXJmB4ZbZtylB+qQAiEAmwmH2bkBVP5MAjkjRO+joZWN/ox9U3vk+43jephgwrY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":40004},"type":"module","engines":{"node":">=18"},"gitHead":"3033cfffbb53eccde29f5f52fb8ba0b7bd174d67","mcpName":"io.github.aicanvas-me/aicanvas","scripts":{"dev":"tsc --watch","test":"npm run build && node test/smoke.mjs && node test/offline.mjs","build":"tsc && chmod +x dist/index.js","inspect":"npm run build && npx -y @modelcontextprotocol/inspector node dist/index.js","test:smoke":"npm run build && node test/smoke.mjs","test:offline":"npm run build && node test/offline.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"aicanvas","email":"aicanvas.me@gmail.com"},"repository":{"url":"git+https://github.com/aicanvas-me/aicanvas.git","type":"git","directory":"mcp"},"_npmVersion":"11.8.0","description":"Model Context Protocol server for AI Canvas: search, inspect, and install components from the aicanvas.me registry directly from your AI editor.","directories":{},"_nodeVersion":"24.13.1","dependencies":{"zod":"^3.25.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.2.5_1788733285203_0.9276726648856755","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"_id":"@aicanvas/mcp@0.3.0","bin":{"aicanvas-mcp":"dist/index.js"},"bugs":{"url":"https://github.com/aicanvas-me/aicanvas/issues"},"dist":{"shasum":"fb67b7ea9c22c30f05fb7dc9624b439a4b4afe6c","tarball":"https://registry.npmjs.org/@aicanvas/mcp/-/mcp-0.3.0.tgz","fileCount":3,"integrity":"sha512-mnfQv3DLX4S0fhoAmglfu1W1rrwYZ4GApgx/vhoQKxIQm8DAA5E0672hRovXNhD7Va2sp4BECrcc1YdB+RIBRQ==","signatures":[{"sig":"MEUCIHruIfXUiO4NlD3YKUBw3JNXJm360SWE2pJJU92K3sHrAiEAx2XhXgf7lJqpmEUTOYYBHRxSbrWhTyFPBTXe70ENY9A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCvQW0+Gw2QjKn79WXsb0ZX93iLlmahGKgjciIB0ZwAJwIhAN0elYLcgXhJZ5Zu5MRX1JyDLtR9sGLUxKR1c6VoEY4w"}],"unpackedSize":75148},"name":"@aicanvas/mcp","type":"module","author":{"name":"AI Canvas","email":"https://aicanvas.me"},"engines":{"node":">=18"},"gitHead":"90259fe00e271f9b19f7ed5f3ac9ad410b2b141b","license":"MIT","mcpName":"io.github.aicanvas-me/aicanvas","scripts":{"dev":"tsc --watch","test":"npm run build && node test/smoke.mjs && node test/offline.mjs","build":"tsc && chmod +x dist/index.js","inspect":"npm run build && npx -y @modelcontextprotocol/inspector node dist/index.js","test:smoke":"npm run build && node test/smoke.mjs","test:offline":"npm run build && node test/offline.mjs","prepublishOnly":"npm run build"},"version":"0.3.0","_npmUser":{"name":"aicanvas","email":"aicanvas.me@gmail.com"},"homepage":"https://aicanvas.me","keywords":["mcp","model-context-protocol","mcp-server","aicanvas","shadcn","shadcn-registry","shadcn-ui","react-components","ui-components","component-library","framer-motion","animated-components","tailwindcss","design-system","ai-agents","ai-coding","claude","cursor","code-generation","registry"],"repository":{"url":"git+https://github.com/aicanvas-me/aicanvas.git","type":"git","directory":"mcp"},"_npmVersion":"11.8.0","description":"Model Context Protocol server for AI Canvas: search, inspect, and install components from the aicanvas.me registry directly from your AI editor.","directories":{},"maintainers":[{"name":"aicanvas","email":"aicanvas.me@gmail.com"}],"_nodeVersion":"24.13.1","dependencies":{"zod":"^3.25.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp_0.3.0_1790200834241_0.028472906091492778"}}},"time":{"created":"2026-04-30T09:57:47.341Z","modified":"2026-09-23T22:00:34.492Z","0.1.0":"2026-04-30T09:57:47.850Z","0.1.1":"2026-05-02T19:18:48.586Z","0.2.0":"2026-06-22T10:15:22.230Z","0.2.1":"2026-07-08T13:44:50.920Z","0.2.2":"2026-07-08T19:51:32.317Z","0.2.3":"2026-08-07T09:03:03.777Z","0.2.5":"2026-09-06T22:21:25.325Z","0.3.0":"2026-09-23T22:00:34.334Z"},"bugs":{"url":"https://github.com/aicanvas-me/aicanvas/issues"},"author":{"name":"AI Canvas","email":"https://aicanvas.me"},"license":"MIT","homepage":"https://aicanvas.me","keywords":["mcp","model-context-protocol","mcp-server","aicanvas","shadcn","shadcn-registry","shadcn-ui","react-components","ui-components","component-library","framer-motion","animated-components","tailwindcss","design-system","ai-agents","ai-coding","claude","cursor","code-generation","registry"],"repository":{"url":"git+https://github.com/aicanvas-me/aicanvas.git","type":"git","directory":"mcp"},"description":"Model Context Protocol server for AI Canvas: search, inspect, and install components from the aicanvas.me registry directly from your AI editor.","maintainers":[{"name":"aicanvas","email":"aicanvas.me@gmail.com"}],"readme":"# `@aicanvas/mcp`\n\n<a href=\"https://mcpservers.org/servers/uinerd16/aicanvas\"><img src=\"https://raw.githubusercontent.com/aicanvas-me/aicanvas/main/assets/readme-buttons/btn-mcpservers-sm.png\" alt=\"Listed on mcpservers.org\" width=\"167\" height=\"28\" /></a>\n\nModel Context Protocol server for [AI Canvas](https://aicanvas.me). Lets your AI editor (Claude Code, Cursor, Claude Desktop, Codex) discover and install AI Canvas components without leaving the chat.\n\n```\nYou:   \"find me an animated card stack\"\nAI:    [calls search_components → ranks matches → picks polaroid-stack]\n       [calls get_install_command → returns: npx shadcn add @aicanvas/polaroid-stack]\n       [runs the command — file lands in your project]\nYou:   \"make the rotation more dramatic\"\nAI:    [edits the file directly]\n```\n\n## What it exposes\n\nThirteen tools, derived from the live [aicanvas.me](https://aicanvas.me) registry. Adding a component to the website auto-updates the MCP within minutes. The registry holds 80+ standalone components, plus the Andromeda design system with its own components and templates.\n\n| Tool | Purpose |\n|---|---|\n| `list_categories` | Show every category with component counts. Orient before drilling in. |\n| `list_components` | Browse standalone components, optionally filtered by category. Paginated. |\n| `search_components` | Fuzzy keyword search across standalone AND design-system components (slugs, names, descriptions, categories, tags). Ranked results. |\n| `get_component` | Full metadata plus complete `.tsx` source code for one component. Resolves both standalone slugs and design-system component slugs (e.g. `andromeda-heat-grid`). |\n| `get_install_command` | Get the `npx shadcn add @aicanvas/<slug>` command for any standalone or design-system component. |\n| `list_systems` | List the design systems available (e.g. Andromeda), with component and template counts. |\n| `get_system` | Every file for a whole design system, plus its shared tokens, its component install commands, and the dependency chain. |\n| `list_templates` | List the ready-made templates (complete example screens), optionally filtered by design system. |\n| `get_template` | Every file for a single template (a ready-made composition), with the registry dependencies it pulls in. |\n| `get_component_props` | The documented props of one component: name, type, required, default, description. Free, no account, far smaller than the source. |\n| `validate_usage` | Check a file's JSX against the documented props of the AI Canvas components it imports: unknown props, missing required props, values outside a prop's options, each with a line number. |\n| `compose_page` | Turn a one-line brief into a build plan: closest template, one component per part with alternatives, install order (tokens first), and the parts nothing covers. Plans only, generates no code. |\n| `get_audit_checklist` | The checklist to run on a finished page or component: install completeness, props, both themes, 320px layout, motion cleanup, keyboard and contrast, composition. |\n\nAll tools are read-only. Nothing is mutated on AI Canvas's side.\n\nThe workflow the last four tools are built for: `compose_page` to plan, `get_component_props` to read each API before writing JSX, `validate_usage` on the finished file, `get_audit_checklist` before calling it done.\n\nStandalone components and design-system components are kept in separate buckets. `list_components` and `list_categories` cover the 80+ standalones only, so the catalog stays clean. Design-system components are reached through `list_systems` / `get_system`, and are also resolvable by slug through `get_component`, `get_install_command`, and `search_components`.\n\n## Setup\n\n### Claude Desktop\n\nEdit `claude_desktop_config.json`:\n\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\n```json\n{\n  \"mcpServers\": {\n    \"aicanvas\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@aicanvas/mcp\"]\n    }\n  }\n}\n```\n\nRestart Claude Desktop. The `aicanvas` tools should appear in the tools list.\n\n### Cursor\n\nProject-level (`.cursor/mcp.json` in your repo) or global (`~/.cursor/mcp.json`):\n\n```json\n{\n  \"mcpServers\": {\n    \"aicanvas\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@aicanvas/mcp\"]\n    }\n  }\n}\n```\n\n### Claude Code\n\nProject-level `.mcp.json` (committed alongside your code):\n\n```json\n{\n  \"mcpServers\": {\n    \"aicanvas\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@aicanvas/mcp\"]\n    }\n  }\n}\n```\n\nOr via the CLI:\n\n```bash\nclaude mcp add aicanvas -- npx -y @aicanvas/mcp\n```\n\n### Codex\n\n`~/.codex/config.toml`:\n\n```toml\n[mcp_servers.aicanvas]\ncommand = \"npx\"\nargs = [\"-y\", \"@aicanvas/mcp\"]\n```\n\n## Verify it works\n\nInside any of the AI editors above, ask:\n\n> \"What categories of components does AI Canvas have?\"\n\nYou should see all 11 categories with counts. If you don't, check the host's MCP logs. Typically a \"Failed to spawn process\" or network error means npx couldn't fetch the package, or the host wasn't restarted after editing the config.\n\nTo inspect the server outside an editor:\n\n```bash\nnpx -y @modelcontextprotocol/inspector npx -y @aicanvas/mcp\n```\n\nThis opens a browser UI where you can call each tool by hand.\n\n## Configuration\n\n| Env var | Default | What it does |\n|---|---|---|\n| `AICANVAS_REGISTRY_BASE` | `https://aicanvas.me/r` | Registry root URL. Override only for local development against a self-hosted mirror. |\n| `AICANVAS_TOKEN` | _(none)_ | Optional per-account token. The website bakes it into the MCP config it gives you. It identifies your AI Canvas account so source pulls are authorized and any premium content you own unlocks. Sent as a `Bearer` token on every registry request. Without it you are anonymous: metadata browsing still works, but pulling a component's source returns a short \"create a free account\" notice instead of the code. |\n\n### Accounts and premium content\n\nBrowsing metadata (`list_categories`, `list_components`, `search_components`, `list_systems`, `list_templates`, `get_install_command`) is free and needs no account. Pulling actual source (`get_component`, `get_system`, `get_template`) runs against a free AI Canvas account: set `AICANVAS_TOKEN` from your account and the website gives you the ready-made config. Without a token, a free-component source pull returns a short \"create a free account\" notice instead of the code, and premium content (full design systems and templates) returns HTTP 402 with an upgrade link at [aicanvas.me/pricing](https://aicanvas.me/pricing). Update anytime with `npx @aicanvas/mcp@latest`.\n\n## How the registry stays fresh\n\nThe MCP fetches `https://aicanvas.me/r/aicanvas-mcp.json` on first use and caches it for 5 minutes. New components on AI Canvas appear in the MCP automatically, no package update required.\n\nThe full source code for each component is fetched on demand from `/r/<slug>.json` (the same shadcn registry items the CLI installs).\n\nThe prop tables come from `https://aicanvas.me/r/aicanvas-props.json`, parsed at build time from each component's own JSDoc, so they cannot drift from the source. Same 5-minute cache.\n\n## Local development\n\n```bash\ngit clone https://github.com/aicanvas-me/aicanvas.git\ncd aicanvas/mcp\nnpm install\nnpm run build\n\n# Smoke-test against the deployed registry:\nnpm run inspect\n\n# Or point at a locally running aicanvas dev server:\nAICANVAS_REGISTRY_BASE=http://localhost:3000/r node dist/index.js\n```\n\nEdit `src/index.ts`, run `npm run build`, restart your AI editor.\n\n## License\n\nMIT, same as the AI Canvas project.\n","readmeFilename":"README.md"}