{"_id":"@anythingbutlabs/morphica-mcp","_rev":"8-a9a9e20d2201144845c130776c380468","name":"@anythingbutlabs/morphica-mcp","dist-tags":{"latest":"0.5.0"},"versions":{"0.1.0":{"name":"@anythingbutlabs/morphica-mcp","version":"0.1.0","keywords":["mcp","morphica","image-generation","brand"],"license":"MIT","_id":"@anythingbutlabs/morphica-mcp@0.1.0","maintainers":[{"name":"anythingbutlabs","email":"anythingbutlabs@gmail.com"}],"bin":{"morphica-mcp":"dist/index.js"},"dist":{"shasum":"786b1ecbfb56fc93a67f36fb956783e109f7b1e7","tarball":"https://registry.npmjs.org/@anythingbutlabs/morphica-mcp/-/morphica-mcp-0.1.0.tgz","fileCount":8,"integrity":"sha512-33LC0dq5HuF5wDjlW80g7/2bL6Y7X27HJzXRh5l9+WMW4laZAiYUnzdKa0AnkgJCXWvIfoXyC4pAr8KflVStBQ==","signatures":[{"sig":"MEUCIQCYaZFoEtK5II0ud+mD89ks8XhFNya+MQRxuHYfWTyZqwIgILZgFjFUaxL3yCBj/uodvLOy5VJ9BvNpjHhWBSiGnQo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13184},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"58684b298e716fda3cfe6c1b454597534d2d4d69","scripts":{"build":"tsc","start":"node dist/index.js","prepare":"npm run build"},"_npmUser":{"name":"anythingbutlabs","email":"anythingbutlabs@gmail.com"},"_npmVersion":"11.16.0","description":"MCP server for Morphica image generation and brand management","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^3.24.1","@modelcontextprotocol/sdk":"^1.12.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.2","@types/node":"^22.10.0"},"_npmOperationalInternal":{"tmp":"tmp/morphica-mcp_0.1.0_1782453961285_0.8071620237674086","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@anythingbutlabs/morphica-mcp","version":"0.2.0","keywords":["mcp","morphica","image-generation","brand"],"license":"MIT","_id":"@anythingbutlabs/morphica-mcp@0.2.0","maintainers":[{"name":"anythingbutlabs","email":"anythingbutlabs@gmail.com"}],"bin":{"morphica-mcp":"dist/index.js"},"dist":{"shasum":"f9e0ddb1121ddb415ad11942ec3f7dd34b3bbe1f","tarball":"https://registry.npmjs.org/@anythingbutlabs/morphica-mcp/-/morphica-mcp-0.2.0.tgz","fileCount":20,"integrity":"sha512-RhEg7Iu6ms8F3MV8ZkRMnQ7xEsZbGgfIMzP9fWhtpqo1RdClIKKPz0BTWWosQdM/a74qhHjW4qjZwHwlBdajGA==","signatures":[{"sig":"MEUCIQDFShUJA72qmgnYbIbBTUiX2uafSm8QfjTfu3b/FMOfnwIgK7B0AxvOR2khmtpsOiAGSP4g6oma+pBlukAhf64wBV8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":42166},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"6454b93361069c389763c2e4e1cfc0884c813e95","scripts":{"test":"npm run build && node --test dist/**/*.test.js","build":"tsc","start":"node dist/index.js","prepare":"npm run build"},"_npmUser":{"name":"anythingbutlabs","email":"anythingbutlabs@gmail.com"},"_npmVersion":"11.16.0","description":"MCP server for Morphica image generation and brand management","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^3.24.1","@modelcontextprotocol/sdk":"^1.12.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.2","@types/node":"^22.10.0"},"_npmOperationalInternal":{"tmp":"tmp/morphica-mcp_0.2.0_1782547356914_0.545977323440678","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@anythingbutlabs/morphica-mcp","version":"0.2.1","keywords":["mcp","morphica","image-generation","brand"],"license":"MIT","_id":"@anythingbutlabs/morphica-mcp@0.2.1","maintainers":[{"name":"anythingbutlabs","email":"anythingbutlabs@gmail.com"}],"bin":{"morphica-mcp":"dist/index.js"},"dist":{"shasum":"466951a93451c1482c50940a9b83354770d4e3ad","tarball":"https://registry.npmjs.org/@anythingbutlabs/morphica-mcp/-/morphica-mcp-0.2.1.tgz","fileCount":20,"integrity":"sha512-Prlt0FYUb0mHrZ7o6tUk6BEi4aC/mBWkT/iwqqhYioMqCwTaVP+2mBjUiae0eSd+HeijufDgaKBbkWn3kNQx1w==","signatures":[{"sig":"MEQCIHWWnJxlbtSSSK7bezFVTRBgcZqnfXkwxW7ecnCJTPm8AiBt0cEpbp+wuu6onL3P1Xa4zO6X5IVz/s5iRXmwDgEX/Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":42498},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"30c75a5198e84ac5944cf163513a77c3eca8373c","scripts":{"test":"npm run build && node --test dist/**/*.test.js","build":"tsc","start":"node dist/index.js","prepare":"npm run build"},"_npmUser":{"name":"anythingbutlabs","email":"anythingbutlabs@gmail.com"},"_npmVersion":"11.16.0","description":"MCP server for Morphica image generation and brand management","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^3.24.1","@modelcontextprotocol/sdk":"^1.12.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.2","@types/node":"^22.10.0"},"_npmOperationalInternal":{"tmp":"tmp/morphica-mcp_0.2.1_1782547689357_0.9719894171666732","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@anythingbutlabs/morphica-mcp","version":"0.2.3","keywords":["mcp","morphica","image-generation","brand"],"license":"MIT","_id":"@anythingbutlabs/morphica-mcp@0.2.3","maintainers":[{"name":"anythingbutlabs","email":"anythingbutlabs@gmail.com"}],"bin":{"morphica-mcp":"dist/index.js"},"dist":{"shasum":"819165f99756b8de4e8d947360fd90d9a781bef0","tarball":"https://registry.npmjs.org/@anythingbutlabs/morphica-mcp/-/morphica-mcp-0.2.3.tgz","fileCount":25,"integrity":"sha512-CjAP+LgghIEaJf7Bzb4h7DRK7l3DuuHlKfXRHiewrFB85LMO5Ege44V7Tr673ZLNDWtBr8K56L6XV7/5scY2Zw==","signatures":[{"sig":"MEYCIQCWe1DoYTsBsn1t3r2V5trYj/ThR9pthVmghJ9STOhcvwIhAN0v4+tzurSg4qLbuUw1/hq9mhFTyWocXPNoiiE1pvdP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":54211},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"1f7e6014531d0d279651a2156ccae365bb8bec58","scripts":{"test":"npm run build && node --test dist/**/*.test.js","build":"tsc","start":"node dist/index.js","prepare":"npm run build"},"_npmUser":{"name":"anythingbutlabs","email":"anythingbutlabs@gmail.com"},"_npmVersion":"11.16.0","description":"MCP server for Morphica image generation and brand management","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^3.24.1","@modelcontextprotocol/sdk":"^1.12.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.2","@types/node":"^22.10.0"},"_npmOperationalInternal":{"tmp":"tmp/morphica-mcp_0.2.3_1782715022847_0.822032315870759","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"@anythingbutlabs/morphica-mcp","version":"0.2.4","keywords":["mcp","morphica","image-generation","brand"],"license":"MIT","_id":"@anythingbutlabs/morphica-mcp@0.2.4","maintainers":[{"name":"anythingbutlabs","email":"anythingbutlabs@gmail.com"}],"bin":{"morphica-mcp":"dist/index.js"},"dist":{"shasum":"326970993305c03846a42864fc8ab3f87eeb2256","tarball":"https://registry.npmjs.org/@anythingbutlabs/morphica-mcp/-/morphica-mcp-0.2.4.tgz","fileCount":25,"integrity":"sha512-qGEpGJgXmU9jqwbh2ml0lBkCzAv62o/KqJsPGKZz/j7uEuo7mjYADvMxqaiOfs0rh3HZByxfqyJn9wSJ0RM8UQ==","signatures":[{"sig":"MEQCIAuii1wGkTenT2YKxZl4o81XXWN6NH3xEm3BldmMAsTRAiAEtjKhWxhx9UrK7YRUyakKEXBBISyJx5jm+lIkOAJU5g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":54093},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"1f7e6014531d0d279651a2156ccae365bb8bec58","scripts":{"test":"npm run build && node --test dist/**/*.test.js","build":"tsc","start":"node dist/index.js","prepare":"npm run build"},"_npmUser":{"name":"anythingbutlabs","email":"anythingbutlabs@gmail.com"},"_npmVersion":"11.16.0","description":"MCP server for Morphica image generation and brand management","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^3.24.1","@modelcontextprotocol/sdk":"^1.12.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.2","@types/node":"^22.10.0"},"_npmOperationalInternal":{"tmp":"tmp/morphica-mcp_0.2.4_1782804466491_0.2735512138325842","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@anythingbutlabs/morphica-mcp","version":"0.3.0","keywords":["mcp","morphica","image-generation","brand"],"license":"MIT","_id":"@anythingbutlabs/morphica-mcp@0.3.0","maintainers":[{"name":"anythingbutlabs","email":"anythingbutlabs@gmail.com"}],"bin":{"morphica-mcp":"dist/index.js"},"dist":{"shasum":"68e134cee31341adfb1a17b3e5f1d066f052714c","tarball":"https://registry.npmjs.org/@anythingbutlabs/morphica-mcp/-/morphica-mcp-0.3.0.tgz","fileCount":25,"integrity":"sha512-F2tXFQHLmjQPzFxQjhYTQUWyC+Emn8Tnn09psaZ0DFm+Z99Qp2vMuGqSqrxwr0ZEdIZDNV45TxJgNSLjJxnJVg==","signatures":[{"sig":"MEUCIQDBtRRnkpNBwrJrnL7g0knxH3oJlGmaqpYIEg8GS0/e/gIgbo93abjYXDKQOSX0XwZ03tLHlt3MvKKr64qmnYbyk5M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":56889},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"afa69014aa13b83747580e003b31237642e541ca","scripts":{"test":"npm run build && node --test dist/**/*.test.js","build":"tsc","start":"node dist/index.js","prepare":"npm run build"},"_npmUser":{"name":"anythingbutlabs","email":"anythingbutlabs@gmail.com"},"_npmVersion":"11.16.0","description":"MCP server for Morphica image generation and brand management","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^3.24.1","@modelcontextprotocol/sdk":"^1.12.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.2","@types/node":"^22.10.0"},"_npmOperationalInternal":{"tmp":"tmp/morphica-mcp_0.3.0_1784109436736_0.4561476027975875","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@anythingbutlabs/morphica-mcp","version":"0.4.0","keywords":["mcp","morphica","image-generation","brand"],"license":"MIT","_id":"@anythingbutlabs/morphica-mcp@0.4.0","maintainers":[{"name":"anythingbutlabs","email":"anythingbutlabs@gmail.com"}],"bin":{"morphica-mcp":"dist/index.js"},"dist":{"shasum":"772b11e7014ae178b59fcd3b80eb1d63066e7750","tarball":"https://registry.npmjs.org/@anythingbutlabs/morphica-mcp/-/morphica-mcp-0.4.0.tgz","fileCount":31,"integrity":"sha512-8MfHvY9/SjwF9KxFv/yKnNxjPUxZ+Lrm4Da3bUjAUXX0gya2/DZ21puj2fcJHMEn9S6engLy8Ask7r8TbEj0jg==","signatures":[{"sig":"MEQCIAmZsCTOszQyV9hv+I2CVbpmVh0bD/KrEGQM34mRhMtvAiBpMs2ilm3SXxr1oDV5ZHgenlPl11VpETkW/P2p7ypL+Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":78715},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"b4ef19399da7f7422db5294477845f42cee836bb","scripts":{"test":"npm run build && node --test dist/**/*.test.js","build":"tsc","smoke":"node scripts/smoke-local.mjs","start":"node dist/index.js","prepare":"npm run build"},"_npmUser":{"name":"anythingbutlabs","email":"anythingbutlabs@gmail.com"},"_npmVersion":"11.16.0","description":"MCP server for Morphica image generation and brand management","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^3.24.1","@modelcontextprotocol/sdk":"^1.12.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.2","@types/node":"^22.10.0"},"_npmOperationalInternal":{"tmp":"tmp/morphica-mcp_0.4.0_1784564213053_0.32991815893249377","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@anythingbutlabs/morphica-mcp","version":"0.5.0","description":"MCP server for Morphica image generation and brand management","type":"module","main":"./dist/index.js","bin":{"morphica-mcp":"dist/index.js"},"keywords":["mcp","morphica","image-generation","brand"],"license":"MIT","publishConfig":{"access":"public"},"dependencies":{"@modelcontextprotocol/sdk":"^1.12.1","zod":"^3.24.1"},"devDependencies":{"@types/node":"^22.10.0","typescript":"^5.7.2"},"engines":{"node":">=20"},"scripts":{"clean":"node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\"","build":"npm run clean && tsc","test":"npm run build && node --test \"dist/*.test.js\"","smoke":"node scripts/smoke-local.mjs","start":"node dist/index.js"},"types":"./dist/index.d.ts","_id":"@anythingbutlabs/morphica-mcp@0.5.0","_integrity":"sha512-MiCg2OPDyAOsh4dr7HBD9ShkWW7xAJrLgAeG+bG5dHVrKd8hHlXmaSWTRCQgRZc1M3jDoBpHyOQZw0+DLrWe6Q==","_resolved":"C:\\Users\\vigne\\AppData\\Local\\Temp\\e9ed88165907c4a97be20f4d5078201e\\anythingbutlabs-morphica-mcp-0.5.0.tgz","_from":"file:anythingbutlabs-morphica-mcp-0.5.0.tgz","_nodeVersion":"24.18.0","_npmVersion":"11.16.0","dist":{"integrity":"sha512-MiCg2OPDyAOsh4dr7HBD9ShkWW7xAJrLgAeG+bG5dHVrKd8hHlXmaSWTRCQgRZc1M3jDoBpHyOQZw0+DLrWe6Q==","shasum":"7277becde93c2d0cfd34e40faef86f88d288dd7f","tarball":"https://registry.npmjs.org/@anythingbutlabs/morphica-mcp/-/morphica-mcp-0.5.0.tgz","fileCount":27,"unpackedSize":99303,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIE3UbK8lSaEgxPN+94dIqXep3TmlhcrzHd8k7VJCpeGkAiEA6bZqt/tSr1ZWRQ8+s/FUpNb27+Pii6YLGnA/LzMjvBc="}]},"_npmUser":{"name":"anythingbutlabs","email":"anythingbutlabs@gmail.com"},"directories":{},"maintainers":[{"name":"anythingbutlabs","email":"anythingbutlabs@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/morphica-mcp_0.5.0_1785990788239_0.5448834033220191"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-26T06:06:01.020Z","modified":"2026-08-06T04:33:08.583Z","0.1.0":"2026-06-26T06:06:01.437Z","0.2.0":"2026-06-27T08:02:37.058Z","0.2.1":"2026-06-27T08:08:09.509Z","0.2.3":"2026-06-29T06:37:02.993Z","0.2.4":"2026-06-30T07:27:46.611Z","0.3.0":"2026-07-15T09:57:16.872Z","0.4.0":"2026-07-20T16:16:53.218Z","0.5.0":"2026-08-06T04:33:08.396Z"},"license":"MIT","keywords":["mcp","morphica","image-generation","brand"],"description":"MCP server for Morphica image generation and brand management","maintainers":[{"name":"anythingbutlabs","email":"anythingbutlabs@gmail.com"}],"readme":"# Morphica MCP Server\r\n\r\nConnect AI agents (OpenClaw, Hermes, Claude Desktop, Cursor, VS Code) to Morphica for image generation and brand management.\r\n\r\n## Prerequisites\r\n\r\n1. A Morphica account with credits\r\n2. An API key from **Settings → API Keys** on [morphica.studio](https://morphica.studio/settings/api-keys)\r\n\r\n## Environment variables\r\n\r\n| Variable | Required | Description |\r\n|----------|----------|-------------|\r\n| `MORPHICA_API_KEY` | Yes | `morphica_sk_live_...` key |\r\n| `MORPHICA_API_BASE_URL` | No | API base URL including `/api/v1`. Defaults to the hosted Morphica API — set it only to target a different backend, e.g. `http://localhost:8000/api/v1` for local development. |\r\n| `MORPHICA_REQUEST_TIMEOUT_MS` | No | Per-request HTTP timeout, default `60000`. Generation calls that wait get their own longer budget. |\r\n| `MORPHICA_MAX_INLINE_IMAGE_BYTES` | No | Max render size returned inline, default `4194304` (4MB). Above this the result carries `outputImageUrl` only. Set `0` to never inline. |\r\n\r\n## Install\r\n\r\n```bash\r\nnpx -y @anythingbutlabs/morphica-mcp@0.5.0\r\n```\r\n\r\nOr add to your agent MCP config:\r\n\r\n### Cursor / Claude Desktop\r\n\r\nBoth use the `mcpServers` key, in different files:\r\n\r\n| Host | Config file |\r\n|------|-------------|\r\n| Cursor | `~/.cursor/mcp.json` — Windows: `%USERPROFILE%\\.cursor\\mcp.json` |\r\n| Claude Desktop | macOS: `~/Library/Application Support/Claude/claude_desktop_config.json` — Windows: `%APPDATA%\\Claude\\claude_desktop_config.json` |\r\n\r\nMerge this in alongside any servers already listed:\r\n\r\n```json\r\n{\r\n  \"mcpServers\": {\r\n    \"morphica\": {\r\n      \"command\": \"npx\",\r\n      \"args\": [\"-y\", \"@anythingbutlabs/morphica-mcp@0.5.0\"],\r\n      \"env\": {\r\n        \"MORPHICA_API_KEY\": \"morphica_sk_live_...\",\r\n        \"MORPHICA_API_BASE_URL\": \"https://morphica-backend-production.up.railway.app/api/v1\"\r\n      }\r\n    }\r\n  }\r\n}\r\n```\r\n\r\n### VS Code (Copilot Agent)\r\n\r\nUse `.vscode/mcp.json` or **MCP: Open User Configuration**. VS Code uses `servers`, not `mcpServers`:\r\n\r\n```json\r\n{\r\n  \"servers\": {\r\n    \"morphica\": {\r\n      \"type\": \"stdio\",\r\n      \"command\": \"npx\",\r\n      \"args\": [\"-y\", \"@anythingbutlabs/morphica-mcp@0.5.0\"],\r\n      \"env\": {\r\n        \"MORPHICA_API_KEY\": \"morphica_sk_live_...\",\r\n        \"MORPHICA_API_BASE_URL\": \"https://morphica-backend-production.up.railway.app/api/v1\"\r\n      }\r\n    }\r\n  }\r\n}\r\n```\r\n\r\n### OpenClaw\r\n\r\n```json\r\n{\r\n  \"mcpServers\": {\r\n    \"morphica\": {\r\n      \"command\": \"npx\",\r\n      \"args\": [\"-y\", \"@anythingbutlabs/morphica-mcp@0.5.0\"],\r\n      \"env\": {\r\n        \"MORPHICA_API_KEY\": \"morphica_sk_live_...\",\r\n        \"MORPHICA_API_BASE_URL\": \"https://morphica-backend-production.up.railway.app/api/v1\"\r\n      }\r\n    }\r\n  }\r\n}\r\n```\r\n\r\n### Hermes Agent\r\n\r\nAdd to `~/.hermes/config.yaml`:\r\n\r\n```yaml\r\nmcp_servers:\r\n  morphica:\r\n    command: \"npx\"\r\n    args: [\"-y\", \"@anythingbutlabs/morphica-mcp@0.5.0\"]\r\n    env:\r\n      MORPHICA_API_KEY: \"${MORPHICA_API_KEY}\"\r\n      MORPHICA_API_BASE_URL: \"${MORPHICA_API_BASE_URL}\"\r\n    timeout: 120\r\n    supports_parallel_tool_calls: false\r\n    tools:\r\n      include:\r\n        - upload_image\r\n        - create_image\r\n        - list_brands\r\n        - get_brand\r\n        - extract_brand_from_url\r\n        - create_brand\r\n        - get_credits\r\n        - list_models\r\n      prompts: false\r\n      resources: false\r\n```\r\n\r\nStore both values in `~/.hermes/.env`:\r\n\r\n```bash\r\nMORPHICA_API_KEY=morphica_sk_live_...\r\nMORPHICA_API_BASE_URL=https://morphica-backend-production.up.railway.app/api/v1\r\n```\r\n\r\nReload after changes: `/reload-mcp` or restart Hermes.\r\n\r\n## What's new in 0.5.0\r\n\r\n- **Inline previews are size-capped** — renders above `MORPHICA_MAX_INLINE_IMAGE_BYTES` (4MB default) return `outputImageUrl` plus an `inlineImageSkipped` reason instead of a multi-megabyte base64 payload.\r\n- **Progress notifications** — long generations report progress, so clients stop timing out mid-wait.\r\n- **Cancellation is honored** — cancelling a tool call now aborts the in-flight request and stops polling instead of continuing to spend credits.\r\n- **Request timeouts** — every HTTP call has a deadline (`MORPHICA_REQUEST_TIMEOUT_MS`, 60s default); a hung backend no longer hangs the tool forever.\r\n- **One wait budget** — `timeoutSeconds` is now the total wall-clock budget. Previously the server-side wait and the client-side poll each got the full value, so a slow generation could block for twice as long as requested.\r\n- **`list_generations` takes `limit` and `cursor`** (default 20) instead of dumping the full history.\r\n\r\n### Breaking changes in 0.5.0\r\n\r\n- `upload_image` returns `{ url }`, no longer `{ id, url }`. The old `id` was the URL, and passing it as `referenceImages[].id` silently routed the upload down the brand-reference path. Pass it as `referenceImages[].url`.\r\n- `list_brands` returns `{ brands: [{ id, name, slug, referenceCatalog }], hint }` instead of full brand records. Call `get_brand` for full detail.\r\n- **`MORPHICA_API_BASE_URL` now defaults to the hosted API, not `localhost:8000`.** Agent installs no longer need the variable at all. Local development must now set it **explicitly** — omitting it will hit production and spend real credits.\r\n- Requires Node 20+.\r\n\r\n## What's new in 0.4.0\r\n\r\n- **Branded compositing via `create_image` + `brandSlug`** — scene generation then exact logo compositing from corner config (`logoCreativeCorner` + reference `creativeCorner`). No separate creative tools.\r\n- **`logosUsed`** in branded results lists composited logos by corner.\r\n- **Gallery publish** — branded runs return `generationId` with the composited `outputImageUrl`.\r\n- **Aspect ratios** for branded creatives: `1:1`, `16:9`, `9:16`.\r\n- **`parentGenerationId` + `brandSlug`** — edit scene then re-composite logos.\r\n\r\n## Breaking changes in 0.3.0\r\n\r\n- `create_image.referenceImages` no longer accepts `base64`. Use `upload_image` first, then pass the returned `url`.\r\n- Multi-reference brands require explicit `brandReferenceIndexes` or `referenceImages[].id` (or `get_brand` + retry on `ref_selection_required`).\r\n- `create_image` results now include `assetsUsed` so agents can verify logo/reference usage.\r\n\r\n## Tools\r\n\r\n| Tool | Description |\r\n|------|-------------|\r\n| `upload_image` | Upload a local path or base64 image; returns `{ url }` |\r\n| `create_image` | Generate or edit images (inline result when `wait=true`, subject to the size cap) |\r\n| `get_generation_status` | Poll a generation job |\r\n| `list_generations` | Recent generation history; takes `limit` (default 20) and `cursor` |\r\n| `list_models` | Available **image** models |\r\n| `list_brands` | List brand kits (identity + reference catalog; use `get_brand` for detail) |\r\n| `get_brand` | Get brand by slug with `referenceCatalog` (index, id, url, default) |\r\n| `extract_brand_from_url` | Extract brand profile from website |\r\n| `create_brand` | Create brand kit from JSON |\r\n| `get_credits` | Check credit balance |\r\n\r\n## Example flows\r\n\r\n### Text-to-image\r\n\r\n```json\r\n{\r\n  \"prompt\": \"Minimal product hero on white marble\",\r\n  \"aspectRatio\": \"16:9\"\r\n}\r\n```\r\n\r\n### Local file / chat attachment\r\n\r\n```text\r\n1. upload_image({ path: \"/path/from/hermes/hint.png\" })  → { url }\r\n2. create_image({\r\n     prompt: \"Replace the subject with a golden retriever, keep background and lighting\",\r\n     referenceImages: [{ \"url\": \"<url from upload_image>\" }]\r\n   })\r\n```\r\n\r\n### On-brand creative (composited logos)\r\n\r\n```text\r\n1. get_brand({ slug: \"acme\" })  → logoCreativeCorner, referenceCatalog (scene refs only; skip corner= entries)\r\n2. create_image({\r\n     prompt: \"Holiday poster scene. Keep four corners clear for logos.\",\r\n     brandSlug: \"acme\",\r\n     brandReferenceIndexes: [1],\r\n     aspectRatio: \"1:1\"\r\n   })\r\n   → outputImageUrl (composited), logosUsed, generationId\r\n```\r\n\r\nLogos are composited from brand assets — do not ask the model to draw logos. Describe scene, copy, and mood only.\r\n\r\nIf the brand has multiple scene refs, `create_image` returns `ref_selection_required` until you pass a valid index or id. On `ref_invalid_index`, retry with a valid index from `referenceCatalog`.\r\n\r\nInspect `logosUsed` and `assetsUsed` to confirm compositing succeeded.\r\n\r\nMCP always sends `enhancePrompt: false` — prompt enhancement is disabled for agents so subject-preservation intent is not rewritten.\r\n\r\n### Iterate on a prior result\r\n\r\n```json\r\n{\r\n  \"prompt\": \"Make the background darker\",\r\n  \"referenceImages\": [{ \"generationId\": \"<previous-generation-id>\" }]\r\n}\r\n```\r\n\r\nVideo generation is not exposed via MCP yet.\r\n\r\n## Troubleshooting\r\n\r\nStale tools, `generate_image` vs `create_image` mismatches, or missing brand reference lists are usually a **pinned-version + IDE cache** issue. See **[TROUBLESHOOTING.md](./TROUBLESHOOTING.md)** for the full checklist, Cursor cache paths, and optional local dev setup.\r\n\r\n## Development\r\n\r\nThis package is a pnpm workspace member of the `morphica` repo. Install from the\r\nrepo root, not from this directory:\r\n\r\n```bash\r\npnpm install                                     # from the repo root\r\npnpm --filter @anythingbutlabs/morphica-mcp build\r\npnpm --filter @anythingbutlabs/morphica-mcp test\r\nMORPHICA_API_KEY=morphica_sk_live_... \\\r\nMORPHICA_API_BASE_URL=http://localhost:8000/api/v1 \\\r\npnpm --filter @anythingbutlabs/morphica-mcp start\r\n```\r\n\r\nThe test script uses Node's built-in runner with a glob pattern, which needs\r\nNode 22+. The published package itself requires Node 20+.\r\n\r\nTo run your local build from Cursor instead of npm, see the **Optional: local development environment** section in [TROUBLESHOOTING.md](./TROUBLESHOOTING.md).\r\n\r\n## Publishing to npm\r\n\r\nPublished as **`@anythingbutlabs/morphica-mcp`**.\r\n\r\nSee npm 2FA requirements in your npm account settings before publishing.\r\n\r\n## Hermes catalog\r\n\r\nSee `hermes-catalog/manifest.yaml` for the optional-mcps entry to submit to [hermes-agent](https://github.com/NousResearch/hermes-agent).\r\n","readmeFilename":"README.md"}