{"apiVersion":"v1","directorySlug":"cellpy-mcp-119b0a8172","title":"Cellpy","description":"Create, publish, and embed reusable web content blocks.","pageUrl":"https://www.mcpbundles.com/skills/cellpy-mcp-119b0a8172","connectPath":"importable","connectAction":"import_server","catalogListing":false,"bundleSlug":null,"listingKind":"remote_mcp","kind":"provider","transportUrl":"https://mcp.cellpy.com/","hostedMcpUrl":null,"toolCount":14,"toolInventoryStatus":"observed","refreshedAt":"2026-11-03T13:26:00.516172+00:00","registryName":"com.cellpy/cellpy-mcp-119b0a8172","registryVersion":"2026.11.3","registryEligible":true,"tools":[{"name":"list_block_rules","description":"Retrieve the complete block validation ruleset for this Cellpy account.\nCall this tool BEFORE generating any block HTML or CSS.\nThe rules returned depend on the account's trust level — do not guess at them.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{}},"logicalName":"list_block_rules","displayName":"list_block_rules","title":"list_block_rules","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_image_upload_url","description":"Mint a short-lived direct-upload URL for ONE image file, for use with\npush_to_workspace/push_form_to_workspace's images array. Use this\nINSTEAD OF base64-encoding an image into a tool call's data field\nwhenever you have real file/network access yourself (e.g. can run\ncurl or an equivalent HTTP request outside this conversation) —\ninlining image bytes as base64 burns significant context/tokens for\nno benefit once this exists, and is capped at 4 MB besides. If\nthere's more than one image, or you'r","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["filename"],"properties":{"filename":{"type":"string","minLength":1}},"additionalProperties":false},"logicalName":"get_image_upload_url","displayName":"get_image_upload_url","title":"get_image_upload_url","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_video_upload_url","description":"Mint a short-lived direct-upload URL for ONE video file (mp4 or webm,\n50 MB max), for use with push_to_workspace/push_form_to_workspace's\nvideos array. There is no base64/data option for video — the file is\nalways too large for that to be practical. Use this whenever you\nhave real file/network access yourself (e.g. can run curl or an\nequivalent HTTP request outside this conversation). If there's more\nthan one video, or you're not sure you have that kind of access\n(mobile app, Claude Desktop with","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["filename"],"properties":{"filename":{"type":"string","minLength":1}},"additionalProperties":false},"logicalName":"get_video_upload_url","displayName":"get_video_upload_url","title":"get_video_upload_url","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_media_upload_page_url","description":"Mint a link to a browser page where the user can upload as many\nimages and videos as they want (up to 20 files total) directly from\ntheir own device — no base64, no tool-call involvement at all.\nPrefer this over get_image_upload_url/get_video_upload_url whenever\nmore than one file is involved, or whenever you can't tell if the\nuser has real file/network access (e.g. they're on the Claude\nmobile app or Claude Desktop, neither of which can run a raw PUT\nthemselves) — those environments have no way","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{}},"logicalName":"get_media_upload_page_url","displayName":"get_media_upload_page_url","title":"get_media_upload_page_url","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"list_pending_uploads","description":"Check what's been uploaded so far through a link from\nget_media_upload_page_url. Call this after the user says they're\ndone uploading (or if you want to check progress). Returns each\nfile's key and filename, and whether it's an image or video — pass\nthe key straight into push_to_workspace/push_form_to_workspace's\nimages or videos array as { name, key, mimeType } (images can\nalternatively use { data }). The user already confirmed rights via\na checkbox on the upload page itself, so you can set\nima","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["session_token"],"properties":{"session_token":{"type":"string","minLength":1}},"additionalProperties":false},"logicalName":"list_pending_uploads","displayName":"list_pending_uploads","title":"list_pending_uploads","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"load_block","description":"Load an existing published block version into the designer's Workspace.\nUse this before modifying a block: load the version, read its html and css\nwith get_block, make the required changes, then push back with the\nappropriate tool:\n  - If get_block reports Type: form → use push_form_to_workspace\n  - Otherwise → use push_to_workspace","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["slug"],"properties":{"slug":{"type":"string","pattern":"^[a-z0-9-]{1,64}$"},"version":{"type":"integer","exclusiveMinimum":0}},"additionalProperties":false},"logicalName":"load_block","displayName":"load_block","title":"load_block","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_block","description":"Retrieve the HTML and CSS source of a published block version.\nUse this to read a block's current content before modifying it.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["slug"],"properties":{"slug":{"type":"string","pattern":"^[a-z0-9-]{1,64}$"},"version":{"type":"integer","exclusiveMinimum":0}},"additionalProperties":false},"logicalName":"get_block","displayName":"get_block","title":"get_block","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"photo_search","description":"Search for freely licensed stock photos from Pexels and Pixabay.\nCall this tool when the block design requires a photo, background image, or illustration.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["query"],"properties":{"count":{"type":"integer","default":5,"maximum":20,"minimum":1},"query":{"type":"string","minLength":1},"source":{"enum":["pexels","pixabay","all"],"type":"string","default":"all"}},"additionalProperties":false},"logicalName":"photo_search","displayName":"photo_search","title":"photo_search","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"save_api_keys","description":"Save the user's Pexels and/or Pixabay API keys to their Cellpy account.\nCall this after the user pastes their key(s) in response to a photo_search failure.\nOnly pass the keys the user actually provided — omit the other to leave it unchanged.\nAfter saving, immediately retry the photo_search that originally failed.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"pexels_api_key":{"type":"string"},"pixabay_api_key":{"type":"string"}},"additionalProperties":false},"logicalName":"save_api_keys","displayName":"save_api_keys","title":"save_api_keys","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"push_to_workspace","description":"Push a new or updated block into the designer's Workspace for review.\nThe block is NOT published to the CDN — the designer must open the Workspace\non cellpy.com and click 'Publish to Staging' before it goes live.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["slug","html"],"properties":{"css":{"type":"string","default":""},"html":{"type":"string","minLength":1},"name":{"type":"string"},"slug":{"type":"string","pattern":"^[a-z0-9-]{1,64}$"},"images":{"type":"array","items":{"type":"object","required":["name","mimeType"],"properties":{"key":{"type":"string"},"url":{"type":"string","format":"uri"},"data":{"type":"string"},"name":{"type":"string","minLength":1},"mimeType":{"enum":["image/jpeg","image/png","image/webp","image/gif","image/svg+xml"],"type":"string"}},"additionalProperties":false},"default":[]},"videos":{"type":"array","items":{"type":"object","required":["name","mimeType"],"properties":{"key":{"type":"string"},"url":{"type":"string","format":"uri"},"name":{"type":"string","minLength":1},"mimeType":{"enum":["video/mp4","video/webm"],"type":"string"}},"additionalProperties":false},"default":[]},"category":{"enum":["hero","features","pricing","cta","testimonials","general"],"type":"string","default":"general"},"original_block_id":{"type":"string"},"image_rights_confirmed":{"type":"boolean","default":false},"video_rights_confirmed":{"type":"boolean","default":false}},"additionalProperties":false},"logicalName":"push_to_workspace","displayName":"push_to_workspace","title":"push_to_workspace","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"push_form_to_workspace","description":"Push a form block to the Designer's Cellpy Workspace for review and publishing.\nUse this tool for lead capture forms. For web blocks (hero sections, pricing\ntables, etc.), use push_to_workspace instead.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["slug","name","fields","html"],"properties":{"css":{"type":"string","default":""},"html":{"type":"string","minLength":1},"name":{"type":"string","minLength":1},"slug":{"type":"string","pattern":"^[a-z0-9-]{1,64}$"},"fields":{"type":"array","items":{"type":"object","required":["name","label","inputType"],"properties":{"name":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,63}$"},"label":{"type":"string","minLength":1},"options":{"type":"array","items":{"type":"string"}},"required":{"type":"boolean","default":false},"inputType":{"enum":["text","email","textarea","select","checkbox"],"type":"string"}},"additionalProperties":false},"minItems":1},"images":{"type":"array","items":{"type":"object","required":["name","mimeType"],"properties":{"key":{"type":"string"},"url":{"type":"string","format":"uri"},"data":{"type":"string"},"name":{"type":"string","minLength":1},"mimeType":{"enum":["image/jpeg","image/png","image/webp","image/gif","image/svg+xml"],"type":"string"}},"additionalProperties":false},"default":[]},"videos":{"type":"array","items":{"type":"object","required":["name","mimeType"],"properties":{"key":{"type":"string"},"url":{"type":"string","format":"uri"},"name":{"type":"string","minLength":1},"mimeType":{"enum":["video/mp4","video/webm"],"type":"string"}},"additionalProperties":false},"default":[]},"category":{"enum":["hero","features","pricing","cta","testimonials","general","forms"],"type":"string","default":"forms"},"formConfig":{"type":"object","properties":{"submitLabel":{"type":"string"},"successMessage":{"type":"string"},"successRedirectUrl":{"type":"string"}},"additionalProperties":false},"original_block_id":{"type":"string"},"image_rights_confirmed":{"type":"boolean","default":false},"video_rights_confirmed":{"type":"boolean","default":false}},"additionalProperties":false},"logicalName":"push_form_to_workspace","displayName":"push_form_to_workspace","title":"push_form_to_workspace","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"list_blocks","description":"List all blocks in your Cellpy account with their CDN URLs and versions.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{}},"logicalName":"list_blocks","displayName":"list_blocks","title":"list_blocks","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"push_instant_update","description":"Push a change directly to an ALREADY-LIVE container — no Workspace review,\nno approval step. The change is visible on the real website within seconds.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["container_slug","environment","html"],"properties":{"css":{"type":"string","default":""},"html":{"type":"string","minLength":1},"lang":{"type":"string"},"type":{"enum":["form"],"type":"string"},"images":{"type":"array","items":{"type":"object","required":["name","url","mimeType"],"properties":{"url":{"type":"string","format":"uri"},"name":{"type":"string","minLength":1},"mimeType":{"enum":["image/jpeg","image/png","image/webp","image/gif","image/svg+xml"],"type":"string"}},"additionalProperties":false},"default":[]},"properties":{"type":"object","properties":{"fields":{"type":"array"},"formConfig":{}},"additionalProperties":false},"environment":{"enum":["staging","production"],"type":"string"},"container_slug":{"type":"string"}},"additionalProperties":false},"logicalName":"push_instant_update","displayName":"push_instant_update","title":"push_instant_update","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"check_instant_update_readiness","description":"Check whether a container is ready for push_instant_update WITHOUT pushing\nany content — safe to call as often as needed. Use this before an instant\nupdate if you want confidence first, especially for accounts on external\nstorage where credentials can go stale between checks. This tool never\nwrites block content; it only reports status.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["container_slug","environment"],"properties":{"environment":{"enum":["staging","production"],"type":"string"},"container_slug":{"type":"string"}},"additionalProperties":false},"logicalName":"check_instant_update_readiness","displayName":"check_instant_update_readiness","title":"check_instant_update_readiness","annotations":{"untrustedContentHint":true,"readOnlyHint":true}}],"toolSource":"directory_preview","agentAction":"both","installLinks":[{"id":"cursor","label":"Cursor","href":"cursor://anysphere.cursor-deeplink/mcp/install?name=Cellpy&config=eyJ1cmwiOiAiaHR0cHM6Ly9tY3AuY2VsbHB5LmNvbS8ifQ%3D%3D"},{"id":"vscode","label":"VS Code","href":"vscode:mcp/install?%7B%22name%22%3A%22Cellpy%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmcp.cellpy.com%2F%22%7D"},{"id":"vscode-insiders","label":"VS Code Insiders","href":"vscode-insiders:mcp/install?%7B%22name%22%3A%22Cellpy%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmcp.cellpy.com%2F%22%7D"},{"id":"claude-web","label":"Claude.ai","href":"https://claude.ai/customize/connectors?modal=add-custom-connector&connectorName=Cellpy&connectorUrl=https%3A%2F%2Fmcp.cellpy.com%2F"},{"id":"codex","label":"Codex","copyText":"codex mcp add \"Cellpy\" --url \"https://mcp.cellpy.com/\""},{"id":"chatgpt","label":"ChatGPT","href":"https://www.mcpbundles.com/docs/integrations/chatgpt"}],"catalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/cellpy-mcp-119b0a8172","callUrl":"https://www.mcpbundles.com/api/directory/v1/servers/cellpy-mcp-119b0a8172/tools/{tool}","mcpServerUrl":"https://mcp.cellpy.com/","liveCatalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/cellpy-mcp-119b0a8172?live=1"}