accueil / serveurs / Fichiers & Documents / page.ship/ship-page
page.ship/ship-page
serveur MCP (Model Context Protocol) · ship.page 1.0.0
Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur.
Est-ce que page.ship/ship-page est sûr ?
Au dernier audit MCP Hub, le serveur MCP « page.ship/ship-page » est classé « Non encore testé ». Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur. Le verdict est réévalué en continu ; consultez la fiche pour l'état à jour.
Méthode : MCP Hub analyse la description de chaque outil (couche 1) et, pour le verdict fort, exécute le serveur dans une micro-VM isolée avec leurres et réseau bloqué (couche 2). On publie des noms et des compteurs, jamais le contenu brut renvoyé par un outil.
Les 11 outils
- append_files≈ 404 tokens
Add files to a drop owned by the authenticated account (requires an sp_ API key and an active subscription): up to 10,000 files per drop in total, and existing paths are overwritten. The drop keeps its current expiry and password protection.
Paramètres, retour & exemple (2)
Paramètresslug· string · requis
The drop slug (the subdomain part of its ${domain} URL).files· object · requis
Map of relative paths (e.g. 'index.html', 'css/app.css') to either a string, or { encoding: 'base64', content } for binary files.
Exemple d'appel{"name": "append_files", "arguments": {"slug": "texte", "files": {}}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"url": "texte", "plan": "texte", "slug": "texte", "files": [], "expires_at": "texte", "total_files": 1}} - claim_drop≈ 328 tokens
Attach an anonymously deployed drop to the authenticated account using its one-time claim token (spc_..., returned once by deploy_html/deploy_files). Claiming extends the drop to the free-account lifetime (90 days) and can revive an offline drop during its 30-day private recovery window. Claimed drops become listable, deletable, and — on paid plans — redeployable via named drops. Requires an sp_ API key.
Paramètres, retour & exemple (2)
Paramètresslug· string · requis
The drop slug (the subdomain part of its ${domain} URL).claim_token· string · requis
The one-time spc_... token returned at deploy time.
Exemple d'appel{"name": "claim_drop", "arguments": {"slug": "texte", "claim_token": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"url": "texte", "slug": "texte", "claimed": true, "restored": true, "expires_at": "texte"}} - delete_drop≈ 164 tokens
Permanently delete a drop owned by the authenticated account (requires an sp_ API key). The URL stops serving immediately and cannot be recovered.
Paramètres, retour & exemple (1)
Paramètresslug· string · requis
The drop slug (the subdomain part of its ${domain} URL).
Exemple d'appel{"name": "delete_drop", "arguments": {"slug": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"deleted": "texte"}} - deploy_files≈ 914 tokens
Deploy a map of path -> content as a multi-file site (must include index.html to serve at the root). Anonymous: up to 100 files per request, 30-day expiry (90 days once signed in). Pro ($4/mo): up to 10,000 files, custom or no TTL, named drops.
Paramètres, retour & exemple (6)
Paramètresttl· integer · optionnel
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· string · optionnel
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· string · optionnel
Name of the AI agent or app publishing this drop, e.g. 'chatgpt', 'claude', 'cursor'. AI agents: always set this.email· string · optionnel
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· object · requis
Map of relative paths (e.g. 'index.html', 'css/app.css') to either a string, or { encoding: 'base64', content } for binary files.password· string · optionnel
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.
Exemple d'appel{"name": "deploy_files", "arguments": {"files": {}}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"url": "texte", "name": "texte", "plan": "texte", "slug": "texte", "files": [], "replaced": true, "claim_url": "texte", "next_step": "texte", "expires_at": "texte", "claim_email": "texte", "claim_token": "texte", "password_protected": true}} - deploy_html≈ 802 tokens
Deploy one HTML document and get back a live, unguessable https://<slug>.ship.place/ URL. Anonymous: 10 deploys/min per IP, 10MB body cap, 30-day expiry. Pro ($4/mo): custom or no TTL, named drops.
Paramètres, retour & exemple (6)
Paramètresttl· integer · optionnel
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· string · requis
The full HTML document to publish.name· string · optionnel
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· string · optionnel
Name of the AI agent or app publishing this drop, e.g. 'chatgpt', 'claude', 'cursor'. AI agents: always set this.email· string · optionnel
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· string · optionnel
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.
Exemple d'appel{"name": "deploy_html", "arguments": {"html": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"url": "texte", "name": "texte", "plan": "texte", "slug": "texte", "files": [], "replaced": true, "claim_url": "texte", "next_step": "texte", "expires_at": "texte", "claim_email": "texte", "claim_token": "texte", "password_protected": true}} - get_account≈ 200 tokens
Show the authenticated account's plan, subscription status and usage (requires an sp_ API key). Anonymous callers should use get_limits for the static free-tier limits.
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "get_account", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"plan": "texte", "cancelAt": "texte", "accountId": "texte", "portalAvailable": true, "currentPeriodEnd": "texte", "activeSubscription": true}} - get_limits≈ 250 tokens
Show the ship.page plan matrix (anonymous free tier vs Pro $4/mo vs Team $19/mo) and, when an sp_ API key is present, the caller's current account/plan status.
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "get_limits", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"plans": {}, "account": {}}} - list_drops≈ 290 tokens
List drops owned by the authenticated account (requires an sp_ API key; anonymous drops are not listable). Returns slug, url, name, file counts, expiry and password_protected, newest first.
Paramètres, retour & exemple (2)
Paramètreslimit· integer · optionnel
Max drops to return (1-500, default 100).offset· integer · optionnel
Number of drops to skip (default 0).
Exemple d'appel{"name": "list_drops", "arguments": {"limit": 1, "offset": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"drops": [], "total": 1}} - remove_drop_password≈ 174 tokens
Remove password protection from a drop you own, making it readable by anyone with its URL. Requires an sp_ API key; works even after your paid subscription lapses.
Paramètres, retour & exemple (1)
Paramètresslug· string · requis
The drop slug (the subdomain part of its URL).
Exemple d'appel{"name": "remove_drop_password", "arguments": {"slug": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"slug": "texte", "password_protected": true}} - restore_drop≈ 257 tokens
Bring back an expired drop owned by the authenticated account while its files are still retained (requires an sp_ API key), up to 90 days past expiry. Free accounts get the drop back at the 90-day lifetime; on a paid plan the restored drop never expires again.
Paramètres, retour & exemple (1)
Paramètresslug· string · requis
The drop slug (the subdomain part of its ${domain} URL).
Exemple d'appel{"name": "restore_drop", "arguments": {"slug": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"url": "texte", "slug": "texte", "restored": true, "expires_at": "texte"}} - set_drop_password≈ 286 tokens
Set or rotate the shared password on a drop you own. Requires an sp_ API key and active paid Pro/Team; unavailable billing returns an error, not a public drop. Visitors unlock in their browser. Never put the password in a URL.
Paramètres, retour & exemple (2)
Paramètresslug· string · requis
The drop slug (the subdomain part of its URL).password· string · requis
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.
Exemple d'appel{"name": "set_drop_password", "arguments": {"slug": "texte", "password": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"slug": "texte", "password_protected": true}}
C'est votre serveur ?
Revendiquez-le sur l'espace créateur (preuve GitHub, domaine ou npm) pour afficher le badge « propriétaire vérifié » et lancer un pentest comportemental à la demande afin d'obtenir le badge « Vérifié ».