ship.page
Was dieses MCP kann
Deploys single-page or multi-file static websites to live URLs and manages hosted site drops.
Tools
Eingabeschema
{'type': 'object', 'required': ['slug', 'files'], 'properties': {'slug': {'type': 'string', 'description': 'The drop slug (the subdomain part of its ${domain} URL).'}, 'files': {'type': 'object', 'description': "Map of relative paths (e.g. 'index.html', 'css/app.css') to either a string, or { encoding: 'base64', content } for binary files.", 'additionalProperties': {'anyOf': [{'type': 'string'}, {'type': 'object', 'required': ['encoding', 'content'], 'properties': {'content': {'type': 'string'}, 'encoding': {'type': 'string', 'const': 'base64'}}}, {'type': 'object', 'required': ['content'], 'properties': {'content': {'type': 'string'}}}]}}}}
Ausgabeschema
{'type': 'object', 'required': ['slug', 'url', 'files', 'total_files', 'expires_at'], 'properties': {'url': {'type': 'string'}, 'plan': {'type': 'string'}, 'slug': {'type': 'string'}, 'files': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Paths added by this call'}, 'expires_at': {'type': ['string', 'null'], 'description': 'ISO timestamp, or null when the drop never expires'}, 'total_files': {'type': 'integer', 'description': 'Total files on the drop after the append'}}}
Eingabeschema
{'type': 'object', 'required': ['slug', 'claim_token'], 'properties': {'slug': {'type': 'string', 'description': 'The drop slug (the subdomain part of its ${domain} URL).'}, 'claim_token': {'type': 'string', 'description': 'The one-time spc_... token returned at deploy time.'}}}
Ausgabeschema
{'type': 'object', 'required': ['slug', 'claimed', 'url'], 'properties': {'url': {'type': 'string'}, 'slug': {'type': 'string'}, 'claimed': {'type': 'boolean'}, 'restored': {'type': 'boolean', 'description': 'True when the drop had already expired and was revived by the claim'}, 'expires_at': {'type': ['string', 'null'], 'description': "ISO timestamp after the claim's lifetime extension, or null"}}}
Eingabeschema
{'type': 'object', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'description': 'The drop slug (the subdomain part of its ${domain} URL).'}}}
Ausgabeschema
{'type': 'object', 'required': ['deleted'], 'properties': {'deleted': {'type': 'string', 'description': 'Slug of the deleted drop'}}}
Eingabeschema
{'type': 'object', 'required': ['files'], 'properties': {'ttl': {'type': 'integer', 'description': 'Lifetime in seconds (min 60). Anonymous: max 2592000 (30 days), default 30 days. Signed-in free: max 7776000 (90 days), default 90 days. Paid: any value, omit for no expiry.'}, 'name': {'type': 'string', 'description': 'Stable name for a redeployable drop (1-41 chars of [a-z0-9-]). Requires an active subscription; Team accounts serve it on their vanity subdomain.'}, 'agent': {'type': 'string', 'maxLength': 64, 'description': "Name of the AI agent or app publishing this drop, e.g. 'chatgpt', 'claude', 'cursor'. AI agents: always set this."}, 'email': {'type': 'string', 'description': 'Contact email for an anonymous deploy: the one-time claim link is mailed to it, so the drop stays recoverable even if the claim_token from the response is lost. Pass it whenever the deploy is for a human. Ignored for authenticated deploys (those are owned already).'}, 'files': {'type': 'object', 'description': "Map of relative paths (e.g. 'index.html', 'css/app.css') to either a string, or { encoding: 'base64', content } for binary files.", 'additionalProperties': {'anyOf': [{'type': 'string'}, {'type': 'object', 'required': ['encoding', 'content'], 'properties': {'content': {'type': 'string'}, 'encoding': {'type': 'string', 'const': 'base64'}}}, {'type': 'object', 'required': ['content'], 'properties': {'content': {'type': 'string'}}}]}}, 'password': {'type': 'string', 'maxLength': 128, 'minLength': 8, 'writeOnly': True, 'description': 'Shared password: 8-128 Unicode characters, at most 512 UTF-8 bytes. Requires active paid Pro/Team. Sent privately, never in the URL or response. Omit on a live named redeploy to preserve protection. Recreating an expired or purged name is a new drop: send the password again.'}}}
Ausgabeschema
{'type': 'object', 'required': ['slug', 'url', 'files', 'plan', 'expires_at', 'password_protected'], 'properties': {'url': {'type': 'string'}, 'name': {'type': 'string'}, 'plan': {'type': 'string'}, 'slug': {'type': 'string', 'description': 'Drop slug; the site is live at https://<slug>.ship.place/'}, 'files': {'type': 'array', 'items': {'type': 'string'}}, 'replaced': {'type': 'boolean', 'description': 'Present with named deploys; true when an existing drop was replaced'}, 'expires_at': {'type': ['string', 'null'], 'description': 'ISO timestamp, or null when the drop never expires'}, 'claim_token': {'type': 'string', 'description': 'One-time claim token (spc_...), present only on anonymous deploys and shown once. Anyone holding it can attach the drop to an account via claim_drop.'}, 'password_protected': {'type': 'boolean'}}}
Eingabeschema
{'type': 'object', 'required': ['html'], 'properties': {'ttl': {'type': 'integer', 'description': 'Lifetime in seconds (min 60). Anonymous: max 2592000 (30 days), default 30 days. Signed-in free: max 7776000 (90 days), default 90 days. Paid: any value, omit for no expiry.'}, 'html': {'type': 'string', 'description': 'The full HTML document to publish.'}, 'name': {'type': 'string', 'description': 'Stable name for a redeployable drop (1-41 chars of [a-z0-9-]). Requires an active subscription; Team accounts serve it on their vanity subdomain.'}, 'agent': {'type': 'string', 'maxLength': 64, 'description': "Name of the AI agent or app publishing this drop, e.g. 'chatgpt', 'claude', 'cursor'. AI agents: always set this."}, 'email': {'type': 'string', 'description': 'Contact email for an anonymous deploy: the one-time claim link is mailed to it, so the drop stays recoverable even if the claim_token from the response is lost. Pass it whenever the deploy is for a human. Ignored for authenticated deploys (those are owned already).'}, 'password': {'type': 'string', 'maxLength': 128, 'minLength': 8, 'writeOnly': True, 'description': 'Shared password: 8-128 Unicode characters, at most 512 UTF-8 bytes. Requires active paid Pro/Team. Sent privately, never in the URL or response. Omit on a live named redeploy to preserve protection. Recreating an expired or purged name is a new drop: send the password again.'}}}
Ausgabeschema
{'type': 'object', 'required': ['slug', 'url', 'files', 'plan', 'expires_at', 'password_protected'], 'properties': {'url': {'type': 'string'}, 'name': {'type': 'string'}, 'plan': {'type': 'string'}, 'slug': {'type': 'string', 'description': 'Drop slug; the site is live at https://<slug>.ship.place/'}, 'files': {'type': 'array', 'items': {'type': 'string'}}, 'replaced': {'type': 'boolean', 'description': 'Present with named deploys; true when an existing drop was replaced'}, 'expires_at': {'type': ['string', 'null'], 'description': 'ISO timestamp, or null when the drop never expires'}, 'claim_token': {'type': 'string', 'description': 'One-time claim token (spc_...), present only on anonymous deploys and shown once. Anyone holding it can attach the drop to an account via claim_drop.'}, 'password_protected': {'type': 'boolean'}}}
Eingabeschema
{'type': 'object', 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['accountId', 'plan', 'activeSubscription'], 'properties': {'plan': {'type': 'string', 'description': 'free | pro | team'}, 'cancelAt': {'type': ['string', 'null']}, 'accountId': {'type': 'string'}, 'portalAvailable': {'type': 'boolean'}, 'currentPeriodEnd': {'type': ['string', 'null']}, 'activeSubscription': {'type': 'boolean'}}}
Eingabeschema
{'type': 'object', 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['plans'], 'properties': {'plans': {'type': 'object', 'description': 'Plan matrix: anonymous, pro, team'}, 'account': {'type': 'object', 'required': ['accountId', 'plan', 'activeSubscription'], 'properties': {'plan': {'type': 'string', 'description': 'free | pro | team'}, 'cancelAt': {'type': ['string', 'null']}, 'accountId': {'type': 'string'}, 'portalAvailable': {'type': 'boolean'}, 'currentPeriodEnd': {'type': ['string', 'null']}, 'activeSubscription': {'type': 'boolean'}}, 'description': 'Present when an sp_ API key was supplied'}}}
Eingabeschema
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'description': 'Max drops to return (1-500, default 100).'}, 'offset': {'type': 'integer', 'description': 'Number of drops to skip (default 0).'}}}
Ausgabeschema
{'type': 'object', 'required': ['total', 'drops'], 'properties': {'drops': {'type': 'array', 'items': {'type': 'object', 'required': ['slug', 'url', 'password_protected'], 'properties': {'url': {'type': 'string'}, 'name': {'type': ['string', 'null']}, 'slug': {'type': 'string'}, 'created_at': {'type': 'string'}, 'expires_at': {'type': ['string', 'null']}, 'file_count': {'type': 'integer'}, 'updated_at': {'type': 'string'}, 'redeploy_count': {'type': 'integer'}, 'password_protected': {'type': 'boolean'}}}}, 'total': {'type': 'integer'}}}
Eingabeschema
{'type': 'object', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'description': 'The drop slug (the subdomain part of its URL).'}}}
Ausgabeschema
{'type': 'object', 'required': ['slug', 'password_protected'], 'properties': {'slug': {'type': 'string'}, 'password_protected': {'type': 'boolean'}}}
Eingabeschema
{'type': 'object', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'description': 'The drop slug (the subdomain part of its ${domain} URL).'}}}
Ausgabeschema
{'type': 'object', 'required': ['slug', 'restored', 'expires_at', 'url'], 'properties': {'url': {'type': 'string'}, 'slug': {'type': 'string'}, 'restored': {'type': 'boolean', 'description': 'False when the drop was not expired and nothing changed'}, 'expires_at': {'type': ['string', 'null'], 'description': 'ISO timestamp after the restore, or null when the drop never expires'}}}
Eingabeschema
{'type': 'object', 'required': ['slug', 'password'], 'properties': {'slug': {'type': 'string', 'description': 'The drop slug (the subdomain part of its URL).'}, 'password': {'type': 'string', 'maxLength': 128, 'minLength': 8, 'writeOnly': True, 'description': 'Shared password: 8-128 Unicode characters, at most 512 UTF-8 bytes. Requires active paid Pro/Team. Sent privately, never in the URL or response. Omit on a live named redeploy to preserve protection. Recreating an expired or purged name is a new drop: send the password again.'}}}
Ausgabeschema
{'type': 'object', 'required': ['slug', 'password_protected'], 'properties': {'slug': {'type': 'string'}, 'password_protected': {'type': 'boolean'}}}
Letzte Tool-Änderungen
Ähnliche MCP-Server
shiply
Publishes and manages web applications with SQL databases, serverless functions, domains, email tests, client intake, contracts, …
Fine Structure
Builds and hosts full-stack applications from prompts and supports agent communication through WhatsApp and email.
mcp
Provisions and manages cloud instances, networks, storage, databases, backups, VPNs, application deployments, and autocoding-agen…
EchoRelay
Manages a hosted API relay runtime, including projects, endpoints, credentials, publishing, keys, delivery logs, and dead-letter …
Supero
Builds, validates, publishes, tests, and deploys multi-tenant applications with schemas, CRUD operations, external data connector…
Replicate
Provides access to Replicate models, versions, collections, hardware, predictions, and deployments for running and managing hoste…
Relin
Configures webhook sources and destinations, monitors delivery health, investigates failures, manages retries, and replays events.
Scalix Cloud
Provides managed databases, SQL tools, container builds, persistent Linux machines, domains, scheduled functions, storage, and pr…