@shipstatic/mcp 2.6.2-beta.0 → 2.7.0-beta.0
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 +1 -1
- package/dist/vocabulary.d.ts +6 -5
- package/dist/vocabulary.js +6 -5
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -157,7 +157,7 @@ All fifteen tools are on both doors. What changes is not which tools exist, but
|
|
|
157
157
|
|
|
158
158
|
### Retrying a deploy safely
|
|
159
159
|
|
|
160
|
-
`deployments_upload` accepts an `idempotencyKey`. If a deploy times out you cannot tell "it never landed" from "it landed and the response was lost", and retrying without a key creates a second site. Send the same key on the retry and the
|
|
160
|
+
`deployments_upload` accepts an `idempotencyKey`. If a deploy times out you cannot tell "it never landed" from "it landed and the response was lost", and retrying without a key creates a second site. Send the same key on the retry and you get back the site the first try made, once it went live. A key works only within your account: an anonymous deploy ignores it, and a retry makes a new site.
|
|
161
161
|
|
|
162
162
|
Key the *attempt*, not the try — a run id, a commit sha, or a uuid generated before the first call. A key that changes on every retry does nothing.
|
|
163
163
|
|
package/dist/vocabulary.d.ts
CHANGED
|
@@ -273,12 +273,13 @@ export declare const PARAM_DESCRIPTIONS: {
|
|
|
273
273
|
readonly labels: "Labels for organizing deployments (e.g. [\"env:production\", \"v1.2\"]). Each is a word, or a key and a value split by one \":\". Lowercase, 3-63 chars, allows . _ - inside a word. Up to 10.";
|
|
274
274
|
readonly password: "Optional password to gate the deployment behind an unlock prompt (6–128 characters; whitespace significant). Visitors must enter this password before viewing the site, including on any custom domains pointing at it.";
|
|
275
275
|
/**
|
|
276
|
-
*
|
|
277
|
-
*
|
|
278
|
-
*
|
|
279
|
-
*
|
|
276
|
+
* Spoken by both doors, whole: the API keeps one rule for every caller (a
|
|
277
|
+
* key names the live deployment it made, within the account that sent it,
|
|
278
|
+
* and an anonymous key is ignored), so no door appends a clause of its own.
|
|
279
|
+
* The law it teaches, key the ATTEMPT and never the try, is the same on
|
|
280
|
+
* both. The window is derived, never typed out.
|
|
280
281
|
*/
|
|
281
|
-
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
|
|
282
|
+
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 you get back the deployment the first try made, if it went live in the last ${number} hours. A key works only within the account that sent it: without an account it is ignored, and a retry deploys again. 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.`;
|
|
282
283
|
/**
|
|
283
284
|
* Shared and spoken by BOTH doors — stdio declared it first (2026-08-13)
|
|
284
285
|
* and the hosted door converged the same day, importing this describe
|
package/dist/vocabulary.js
CHANGED
|
@@ -260,12 +260,13 @@ export const PARAM_DESCRIPTIONS = {
|
|
|
260
260
|
labels: `Labels for organizing deployments (e.g. ["env:production", "v1.2"]). Each is a word, or a key and a value split by one ":". Lowercase, ${LABEL_CONSTRAINTS.MIN_LENGTH}-${LABEL_CONSTRAINTS.MAX_LENGTH} chars, allows . _ - inside a word. Up to ${LABEL_CONSTRAINTS.MAX_COUNT}.`,
|
|
261
261
|
password: `Optional password to gate the deployment behind an unlock prompt (${PASSWORD_CONSTRAINTS.MIN_LENGTH}–${PASSWORD_CONSTRAINTS.MAX_LENGTH} characters; whitespace significant). Visitors must enter this password before viewing the site, including on any custom domains pointing at it.`,
|
|
262
262
|
/**
|
|
263
|
-
*
|
|
264
|
-
*
|
|
265
|
-
*
|
|
266
|
-
*
|
|
263
|
+
* Spoken by both doors, whole: the API keeps one rule for every caller (a
|
|
264
|
+
* key names the live deployment it made, within the account that sent it,
|
|
265
|
+
* and an anonymous key is ignored), so no door appends a clause of its own.
|
|
266
|
+
* The law it teaches, key the ATTEMPT and never the try, is the same on
|
|
267
|
+
* both. The window is derived, never typed out.
|
|
267
268
|
*/
|
|
268
|
-
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
|
|
269
|
+
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 you get back the deployment the first try made, if it went live in the last ${IDEMPOTENCY_KEY_CONSTRAINTS.WINDOW_SECONDS / 3600} hours. A key works only within the account that sent it: without an account it is ignored, and a retry deploys again. 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.`,
|
|
269
270
|
/**
|
|
270
271
|
* Shared and spoken by BOTH doors — stdio declared it first (2026-08-13)
|
|
271
272
|
* and the hosted door converged the same day, importing this describe
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shipstatic/mcp",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.7.0-beta.0",
|
|
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.
|
|
72
|
-
"@shipstatic/types": "3.
|
|
71
|
+
"@shipstatic/ship": "3.7.0-beta.0",
|
|
72
|
+
"@shipstatic/types": "3.12.0-beta.1",
|
|
73
73
|
"zod": "^4.4.3"
|
|
74
74
|
},
|
|
75
75
|
"devDependencies": {
|