@shipstatic/mcp 2.3.4 → 2.4.1-beta.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
@@ -47,14 +47,14 @@ Install [ShipStatic for VS Code](https://marketplace.visualstudio.com/items?item
47
47
 
48
48
  ### Then just ask
49
49
 
50
- > "Put my site online."
50
+ > "Publish this with ShipStatic."
51
51
 
52
52
  Your agent publishes the files and answers with two links:
53
53
 
54
54
  - **The live site** — a real URL you can share right away.
55
55
  - **A claim link** — the site stays live for 3 days; open the claim link to keep it forever. A free account is all it takes.
56
56
 
57
- Want the site private? Ask for a password — visitors must enter it before they can see anything.
57
+ Want the site private? Say "publish this with ShipStatic's built-in password protection". Visitors must enter the password before they can see anything, and saying "built-in" keeps your agent from writing a password page of its own.
58
58
 
59
59
  ### Then connect, if you want more
60
60
 
@@ -183,7 +183,7 @@ Published to the [MCP Registry](https://registry.modelcontextprotocol.io/v0.1/se
183
183
  | **[VS Code](https://marketplace.visualstudio.com/items?itemName=shipstatic.shipstatic)** | Search "ShipStatic" in the Marketplace |
184
184
  | **[Gemini CLI](https://github.com/shipstatic/plugin)** | `gemini extensions install https://github.com/shipstatic/plugin` |
185
185
  | **[n8n](https://www.npmjs.com/package/n8n-nodes-shipstatic)** | Search "ShipStatic" in n8n's node panel |
186
- | **[GitHub Action](https://github.com/shipstatic/action)** | `shipstatic/action@v2` |
186
+ | **[GitHub Action](https://github.com/shipstatic/action)** | `shipstatic/action@v3` |
187
187
  | **[Agent Skill](https://www.shipstatic.com/SKILL.md)** | One file, for any skills-aware tool |
188
188
 
189
189
  ## License
package/dist/server.js CHANGED
@@ -11,7 +11,7 @@ const D = DESCRIPTION_BLOCKS;
11
11
  // stdio's: how files arrive (a filesystem path) and how a caller
12
12
  // authenticates (`SHIP_TOKEN`). The hosted transport composes the same blocks
13
13
  // around its own two.
14
- const INSTRUCTIONS = `${B.opening}
14
+ const INSTRUCTIONS = `${B.opening} ${B.accountLater}
15
15
 
16
16
  To deploy: call ${UPLOAD_TOOL_NAME} with the build output directory path. ${B.live} ${B.password}
17
17
 
package/dist/tools.d.ts CHANGED
@@ -185,6 +185,7 @@ export declare const ACCOUNT_SUMMARY: z.ZodObject<{
185
185
  platformDomains: z.ZodInt;
186
186
  customDomains: z.ZodInt;
187
187
  members: z.ZodInt;
188
+ invitations: z.ZodInt;
188
189
  }, z.core.$strip>;
189
190
  caps: z.ZodObject<{
190
191
  deployments: z.ZodInt;
@@ -108,8 +108,8 @@ export declare const PUBLIC_EXPIRY: string;
108
108
  * One row per tool lives in the registry (`tools.ts`, `TOOLS`), and every
109
109
  * other statement about the tool is derived from it: the MCP annotations
110
110
  * (`annotate`), the account-tool set (and so the hosted door's
111
- * `securitySchemes` and challenge scope), the listing justifications in
112
- * `integrations/gpt`, and the catalogue tests. Until 1.11.0 these facts had
111
+ * `securitySchemes` and challenge scope), the hint table
112
+ * `integrations/gpt`'s preflight checks, and the catalogue tests. Until 1.11.0 these facts had
113
113
  * three owners: four annotation classes here, a hand-written name list for
114
114
  * the auth need, and the upload tool annotated by hand on both transports.
115
115
  * Three owners for facts about one tool is how the classes came to spread
@@ -188,6 +188,14 @@ export declare function titled<C extends {
188
188
  */
189
189
  export declare const INSTRUCTION_BLOCKS: {
190
190
  readonly opening: "ShipStatic deploys static websites instantly. Free, no account required.";
191
+ /**
192
+ * Publishing first, on every door. A host that can connect an account may
193
+ * reach for an account tool before the deploy the user asked for, and a
194
+ * sign-in between a person and their first link is the friction the
195
+ * no-account promise exists to remove. The account comes up when the user
196
+ * asks for something only an account holds.
197
+ */
198
+ readonly accountLater: "Publishing needs no account, so deploy straight away; bring up an account only when the user asks to see or manage their sites, or to use their own domain.";
191
199
  readonly live: "The site is live immediately.";
192
200
  /**
193
201
  * A block of its own rather than a clause of `live`: two sentences, two
@@ -198,6 +206,23 @@ export declare const INSTRUCTION_BLOCKS: {
198
206
  * one place a server may say what an agent should do. A tool description
199
207
  * describes the tool; both listing reviews reject one that instructs the
200
208
  * model, and the catalogue tests grep for it.
209
+ *
210
+ * HELD UNTIL THE DIRECTORY APPROVALS LAND (operator, 2026-10-06). The text
211
+ * below is the one both listings reviewed, kept word for word while the
212
+ * Claude directory review is open. The version to switch to names the
213
+ * feature the way every page and mail does ("built-in password
214
+ * protection") and tells the agent not to write a password page of its
215
+ * own, which is what an agent asked only to "add a password" tends to do.
216
+ * To switch: replace the string below with this one, release the package,
217
+ * and walk the convoy (root `backlog.md` has the steps).
218
+ *
219
+ * "To make the site private, pass `password`: that is ShipStatic's
220
+ * built-in password protection, checked before any file is served. When
221
+ * the user asks for a password or a private site, use it, and do not
222
+ * build a password page or script into the site itself. Visitors must
223
+ * unlock before viewing, including on any custom domains pointing at it.
224
+ * Tell the user any password you set, since one they never see locks
225
+ * them out."
201
226
  */
202
227
  readonly password: "To make the site private, pass `password`; visitors must unlock before viewing, including on any custom domains pointing at it. Tell the user any password you set, since one they never see locks them out.";
203
228
  readonly claim: "The response includes a claim URL — always show the deployment URL and the claim URL to the user so they can keep the site permanently.";
@@ -167,6 +167,14 @@ export function titled(config) {
167
167
  */
168
168
  export const INSTRUCTION_BLOCKS = {
169
169
  opening: 'ShipStatic deploys static websites instantly. Free, no account required.',
170
+ /**
171
+ * Publishing first, on every door. A host that can connect an account may
172
+ * reach for an account tool before the deploy the user asked for, and a
173
+ * sign-in between a person and their first link is the friction the
174
+ * no-account promise exists to remove. The account comes up when the user
175
+ * asks for something only an account holds.
176
+ */
177
+ accountLater: 'Publishing needs no account, so deploy straight away; bring up an account only when the user asks to see or manage their sites, or to use their own domain.',
170
178
  live: 'The site is live immediately.',
171
179
  /**
172
180
  * A block of its own rather than a clause of `live`: two sentences, two
@@ -177,6 +185,23 @@ export const INSTRUCTION_BLOCKS = {
177
185
  * one place a server may say what an agent should do. A tool description
178
186
  * describes the tool; both listing reviews reject one that instructs the
179
187
  * model, and the catalogue tests grep for it.
188
+ *
189
+ * HELD UNTIL THE DIRECTORY APPROVALS LAND (operator, 2026-10-06). The text
190
+ * below is the one both listings reviewed, kept word for word while the
191
+ * Claude directory review is open. The version to switch to names the
192
+ * feature the way every page and mail does ("built-in password
193
+ * protection") and tells the agent not to write a password page of its
194
+ * own, which is what an agent asked only to "add a password" tends to do.
195
+ * To switch: replace the string below with this one, release the package,
196
+ * and walk the convoy (root `backlog.md` has the steps).
197
+ *
198
+ * "To make the site private, pass `password`: that is ShipStatic's
199
+ * built-in password protection, checked before any file is served. When
200
+ * the user asks for a password or a private site, use it, and do not
201
+ * build a password page or script into the site itself. Visitors must
202
+ * unlock before viewing, including on any custom domains pointing at it.
203
+ * Tell the user any password you set, since one they never see locks
204
+ * them out."
180
205
  */
181
206
  password: 'To make the site private, pass `password`; visitors must unlock before viewing, including on any custom domains pointing at it. Tell the user any password you set, since one they never see locks them out.',
182
207
  claim: 'The response includes a claim URL — always show the deployment URL and the claim URL to the user so they can keep the site permanently.',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shipstatic/mcp",
3
- "version": "2.3.4",
3
+ "version": "2.4.1-beta.1",
4
4
  "mcpName": "com.shipstatic/mcp",
5
5
  "description": "Deploy static websites, landing pages, and prototypes instantly from AI agents. Start with the hosted endpoint at mcp.shipstatic.com (no install, no signup, no API key), or install this package to deploy folders from your own machine. The same fifteen tools either way.",
6
6
  "type": "module",
@@ -68,8 +68,8 @@
68
68
  "license": "MIT",
69
69
  "dependencies": {
70
70
  "@modelcontextprotocol/sdk": "^1.30.0",
71
- "@shipstatic/ship": "3.4.0",
72
- "@shipstatic/types": "3.8.0",
71
+ "@shipstatic/ship": "3.5.0",
72
+ "@shipstatic/types": "3.9.0",
73
73
  "zod": "^4.4.3"
74
74
  },
75
75
  "devDependencies": {