@shipstatic/mcp 2.5.0 → 2.6.0-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/dist/index.d.ts CHANGED
@@ -28,8 +28,10 @@
28
28
  * what lets the hosted catalogue fence name the fourteen without counting them
29
29
  * again, `TOOLS` and `annotate` replaced four annotation classes plus a
30
30
  * hand-annotated upload on each transport plus a separate list for the auth
31
- * need (three owners for one tool's facts, 1.11.0), and `createServer`
32
- * deleted three regexes in another repo's build (see below).
31
+ * need (three owners for one tool's facts, 1.11.0), `SERVER_INFO` is the
32
+ * title, description, website and icon both transports report rather than
33
+ * each stating its own, and `createServer` deleted three regexes in another
34
+ * repo's build (see below).
33
35
  *
34
36
  * **`createServer` is exported; the configured `call` is not.** The extension
35
37
  * previously reached stdio's composition by REGEX-PATCHING this package's
@@ -65,4 +67,4 @@
65
67
  export { type AuthFailure, type CallFn, type CallOptions, createCall, type ErrorHints, } from './call.js';
66
68
  export { createServer } from './server.js';
67
69
  export { ACCOUNT_TOOL_NAMES, type AccountToolName, registerAccountTools, TOOLS, type ToolName, } from './tools.js';
68
- export { annotate, DESCRIPTION_BLOCKS, INSTRUCTION_BLOCKS, PARAM_DESCRIPTIONS, PUBLIC_EXPIRY, SERVER_NAME, type ToolContract, titled, UPLOAD_TOOL_NAME, UPLOAD_TOOL_TITLE, } from './vocabulary.js';
70
+ export { annotate, DESCRIPTION_BLOCKS, INSTRUCTION_BLOCKS, PARAM_DESCRIPTIONS, PUBLIC_EXPIRY, SERVER_INFO, SERVER_NAME, type ToolContract, titled, UPLOAD_TOOL_NAME, UPLOAD_TOOL_TITLE, } from './vocabulary.js';
package/dist/index.js CHANGED
@@ -28,8 +28,10 @@
28
28
  * what lets the hosted catalogue fence name the fourteen without counting them
29
29
  * again, `TOOLS` and `annotate` replaced four annotation classes plus a
30
30
  * hand-annotated upload on each transport plus a separate list for the auth
31
- * need (three owners for one tool's facts, 1.11.0), and `createServer`
32
- * deleted three regexes in another repo's build (see below).
31
+ * need (three owners for one tool's facts, 1.11.0), `SERVER_INFO` is the
32
+ * title, description, website and icon both transports report rather than
33
+ * each stating its own, and `createServer` deleted three regexes in another
34
+ * repo's build (see below).
33
35
  *
34
36
  * **`createServer` is exported; the configured `call` is not.** The extension
35
37
  * previously reached stdio's composition by REGEX-PATCHING this package's
@@ -65,4 +67,4 @@
65
67
  export { createCall, } from './call.js';
66
68
  export { createServer } from './server.js';
67
69
  export { ACCOUNT_TOOL_NAMES, registerAccountTools, TOOLS, } from './tools.js';
68
- export { annotate, DESCRIPTION_BLOCKS, INSTRUCTION_BLOCKS, PARAM_DESCRIPTIONS, PUBLIC_EXPIRY, SERVER_NAME, titled, UPLOAD_TOOL_NAME, UPLOAD_TOOL_TITLE, } from './vocabulary.js';
70
+ export { annotate, DESCRIPTION_BLOCKS, INSTRUCTION_BLOCKS, PARAM_DESCRIPTIONS, PUBLIC_EXPIRY, SERVER_INFO, SERVER_NAME, titled, UPLOAD_TOOL_NAME, UPLOAD_TOOL_TITLE, } from './vocabulary.js';
package/dist/server.js CHANGED
@@ -4,7 +4,7 @@ import { DeploymentCreateResponseSchema } from '@shipstatic/types/schemas';
4
4
  import { z } from 'zod';
5
5
  import { call } from './call.js';
6
6
  import { registerAccountTools, TOOLS } from './tools.js';
7
- import { annotate, DESCRIPTION_BLOCKS, INSTRUCTION_BLOCKS, PARAM_DESCRIPTIONS, PUBLIC_EXPIRY, SERVER_NAME, titled, UPLOAD_TOOL_NAME, UPLOAD_TOOL_TITLE, } from './vocabulary.js';
7
+ import { annotate, DESCRIPTION_BLOCKS, INSTRUCTION_BLOCKS, PARAM_DESCRIPTIONS, PUBLIC_EXPIRY, SERVER_INFO, titled, UPLOAD_TOOL_NAME, UPLOAD_TOOL_TITLE, } from './vocabulary.js';
8
8
  const B = INSTRUCTION_BLOCKS;
9
9
  const D = DESCRIPTION_BLOCKS;
10
10
  // Composed from the shared blocks plus the two sentences that are genuinely
@@ -30,7 +30,7 @@ ${B.domainWorkflow}`;
30
30
  export function createServer(ship, options) {
31
31
  const { version, via = DeploymentVia.MCP } = options;
32
32
  const server = new McpServer({
33
- name: SERVER_NAME,
33
+ ...SERVER_INFO,
34
34
  version,
35
35
  }, {
36
36
  instructions: INSTRUCTIONS,
@@ -27,6 +27,7 @@
27
27
  * Everything else should be here, and adding a shared fact anywhere else is
28
28
  * how the next year's drift starts.
29
29
  */
30
+ import type { Implementation } from '@modelcontextprotocol/sdk/types.js';
30
31
  /**
31
32
  * Two packages, and the split is a rule rather than an accident: **read a
32
33
  * constant from whatever will act on it.**
@@ -53,6 +54,27 @@
53
54
  * is exactly the shape this package exists to delete.
54
55
  */
55
56
  export declare const SERVER_NAME = "shipstatic";
57
+ /**
58
+ * Who the server is, as every transport reports it in `serverInfo`: the
59
+ * fields a client shows a person when they connect. Everything but the
60
+ * version, which each transport reads from its own manifest.
61
+ *
62
+ * - **`title`** is the product's name as people read it (CANON §1).
63
+ * - **`description`** is this package's root sentence (CANON §2) with no
64
+ * qualifier. The hosted server reports it on every door, and on an
65
+ * auth-first door "no account needed" is false.
66
+ * - **`websiteUrl`** and the **icons** name the product, so they are
67
+ * production values in every environment, as in any published package.
68
+ * - **The icons** are the brand mark the marketing site serves, on our own
69
+ * domain: `logo.svg` at `any` size, and `logo.png` rendered from it at
70
+ * 512x512, because a client that renders icons must support PNG and need
71
+ * not support SVG.
72
+ *
73
+ * The MCP Registry entry (`server.json`) states the same title, description,
74
+ * website and icons, and `package.json`'s description opens with the same
75
+ * sentence; the docs contract holds both to this object.
76
+ */
77
+ export declare const SERVER_INFO: Omit<Implementation, 'version'>;
56
78
  /**
57
79
  * The one tool authored per transport — its INPUT differs (a filesystem path
58
80
  * over stdio, inline bytes over HTTP), its NAME must not. Exported so the
@@ -55,6 +55,36 @@ import { formatDuration, PUBLIC_DEPLOYMENT_TTL_SECONDS } from '@shipstatic/types
55
55
  * is exactly the shape this package exists to delete.
56
56
  */
57
57
  export const SERVER_NAME = 'shipstatic';
58
+ /**
59
+ * Who the server is, as every transport reports it in `serverInfo`: the
60
+ * fields a client shows a person when they connect. Everything but the
61
+ * version, which each transport reads from its own manifest.
62
+ *
63
+ * - **`title`** is the product's name as people read it (CANON §1).
64
+ * - **`description`** is this package's root sentence (CANON §2) with no
65
+ * qualifier. The hosted server reports it on every door, and on an
66
+ * auth-first door "no account needed" is false.
67
+ * - **`websiteUrl`** and the **icons** name the product, so they are
68
+ * production values in every environment, as in any published package.
69
+ * - **The icons** are the brand mark the marketing site serves, on our own
70
+ * domain: `logo.svg` at `any` size, and `logo.png` rendered from it at
71
+ * 512x512, because a client that renders icons must support PNG and need
72
+ * not support SVG.
73
+ *
74
+ * The MCP Registry entry (`server.json`) states the same title, description,
75
+ * website and icons, and `package.json`'s description opens with the same
76
+ * sentence; the docs contract holds both to this object.
77
+ */
78
+ export const SERVER_INFO = {
79
+ name: SERVER_NAME,
80
+ title: 'ShipStatic',
81
+ description: 'Deploy static websites, landing pages, and prototypes instantly from AI agents.',
82
+ websiteUrl: 'https://shipstatic.com',
83
+ icons: [
84
+ { src: 'https://www.shipstatic.com/logo.svg', mimeType: 'image/svg+xml', sizes: ['any'] },
85
+ { src: 'https://www.shipstatic.com/logo.png', mimeType: 'image/png', sizes: ['512x512'] },
86
+ ],
87
+ };
58
88
  /**
59
89
  * The one tool authored per transport — its INPUT differs (a filesystem path
60
90
  * over stdio, inline bytes over HTTP), its NAME must not. Exported so the
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shipstatic/mcp",
3
- "version": "2.5.0",
3
+ "version": "2.6.0-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",