{"id":306193,"recorded_at":"2026-10-26T23:20:56.042155Z","observed_at":"2026-10-26T23:20:56.042020Z","subject_kind":"endpoint","subject":"104cd1f6-9d6b-4a9c-adfa-43450983586b","kind":"mcp.tools","method":"probe.mcp/1","body":{"count":11,"tools":[{"description":"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.","inputSchema":{"properties":{"files":{"additionalProperties":{"anyOf":[{"type":"string"},{"properties":{"content":{"type":"string"},"encoding":{"const":"base64","type":"string"}},"required":["encoding","content"],"type":"object"},{"properties":{"content":{"type":"string"}},"required":["content"],"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.","type":"object"},"slug":{"description":"The drop slug (the subdomain part of its ${domain} URL).","type":"string"}},"required":["slug","files"],"type":"object"},"name":"append_files"},{"description":"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.","inputSchema":{"properties":{"claim_token":{"description":"The one-time spc_... token returned at deploy time.","type":"string"},"slug":{"description":"The drop slug (the subdomain part of its ${domain} URL).","type":"string"}},"required":["slug","claim_token"],"type":"object"},"name":"claim_drop"},{"description":"Permanently delete a drop owned by the authenticated account (requires an sp_ API key). The URL stops serving immediately and cannot be recovered.","inputSchema":{"properties":{"slug":{"description":"The drop slug (the subdomain part of its ${domain} URL).","type":"string"}},"required":["slug"],"type":"object"},"name":"delete_drop"},{"description":"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.","inputSchema":{"properties":{"agent":{"description":"Name of the AI agent or app publishing this drop, e.g. 'chatgpt', 'claude', 'cursor'. AI agents: always set this.","maxLength":64,"type":"string"},"email":{"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).","type":"string"},"files":{"additionalProperties":{"anyOf":[{"type":"string"},{"properties":{"content":{"type":"string"},"encoding":{"const":"base64","type":"string"}},"required":["encoding","content"],"type":"object"},{"properties":{"content":{"type":"string"}},"required":["content"],"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.","type":"object"},"name":{"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.","type":"string"},"password":{"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.","maxLength":128,"minLength":8,"type":"string","writeOnly":true},"ttl":{"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.","type":"integer"}},"required":["files"],"type":"object"},"name":"deploy_files"},{"description":"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.","inputSchema":{"properties":{"agent":{"description":"Name of the AI agent or app publishing this drop, e.g. 'chatgpt', 'claude', 'cursor'. AI agents: always set this.","maxLength":64,"type":"string"},"email":{"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).","type":"string"},"html":{"description":"The full HTML document to publish.","type":"string"},"name":{"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.","type":"string"},"password":{"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.","maxLength":128,"minLength":8,"type":"string","writeOnly":true},"ttl":{"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.","type":"integer"}},"required":["html"],"type":"object"},"name":"deploy_html"},{"description":"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.","inputSchema":{"additionalProperties":false,"type":"object"},"name":"get_account"},{"description":"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.","inputSchema":{"additionalProperties":false,"type":"object"},"name":"get_limits"},{"description":"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.","inputSchema":{"properties":{"limit":{"description":"Max drops to return (1-500, default 100).","type":"integer"},"offset":{"description":"Number of drops to skip (default 0).","type":"integer"}},"type":"object"},"name":"list_drops"},{"description":"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.","inputSchema":{"properties":{"slug":{"description":"The drop slug (the subdomain part of its URL).","type":"string"}},"required":["slug"],"type":"object"},"name":"remove_drop_password"},{"description":"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.","inputSchema":{"properties":{"slug":{"description":"The drop slug (the subdomain part of its ${domain} URL).","type":"string"}},"required":["slug"],"type":"object"},"name":"restore_drop"},{"description":"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.","inputSchema":{"properties":{"password":{"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.","maxLength":128,"minLength":8,"type":"string","writeOnly":true},"slug":{"description":"The drop slug (the subdomain part of its URL).","type":"string"}},"required":["slug","password"],"type":"object"},"name":"set_drop_password"}]},"body_sha256":"c1d59145167da6360a198ee15bfe4852b943aaa58d2e9a51cf85c817f4aa3c7d","prev_id":null,"leaf":"0x4e8f0abf1435fe62eafa4929f464594ab1967f4beaadb4bb35bad36a9b5f924a","leaf_text":"{\"body\":\"c1d59145167da6360a198ee15bfe4852b943aaa58d2e9a51cf85c817f4aa3c7d\",\"id\":306193,\"kind\":\"mcp.tools\",\"method\":\"probe.mcp/1\",\"observed_us\":1793056856042020,\"prev\":null,\"subject\":\"104cd1f6-9d6b-4a9c-adfa-43450983586b\",\"subject_kind\":\"endpoint\"}","day":{"day":"2026-10-26","leaves":296695,"root":"0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8","chained":"0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a","anchor_chain":"eip155:5042002","anchor_tx":"0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae","anchor_block":69251483},"proof":["0x4e8edfcdf3b9c27146459a1de4955c559dd9ebc923bf7e527d545f25ade22209","0x18c617b2c3455cf295ca7a6b84283fb8079c3232fa61ac1bdbdec3eaa3873f39","0xf2315908e82faa6278afd8240cb63424b3a3b29bd6240e6723849f1f179a03b9","0xc4cd4212ab41e7107fd76fa4269b9392cb69c4773001392ca157905a58709d43","0x410f1d16607aa2e12693ba2b53b03bc6ff0717b818639eba711123405b577985","0x50ece1e29fc72834207827c93b44f43f54aeb631fe5892c77f0212d7bdc9fe68","0x4063b0f49116fb3ecbd63c509f4e5649e9e4b2cd5df64c9aaa49b1977e69b534","0xaf763b0948da365fc0ef988fbdc9b315e7f23b7c591755e1a0a746af0f43fdf5","0xb5a2ff57df9c49538a0db5306ddc37af974a8caaa04dd03823b77e9b0412f004","0x3c2a519207c7fbe7025a4c98d41e42ecc9446b3fb0b1dbff629a91c8c74e0781","0x20ba86fd56bddd46212d02e792b969e90a1167c4fb9ba4a54cb7da5cf7da1629","0xaf14a84837a57dc5a0cb0ebd158daaad24c19301b9257d9e97c322a7d8c54bc0","0xf7d2cf278e5d2768b8bdb70730c378877cf7165d8efcbec8bcd3282fdc50d177","0x0733993143f0230e79482cef2c38e95d98f9eafbe64a43cdc74a4545938a4167","0x2be1e80e065dd6b2cc75a7142be22225acd144ac975d70bf24b4f01fd76dc497","0x2e6a32eb32761c210560e852405e2f865f958ddbe01027894f8b9c1b3433b9f0","0x9a83be955a206deb65b995adfd92c58fa31c95fbbf926bd199d300e70b08b26d","0x20704208aa6923d6b2450ef74ede87a6e0265d46447926038fe9506e9e154b2d","0x9b9ce5b74b9bab5121612ef6b64920a8d453cbf311096a423eef9702747e868a"]}