@impetik/xeer-mcp 0.2.13 → 0.2.15

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@impetik/xeer-mcp",
3
- "version": "0.2.13",
3
+ "version": "0.2.15",
4
4
  "type": "module",
5
5
  "description": "Model Context Protocol server for Xeer: the scaffold, check, dev, build, and deploy loop as agent tools.",
6
6
  "license": "MIT",
@@ -47,7 +47,7 @@
47
47
  "dependencies": {
48
48
  "@modelcontextprotocol/sdk": "^1.29.0",
49
49
  "zod": "^4.0.10",
50
- "@impetik/xeer": "0.2.13"
50
+ "@impetik/xeer": "0.2.15"
51
51
  },
52
52
  "devDependencies": {
53
53
  "@types/node": "^24.1.0"
@@ -47,6 +47,8 @@ export interface XeerActionDefinition {
47
47
  readonly command: readonly string[];
48
48
  readonly aliases?: readonly (readonly string[])[];
49
49
  readonly summary: string;
50
+ /** Optional command-specific detail rendered only by focused `xeer <command> --help`. */
51
+ readonly description?: string;
50
52
  /** Help syntax without the `xeer ` prefix. May contain `{{templates}}`. */
51
53
  readonly usage: readonly string[];
52
54
  /** Optional abbreviated syntax for the global command list. Full usage remains authoritative. */
@@ -73,6 +75,15 @@ export interface XeerActionDefinition {
73
75
  readonly mcpExclusion?: string;
74
76
  };
75
77
  }
78
+ export interface XeerCliCommandGroupDefinition {
79
+ readonly command: string;
80
+ readonly summary: string;
81
+ }
82
+ /**
83
+ * Human-facing summaries for command families. Membership and ordering still come from the action
84
+ * registry; this only supplies the sentence that no individual subcommand can describe honestly.
85
+ */
86
+ export declare const XEER_CLI_COMMAND_GROUPS: readonly XeerCliCommandGroupDefinition[];
76
87
  export interface XeerCliOptionDefinition {
77
88
  readonly name: string;
78
89
  readonly takesValue: boolean;
@@ -182,6 +193,7 @@ declare const actions: readonly [{
182
193
  readonly id: "new";
183
194
  readonly command: readonly ["new"];
184
195
  readonly summary: "Create a new project from a supported scaffold.";
196
+ readonly description: string;
185
197
  readonly usage: readonly ["new <directory> [--template {{templates}}] [--json]"];
186
198
  readonly helpOrder: 30;
187
199
  readonly outputProtocol: "xeer.command.v0";
@@ -331,6 +343,7 @@ declare const actions: readonly [{
331
343
  readonly id: "deploy";
332
344
  readonly command: readonly ["deploy"];
333
345
  readonly summary: "Build and deploy an application artifact.";
346
+ readonly description: string;
334
347
  readonly usage: readonly ["deploy [directory] [--environment prod|preview] [--control-url <url>] [--json]"];
335
348
  readonly helpOrder: 50;
336
349
  readonly outputProtocol: "xeer.command.v0";
@@ -348,6 +361,7 @@ declare const actions: readonly [{
348
361
  readonly id: "promote";
349
362
  readonly command: readonly ["promote"];
350
363
  readonly summary: "Promote a preview artifact to production.";
364
+ readonly description: string;
351
365
  readonly usage: readonly [string];
352
366
  readonly helpOrder: 80;
353
367
  readonly outputProtocol: "xeer.command.v0";
@@ -466,6 +480,7 @@ declare const actions: readonly [{
466
480
  readonly id: "inspect";
467
481
  readonly command: readonly ["inspect"];
468
482
  readonly summary: "Read a running application manifest.";
483
+ readonly description: string;
469
484
  readonly usage: readonly ["inspect <local-url|app> [--environment prod|preview] [--control-url <url>] [--json]"];
470
485
  readonly helpOrder: 230;
471
486
  readonly outputProtocol: "xeer.command.v0";
@@ -700,6 +715,7 @@ declare const actions: readonly [{
700
715
  readonly id: "deployments";
701
716
  readonly command: readonly ["deployments"];
702
717
  readonly summary: "List deployment history for an application.";
718
+ readonly description: string;
703
719
  readonly usage: readonly ["deployments [app|directory] [--limit <n>] [--control-url <url>] [--json]"];
704
720
  readonly helpOrder: 70;
705
721
  readonly outputProtocol: "xeer.command.v0";
@@ -717,6 +733,7 @@ declare const actions: readonly [{
717
733
  readonly id: "rollback";
718
734
  readonly command: readonly ["rollback"];
719
735
  readonly summary: "Redeploy a previously deployed artifact.";
736
+ readonly description: string;
720
737
  readonly usage: readonly ["rollback [app|directory] <artifactId> [--environment prod|preview] [--control-url <url>] [--json]"];
721
738
  readonly helpOrder: 90;
722
739
  readonly outputProtocol: "xeer.command.v0";
@@ -734,6 +751,7 @@ declare const actions: readonly [{
734
751
  readonly id: "disable";
735
752
  readonly command: readonly ["disable"];
736
753
  readonly summary: "Take an application offline without deleting its data.";
754
+ readonly description: string;
737
755
  readonly usage: readonly ["disable [app|directory] [--control-url <url>] [--json]"];
738
756
  readonly helpOrder: 100;
739
757
  readonly outputProtocol: "xeer.command.v0";
@@ -768,6 +786,7 @@ declare const actions: readonly [{
768
786
  readonly id: "delete";
769
787
  readonly command: readonly ["delete"];
770
788
  readonly summary: "Permanently delete an application and all of its data.";
789
+ readonly description: string;
771
790
  readonly usage: readonly ["delete [app|directory] --confirm <application> [--control-url <url>] [--json]"];
772
791
  readonly helpOrder: 120;
773
792
  readonly outputProtocol: "xeer.command.v0";
@@ -872,6 +891,7 @@ declare const actions: readonly [{
872
891
  readonly id: "state.read";
873
892
  readonly command: readonly ["state"];
874
893
  readonly summary: "Read record counts from a running application.";
894
+ readonly description: string;
875
895
  readonly usage: readonly ["state <local-url|app> [--environment prod|preview] [--control-url <url>] [--json]"];
876
896
  readonly helpOrder: 260;
877
897
  readonly outputProtocol: "xeer.command.v0";
@@ -906,6 +926,7 @@ declare const actions: readonly [{
906
926
  readonly id: "logs";
907
927
  readonly command: readonly ["logs"];
908
928
  readonly summary: "Read the bounded log ring of a running application.";
929
+ readonly description: string;
909
930
  readonly usage: readonly ["logs <local-url|app> [--environment prod|preview] [--after <cursor>] [--control-url <url>] [--json]"];
910
931
  readonly helpOrder: 280;
911
932
  readonly outputProtocol: "xeer.command.v0";
@@ -923,6 +944,7 @@ declare const actions: readonly [{
923
944
  readonly id: "export";
924
945
  readonly command: readonly ["export"];
925
946
  readonly summary: "Export application state to a document.";
947
+ readonly description: string;
926
948
  readonly usage: readonly ["export <local-url|app> [--environment prod|preview] [--out <file>] [--control-url <url>] [--json]", "export --state <dev|preview> [directory] [--out <file>] [--json]"];
927
949
  readonly helpOrder: 290;
928
950
  readonly outputProtocol: "xeer.command.v0";
@@ -940,6 +962,7 @@ declare const actions: readonly [{
940
962
  readonly id: "import";
941
963
  readonly command: readonly ["import"];
942
964
  readonly summary: "Replace local or preview state from an export document.";
965
+ readonly description: string;
943
966
  readonly usage: readonly ["import <preview-url> <file> [--json]", "import --state <dev|preview> [directory] <file> [--json]"];
944
967
  readonly helpOrder: 300;
945
968
  readonly outputProtocol: "xeer.command.v0";
@@ -4,6 +4,20 @@ export const ACTION_REGISTRY_PROTOCOL = 'xeer.actions.v0';
4
4
  export const XEER_MCP_PROFILES = ['author', 'operator'];
5
5
  export const XEER_ARTIFACT_ID_PATTERN = '^sha256:[a-f0-9]{64}$';
6
6
  export const MCP_INPUT_SCHEMA_DRAFT = 'http://json-schema.org/draft-07/schema#';
7
+ /**
8
+ * Human-facing summaries for command families. Membership and ordering still come from the action
9
+ * registry; this only supplies the sentence that no individual subcommand can describe honestly.
10
+ */
11
+ export const XEER_CLI_COMMAND_GROUPS = Object.freeze([
12
+ { command: 'agent', summary: 'Set up agent integrations and inspect normalized project context.' },
13
+ { command: 'docs', summary: 'Search the documentation bundled with this Xeer version.' },
14
+ { command: 'auth', summary: 'Manage builder credentials and local development personas.' },
15
+ { command: 'domains', summary: 'Manage an application\'s platform and custom domains.' },
16
+ { command: 'state', summary: 'Inspect running application state or reset local state.' },
17
+ { command: 'env', summary: 'Manage application environment values and secrets.' },
18
+ { command: 'token', summary: 'Manage service builder tokens.' },
19
+ { command: 'db', summary: 'Inspect and query a running application database.' },
20
+ ]);
7
21
  const NOT_EXPOSED_V0 = 'Not exposed through MCP v0; use the CLI deliberately.';
8
22
  const HUMAN_IDENTITY = 'Human identity and project ownership decisions are not delegated through MCP.';
9
23
  const SECRET_VALUES = 'Secret values are intentionally unreachable through MCP; env pull returns plaintext.';
@@ -179,6 +193,9 @@ const actions = [
179
193
  },
180
194
  {
181
195
  id: 'new', command: ['new'], summary: 'Create a new project from a supported scaffold.',
196
+ description: 'Creates a complete project that checks, tests, and builds clean. Templates do not '
197
+ + 'scaffold sign-in UI: every visitor already has a verified identity, and the generated README '
198
+ + 'explains how to opt in to a persistent account.',
182
199
  usage: ['new <directory> [--template {{templates}}] [--json]'], helpOrder: 30,
183
200
  outputProtocol: 'xeer.command.v0', effects: ['write-source'], idempotent: false,
184
201
  reversible: true, destructive: false, humanPrerequisites: [], pathPolicy: 'project-relative',
@@ -250,6 +267,8 @@ const actions = [
250
267
  },
251
268
  {
252
269
  id: 'deploy', command: ['deploy'], summary: 'Build and deploy an application artifact.',
270
+ description: 'Deploys to production by default. Use --environment preview for a separate preview '
271
+ + 'Worker, URL, environment values, and disposable data so you can review a release before it goes live.',
253
272
  usage: ['deploy [directory] [--environment prod|preview] [--control-url <url>] [--json]'], helpOrder: 50,
254
273
  outputProtocol: 'xeer.command.v0',
255
274
  effects: ['read-source', 'write-generated', 'run-local', 'network-read', 'network-write', 'production-change'],
@@ -259,6 +278,9 @@ const actions = [
259
278
  },
260
279
  {
261
280
  id: 'promote', command: ['promote'], summary: 'Promote a preview artifact to production.',
281
+ description: 'Makes the exact artifact serving in preview live in production without rebuilding it. '
282
+ + '--receipt uses the immutable review record from a preview deploy; --from-artifact is the direct '
283
+ + 'human override for a retained artifact.',
262
284
  usage: ['promote [app|directory] [--receipt <receiptId> | --from-artifact <artifactId>] '
263
285
  + '[--control-url <url>] [--json]'], helpOrder: 80,
264
286
  outputProtocol: 'xeer.command.v0', effects: ['network-read', 'network-write', 'production-change'],
@@ -315,6 +337,9 @@ const actions = [
315
337
  },
316
338
  {
317
339
  id: 'inspect', command: ['inspect'], summary: 'Read a running application manifest.',
340
+ description: 'Reads a local dev or preview URL directly. For a deployed application, Xeer uses the '
341
+ + 'signed-in builder credential and defaults names and app IDs to production; pass an exact URL or '
342
+ + '--environment preview to select preview.',
318
343
  usage: ['inspect <local-url|app> [--environment prod|preview] [--control-url <url>] [--json]'], helpOrder: 230,
319
344
  outputProtocol: 'xeer.command.v0', effects: ['network-read', 'read-state'], idempotent: true,
320
345
  reversible: true, destructive: false, humanPrerequisites: [], pathPolicy: 'app-or-url',
@@ -423,6 +448,8 @@ const actions = [
423
448
  },
424
449
  {
425
450
  id: 'deployments', command: ['deployments'], summary: 'List deployment history for an application.',
451
+ description: 'Lists the newest deployments first and marks the version serving each environment. '
452
+ + 'With no target, it uses the application linked to the current directory.',
426
453
  usage: ['deployments [app|directory] [--limit <n>] [--control-url <url>] [--json]'], helpOrder: 70,
427
454
  outputProtocol: 'xeer.command.v0', effects: ['network-read', 'read-state', 'secret-metadata'],
428
455
  idempotent: true, reversible: true, destructive: false,
@@ -431,6 +458,8 @@ const actions = [
431
458
  },
432
459
  {
433
460
  id: 'rollback', command: ['rollback'], summary: 'Redeploy a previously deployed artifact.',
461
+ description: 'Creates a new deployment from a retained artifact instead of rewriting history. Use the '
462
+ + 'artifact ID from xeer deployments; current environment values are injected at deployment time.',
434
463
  usage: ['rollback [app|directory] <artifactId> [--environment prod|preview] [--control-url <url>] [--json]'],
435
464
  helpOrder: 90, outputProtocol: 'xeer.command.v0',
436
465
  effects: ['network-read', 'network-write', 'production-change'], idempotent: false,
@@ -440,6 +469,8 @@ const actions = [
440
469
  },
441
470
  {
442
471
  id: 'disable', command: ['disable'], summary: 'Take an application offline without deleting its data.',
472
+ description: 'Returns 410 Gone for application requests while preserving the Worker, stored data, and '
473
+ + 'environment values. Run xeer enable to restore service.',
443
474
  usage: ['disable [app|directory] [--control-url <url>] [--json]'], helpOrder: 100,
444
475
  outputProtocol: 'xeer.command.v0', effects: ['network-read', 'network-write', 'production-change'],
445
476
  idempotent: true, reversible: true, destructive: false,
@@ -456,6 +487,8 @@ const actions = [
456
487
  },
457
488
  {
458
489
  id: 'delete', command: ['delete'], summary: 'Permanently delete an application and all of its data.',
490
+ description: 'Destroys the deployed Worker and stored data, stops the origin resolving, and permanently '
491
+ + 'retires the app ID. The exact application name is required with --confirm.',
459
492
  usage: ['delete [app|directory] --confirm <application> [--control-url <url>] [--json]'], helpOrder: 120,
460
493
  outputProtocol: 'xeer.command.v0', effects: ['network-read', 'network-write', 'write-state', 'production-change'],
461
494
  idempotent: false, reversible: false, destructive: true,
@@ -505,6 +538,9 @@ const actions = [
505
538
  },
506
539
  {
507
540
  id: 'state.read', command: ['state'], summary: 'Read record counts from a running application.',
541
+ description: 'Reads a local dev or preview URL directly. For a deployed application, Xeer uses the '
542
+ + 'signed-in builder credential and defaults names and app IDs to production; pass an exact URL or '
543
+ + '--environment preview to select preview.',
508
544
  usage: ['state <local-url|app> [--environment prod|preview] [--control-url <url>] [--json]'], helpOrder: 260,
509
545
  outputProtocol: 'xeer.command.v0', effects: ['network-read', 'read-state'], idempotent: true,
510
546
  reversible: true, destructive: false, humanPrerequisites: [], pathPolicy: 'app-or-url',
@@ -520,6 +556,9 @@ const actions = [
520
556
  },
521
557
  {
522
558
  id: 'logs', command: ['logs'], summary: 'Read the bounded log ring of a running application.',
559
+ description: 'Reads a local dev or preview URL directly. For a deployed application, Xeer uses the '
560
+ + 'signed-in builder credential and defaults names and app IDs to production; pass an exact URL or '
561
+ + '--environment preview to select preview.',
523
562
  usage: ['logs <local-url|app> [--environment prod|preview] [--after <cursor>] [--control-url <url>] [--json]'],
524
563
  helpOrder: 280, outputProtocol: 'xeer.command.v0', effects: ['network-read', 'read-state'],
525
564
  idempotent: true, reversible: true, destructive: false, humanPrerequisites: [], pathPolicy: 'app-or-url',
@@ -527,6 +566,8 @@ const actions = [
527
566
  },
528
567
  {
529
568
  id: 'export', command: ['export'], summary: 'Export application state to a document.',
569
+ description: 'Reads a local URL directly or a deployed application through the signed-in builder. '
570
+ + 'Use --state to export from the xeer dev or xeer preview server running for a project directory.',
530
571
  usage: [
531
572
  'export <local-url|app> [--environment prod|preview] [--out <file>] [--control-url <url>] [--json]',
532
573
  'export --state <dev|preview> [directory] [--out <file>] [--json]',
@@ -537,6 +578,8 @@ const actions = [
537
578
  },
538
579
  {
539
580
  id: 'import', command: ['import'], summary: 'Replace local or preview state from an export document.',
581
+ description: 'Replaces the selected state wholesale. Direct URLs must point to preview; --state imports '
582
+ + 'into the xeer dev or xeer preview server running for a project directory. Production import is refused.',
540
583
  usage: [
541
584
  'import <preview-url> <file> [--json]',
542
585
  'import --state <dev|preview> [directory] <file> [--json]',