@shipstatic/mcp 1.2.0 → 1.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -7,6 +7,8 @@ Give your AI a publish button for the internet: ask it to put your site online,
7
7
  [![smithery badge](https://smithery.ai/badge/shipstatic/ship)](https://smithery.ai/servers/shipstatic/ship)
8
8
  [![glama badge](https://img.shields.io/badge/glama-MCP%20server-1f7ade)](https://glama.ai/mcp/servers/shipstatic/mcp)
9
9
 
10
+ One product, two doors in. Drop `https://mcp.shipstatic.com` into any MCP client — no install, no signup, no API key — and connect your account when your client asks: the full toolset, custom domains, sites that never expire. Install `@shipstatic/mcp` when your agent needs to deploy a folder on your own machine, when you'd rather configure a token once than sign in, or when your client doesn't speak OAuth yet — the same fifteen tools, reached the other way.
11
+
10
12
  ## Hosted — nothing to install
11
13
 
12
14
  Drop `https://mcp.shipstatic.com` into any MCP client. No install, no signup, no API key — your agent can publish a website in its next message.
@@ -48,13 +50,17 @@ Your agent publishes the files and answers with two links:
48
50
 
49
51
  Want the site private? Ask for a password — visitors must enter it before they can see anything.
50
52
 
51
- ## Local the full toolset
53
+ ### Then connect, if you want more
54
+
55
+ Everything above works with no account at all. Connect one when your client offers to sign you in, and the same URL answers with the rest: everything you've shipped, your own domains, and sites that stay up permanently. Nothing to install, no key to paste — your client starts the sign-in itself.
56
+
57
+ ## Local — the same tools, from your own machine
52
58
 
53
- The hosted URL does one thing: publish. Install this package for the full toolset (custom domains, listing, account-tied ops)see everything you've shipped, connect your own domain, and publish sites that stay up permanently.
59
+ Install this package when your agent needs to deploy **a folder on your own machine** — the hosted endpoint takes files inline, so it has no path to read from when you'd rather configure a token once than sign in, or when your MCP client doesn't speak OAuth yet.
54
60
 
55
61
  The config asks for one thing: `SHIP_TOKEN`. **Its value is your API key** — one credential, two names. The console mints it as an *API key* (it looks like `ship-...`), and the setting that carries it is called the *token*. Get yours free at [my.shipstatic.com/api-key](https://my.shipstatic.com/api-key), paste it where the snippets below show `ship-...`, and every site you publish lands in your account, never expires, and gets bigger limits.
56
62
 
57
- The key is optional: leave it out and the local server behaves exactly like the hosted one (public sites, claim links, live for 3 days).
63
+ The key is optional: leave it out and the local server behaves like the hosted endpoint with no account connected (public sites, claim links, live for 3 days).
58
64
 
59
65
  The server runs with `npx`, which ships with [Node.js](https://nodejs.org) (20.19 or newer).
60
66
 
@@ -106,17 +112,17 @@ Prefer an editor extension? [ShipStatic for VS Code](https://marketplace.visuals
106
112
 
107
113
  ## Tools
108
114
 
109
- The hosted endpoint exposes `deployments_upload` only. The local install exposes everything below.
115
+ All fifteen tools are on both doors. `deployments_upload` is the one that needs no account; connect on the hosted endpoint or set `SHIP_TOKEN` locally and the other fourteen answer too.
110
116
 
111
117
  ### Deployments
112
118
 
113
- | Tool | Description | Hosted |
114
- |------|-------------|:---:|
115
- | `deployments_upload` | Publish files and get a live URL instantly, optionally protected by a password | ✓ |
116
- | `deployments_list` | List all deployments with their URLs, status, labels, and password protection state. Pages with `limit` and `cursor` | |
117
- | `deployments_get` | Get deployment details including URL, status, file count, size, labels, and password protection state | |
118
- | `deployments_set` | Update the labels on a deployment for organization and filtering | |
119
- | `deployments_delete` | Permanently delete a deployment and all its files | |
119
+ | Tool | Description |
120
+ |------|-------------|
121
+ | `deployments_upload` | Publish files and get a live URL instantly, optionally protected by a password |
122
+ | `deployments_list` | List all deployments with their URLs, status, labels, and password protection state. Pages with `limit` and `cursor` |
123
+ | `deployments_get` | Get deployment details including URL, status, file count, size, labels, and password protection state |
124
+ | `deployments_set` | Update the labels on a deployment for organization and filtering |
125
+ | `deployments_delete` | Permanently delete a deployment and all its files |
120
126
 
121
127
  ### Domains
122
128
 
@@ -201,11 +201,11 @@ export declare const PARAM_DESCRIPTIONS: {
201
201
  */
202
202
  readonly idempotencyKey: `Makes this deploy replayable instead of repeatable. A deploy is not naturally idempotent: if a call times out you cannot tell "it never landed" from "it landed and the response was lost", and retrying creates a second deployment. Send the same key on the retry and the original deployment is replayed instead (within ${number} hours). Key the ATTEMPT \u2014 a run id, a commit sha, a uuid minted before the first try \u2014 never one minted fresh on each retry, which would defeat the point.`;
203
203
  /**
204
- * Shared one door ahead of its offer, for the same reason `idempotencyKey`
205
- * is: only stdio declares `ttl` today (`cloudflare/mcp/CLAUDE.md`'s
206
- * divergence table records the hosted deferral and its trigger), and the two
207
- * refusals this teaches belong to the platform, so they read identically on
208
- * every door.
204
+ * Shared and spoken by BOTH doors stdio declared it first (2026-08-13)
205
+ * and the hosted door converged the same day, importing this describe
206
+ * verbatim (its catalogue fence holds it to the import). The two refusals
207
+ * this teaches belong to the platform, so they read identically on every
208
+ * door.
209
209
  *
210
210
  * **Two things are deliberately absent, and both are the same rule.** The
211
211
  * RANGE, because `@shipstatic/ship` validates it in-process before a byte is
@@ -185,11 +185,11 @@ export const PARAM_DESCRIPTIONS = {
185
185
  */
186
186
  idempotencyKey: `Makes this deploy replayable instead of repeatable. A deploy is not naturally idempotent: if a call times out you cannot tell "it never landed" from "it landed and the response was lost", and retrying creates a second deployment. Send the same key on the retry and the original deployment is replayed instead (within ${IDEMPOTENCY_KEY_CONSTRAINTS.WINDOW_SECONDS / 3600} hours). Key the ATTEMPT — a run id, a commit sha, a uuid minted before the first try — never one minted fresh on each retry, which would defeat the point.`,
187
187
  /**
188
- * Shared one door ahead of its offer, for the same reason `idempotencyKey`
189
- * is: only stdio declares `ttl` today (`cloudflare/mcp/CLAUDE.md`'s
190
- * divergence table records the hosted deferral and its trigger), and the two
191
- * refusals this teaches belong to the platform, so they read identically on
192
- * every door.
188
+ * Shared and spoken by BOTH doors stdio declared it first (2026-08-13)
189
+ * and the hosted door converged the same day, importing this describe
190
+ * verbatim (its catalogue fence holds it to the import). The two refusals
191
+ * this teaches belong to the platform, so they read identically on every
192
+ * door.
193
193
  *
194
194
  * **Two things are deliberately absent, and both are the same rule.** The
195
195
  * RANGE, because `@shipstatic/ship` validates it in-process before a byte is
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@shipstatic/mcp",
3
- "version": "1.2.0",
3
+ "version": "1.2.1",
4
4
  "mcpName": "com.shipstatic/mcp",
5
- "description": "Deploy static websites from AI agents. Free hosted endpoint at mcp.shipstatic.com — no install, no signup. Install for the full toolset: custom domains, listing, account operations.",
5
+ "description": "Deploy static websites from AI agents. Free hosted endpoint at mcp.shipstatic.com — no install, no signup or run it locally to deploy folders from your own machine. The same fifteen tools either way.",
6
6
  "type": "module",
7
7
  "main": "./dist/index.js",
8
8
  "sideEffects": [